keevo-components 1.5.141 → 1.5.142
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/esm2020/keevo-components.mjs +4 -4
- package/esm2020/lib/api/base-components/base-component-button.mjs +36 -36
- package/esm2020/lib/api/base-components/base-component-chart.mjs +92 -92
- package/esm2020/lib/api/base-components/base-component-crud-form.mjs +278 -278
- package/esm2020/lib/api/base-components/base-component-crud-list.mjs +67 -67
- package/esm2020/lib/api/base-components/base-component-crud.mjs +65 -65
- package/esm2020/lib/api/base-components/base-component-dropdown.mjs +161 -161
- package/esm2020/lib/api/base-components/base-component-input.mjs +93 -93
- package/esm2020/lib/api/base-components/base-component-multi-select.mjs +128 -128
- package/esm2020/lib/api/base-components/base-component.mjs +49 -49
- package/esm2020/lib/api/components/chart/chart.config.mjs +2 -2
- package/esm2020/lib/api/components/chart/chart.model.mjs +2 -2
- package/esm2020/lib/api/components/chart/orchart.config.mjs +2 -2
- package/esm2020/lib/api/components/chart/orchart.item.mjs +2 -2
- package/esm2020/lib/api/components/dropdown/filtro.combo.mjs +2 -2
- package/esm2020/lib/api/components/error/error.component.mjs +26 -26
- package/esm2020/lib/api/components/error/kverror.module.mjs +35 -35
- package/esm2020/lib/api/components/table/action-item.mjs +2 -2
- package/esm2020/lib/api/components/table/kv-menuitem.mjs +3 -3
- package/esm2020/lib/api/components/table/table.config.column.mjs +2 -2
- package/esm2020/lib/api/components/table/table.config.mjs +2 -2
- package/esm2020/lib/api/components/table/table.paginate.mjs +9 -9
- package/esm2020/lib/api/helpers/component-providers.mjs +16 -16
- package/esm2020/lib/api/helpers/translate-primeng.mjs +23 -23
- package/esm2020/lib/api/models/menu/master.model.mjs +2 -2
- package/esm2020/lib/api/models/menu/menu.model.mjs +2 -2
- package/esm2020/lib/api/models/menu/menucompleto.model.mjs +2 -2
- package/esm2020/lib/api/models/menu/sistemamenu.model.mjs +2 -2
- package/esm2020/lib/api/modules/primeng.module.mjs +247 -247
- package/esm2020/lib/api/services/base.api.service.mjs +74 -0
- package/esm2020/lib/api/services/component.service.mjs +27 -27
- package/esm2020/lib/api/services/form.service.mjs +102 -102
- package/esm2020/lib/api/services/imagens.service.mjs +22 -22
- package/esm2020/lib/api/services/notification.service.mjs +67 -67
- package/esm2020/lib/api/services/object.service.mjs +26 -26
- package/esm2020/lib/buttons/button-personalize/button-personalize.component.mjs +17 -17
- package/esm2020/lib/buttons/button-popup/button-popup.component.mjs +30 -0
- package/esm2020/lib/buttons/button-secondary/button-secondary.component.mjs +17 -17
- package/esm2020/lib/buttons/button-success/button-success.component.mjs +17 -17
- package/esm2020/lib/buttons/kvbutton.module.mjs +39 -34
- package/esm2020/lib/chart/chart.component.mjs +145 -145
- package/esm2020/lib/chart/kvchart.module.mjs +32 -32
- package/esm2020/lib/directives/template.directive.mjs +24 -24
- package/esm2020/lib/inputs/check/check.component.mjs +26 -26
- package/esm2020/lib/inputs/dropdown/dropdown.component.mjs +36 -36
- package/esm2020/lib/inputs/input-calendar/input-calendar.component.mjs +88 -88
- package/esm2020/lib/inputs/input-mask/input-mask.component.mjs +22 -22
- package/esm2020/lib/inputs/input-number/input-number.component.mjs +56 -56
- package/esm2020/lib/inputs/input-password/input-password.component.mjs +32 -32
- package/esm2020/lib/inputs/input-text/input-text.component.mjs +20 -20
- package/esm2020/lib/inputs/input-text-checkbox/input-text-checkbox.component.mjs +36 -36
- package/esm2020/lib/inputs/input-textarea/input-textarea.component.mjs +42 -42
- package/esm2020/lib/inputs/input-time/input-time.component.mjs +23 -23
- package/esm2020/lib/inputs/kvinputs.module.mjs +99 -99
- package/esm2020/lib/inputs/multi-select/multi-select.component.mjs +37 -37
- package/esm2020/lib/inputs/radio-group/radio-group.component.mjs +49 -49
- package/esm2020/lib/inputs/switch/switch.component.mjs +32 -32
- package/esm2020/lib/keevo-components.module.mjs +91 -91
- package/esm2020/lib/login/kvlogin.module.mjs +47 -47
- package/esm2020/lib/login/login.component.mjs +38 -38
- package/esm2020/lib/menu/kvmenu.module.mjs +43 -43
- package/esm2020/lib/menu/menu.component.mjs +212 -212
- package/esm2020/lib/orgchart/orgchart.component.mjs +100 -100
- package/esm2020/lib/orgchart/orgchart.module.mjs +24 -24
- package/esm2020/lib/picklist/kvpicklist.module.mjs +32 -32
- package/esm2020/lib/picklist/picklist.component.mjs +48 -48
- package/esm2020/lib/pipes/codigofile.pipe.mjs +19 -19
- package/esm2020/lib/pipes/cpfcnpj.pipe.mjs +25 -25
- package/esm2020/lib/pipes/pipes.module.mjs +34 -34
- package/esm2020/lib/pipes/telefone.pipe.mjs +45 -45
- package/esm2020/lib/table/kvtable.module.mjs +32 -32
- package/esm2020/lib/table/table.component.mjs +476 -476
- package/esm2020/lib/tree-table/kv-treetable.component.mjs +290 -290
- package/esm2020/lib/tree-table/kv-treetable.module.mjs +32 -32
- package/esm2020/lib/tree-view/kvtree-view.module.mjs +28 -28
- package/esm2020/lib/tree-view/tree-view.component.mjs +29 -29
- package/esm2020/lib/workspace/kvworkspace.module.mjs +47 -47
- package/esm2020/lib/workspace/workspace.component.mjs +77 -77
- package/esm2020/public-api.mjs +124 -70
- package/fesm2015/keevo-components.mjs +3838 -3737
- package/fesm2015/keevo-components.mjs.map +1 -1
- package/fesm2020/keevo-components.mjs +3829 -3728
- package/fesm2020/keevo-components.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/api/base-components/base-component-button.d.ts +14 -14
- package/lib/api/base-components/base-component-chart.d.ts +40 -40
- package/lib/api/base-components/base-component-crud-form.d.ts +134 -134
- package/lib/api/base-components/base-component-crud-list.d.ts +63 -63
- package/lib/api/base-components/base-component-crud.d.ts +36 -36
- package/lib/api/base-components/base-component-dropdown.d.ts +42 -42
- package/lib/api/base-components/base-component-input.d.ts +31 -31
- package/lib/api/base-components/base-component-multi-select.d.ts +35 -35
- package/lib/api/base-components/base-component.d.ts +21 -21
- package/lib/api/components/chart/chart.config.d.ts +11 -11
- package/lib/api/components/chart/chart.model.d.ts +9 -9
- package/lib/api/components/chart/orchart.config.d.ts +35 -35
- package/lib/api/components/chart/orchart.item.d.ts +26 -26
- package/lib/api/components/dropdown/filtro.combo.d.ts +4 -4
- package/lib/api/components/error/error.component.d.ts +12 -12
- package/lib/api/components/error/kverror.module.d.ts +10 -10
- package/lib/api/components/table/action-item.d.ts +5 -5
- package/lib/api/components/table/kv-menuitem.d.ts +9 -9
- package/lib/api/components/table/table.config.column.d.ts +21 -21
- package/lib/api/components/table/table.config.d.ts +17 -17
- package/lib/api/components/table/table.paginate.d.ts +6 -6
- package/lib/api/helpers/component-providers.d.ts +2 -2
- package/lib/api/helpers/translate-primeng.d.ts +4 -4
- package/lib/api/models/menu/master.model.d.ts +6 -6
- package/lib/api/models/menu/menu.model.d.ts +10 -10
- package/lib/api/models/menu/menucompleto.model.d.ts +6 -6
- package/lib/api/models/menu/sistemamenu.model.d.ts +8 -8
- package/lib/api/modules/primeng.module.d.ts +60 -60
- package/lib/api/services/base.api.service.d.ts +25 -0
- package/lib/api/services/component.service.d.ts +11 -11
- package/lib/api/services/form.service.d.ts +27 -27
- package/lib/api/services/imagens.service.d.ts +8 -8
- package/lib/api/services/notification.service.d.ts +25 -25
- package/lib/api/services/object.service.d.ts +8 -8
- package/lib/buttons/button-personalize/button-personalize.component.d.ts +7 -7
- package/lib/buttons/button-popup/button-popup.component.d.ts +13 -0
- package/lib/buttons/button-secondary/button-secondary.component.d.ts +7 -7
- package/lib/buttons/button-success/button-success.component.d.ts +7 -7
- package/lib/buttons/kvbutton.module.d.ts +11 -10
- package/lib/chart/chart.component.d.ts +56 -56
- package/lib/chart/kvchart.module.d.ts +10 -10
- package/lib/directives/template.directive.d.ts +11 -11
- package/lib/inputs/check/check.component.d.ts +11 -11
- package/lib/inputs/dropdown/dropdown.component.d.ts +14 -14
- package/lib/inputs/input-calendar/input-calendar.component.d.ts +27 -27
- package/lib/inputs/input-mask/input-mask.component.d.ts +10 -10
- package/lib/inputs/input-number/input-number.component.d.ts +18 -18
- package/lib/inputs/input-password/input-password.component.d.ts +13 -13
- package/lib/inputs/input-text/input-text.component.d.ts +9 -9
- package/lib/inputs/input-text-checkbox/input-text-checkbox.component.d.ts +15 -15
- package/lib/inputs/input-textarea/input-textarea.component.d.ts +16 -16
- package/lib/inputs/input-time/input-time.component.d.ts +10 -10
- package/lib/inputs/kvinputs.module.d.ts +23 -23
- package/lib/inputs/multi-select/multi-select.component.d.ts +12 -12
- package/lib/inputs/radio-group/radio-group.component.d.ts +17 -17
- package/lib/inputs/switch/switch.component.d.ts +13 -13
- package/lib/keevo-components.module.d.ts +17 -17
- package/lib/login/kvlogin.module.d.ts +13 -13
- package/lib/login/login.component.d.ts +17 -17
- package/lib/menu/kvmenu.module.d.ts +12 -12
- package/lib/menu/menu.component.d.ts +67 -67
- package/lib/orgchart/orgchart.component.d.ts +27 -27
- package/lib/orgchart/orgchart.module.d.ts +9 -9
- package/lib/picklist/kvpicklist.module.d.ts +10 -10
- package/lib/picklist/picklist.component.d.ts +20 -20
- package/lib/pipes/codigofile.pipe.d.ts +7 -7
- package/lib/pipes/cpfcnpj.pipe.d.ts +7 -7
- package/lib/pipes/pipes.module.d.ts +10 -10
- package/lib/pipes/telefone.pipe.d.ts +7 -7
- package/lib/table/kvtable.module.d.ts +10 -10
- package/lib/table/table.component.d.ts +103 -103
- package/lib/tree-table/kv-treetable.component.d.ts +69 -69
- package/lib/tree-table/kv-treetable.module.d.ts +11 -11
- package/lib/tree-view/kvtree-view.module.d.ts +9 -9
- package/lib/tree-view/tree-view.component.d.ts +14 -14
- package/lib/workspace/kvworkspace.module.d.ts +13 -13
- package/lib/workspace/workspace.component.d.ts +28 -28
- package/package.json +1 -1
- package/public-api.d.ts +120 -66
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { FormControlName, FormGroupDirective, NgControl } from '@angular/forms';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class ComponentService {
|
|
5
|
-
constructor(injector, changeDetectorRef) {
|
|
6
|
-
this.injector = injector;
|
|
7
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
8
|
-
}
|
|
9
|
-
getFormControl() {
|
|
10
|
-
try {
|
|
11
|
-
const control = this.injector.get(NgControl);
|
|
12
|
-
if (control.constructor === FormControlName) {
|
|
13
|
-
return this.injector.get(FormGroupDirective).getControl(control);
|
|
14
|
-
}
|
|
15
|
-
return undefined;
|
|
16
|
-
}
|
|
17
|
-
catch (ex) {
|
|
18
|
-
return undefined;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
ComponentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ComponentService, deps: [{ token: i0.Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
23
|
-
ComponentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ComponentService });
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ComponentService, decorators: [{
|
|
25
|
-
type: Injectable
|
|
26
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ChangeDetectorRef }]; } });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { FormControlName, FormGroupDirective, NgControl } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ComponentService {
|
|
5
|
+
constructor(injector, changeDetectorRef) {
|
|
6
|
+
this.injector = injector;
|
|
7
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
8
|
+
}
|
|
9
|
+
getFormControl() {
|
|
10
|
+
try {
|
|
11
|
+
const control = this.injector.get(NgControl);
|
|
12
|
+
if (control.constructor === FormControlName) {
|
|
13
|
+
return this.injector.get(FormGroupDirective).getControl(control);
|
|
14
|
+
}
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
catch (ex) {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
ComponentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ComponentService, deps: [{ token: i0.Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
23
|
+
ComponentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ComponentService });
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ComponentService, decorators: [{
|
|
25
|
+
type: Injectable
|
|
26
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ChangeDetectorRef }]; } });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvYXBpL3NlcnZpY2VzL2NvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBZSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRzdGLE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsWUFBNEIsUUFBa0IsRUFBUyxpQkFBb0M7UUFBL0QsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFTLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7SUFBSSxDQUFDO0lBRWhHLGNBQWM7UUFDWixJQUFJO1lBQ0YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0MsSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLGVBQWUsRUFBRTtnQkFDM0MsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUEwQixDQUFDLENBQUM7YUFDckY7WUFFRCxPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUNELE9BQU0sRUFBRSxFQUFDO1lBQ1AsT0FBTyxTQUFTLENBQUM7U0FDbEI7SUFDSCxDQUFDOzs2R0FoQlUsZ0JBQWdCO2lIQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Db250cm9sTmFtZSwgRm9ybUdyb3VwRGlyZWN0aXZlLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLCBwdWJsaWMgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cblxuICBnZXRGb3JtQ29udHJvbCgpOiBGb3JtQ29udHJvbDxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCk7XG4gICAgICBpZiAoY29udHJvbC5jb25zdHJ1Y3RvciA9PT0gRm9ybUNvbnRyb2xOYW1lKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmluamVjdG9yLmdldChGb3JtR3JvdXBEaXJlY3RpdmUpLmdldENvbnRyb2woY29udHJvbCBhcyBGb3JtQ29udHJvbE5hbWUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjYXRjaChleCl7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,102 +1,102 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { ObjectService } from './object.service';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class FormService {
|
|
5
|
-
static disableControl(formGroup, controName) {
|
|
6
|
-
formGroup?.controls[controName]?.disable();
|
|
7
|
-
}
|
|
8
|
-
static disableAndClearControl(formGroup, controName, value) {
|
|
9
|
-
this.disableControl(formGroup, controName);
|
|
10
|
-
this.setControlValue(formGroup, controName, null || value);
|
|
11
|
-
}
|
|
12
|
-
static enableControl(formGroup, controName) {
|
|
13
|
-
formGroup?.controls[controName]?.enable();
|
|
14
|
-
}
|
|
15
|
-
static getFormValue(formGroup, controName) {
|
|
16
|
-
return formGroup?.controls[controName]?.value;
|
|
17
|
-
}
|
|
18
|
-
static hasControlError(formGroup, control, errorCode) {
|
|
19
|
-
const formControl = formGroup.get(control);
|
|
20
|
-
let hasError = false;
|
|
21
|
-
if (!formControl)
|
|
22
|
-
return false;
|
|
23
|
-
if (errorCode)
|
|
24
|
-
hasError = formControl.hasError(errorCode);
|
|
25
|
-
else
|
|
26
|
-
hasError = formControl.errors ? true : false;
|
|
27
|
-
return hasError && formControl.touched;
|
|
28
|
-
}
|
|
29
|
-
static invalidForm(formGroup, notification) {
|
|
30
|
-
const keys = Object.keys(formGroup.getRawValue());
|
|
31
|
-
keys.forEach(k => {
|
|
32
|
-
const control = formGroup.controls[k];
|
|
33
|
-
if (notification) {
|
|
34
|
-
if (notification?.item2) {
|
|
35
|
-
const item = ObjectService.findObject(notification.item2, 'property', k);
|
|
36
|
-
if (item)
|
|
37
|
-
control.setErrors({ backendError: true, erroMessage: item.message });
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
const item = ObjectService.findObject(notification, 'key', k);
|
|
41
|
-
if (item)
|
|
42
|
-
control.setErrors({ backendError: true, erroMessage: item.message });
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
if (!control.valid) {
|
|
46
|
-
control.markAsTouched();
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
static openDialog(dialogService, componentType, callBackFunction, paramsDialog) {
|
|
51
|
-
const ref = dialogService.open(componentType, {
|
|
52
|
-
closable: paramsDialog?.closable || false,
|
|
53
|
-
maximizable: paramsDialog?.maximizable || true,
|
|
54
|
-
height: paramsDialog?.height || 'auto',
|
|
55
|
-
width: paramsDialog?.width,
|
|
56
|
-
styleClass: paramsDialog?.styleClass,
|
|
57
|
-
data: { id: paramsDialog?.id, popup: paramsDialog?.popup || true }
|
|
58
|
-
});
|
|
59
|
-
ref.onClose.subscribe((data) => {
|
|
60
|
-
if (data)
|
|
61
|
-
callBackFunction(data);
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
// static openDialog(
|
|
65
|
-
// dialogService: DialogService,
|
|
66
|
-
// componentType: Type<any>,
|
|
67
|
-
// callBackFunction: Function,
|
|
68
|
-
// id?: any,
|
|
69
|
-
// width?: string,
|
|
70
|
-
// height?: string
|
|
71
|
-
// ) {
|
|
72
|
-
// const ref = dialogService.open(componentType, {
|
|
73
|
-
// width: width,
|
|
74
|
-
// height: height,
|
|
75
|
-
// closable: false,
|
|
76
|
-
// maximizable: true,
|
|
77
|
-
// data: { id: id, popup: true }
|
|
78
|
-
// });
|
|
79
|
-
// ref.onClose.subscribe((data: any) => {
|
|
80
|
-
// if (data) callBackFunction(data);
|
|
81
|
-
// });
|
|
82
|
-
// }
|
|
83
|
-
static setControlValue(formGroup, controName, value) {
|
|
84
|
-
formGroup?.controls[controName]?.setValue(value);
|
|
85
|
-
}
|
|
86
|
-
static setValidators(formGroup, controName, validators) {
|
|
87
|
-
formGroup?.controls[controName]?.setValidators(validators);
|
|
88
|
-
formGroup?.controls[controName]?.updateValueAndValidity();
|
|
89
|
-
}
|
|
90
|
-
static clearValidators(formGroup, controName) {
|
|
91
|
-
formGroup?.controls[controName]?.updateValueAndValidity();
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
FormService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: FormService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
95
|
-
FormService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: FormService, providedIn: 'root' });
|
|
96
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: FormService, decorators: [{
|
|
97
|
-
type: Injectable,
|
|
98
|
-
args: [{
|
|
99
|
-
providedIn: 'root'
|
|
100
|
-
}]
|
|
101
|
-
}] });
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { ObjectService } from './object.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class FormService {
|
|
5
|
+
static disableControl(formGroup, controName) {
|
|
6
|
+
formGroup?.controls[controName]?.disable();
|
|
7
|
+
}
|
|
8
|
+
static disableAndClearControl(formGroup, controName, value) {
|
|
9
|
+
this.disableControl(formGroup, controName);
|
|
10
|
+
this.setControlValue(formGroup, controName, null || value);
|
|
11
|
+
}
|
|
12
|
+
static enableControl(formGroup, controName) {
|
|
13
|
+
formGroup?.controls[controName]?.enable();
|
|
14
|
+
}
|
|
15
|
+
static getFormValue(formGroup, controName) {
|
|
16
|
+
return formGroup?.controls[controName]?.value;
|
|
17
|
+
}
|
|
18
|
+
static hasControlError(formGroup, control, errorCode) {
|
|
19
|
+
const formControl = formGroup.get(control);
|
|
20
|
+
let hasError = false;
|
|
21
|
+
if (!formControl)
|
|
22
|
+
return false;
|
|
23
|
+
if (errorCode)
|
|
24
|
+
hasError = formControl.hasError(errorCode);
|
|
25
|
+
else
|
|
26
|
+
hasError = formControl.errors ? true : false;
|
|
27
|
+
return hasError && formControl.touched;
|
|
28
|
+
}
|
|
29
|
+
static invalidForm(formGroup, notification) {
|
|
30
|
+
const keys = Object.keys(formGroup.getRawValue());
|
|
31
|
+
keys.forEach(k => {
|
|
32
|
+
const control = formGroup.controls[k];
|
|
33
|
+
if (notification) {
|
|
34
|
+
if (notification?.item2) {
|
|
35
|
+
const item = ObjectService.findObject(notification.item2, 'property', k);
|
|
36
|
+
if (item)
|
|
37
|
+
control.setErrors({ backendError: true, erroMessage: item.message });
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
const item = ObjectService.findObject(notification, 'key', k);
|
|
41
|
+
if (item)
|
|
42
|
+
control.setErrors({ backendError: true, erroMessage: item.message });
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (!control.valid) {
|
|
46
|
+
control.markAsTouched();
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
static openDialog(dialogService, componentType, callBackFunction, paramsDialog) {
|
|
51
|
+
const ref = dialogService.open(componentType, {
|
|
52
|
+
closable: paramsDialog?.closable || false,
|
|
53
|
+
maximizable: paramsDialog?.maximizable || true,
|
|
54
|
+
height: paramsDialog?.height || 'auto',
|
|
55
|
+
width: paramsDialog?.width,
|
|
56
|
+
styleClass: paramsDialog?.styleClass,
|
|
57
|
+
data: { id: paramsDialog?.id, popup: paramsDialog?.popup || true }
|
|
58
|
+
});
|
|
59
|
+
ref.onClose.subscribe((data) => {
|
|
60
|
+
if (data)
|
|
61
|
+
callBackFunction(data);
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
// static openDialog(
|
|
65
|
+
// dialogService: DialogService,
|
|
66
|
+
// componentType: Type<any>,
|
|
67
|
+
// callBackFunction: Function,
|
|
68
|
+
// id?: any,
|
|
69
|
+
// width?: string,
|
|
70
|
+
// height?: string
|
|
71
|
+
// ) {
|
|
72
|
+
// const ref = dialogService.open(componentType, {
|
|
73
|
+
// width: width,
|
|
74
|
+
// height: height,
|
|
75
|
+
// closable: false,
|
|
76
|
+
// maximizable: true,
|
|
77
|
+
// data: { id: id, popup: true }
|
|
78
|
+
// });
|
|
79
|
+
// ref.onClose.subscribe((data: any) => {
|
|
80
|
+
// if (data) callBackFunction(data);
|
|
81
|
+
// });
|
|
82
|
+
// }
|
|
83
|
+
static setControlValue(formGroup, controName, value) {
|
|
84
|
+
formGroup?.controls[controName]?.setValue(value);
|
|
85
|
+
}
|
|
86
|
+
static setValidators(formGroup, controName, validators) {
|
|
87
|
+
formGroup?.controls[controName]?.setValidators(validators);
|
|
88
|
+
formGroup?.controls[controName]?.updateValueAndValidity();
|
|
89
|
+
}
|
|
90
|
+
static clearValidators(formGroup, controName) {
|
|
91
|
+
formGroup?.controls[controName]?.updateValueAndValidity();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
FormService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: FormService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
95
|
+
FormService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: FormService, providedIn: 'root' });
|
|
96
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: FormService, decorators: [{
|
|
97
|
+
type: Injectable,
|
|
98
|
+
args: [{
|
|
99
|
+
providedIn: 'root'
|
|
100
|
+
}]
|
|
101
|
+
}] });
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2FwaS9zZXJ2aWNlcy9mb3JtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBZ0JqRCxNQUFNLE9BQU8sV0FBVztJQUV0QixNQUFNLENBQUMsY0FBYyxDQUFDLFNBQW9CLEVBQUUsVUFBa0I7UUFDNUQsU0FBUyxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsTUFBTSxDQUFDLHNCQUFzQixDQUFDLFNBQW9CLEVBQUUsVUFBa0IsRUFBRSxLQUFXO1FBQ2pGLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLElBQUksS0FBSyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBb0IsRUFBRSxVQUFrQjtRQUMzRCxTQUFTLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFJLFNBQW9CLEVBQUUsVUFBa0I7UUFDN0QsT0FBVSxTQUFTLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUNuRCxDQUFDO0lBRUQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxTQUFvQixFQUFFLE9BQWUsRUFBRSxTQUFrQjtRQUM5RSxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFD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UUFBUTtJQUNSLElBQUk7SUFFSixNQUFNLENBQUMsZUFBZSxDQUFDLFNBQW9CLEVBQUUsVUFBa0IsRUFBRSxLQUFVO1FBQ3pFLFNBQVMsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQW9CLEVBQUUsVUFBa0IsRUFBRSxVQUE4QztRQUMzRyxTQUFTLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzRCxTQUFTLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLHNCQUFzQixFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsU0FBb0IsRUFBRSxVQUFrQjtRQUM3RCxTQUFTLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLHNCQUFzQixFQUFFLENBQUM7SUFDNUQsQ0FBQzs7d0dBekdVLFdBQVc7NEdBQVgsV0FBVyxjQUZWLE1BQU07MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JqZWN0U2VydmljZSB9IGZyb20gJy4vb2JqZWN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgcGFyYW1zRGlhbG9nIHtcbiAgaWQ/OiBhbnk7XG4gIGNsb3NhYmxlPzogYm9vbGVhbjtcbiAgbWF4aW1pemFibGU/OiBib29sZWFuO1xuICBwb3B1cD86IGJvb2xlYW47XG4gIGhlaWdodD86IHN0cmluZztcbiAgd2lkdGg/OiBzdHJpbmc7XG4gIHN0eWxlQ2xhc3M/OiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1TZXJ2aWNlIHtcblxuICBzdGF0aWMgZGlzYWJsZUNvbnRyb2woZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGNvbnRyb05hbWU6IHN0cmluZykge1xuICAgIGZvcm1Hcm91cD8uY29udHJvbHNbY29udHJvTmFtZV0/LmRpc2FibGUoKTtcbiAgfVxuXG4gIHN0YXRpYyBkaXNhYmxlQW5kQ2xlYXJDb250cm9sKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBjb250cm9OYW1lOiBzdHJpbmcsIHZhbHVlPzogYW55KSB7XG4gICAgdGhpcy5kaXNhYmxlQ29udHJvbChmb3JtR3JvdXAsIGNvbnRyb05hbWUpO1xuICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKGZvcm1Hcm91cCwgY29udHJvTmFtZSwgbnVsbCB8fCB2YWx1ZSk7XG4gIH1cblxuICBzdGF0aWMgZW5hYmxlQ29udHJvbChmb3JtR3JvdXA6IEZvcm1Hcm91cCwgY29udHJvTmFtZTogc3RyaW5nKSB7XG4gICAgZm9ybUdyb3VwPy5jb250cm9sc1tjb250cm9OYW1lXT8uZW5hYmxlKCk7XG4gIH1cblxuICBzdGF0aWMgZ2V0Rm9ybVZhbHVlPFQ+KGZvcm1Hcm91cDogRm9ybUdyb3VwLCBjb250cm9OYW1lOiBzdHJpbmcpOiBUIHtcbiAgICByZXR1cm4gPFQ+Zm9ybUdyb3VwPy5jb250cm9sc1tjb250cm9OYW1lXT8udmFsdWU7XG4gIH1cblxuICBzdGF0aWMgaGFzQ29udHJvbEVycm9yKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBjb250cm9sOiBzdHJpbmcsIGVycm9yQ29kZT86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGZvcm1Db250cm9sID0gZm9ybUdyb3VwLmdldChjb250cm9sKTtcbiAgICBsZXQgaGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGlmICghZm9ybUNvbnRyb2wpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoZXJyb3JDb2RlKSBoYXNFcnJvciA9IGZvcm1Db250cm9sLmhhc0Vycm9yKGVycm9yQ29kZSk7XG4gICAgZWxzZSBoYXNFcnJvciA9IGZvcm1Db250cm9sLmVycm9ycyA/IHRydWUgOiBmYWxzZTtcblxuICAgIHJldHVybiBoYXNFcnJvciAmJiBmb3JtQ29udHJvbC50b3VjaGVkO1xuICB9XG5cbiAgc3RhdGljIGludmFsaWRGb3JtKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBub3RpZmljYXRpb24/OiBhbnkpIHtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCkpO1xuXG4gICAga2V5cy5mb3JFYWNoKGsgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5jb250cm9sc1trXTtcblxuICAgICAgaWYgKG5vdGlmaWNhdGlvbikge1xuICAgICAgICBpZiAobm90aWZpY2F0aW9uPy5pdGVtMikge1xuICAgICAgICAgIGNvbnN0IGl0ZW0gPSBPYmplY3RTZXJ2aWNlLmZpbmRPYmplY3Qobm90aWZpY2F0aW9uLml0ZW0yLCAncHJvcGVydHknLCBrKTtcbiAgICAgICAgICBpZiAoaXRlbSkgY29udHJvbC5zZXRFcnJvcnMoeyBiYWNrZW5kRXJyb3I6IHRydWUsIGVycm9NZXNzYWdlOiBpdGVtLm1lc3NhZ2UgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgY29uc3QgaXRlbSA9IE9iamVjdFNlcnZpY2UuZmluZE9iamVjdChub3RpZmljYXRpb24sICdrZXknLCBrKTtcbiAgICAgICAgICBpZiAoaXRlbSkgY29udHJvbC5zZXRFcnJvcnMoeyBiYWNrZW5kRXJyb3I6IHRydWUsIGVycm9NZXNzYWdlOiBpdGVtLm1lc3NhZ2UgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCFjb250cm9sLnZhbGlkKSB7XG4gICAgICAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIG9wZW5EaWFsb2coXG4gICAgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICBjb21wb25lbnRUeXBlOiBUeXBlPGFueT4sXG4gICAgY2FsbEJhY2tGdW5jdGlvbjogRnVuY3Rpb24sXG4gICAgcGFyYW1zRGlhbG9nPzogcGFyYW1zRGlhbG9nXG4gICkge1xuICAgIGNvbnN0IHJlZiA9IGRpYWxvZ1NlcnZpY2Uub3Blbihjb21wb25lbnRUeXBlLCB7XG4gICAgICBjbG9zYWJsZTogcGFyYW1zRGlhbG9nPy5jbG9zYWJsZSB8fCBmYWxzZSxcbiAgICAgIG1heGltaXphYmxlOiBwYXJhbXNEaWFsb2c/Lm1heGltaXphYmxlIHx8IHRydWUsXG4gICAgICBoZWlnaHQ6IHBhcmFtc0RpYWxvZz8uaGVpZ2h0IHx8ICdhdXRvJyxcbiAgICAgIHdpZHRoOiBwYXJhbXNEaWFsb2c/LndpZHRoLFxuICAgICAgc3R5bGVDbGFzczogcGFyYW1zRGlhbG9nPy5zdHlsZUNsYXNzLFxuICAgICAgZGF0YTogeyBpZDogcGFyYW1zRGlhbG9nPy5pZCwgcG9wdXA6IHBhcmFtc0RpYWxvZz8ucG9wdXAgfHwgdHJ1ZSB9XG4gICAgfSk7XG5cbiAgICByZWYub25DbG9zZS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgaWYgKGRhdGEpIGNhbGxCYWNrRnVuY3Rpb24oZGF0YSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBzdGF0aWMgb3BlbkRpYWxvZyhcbiAgLy8gICBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAvLyAgIGNvbXBvbmVudFR5cGU6IFR5cGU8YW55PixcbiAgLy8gICBjYWxsQmFja0Z1bmN0aW9uOiBGdW5jdGlvbixcbiAgLy8gICBpZD86IGFueSxcbiAgLy8gICB3aWR0aD86IHN0cmluZyxcbiAgLy8gICBoZWlnaHQ/OiBzdHJpbmdcbiAgLy8gKSB7XG4gIC8vICAgY29uc3QgcmVmID0gZGlhbG9nU2VydmljZS5vcGVuKGNvbXBvbmVudFR5cGUsIHtcbiAgLy8gICAgIHdpZHRoOiB3aWR0aCxcbiAgLy8gICAgIGhlaWdodDogaGVpZ2h0LFxuICAvLyAgICAgY2xvc2FibGU6IGZhbHNlLFxuICAvLyAgICAgbWF4aW1pemFibGU6IHRydWUsXG4gIC8vICAgICBkYXRhOiB7IGlkOiBpZCwgcG9wdXA6IHRydWUgfVxuICAvLyAgIH0pO1xuXG4gIC8vICAgcmVmLm9uQ2xvc2Uuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcbiAgLy8gICAgIGlmIChkYXRhKSBjYWxsQmFja0Z1bmN0aW9uKGRhdGEpO1xuICAvLyAgIH0pO1xuICAvLyB9XG5cbiAgc3RhdGljIHNldENvbnRyb2xWYWx1ZShmb3JtR3JvdXA6IEZvcm1Hcm91cCwgY29udHJvTmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgZm9ybUdyb3VwPy5jb250cm9sc1tjb250cm9OYW1lXT8uc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgc3RhdGljIHNldFZhbGlkYXRvcnMoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGNvbnRyb05hbWU6IHN0cmluZywgdmFsaWRhdG9yczogVmFsaWRhdG9yRm4gfCBWYWxpZGF0b3JGbltdIHwgbnVsbCkge1xuICAgIGZvcm1Hcm91cD8uY29udHJvbHNbY29udHJvTmFtZV0/LnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XG4gICAgZm9ybUdyb3VwPy5jb250cm9sc1tjb250cm9OYW1lXT8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgc3RhdGljIGNsZWFyVmFsaWRhdG9ycyhmb3JtR3JvdXA6IEZvcm1Hcm91cCwgY29udHJvTmFtZTogc3RyaW5nKSB7XG4gICAgZm9ybUdyb3VwPy5jb250cm9sc1tjb250cm9OYW1lXT8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG59XG4iXX0=
|