sf-crud 12.0.1-beta1 → 12.0.1-beta3
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.
- package/README.md +24 -24
- package/bundles/sf-crud.umd.js +75 -25
- package/bundles/sf-crud.umd.js.map +1 -1
- package/esm2015/lib/components/control/control.component.js +36 -9
- package/esm2015/lib/components/registro/registro.component.js +25 -3
- package/esm2015/lib/components/tablero/tablero.component.js +3 -3
- package/esm2015/lib/sf-crud.component.js +9 -9
- package/esm2015/lib/sf-crud.module.js +1 -1
- package/esm2015/lib/sf-crud.service.js +1 -1
- package/esm2015/lib/shared/services/models/shema.model.js +2 -1
- package/esm2015/public-api.js +1 -1
- package/fesm2015/sf-crud.js +68 -20
- package/fesm2015/sf-crud.js.map +1 -1
- package/lib/components/control/control.component.d.ts +9 -2
- package/lib/components/registro/registro.component.d.ts +1 -0
- package/lib/components/tablero/tablero.component.d.ts +1 -1
- package/lib/shared/services/models/shema.model.d.ts +2 -0
- package/package.json +1 -1
package/fesm2015/sf-crud.js
CHANGED
|
@@ -24,16 +24,19 @@ import { TooltipModule } from 'primeng/tooltip';
|
|
|
24
24
|
import * as jsonpath from 'jsonpath';
|
|
25
25
|
import * as i5$1 from 'primeng/toast';
|
|
26
26
|
import { ToastModule } from 'primeng/toast';
|
|
27
|
-
import * as
|
|
27
|
+
import * as i2$1 from 'primeng/dropdown';
|
|
28
28
|
import { DropdownModule } from 'primeng/dropdown';
|
|
29
|
-
import * as i3$2 from '
|
|
29
|
+
import * as i3$2 from 'primeng/calendar';
|
|
30
|
+
import { CalendarModule } from 'primeng/calendar';
|
|
31
|
+
import * as i4$1 from 'primeng/inputnumber';
|
|
32
|
+
import { InputNumberModule } from 'primeng/inputnumber';
|
|
33
|
+
import * as i6 from '@angular/forms';
|
|
30
34
|
import { FormsModule } from '@angular/forms';
|
|
31
35
|
import { AccordionModule } from 'primeng/accordion';
|
|
32
36
|
import { AvatarModule } from 'primeng/avatar';
|
|
33
37
|
import { AvatarGroupModule } from 'primeng/avatargroup';
|
|
34
38
|
import { BadgeModule } from 'primeng/badge';
|
|
35
39
|
import { BreadcrumbModule } from 'primeng/breadcrumb';
|
|
36
|
-
import { CalendarModule } from 'primeng/calendar';
|
|
37
40
|
import { CardModule } from 'primeng/card';
|
|
38
41
|
import { CarouselModule } from 'primeng/carousel';
|
|
39
42
|
import { CascadeSelectModule } from 'primeng/cascadeselect';
|
|
@@ -51,7 +54,6 @@ import { FieldsetModule } from 'primeng/fieldset';
|
|
|
51
54
|
import { FileUploadModule } from 'primeng/fileupload';
|
|
52
55
|
import { GalleriaModule } from 'primeng/galleria';
|
|
53
56
|
import { InplaceModule } from 'primeng/inplace';
|
|
54
|
-
import { InputNumberModule } from 'primeng/inputnumber';
|
|
55
57
|
import { InputMaskModule } from 'primeng/inputmask';
|
|
56
58
|
import { InputSwitchModule } from 'primeng/inputswitch';
|
|
57
59
|
import { InputTextareaModule } from 'primeng/inputtextarea';
|
|
@@ -93,6 +95,7 @@ import { TreeModule } from 'primeng/tree';
|
|
|
93
95
|
class Shema {
|
|
94
96
|
constructor() {
|
|
95
97
|
this.type = '';
|
|
98
|
+
this.subtype = '';
|
|
96
99
|
}
|
|
97
100
|
}
|
|
98
101
|
|
|
@@ -229,7 +232,7 @@ class TableroComponent {
|
|
|
229
232
|
this.btn.update = this.opciones.find(x => x.label == 'Editar');
|
|
230
233
|
this.btn.delete = this.opciones.find(x => x.label == 'Eliminar');
|
|
231
234
|
}
|
|
232
|
-
redirect(
|
|
235
|
+
redirect(accion, data) {
|
|
233
236
|
var _a, _b;
|
|
234
237
|
switch (accion) {
|
|
235
238
|
case 'create':
|
|
@@ -250,7 +253,7 @@ class TableroComponent {
|
|
|
250
253
|
}
|
|
251
254
|
}
|
|
252
255
|
TableroComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TableroComponent, deps: [{ token: GeneralService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
253
|
-
TableroComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TableroComponent, selector: "sf-crudtablero", inputs: { opciones: "opciones", idEntidad: "idEntidad", idKatios: "idKatios" }, ngImport: i0, template: "<p-blockUI [blocked]=\"enProceso\">\n <i class=\"pi pi-cog pi-spin\" style=\"font-size: 50px\"></i>\n</p-blockUI>\n\n<div class=\"card\" *ngIf=\"!enProceso\">\n <p-toolbar styleClass=\"mb-4 gap-2\">\n <ng-template pTemplate=\"left\">\n <button *ngIf=\"btn.create\" pButton pRipple [label]=\"btn.create.label\" [icon]=\"btn.create.icon\"\n class=\"p-button-success mr-2\" (click)=\"redirect(
|
|
256
|
+
TableroComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TableroComponent, selector: "sf-crudtablero", inputs: { opciones: "opciones", idEntidad: "idEntidad", idKatios: "idKatios" }, ngImport: i0, template: "<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} {{idEntidad}}\"\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\">{{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\u00F3n</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\">\r\n <tr>\r\n <td *ngFor=\"let col of columns\">\r\n {{rowData[col.col]}}\r\n </td>\r\n <th>\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 </th>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n</div>", components: [{ type: i3.BlockUI, selector: "p-blockUI", inputs: ["autoZIndex", "baseZIndex", "blocked", "target", "styleClass"] }, { type: i4.Toolbar, selector: "p-toolbar", inputs: ["style", "styleClass"] }, { type: i5.Table, selector: "p-table", inputs: ["pageLinks", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "contextMenuSelectionMode", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "filterDelay", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "virtualScrollDelay", "virtualRowHeight", "columnResizeMode", "loadingIcon", "showLoader", "showInitialSortBadge", "stateStorage", "editMode", "totalRecords", "value", "columns", "first", "rows", "sortField", "sortOrder", "multiSortMeta", "selection", "contextMenuSelection", "frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "rowsPerPageOptions", "paginatorDropdownAppendTo", "showCurrentPageReport", "showJumpToPageDropdown", "selectionMode", "dataKey", "metaKeySelection", "globalFilterFields", "filterLocale", "scrollable", "scrollHeight", "virtualScroll", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "reorderableColumns", "loading", "rowHover", "customSort", "autoLayout", "exportFunction", "stateKey", "minBufferPx", "maxBufferPx"], outputs: ["selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i8.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i9.Ripple, selector: "[pRipple]" }, { type: i10.InputText, selector: "[pInputText]" }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "tooltipZIndex", "escape", "tooltipDisabled", "pTooltip", "positionStyle", "tooltipStyleClass", "showDelay", "hideDelay", "life"] }] });
|
|
254
257
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TableroComponent, decorators: [{
|
|
255
258
|
type: Component,
|
|
256
259
|
args: [{
|
|
@@ -266,25 +269,48 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
266
269
|
}] } });
|
|
267
270
|
|
|
268
271
|
class ControlComponent {
|
|
269
|
-
constructor() {
|
|
272
|
+
constructor(generalService) {
|
|
273
|
+
this.generalService = generalService;
|
|
274
|
+
this.control = new Shema();
|
|
270
275
|
this.label = '';
|
|
271
276
|
this.setValue = new EventEmitter();
|
|
277
|
+
this.isLoading = false;
|
|
278
|
+
this.dataFromService = [];
|
|
272
279
|
}
|
|
273
280
|
ngOnInit() {
|
|
281
|
+
var _a;
|
|
282
|
+
if (((_a = this.control) === null || _a === void 0 ? void 0 : _a.config) && this.control.subtype == 'dropdown')
|
|
283
|
+
this.loadDataFromService();
|
|
274
284
|
}
|
|
275
285
|
sendValue() {
|
|
276
286
|
this.setValue.emit(this.value);
|
|
277
287
|
}
|
|
288
|
+
loadDataFromService() {
|
|
289
|
+
this.isLoading = true;
|
|
290
|
+
this.generalService.genericRequest(this.control.config.method, this.control.config.server, this.control.config.endpoint)
|
|
291
|
+
.then((res) => {
|
|
292
|
+
this.dataFromService = res.data;
|
|
293
|
+
this.isLoading = false;
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
loadDataFromControlBusquedaService(event) {
|
|
297
|
+
this.isLoading = true;
|
|
298
|
+
this.generalService.genericRequest(this.control.config.method, this.control.config.server, this.control.config.endpoint.replace('@query', (event === null || event === void 0 ? void 0 : event.query) || ''))
|
|
299
|
+
.then((res) => {
|
|
300
|
+
this.dataFromService = res.data;
|
|
301
|
+
this.isLoading = false;
|
|
302
|
+
});
|
|
303
|
+
}
|
|
278
304
|
}
|
|
279
|
-
ControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
280
|
-
ControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ControlComponent, selector: "sf-control", inputs: { control: "control", label: "label", value: "value" }, outputs: { setValue: "setValue" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"control.type\">\n <ng-container *ngSwitchCase=\"'string'\">\n <
|
|
305
|
+
ControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ControlComponent, deps: [{ token: GeneralService }], target: i0.ɵɵFactoryTarget.Component });
|
|
306
|
+
ControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ControlComponent, selector: "sf-control", inputs: { control: "control", label: "label", value: "value" }, outputs: { setValue: "setValue" }, ngImport: i0, template: "<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 </ng-container>\r\n <ng-container *ngSwitchCase=\"'password'\">\r\n <input pInputText type=\"password\" [(ngModel)]=\"value\" (focusout)=\"sendValue()\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'email'\">\r\n <input pInputText type=\"email\" [(ngModel)]=\"value\" (focusout)=\"sendValue()\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'phone'\">\r\n <input pInputText type=\"tel\" [(ngModel)]=\"value\" (focusout)=\"sendValue()\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'enum'\">\r\n <p-dropdown [options]=\"control.enum\" [(ngModel)]=\"value\" (onChange)=\"sendValue()\"\r\n placeholder=\"Seleccione una opci\u00F3n\"></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 placeholder=\"Seleccione una opci\u00F3n\"></p-dropdown>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'autocomplete'\">\r\n <p-autoComplete [(ngModel)]=\"value\" [suggestions]=\"dataFromService\" [minlength]=\"3\"\r\n (completeMethod)=\"loadDataFromControlBusquedaService($event)\" [forceSelection]=\"true\" (onSelect)=\"sendValue()\"\r\n [field]=\"control.field\"></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()\" [format]=\"control?.format || 'yy-mm-dd'\"></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\"\r\n [currency]=\"control?.currency || 'USD'\"></p-inputNumber>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'decimal'\">\r\n <p-inputNumber [(ngModel)]=\"value\" mode=\"decimal\"\r\n [minFractionDigits]=\"control?.minFractionDigits || 0\"></p-inputNumber>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'percentage'\">\r\n <p-inputNumber [(ngModel)]=\"value\" suffix=\" %\"\r\n [minFractionDigits]=\"control?.minFractionDigits || 2\"></p-inputNumber>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>", components: [{ type: i2$1.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "resetFilterOnHide", "dropdownIcon", "optionGroupChildren", "autoDisplayFirst", "emptyFilterMessage", "emptyMessage", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "autofocusFilter", "disabled", "options", "filterValue", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "group", "showClear", "virtualScroll", "itemSize", "ariaFilterLabel", "ariaLabelledBy", "maxlength", "tooltipStyleClass"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide"] }, { type: i3$2.Calendar, selector: "p-calendar", inputs: ["dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "icon", "shortYearCutoff", "hourFormat", "stepHour", "stepMinute", "stepSecond", "showSeconds", "showOnFocus", "showWeek", "dataType", "selectionMode", "todayButtonStyleClass", "clearButtonStyleClass", "autoZIndex", "baseZIndex", "keepInvalid", "hideOnDateTimeSelect", "numberOfMonths", "view", "timeSeparator", "focusTrap", "firstDayOfWeek", "showTransitionOptions", "hideTransitionOptions", "defaultDate", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "locale", "disabled", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "selectOtherMonths", "showIcon", "appendTo", "readonlyInput", "monthNavigator", "yearNavigator", "timeOnly", "required", "maxDateCount", "showButtonBar", "panelStyleClass", "panelStyle", "touchUI", "tabindex"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { type: i4$1.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "incrementButtonIcon", "decrementButtonIcon", "step", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "disabled", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "inputStyle", "inputStyleClass"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }], directives: [{ type: i7.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i10.InputText, selector: "[pInputText]" }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i6.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }] });
|
|
281
307
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ControlComponent, decorators: [{
|
|
282
308
|
type: Component,
|
|
283
309
|
args: [{
|
|
284
310
|
selector: 'sf-control',
|
|
285
311
|
templateUrl: './control.component.html'
|
|
286
312
|
}]
|
|
287
|
-
}], ctorParameters: function () { return []; }, propDecorators: { control: [{
|
|
313
|
+
}], ctorParameters: function () { return [{ type: GeneralService }]; }, propDecorators: { control: [{
|
|
288
314
|
type: Input
|
|
289
315
|
}], label: [{
|
|
290
316
|
type: Input
|
|
@@ -371,9 +397,12 @@ class RegistroComponent {
|
|
|
371
397
|
switch (esquema.type) {
|
|
372
398
|
case 'string':
|
|
373
399
|
case 'number':
|
|
374
|
-
|
|
400
|
+
case 'date':
|
|
401
|
+
return (esquema === null || esquema === void 0 ? void 0 : esquema.default) ? this.setDefaultValue(esquema.default) : null;
|
|
375
402
|
case 'boolean':
|
|
376
403
|
return (esquema === null || esquema === void 0 ? void 0 : esquema.default) || false;
|
|
404
|
+
case 'array':
|
|
405
|
+
return [];
|
|
377
406
|
case 'object':
|
|
378
407
|
for (const key in esquema === null || esquema === void 0 ? void 0 : esquema.properties) {
|
|
379
408
|
Object.defineProperty(object, key, { value: this.createObject(esquema === null || esquema === void 0 ? void 0 : esquema.properties[key]), writable: true, enumerable: true, configurable: true });
|
|
@@ -420,9 +449,28 @@ class RegistroComponent {
|
|
|
420
449
|
this.messageSerice.add({ severity: 'warn', detail: err.join('. ') });
|
|
421
450
|
return err.length == 0;
|
|
422
451
|
}
|
|
452
|
+
setDefaultValue(value) {
|
|
453
|
+
let data = null;
|
|
454
|
+
switch (value) {
|
|
455
|
+
case '@uactivo':
|
|
456
|
+
let uactivo = JSON.parse(sessionStorage.getItem('oSessionTFM') || '{}');
|
|
457
|
+
if (!uactivo)
|
|
458
|
+
console.log('Validar configuracion de sesion');
|
|
459
|
+
else
|
|
460
|
+
data = `${uactivo.UsuarioSistema.TDOC}-${uactivo.UsuarioSistema.NDOC}`;
|
|
461
|
+
break;
|
|
462
|
+
case '@hoy':
|
|
463
|
+
data = new Date();
|
|
464
|
+
break;
|
|
465
|
+
default:
|
|
466
|
+
data = value;
|
|
467
|
+
break;
|
|
468
|
+
}
|
|
469
|
+
return data;
|
|
470
|
+
}
|
|
423
471
|
}
|
|
424
472
|
RegistroComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RegistroComponent, deps: [{ token: GeneralService }, { token: i2.Router }, { token: i3$1.MessageService }], target: i0.ɵɵFactoryTarget.Component });
|
|
425
|
-
RegistroComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RegistroComponent, selector: "sf-registro", inputs: { idKatios: "idKatios", idEntidad: "idEntidad", trx: "trx", id: "id" }, providers: [MessageService], ngImport: i0, template: "<p-blockUI [blocked]=\"enProceso\">\n <i class=\"pi pi-cog pi-spin\" style=\"font-size: 50px\"></i>\n</p-blockUI>\n\n<p-toast></p-toast>\n\n<div class=\"card\" *ngIf=\"!enProceso\">\n <h5 class=\"card-header mb-2\" style=\"display: flex; justify-content: space-between;align-items: center;\">\n <span>{{idEntidad}} {{id != '' ? '-' + id : ''}}</span>\n <button pButton pRipple type=\"button\" icon=\"pi pi-arrow-left\" (click)=\"back()\"></button>\n </h5>\n <div *ngFor=\"let element of crudConfig.uiEsquema.elements\" [class]=\"element?.class\">\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\" [value]=\"getValue(el.scope)\" (setValue)=\"setValue($event, el.scope)\"></sf-control>\n </ng-container>\n </div>\n </ng-container>\n <div *ngSwitchCase=\"'Control'\">\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(element.scope)\" [label]=\"element.label\"></sf-control>\n </div>\n </ng-container>\n </div>\n <div class=\"card-footer\" *ngIf=\"btnSubmit\">\n <button pButton pRipple type=\"button\" [icon]=\"btnSubmit.icon\" [label]=\"btnSubmit.label\" (click)=\"submit()\"></button>\n </div>\n</div>", components: [{ type: i3.BlockUI, selector: "p-blockUI", inputs: ["autoZIndex", "baseZIndex", "blocked", "target", "styleClass"] }, { type: i5$1.Toast, selector: "p-toast", inputs: ["autoZIndex", "baseZIndex", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "key", "style", "styleClass", "breakpoints"], outputs: ["onClose"] }, { type: ControlComponent, selector: "sf-control", inputs: ["control", "label", "value"], outputs: ["setValue"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i9.Ripple, selector: "[pRipple]" }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }] });
|
|
473
|
+
RegistroComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RegistroComponent, selector: "sf-registro", inputs: { idKatios: "idKatios", idEntidad: "idEntidad", trx: "trx", id: "id" }, providers: [MessageService], ngImport: i0, template: "<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>{{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\" [value]=\"getValue(el.scope)\" (setValue)=\"setValue($event, el.scope)\"></sf-control>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <div *ngSwitchCase=\"'Control'\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(element.scope)\" [label]=\"element.label\"></sf-control>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"card-footer\" *ngIf=\"btnSubmit\">\r\n <button pButton pRipple type=\"button\" [icon]=\"btnSubmit.icon\" [label]=\"btnSubmit.label\" (click)=\"submit()\"></button>\r\n </div>\r\n</div>", components: [{ type: i3.BlockUI, selector: "p-blockUI", inputs: ["autoZIndex", "baseZIndex", "blocked", "target", "styleClass"] }, { type: i5$1.Toast, selector: "p-toast", inputs: ["autoZIndex", "baseZIndex", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "key", "style", "styleClass", "breakpoints"], outputs: ["onClose"] }, { type: ControlComponent, selector: "sf-control", inputs: ["control", "label", "value"], outputs: ["setValue"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i9.Ripple, selector: "[pRipple]" }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }] });
|
|
426
474
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RegistroComponent, decorators: [{
|
|
427
475
|
type: Component,
|
|
428
476
|
args: [{
|
|
@@ -446,19 +494,19 @@ class SfCrudComponent {
|
|
|
446
494
|
}
|
|
447
495
|
}
|
|
448
496
|
SfCrudComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SfCrudComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
449
|
-
SfCrudComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SfCrudComponent, selector: "lib-sf-crud", ngImport: i0, template: `
|
|
450
|
-
<p>
|
|
451
|
-
sf-crud works!
|
|
452
|
-
</p>
|
|
497
|
+
SfCrudComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SfCrudComponent, selector: "lib-sf-crud", ngImport: i0, template: `
|
|
498
|
+
<p>
|
|
499
|
+
sf-crud works!
|
|
500
|
+
</p>
|
|
453
501
|
`, isInline: true });
|
|
454
502
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SfCrudComponent, decorators: [{
|
|
455
503
|
type: Component,
|
|
456
504
|
args: [{
|
|
457
505
|
selector: 'lib-sf-crud',
|
|
458
|
-
template: `
|
|
459
|
-
<p>
|
|
460
|
-
sf-crud works!
|
|
461
|
-
</p>
|
|
506
|
+
template: `
|
|
507
|
+
<p>
|
|
508
|
+
sf-crud works!
|
|
509
|
+
</p>
|
|
462
510
|
`,
|
|
463
511
|
styles: []
|
|
464
512
|
}]
|
package/fesm2015/sf-crud.js.map
CHANGED
|
@@ -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/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 properties?: any;\r\n enum?: any[];\r\n default?: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 key: string = '';\r\n filters: string[] = [];\r\n}\r\n\r\nexport class ConfigRegistro {\r\n operations: Operations[] = [];\r\n btnBack: 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}\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\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';\nimport { Router } from '@angular/router';\nimport { GeneralService } from '../../shared/services/general.service';\nimport { ConfigTablero, CrudConfig } from '../../shared/services/models/crud-config.model';\n\n@Component({\n selector: 'sf-crudtablero',\n templateUrl: './tablero.component.html'\n})\nexport class TableroComponent implements OnInit {\n\n @Input() opciones: any[] = [];\n @Input() idEntidad: string = '';\n @Input() idKatios: string = '';\n\n public crudConfig: CrudConfig = new CrudConfig();\n public enProceso: boolean = false;\n public data: any[] = [];\n public btn: { create: any, read: any, update: any, delete: any } = { create: undefined, read: undefined, update: undefined, delete: undefined }\n\n constructor(\n private generalService: GeneralService,\n private router: Router\n ) { }\n\n ngOnInit(): void {\n this.loadConfigCrud()\n }\n\n loadConfigCrud() {\n this.enProceso = true;\n this.generalService.getCrudByEntidad(this.idKatios, this.idEntidad)\n .then(res => {\n this.crudConfig = res;\n this.getInfoTablero(this.crudConfig.tablero);\n this.loadOptions();\n })\n .catch(err => {\n console.log(err);\n this.enProceso = false;\n })\n }\n\n getInfoTablero(configTablero: ConfigTablero) {\n this.generalService.genericRequest(configTablero.method, configTablero.server, configTablero.endpoint)\n .then((res: any) => {\n this.data = res.data;\n this.enProceso = false;\n })\n .catch(err => {\n console.log(err);\n this.enProceso = false;\n })\n }\n\n loadOptions() {\n this.btn.create = this.opciones.find(x => x.label == 'Crear');\n this.btn.read = this.opciones.find(x => x.label == 'Visualizar');\n this.btn.update = this.opciones.find(x => x.label == 'Editar');\n this.btn.delete = this.opciones.find(x => x.label == 'Eliminar');\n }\n\n redirect(data: any, accion: string) {\n switch (accion) {\n case 'create':\n this.router.navigateByUrl(this.btn.create?.valor?.redirect || '');\n break;\n case 'read':\n this.router.navigateByUrl(this.btn.read.valor.redirect.replace('$id', data[this.crudConfig.tablero.key]));\n break\n case 'update':\n this.router.navigateByUrl(this.btn.update.valor.redirect.replace('$id', data[this.crudConfig.tablero.key]));\n break\n case 'delete':\n this.router.navigateByUrl(this.btn.delete.valor.redirect.replace('$id', data[this.crudConfig.tablero.key]));\n break\n default:\n break\n }\n }\n}\n","<p-blockUI [blocked]=\"enProceso\">\n <i class=\"pi pi-cog pi-spin\" style=\"font-size: 50px\"></i>\n</p-blockUI>\n\n<div class=\"card\" *ngIf=\"!enProceso\">\n <p-toolbar styleClass=\"mb-4 gap-2\">\n <ng-template pTemplate=\"left\">\n <button *ngIf=\"btn.create\" pButton pRipple [label]=\"btn.create.label\" [icon]=\"btn.create.icon\"\n class=\"p-button-success mr-2\" (click)=\"redirect(rowData, 'create')\"></button>\n </ng-template>\n </p-toolbar>\n <p-table #dt [columns]=\"crudConfig.tablero.columns\" [value]=\"data\" [rowHover]=\"true\" [rows]=\"10\" [paginator]=\"true\"\n [globalFilterFields]=\"crudConfig.tablero?.filters || []\" [tableStyle]=\"{'min-width': '75rem'}\"\n currentPageReportTemplate=\"Registro {first} al {last} de {totalRecords} {{idEntidad}}\"\n [showCurrentPageReport]=\"true\">\n <ng-template pTemplate=\"caption\">\n <div class=\"flex align-items-center justify-content-between\">\n <h5 class=\"m-0\">{{idEntidad}}</h5>\n <span class=\"p-input-icon-left\">\n <i class=\"pi pi-search\"></i>\n <input pInputText type=\"text\" (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n placeholder=\"Buscar...\" />\n </span>\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngFor=\"let col of columns\">\n {{col.label}}\n </th>\n <th>Acción</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\">\n <tr>\n <td *ngFor=\"let col of columns\">\n {{rowData[col.col]}}\n </td>\n <th>\n <button *ngIf=\"btn.read\" pButton pRipple [pTooltip]=\"btn.read.label\" [icon]=\"btn.read.icon\"\n class=\"p-button-rounded p-button-info mr-2\" (click)=\"redirect(rowData, 'read')\"></button>\n <button *ngIf=\"btn.update\" pButton pRipple [pTooltip]=\"btn.update.label\" [icon]=\"btn.update.icon\"\n class=\"p-button-rounded p-button-warning mr-2\" (click)=\"redirect(rowData, 'update')\"></button>\n <button *ngIf=\"btn.delete\" pButton pRipple [pTooltip]=\"btn.delete.label\" [icon]=\"btn.delete.icon\"\n class=\"p-button-rounded p-button-danger mr-2\" (click)=\"redirect(rowData, 'delete')\"></button>\n </th>\n </tr>\n </ng-template>\n </p-table>\n</div>","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'sf-control',\n templateUrl: './control.component.html'\n})\nexport class ControlComponent implements OnInit {\n\n @Input() control: any;\n @Input() label: string = '';\n @Input() value: any;\n @Output() setValue: EventEmitter<any> = new EventEmitter<any>();\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n sendValue() {\n this.setValue.emit(this.value);\n }\n\n}\n","<ng-container [ngSwitch]=\"control.type\">\n <ng-container *ngSwitchCase=\"'string'\">\n <label>{{label}}</label>\n <ng-container *ngIf=\"!control?.enum\">\n <input pInputText type=\"text\" [(ngModel)]=\"value\" (focusout)=\"sendValue()\">\n </ng-container>\n <ng-container *ngIf=\"control?.enum\">\n <p-dropdown [options]=\"control.enum\" [(ngModel)]=\"value\" (onChange)=\"sendValue()\" placeholder=\"Seleccione una opción\"></p-dropdown>\n </ng-container>\n </ng-container>\n</ng-container>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { GeneralService } from '../../shared/services/general.service';\nimport { ConfigRegistro, CrudConfig, Operations } from '../../shared/services/models/crud-config.model';\nimport * as jsonpath from 'jsonpath';\nimport { Shema } from '../../shared/services/models/shema.model';\nimport { MessageService } from 'primeng/api';\n\n\n@Component({\n selector: 'sf-registro',\n templateUrl: './registro.component.html',\n providers: [MessageService]\n})\nexport class RegistroComponent implements OnInit {\n\n @Input() idKatios: string = '';\n @Input() idEntidad: string = '';\n @Input() trx: string = '';\n @Input() id: string = '';\n\n public enProceso: boolean = false;\n public crudConfig: CrudConfig = new CrudConfig();\n public btnSubmit: any;\n public data: any;\n public configOperation: Operations = new Operations();\n\n constructor(\n private generalService: GeneralService,\n private router: Router,\n private messageSerice: MessageService,\n ) { }\n\n ngOnInit(): void {\n this.loadConfigCrud();\n this.setLabelSumbit();\n }\n\n loadConfigCrud() {\n this.enProceso = true;\n this.generalService.getCrudByEntidad(this.idKatios, this.idEntidad)\n .then(res => {\n this.crudConfig = res;\n if (this.trx != 'c') this.getInfoRegistro(this.crudConfig.registro);\n else {\n this.data = this.createObject(this.crudConfig.esquema);\n this.enProceso = false;\n }\n this.configOperation = this.crudConfig.registro.operations.find(x => x.type.startsWith(this.trx)) || new Operations();\n })\n .catch(err => {\n console.log(err);\n this.enProceso = false;\n })\n }\n\n setLabelSumbit() {\n if (this.trx == 'c') this.btnSubmit = { label: 'Guardar', icon: 'pi pi-save' }\n else if (this.trx == 'r') this.btnSubmit = undefined;\n else if (this.trx == 'u') this.btnSubmit = { label: 'Actualizar', icon: 'pi pi-sync' }\n else if (this.trx == 'd') this.btnSubmit = { label: 'Eliminar', icon: 'pi pi-trash' }\n\n }\n\n getInfoRegistro(configRegistro: ConfigRegistro) {\n let op = configRegistro.operations.find(x => x.type == 'read');\n let endpoint = op?.endpoint || '';\n endpoint = endpoint.replace('@idKatios', this.idKatios);\n endpoint = endpoint.replace('@id', this.id);\n this.generalService.genericRequest(op?.method || '', op?.server || '', endpoint)\n .then((res: any) => {\n this.data = res.data;\n this.enProceso = false;\n })\n .catch(err => {\n console.log(err);\n this.enProceso = false;\n })\n }\n\n back() {\n this.router.navigateByUrl(this.crudConfig.registro.btnBack);\n }\n\n getControl(scope: string) {\n return jsonpath.query(this.crudConfig.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 jsonpath.value(this.data, scope.replace('.properties', ''), value);\n }\n\n createObject(esquema: Shema) {\n let object = {};\n switch (esquema.type) {\n case 'string':\n case 'number':\n return esquema?.default || null;\n case 'boolean':\n return esquema?.default || false;\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 submit() {\n if (!this.validateData()) return;\n this.enProceso = true;\n let endpoint = this.configOperation.endpoint;\n endpoint = endpoint.replace('@idKatios', this.idKatios)\n endpoint = endpoint.replace('@id', this.id)\n this.generalService.genericRequest(this.configOperation.method, this.configOperation.server, endpoint, this.data)\n .then(() => {\n this.messageSerice.add({ severity: 'success', detail: `Proceso exitoso!` })\n setTimeout(() => {\n this.enProceso = false;\n this.back()\n }, 2000);\n })\n .catch(err => {\n this.messageSerice.add({ severity: 'warn', detail: `${err?.error?.message || 'Error no controlado, por favor comunicarse con del admin.'}` })\n this.enProceso = false;\n })\n }\n\n validateData() {\n if (this.configOperation.validations.type == 'local') return this.validateDataLocal();\n return true;\n }\n\n validateDataLocal() {\n let err: string[] = []\n this.configOperation.validations.required.forEach(x => {\n if (!jsonpath.query(this.data, x.field)[0]) err.push(x.message);\n })\n if (err.length != 0) this.messageSerice.add({ severity: 'warn', detail: err.join('. ') })\n return err.length == 0;\n }\n\n}\n","<p-blockUI [blocked]=\"enProceso\">\n <i class=\"pi pi-cog pi-spin\" style=\"font-size: 50px\"></i>\n</p-blockUI>\n\n<p-toast></p-toast>\n\n<div class=\"card\" *ngIf=\"!enProceso\">\n <h5 class=\"card-header mb-2\" style=\"display: flex; justify-content: space-between;align-items: center;\">\n <span>{{idEntidad}} {{id != '' ? '-' + id : ''}}</span>\n <button pButton pRipple type=\"button\" icon=\"pi pi-arrow-left\" (click)=\"back()\"></button>\n </h5>\n <div *ngFor=\"let element of crudConfig.uiEsquema.elements\" [class]=\"element?.class\">\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\" [value]=\"getValue(el.scope)\" (setValue)=\"setValue($event, el.scope)\"></sf-control>\n </ng-container>\n </div>\n </ng-container>\n <div *ngSwitchCase=\"'Control'\">\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(element.scope)\" [label]=\"element.label\"></sf-control>\n </div>\n </ng-container>\n </div>\n <div class=\"card-footer\" *ngIf=\"btnSubmit\">\n <button pButton pRipple type=\"button\" [icon]=\"btnSubmit.icon\" [label]=\"btnSubmit.label\" (click)=\"submit()\"></button>\n </div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-sf-crud',\n template: `\n <p>\n sf-crud works!\n </p>\n `,\n styles: [\n ]\n})\nexport class SfCrudComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { FormsModule } from '@angular/forms';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\n//=========================================================\n// PrimeNG Modules\n//=========================================================\nimport { AccordionModule } from 'primeng/accordion';\nimport { AvatarModule } from 'primeng/avatar';\nimport { AvatarGroupModule } from 'primeng/avatargroup';\nimport { BadgeModule } from 'primeng/badge';\nimport { BlockUIModule } from 'primeng/blockui';\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\nimport { ButtonModule } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { CardModule } from 'primeng/card';\nimport { CarouselModule } from 'primeng/carousel';\nimport { CascadeSelectModule } from 'primeng/cascadeselect';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { ChipModule } from 'primeng/chip';\nimport { ChipsModule } from 'primeng/chips';\nimport { CodeHighlighterModule } from 'primeng/codehighlighter';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { ColorPickerModule } from 'primeng/colorpicker';\nimport { ContextMenuModule } from 'primeng/contextmenu';\nimport { DialogModule } from 'primeng/dialog';\nimport { DividerModule } from 'primeng/divider';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { GalleriaModule } from 'primeng/galleria';\nimport { InplaceModule } from 'primeng/inplace';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputMaskModule } from 'primeng/inputmask';\nimport { InputSwitchModule } from 'primeng/inputswitch';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { KnobModule } from 'primeng/knob';\nimport { LightboxModule } from 'primeng/lightbox';\nimport { ListboxModule } from 'primeng/listbox';\nimport { MegaMenuModule } from 'primeng/megamenu';\nimport { MenuModule } from 'primeng/menu';\nimport { MenubarModule } from 'primeng/menubar';\nimport { MessagesModule } from 'primeng/messages';\nimport { MessageModule } from 'primeng/message';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { OrganizationChartModule } from 'primeng/organizationchart';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { PanelModule } from 'primeng/panel';\nimport { PanelMenuModule } from 'primeng/panelmenu';\nimport { PasswordModule } from 'primeng/password';\nimport { ProgressBarModule } from 'primeng/progressbar';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { RatingModule } from 'primeng/rating';\nimport { RippleModule } from 'primeng/ripple';\nimport { ScrollPanelModule } from 'primeng/scrollpanel';\nimport { ScrollTopModule } from 'primeng/scrolltop';\nimport { SelectButtonModule } from 'primeng/selectbutton';\nimport { SidebarModule } from 'primeng/sidebar';\nimport { SkeletonModule } from 'primeng/skeleton';\nimport { SlideMenuModule } from 'primeng/slidemenu';\nimport { SliderModule } from 'primeng/slider';\nimport { SplitterModule } from 'primeng/splitter';\nimport { StepsModule } from 'primeng/steps';\nimport { TableModule } from 'primeng/table';\nimport { TabMenuModule } from 'primeng/tabmenu';\nimport { TabViewModule } from 'primeng/tabview';\nimport { TagModule } from 'primeng/tag';\nimport { TerminalModule } from 'primeng/terminal';\nimport { TieredMenuModule } from 'primeng/tieredmenu';\nimport { TimelineModule } from 'primeng/timeline';\nimport { ToastModule } from 'primeng/toast';\nimport { ToggleButtonModule } from 'primeng/togglebutton';\nimport { ToolbarModule } from 'primeng/toolbar';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { TreeModule } from 'primeng/tree';\n\n//=========================================================\n// Componets\n//=========================================================\nimport { SfCrudComponent } from './sf-crud.component';\nimport { TableroComponent } from './components/tablero/tablero.component';\nimport { RegistroComponent } from './components/registro/registro.component';\nimport { ControlComponent } from './components/control/control.component';\n\n@NgModule({\n declarations: [\n SfCrudComponent,\n TableroComponent,\n RegistroComponent,\n ControlComponent\n ],\n imports: [\n AccordionModule,\n AvatarGroupModule,\n AvatarModule,\n BadgeModule,\n BlockUIModule,\n BreadcrumbModule,\n ButtonModule,\n CalendarModule,\n CardModule,\n CarouselModule,\n CascadeSelectModule,\n CheckboxModule,\n ChipModule,\n ChipsModule,\n CodeHighlighterModule,\n ColorPickerModule,\n ConfirmDialogModule,\n ConfirmPopupModule,\n ContextMenuModule,\n DialogModule,\n DividerModule,\n DropdownModule,\n FieldsetModule,\n FileUploadModule,\n FormsModule,\n GalleriaModule,\n HttpClientModule,\n InplaceModule,\n InputMaskModule,\n InputNumberModule,\n InputSwitchModule,\n InputTextareaModule,\n InputTextModule,\n KnobModule,\n LightboxModule,\n ListboxModule,\n MegaMenuModule,\n MenubarModule,\n MenuModule,\n MessageModule,\n MessagesModule,\n MultiSelectModule,\n OrganizationChartModule,\n OverlayPanelModule,\n PanelMenuModule,\n PanelModule,\n PasswordModule,\n ProgressBarModule,\n RadioButtonModule,\n RatingModule,\n RippleModule,\n ScrollPanelModule,\n ScrollTopModule,\n SelectButtonModule,\n SidebarModule,\n SkeletonModule,\n SlideMenuModule,\n SliderModule,\n SplitterModule,\n StepsModule,\n TableModule,\n TabMenuModule,\n TabViewModule,\n TagModule,\n TerminalModule,\n TieredMenuModule,\n TimelineModule,\n ToastModule,\n ToggleButtonModule,\n ToolbarModule,\n TooltipModule,\n TreeModule,\n ],\n exports: [\n SfCrudComponent,\n TableroComponent,\n RegistroComponent\n ]\n})\nexport class SfCrudModule { }\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SfCrudService {\n\n constructor() { }\n}\n","/*\n * Public API Surface of sf-crud\n */\n\nexport * from './lib/components/tablero/tablero.component';\nexport * from './lib/components/registro/registro.component';\nexport * from './lib/sf-crud.component';\nexport * from './lib/sf-crud.module';\nexport * from './lib/sf-crud.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.GeneralService","i6","i7","i1","i2","i3","i4","i5","i6.ControlComponent"],"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/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}\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 key: string = '';\r\n filters: string[] = [];\r\n}\r\n\r\nexport class ConfigRegistro {\r\n operations: Operations[] = [];\r\n btnBack: 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}\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\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\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\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 this.generalService.genericRequest(configTablero.method, configTablero.server, configTablero.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.btn.read.valor.redirect.replace('$id', data[this.crudConfig.tablero.key]));\r\n break\r\n case 'update':\r\n this.router.navigateByUrl(this.btn.update.valor.redirect.replace('$id', data[this.crudConfig.tablero.key]));\r\n break\r\n case 'delete':\r\n this.router.navigateByUrl(this.btn.delete.valor.redirect.replace('$id', data[this.crudConfig.tablero.key]));\r\n break\r\n default:\r\n break\r\n }\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} {{idEntidad}}\"\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\">{{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 <td *ngFor=\"let col of columns\">\r\n {{rowData[col.col]}}\r\n </td>\r\n <th>\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 </th>\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 { 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 @Output() setValue: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n public isLoading: boolean = false;\r\n public dataFromService: any[] = [];\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 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}\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 </ng-container>\r\n <ng-container *ngSwitchCase=\"'password'\">\r\n <input pInputText type=\"password\" [(ngModel)]=\"value\" (focusout)=\"sendValue()\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'email'\">\r\n <input pInputText type=\"email\" [(ngModel)]=\"value\" (focusout)=\"sendValue()\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'phone'\">\r\n <input pInputText type=\"tel\" [(ngModel)]=\"value\" (focusout)=\"sendValue()\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'enum'\">\r\n <p-dropdown [options]=\"control.enum\" [(ngModel)]=\"value\" (onChange)=\"sendValue()\"\r\n placeholder=\"Seleccione una opción\"></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 placeholder=\"Seleccione una opción\"></p-dropdown>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'autocomplete'\">\r\n <p-autoComplete [(ngModel)]=\"value\" [suggestions]=\"dataFromService\" [minlength]=\"3\"\r\n (completeMethod)=\"loadDataFromControlBusquedaService($event)\" [forceSelection]=\"true\" (onSelect)=\"sendValue()\"\r\n [field]=\"control.field\"></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()\" [format]=\"control?.format || 'yy-mm-dd'\"></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\"\r\n [currency]=\"control?.currency || 'USD'\"></p-inputNumber>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'decimal'\">\r\n <p-inputNumber [(ngModel)]=\"value\" mode=\"decimal\"\r\n [minFractionDigits]=\"control?.minFractionDigits || 0\"></p-inputNumber>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'percentage'\">\r\n <p-inputNumber [(ngModel)]=\"value\" suffix=\" %\"\r\n [minFractionDigits]=\"control?.minFractionDigits || 2\"></p-inputNumber>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { GeneralService } from '../../shared/services/general.service';\r\nimport { ConfigRegistro, CrudConfig, Operations } from '../../shared/services/models/crud-config.model';\r\nimport * as jsonpath from 'jsonpath';\r\nimport { Shema } from '../../shared/services/models/shema.model';\r\nimport { MessageService } from 'primeng/api';\r\n\r\n\r\n@Component({\r\n selector: 'sf-registro',\r\n templateUrl: './registro.component.html',\r\n providers: [MessageService]\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\r\n public enProceso: boolean = false;\r\n public crudConfig: CrudConfig = new CrudConfig();\r\n public btnSubmit: any;\r\n public data: any;\r\n public configOperation: Operations = new Operations();\r\n\r\n constructor(\r\n private generalService: GeneralService,\r\n private router: Router,\r\n private messageSerice: MessageService,\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 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\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 jsonpath.value(this.data, scope.replace('.properties', ''), value);\r\n }\r\n\r\n createObject(esquema: Shema) {\r\n let object = {};\r\n switch (esquema.type) {\r\n case 'string':\r\n case 'number':\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 '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 if (!this.validateData()) return;\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 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 let uactivo = JSON.parse(sessionStorage.getItem('oSessionTFM') || '{}')\r\n if (!uactivo) console.log('Validar configuracion de sesion')\r\n else data = `${uactivo.UsuarioSistema.TDOC}-${uactivo.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}\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>{{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\" [value]=\"getValue(el.scope)\" (setValue)=\"setValue($event, el.scope)\"></sf-control>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <div *ngSwitchCase=\"'Control'\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(element.scope)\" [label]=\"element.label\"></sf-control>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"card-footer\" *ngIf=\"btnSubmit\">\r\n <button pButton pRipple type=\"button\" [icon]=\"btnSubmit.icon\" [label]=\"btnSubmit.label\" (click)=\"submit()\"></button>\r\n </div>\r\n</div>","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 { AvatarModule } from 'primeng/avatar';\r\nimport { AvatarGroupModule } from 'primeng/avatargroup';\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 { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { ColorPickerModule } from 'primeng/colorpicker';\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 { FieldsetModule } from 'primeng/fieldset';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { GalleriaModule } from 'primeng/galleria';\r\nimport { InplaceModule } from 'primeng/inplace';\r\nimport { InputNumberModule } from 'primeng/inputnumber';\r\nimport { InputMaskModule } from 'primeng/inputmask';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\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 { MenuModule } from 'primeng/menu';\r\nimport { MenubarModule } from 'primeng/menubar';\r\nimport { MessagesModule } from 'primeng/messages';\r\nimport { MessageModule } from 'primeng/message';\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { OrganizationChartModule } from 'primeng/organizationchart';\r\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\r\nimport { PanelModule } from 'primeng/panel';\r\nimport { PanelMenuModule } from 'primeng/panelmenu';\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\n\r\n@NgModule({\r\n declarations: [\r\n SfCrudComponent,\r\n TableroComponent,\r\n RegistroComponent,\r\n ControlComponent\r\n ],\r\n imports: [\r\n AccordionModule,\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 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 ]\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/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","i6","i7","i2","i3","i4","i5","i6.ControlComponent"],"mappings":"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"}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import { OnInit, EventEmitter } from '@angular/core';
|
|
2
|
+
import { GeneralService } from '../../shared/services/general.service';
|
|
3
|
+
import { Shema } from '../../shared/services/models/shema.model';
|
|
2
4
|
import * as i0 from "@angular/core";
|
|
3
5
|
export declare class ControlComponent implements OnInit {
|
|
4
|
-
|
|
6
|
+
private generalService;
|
|
7
|
+
control: Shema;
|
|
5
8
|
label: string;
|
|
6
9
|
value: any;
|
|
7
10
|
setValue: EventEmitter<any>;
|
|
8
|
-
|
|
11
|
+
isLoading: boolean;
|
|
12
|
+
dataFromService: any[];
|
|
13
|
+
constructor(generalService: GeneralService);
|
|
9
14
|
ngOnInit(): void;
|
|
10
15
|
sendValue(): void;
|
|
16
|
+
loadDataFromService(): void;
|
|
17
|
+
loadDataFromControlBusquedaService(event: any): void;
|
|
11
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<ControlComponent, never>;
|
|
12
19
|
static ɵcmp: i0.ɵɵComponentDeclaration<ControlComponent, "sf-control", never, { "control": "control"; "label": "label"; "value": "value"; }, { "setValue": "setValue"; }, never, never>;
|
|
13
20
|
}
|
|
@@ -31,6 +31,7 @@ export declare class RegistroComponent implements OnInit {
|
|
|
31
31
|
submit(): void;
|
|
32
32
|
validateData(): boolean;
|
|
33
33
|
validateDataLocal(): boolean;
|
|
34
|
+
setDefaultValue(value: string): string | Date | null;
|
|
34
35
|
static ɵfac: i0.ɵɵFactoryDeclaration<RegistroComponent, never>;
|
|
35
36
|
static ɵcmp: i0.ɵɵComponentDeclaration<RegistroComponent, "sf-registro", never, { "idKatios": "idKatios"; "idEntidad": "idEntidad"; "trx": "trx"; "id": "id"; }, {}, never, never>;
|
|
36
37
|
}
|
|
@@ -23,7 +23,7 @@ export declare class TableroComponent implements OnInit {
|
|
|
23
23
|
loadConfigCrud(): void;
|
|
24
24
|
getInfoTablero(configTablero: ConfigTablero): void;
|
|
25
25
|
loadOptions(): void;
|
|
26
|
-
redirect(
|
|
26
|
+
redirect(accion: string, data?: any): void;
|
|
27
27
|
static ɵfac: i0.ɵɵFactoryDeclaration<TableroComponent, never>;
|
|
28
28
|
static ɵcmp: i0.ɵɵComponentDeclaration<TableroComponent, "sf-crudtablero", never, { "opciones": "opciones"; "idEntidad": "idEntidad"; "idKatios": "idKatios"; }, {}, never, never>;
|
|
29
29
|
}
|