@pepperi-addons/ngx-composite-lib 0.0.16-beta.4 → 0.0.16-beta.42
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/bundles/pepperi-addons-ngx-composite-lib-color-settings.umd.js +10 -1
- package/bundles/pepperi-addons-ngx-composite-lib-color-settings.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-composite-lib-data-view-builder.umd.js +393 -0
- package/bundles/pepperi-addons-ngx-composite-lib-data-view-builder.umd.js.map +1 -0
- package/bundles/pepperi-addons-ngx-composite-lib-file-status-panel.umd.js +15 -10
- package/bundles/pepperi-addons-ngx-composite-lib-file-status-panel.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-composite-lib-generic-form.umd.js +91 -58
- package/bundles/pepperi-addons-ngx-composite-lib-generic-form.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-composite-lib-generic-list.umd.js +119 -74
- package/bundles/pepperi-addons-ngx-composite-lib-generic-list.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-composite-lib-group-buttons-settings.umd.js +5 -2
- package/bundles/pepperi-addons-ngx-composite-lib-group-buttons-settings.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-composite-lib.umd.js +114 -50
- package/bundles/pepperi-addons-ngx-composite-lib.umd.js.map +1 -1
- package/color-settings/color-settings.component.d.ts +4 -1
- package/core/common/directives/reset-configuration-field.directive.d.ts +1 -0
- package/core/common/services/dimx.service.d.ts +32 -0
- package/core/common/services/public-api.d.ts +1 -0
- package/data-view-builder/data-view-builder.component.d.ts +35 -0
- package/data-view-builder/data-view-builder.model.d.ts +1 -0
- package/data-view-builder/data-view-builder.module.d.ts +23 -0
- package/data-view-builder/data-view-builder.service.d.ts +14 -0
- package/data-view-builder/menu-data-view/menu-data-view.component.d.ts +36 -0
- package/data-view-builder/package.json +10 -0
- package/{dimx-export/pepperi-addons-ngx-composite-lib-dimx-export.d.ts → data-view-builder/pepperi-addons-ngx-composite-lib-data-view-builder.d.ts} +1 -1
- package/data-view-builder/public-api.d.ts +3 -0
- package/esm2015/color-settings/color-settings.component.js +11 -2
- package/esm2015/core/common/directives/reset-configuration-field.directive.js +26 -22
- package/esm2015/core/common/services/dimx.service.js +50 -0
- package/esm2015/core/common/services/public-api.js +2 -1
- package/esm2015/data-view-builder/data-view-builder.component.js +122 -0
- package/esm2015/data-view-builder/data-view-builder.model.js +2 -0
- package/esm2015/data-view-builder/data-view-builder.module.js +82 -0
- package/esm2015/data-view-builder/data-view-builder.service.js +39 -0
- package/esm2015/data-view-builder/menu-data-view/menu-data-view.component.js +122 -0
- package/esm2015/data-view-builder/pepperi-addons-ngx-composite-lib-data-view-builder.js +5 -0
- package/esm2015/data-view-builder/public-api.js +7 -0
- package/esm2015/file-status-panel/file-status-panel.module.js +12 -4
- package/esm2015/generic-form/generic-form.component.js +86 -55
- package/esm2015/generic-form/generic-form.model.js +1 -1
- package/esm2015/generic-form/index.js +5 -0
- package/esm2015/generic-list/generic-list.component.js +65 -36
- package/esm2015/generic-list/generic-list.model.js +1 -1
- package/esm2015/generic-list/generic-list.module.js +7 -4
- package/esm2015/generic-list/generic-list.service.js +23 -10
- package/esm2015/group-buttons-settings/group-buttons-settings.component.js +2 -2
- package/esm2015/group-buttons-settings/group-buttons-settings.module.js +6 -3
- package/esm2015/ngx-composite-lib.module.js +19 -8
- package/fesm2015/pepperi-addons-ngx-composite-lib-color-settings.js +10 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-color-settings.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-data-view-builder.js +360 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-data-view-builder.js.map +1 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-file-status-panel.js +12 -5
- package/fesm2015/pepperi-addons-ngx-composite-lib-file-status-panel.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-generic-form.js +85 -55
- package/fesm2015/pepperi-addons-ngx-composite-lib-generic-form.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-generic-list.js +88 -44
- package/fesm2015/pepperi-addons-ngx-composite-lib-generic-list.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-group-buttons-settings.js +6 -3
- package/fesm2015/pepperi-addons-ngx-composite-lib-group-buttons-settings.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib.js +117 -54
- package/fesm2015/pepperi-addons-ngx-composite-lib.js.map +1 -1
- package/file-status-panel/file-status-panel.module.d.ts +3 -0
- package/generic-form/generic-form.component.d.ts +12 -12
- package/generic-form/generic-form.model.d.ts +12 -13
- package/{dimx-export → generic-form}/index.d.ts +0 -0
- package/generic-list/generic-list.component.d.ts +11 -9
- package/generic-list/generic-list.model.d.ts +10 -6
- package/generic-list/generic-list.service.d.ts +2 -1
- package/group-buttons-settings/group-buttons-settings.module.d.ts +2 -1
- package/ngx-composite-lib.module.d.ts +4 -2
- package/package.json +2 -2
- package/src/assets/i18n/en.ngx-composite-lib.json +24 -1
- package/src/core/style/components/data-view-builder.scss +65 -0
- package/styling.scss +5 -1
- package/bundles/pepperi-addons-ngx-composite-lib-dimx-export.umd.js +0 -890
- package/bundles/pepperi-addons-ngx-composite-lib-dimx-export.umd.js.map +0 -1
- package/dimx-export/dimx.component.d.ts +0 -86
- package/dimx-export/dimx.model.d.ts +0 -5
- package/dimx-export/dimx.module.d.ts +0 -16
- package/dimx-export/dimx.service.d.ts +0 -21
- package/dimx-export/package.json +0 -16
- package/dimx-export/public-api.d.ts +0 -3
- package/esm2015/dimx-export/dimx.component.js +0 -335
- package/esm2015/dimx-export/dimx.model.js +0 -8
- package/esm2015/dimx-export/dimx.module.js +0 -53
- package/esm2015/dimx-export/dimx.service.js +0 -50
- package/esm2015/dimx-export/index.js +0 -5
- package/esm2015/dimx-export/pepperi-addons-ngx-composite-lib-dimx-export.js +0 -5
- package/esm2015/dimx-export/public-api.js +0 -7
- package/fesm2015/pepperi-addons-ngx-composite-lib-dimx-export.js +0 -446
- package/fesm2015/pepperi-addons-ngx-composite-lib-dimx-export.js.map +0 -1
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, EventEmitter, Component, Input, Output, NgModule } from '@angular/core';
|
|
3
|
-
import * as
|
|
2
|
+
import { Injectable, EventEmitter, ViewContainerRef, Component, ViewChild, Input, Output, NgModule } from '@angular/core';
|
|
3
|
+
import * as i5 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import * as i1 from '@pepperi-addons/ngx-lib';
|
|
6
6
|
import { ObjectsDataRowCell, ObjectsDataRow, UIControl, PepGuid, PepNgxLibModule } from '@pepperi-addons/ngx-lib';
|
|
7
|
-
import
|
|
8
|
-
import { PepFormModule } from '@pepperi-addons/ngx-lib/form';
|
|
7
|
+
import { PepFormComponent, PepFormModule } from '@pepperi-addons/ngx-lib/form';
|
|
9
8
|
import { PepMenuModule } from '@pepperi-addons/ngx-lib/menu';
|
|
10
9
|
import * as i3 from '@pepperi-addons/ngx-lib/page-layout';
|
|
11
10
|
import { PepPageLayoutModule } from '@pepperi-addons/ngx-lib/page-layout';
|
|
@@ -79,7 +78,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImpor
|
|
|
79
78
|
}], ctorParameters: function () { return []; } });
|
|
80
79
|
|
|
81
80
|
class GenericFormComponent {
|
|
82
|
-
constructor(layoutService, _genericFormService) {
|
|
81
|
+
constructor(_resolver, layoutService, _genericFormService) {
|
|
82
|
+
this._resolver = _resolver;
|
|
83
83
|
this.layoutService = layoutService;
|
|
84
84
|
this._genericFormService = _genericFormService;
|
|
85
85
|
this._optionalValues = [];
|
|
@@ -93,59 +93,84 @@ class GenericFormComponent {
|
|
|
93
93
|
this.layoutService.onResize$.pipe().subscribe((size) => {
|
|
94
94
|
//
|
|
95
95
|
});
|
|
96
|
-
this.
|
|
97
|
-
this.
|
|
96
|
+
this._formData = new ObjectsDataRow();
|
|
97
|
+
this._uiControl = new UIControl();
|
|
98
|
+
}
|
|
99
|
+
set pepListContainer(val) {
|
|
100
|
+
this._pepFormContainer = val;
|
|
98
101
|
}
|
|
99
102
|
set dataSource(val) {
|
|
100
103
|
this._data = val;
|
|
101
|
-
this.createFormFields();
|
|
102
104
|
}
|
|
103
105
|
set dataView(val) {
|
|
104
|
-
|
|
105
|
-
if (val) {
|
|
106
|
-
this.formData.IsEditable = !this.isLocked;
|
|
107
|
-
this.formData.UID = val.UID || PepGuid.newGuid();
|
|
108
|
-
const uiControlData = DataViewConverter.toUIControlData(val);
|
|
109
|
-
if (uiControlData) {
|
|
110
|
-
if (uiControlData === null || uiControlData === void 0 ? void 0 : uiControlData.ControlFields) {
|
|
111
|
-
(_a = val.Fields) === null || _a === void 0 ? void 0 : _a.forEach((field) => {
|
|
112
|
-
var _a;
|
|
113
|
-
if ((_a = field.OptionalValues) === null || _a === void 0 ? void 0 : _a.length) {
|
|
114
|
-
this._optionalValues.push({
|
|
115
|
-
fieldId: field.FieldID,
|
|
116
|
-
optionalValues: field.OptionalValues
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
this.uiControl.ControlFields = uiControlData.ControlFields.map((field) => this._genericFormService.convertToUiControlField(field));
|
|
121
|
-
}
|
|
122
|
-
this.uiControl.Columns = uiControlData.Columns;
|
|
123
|
-
this.createFormFields();
|
|
124
|
-
}
|
|
125
|
-
}
|
|
106
|
+
this.initForm(val);
|
|
126
107
|
}
|
|
127
108
|
ngOnInit() {
|
|
128
109
|
//
|
|
129
110
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
this.
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
111
|
+
initForm(dataView) {
|
|
112
|
+
setTimeout(() => {
|
|
113
|
+
var _a, _b;
|
|
114
|
+
if (this._pepFormContainer) {
|
|
115
|
+
if (this._pepFormContainer.length) {
|
|
116
|
+
this._pepFormContainer.remove();
|
|
117
|
+
this._formData = new ObjectsDataRow();
|
|
118
|
+
this._uiControl = new UIControl();
|
|
138
119
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
120
|
+
const factory = this._resolver.resolveComponentFactory(PepFormComponent);
|
|
121
|
+
const componentRef = this._pepFormContainer.createComponent(factory);
|
|
122
|
+
this._pepForm = componentRef.instance;
|
|
123
|
+
this._formData.IsEditable = !this.isLocked;
|
|
124
|
+
this._formData.UID = dataView.UID || PepGuid.newGuid();
|
|
125
|
+
const uiControlData = DataViewConverter.toUIControlData(dataView);
|
|
126
|
+
if (uiControlData) {
|
|
127
|
+
if (uiControlData === null || uiControlData === void 0 ? void 0 : uiControlData.ControlFields) {
|
|
128
|
+
(_a = dataView.Fields) === null || _a === void 0 ? void 0 : _a.forEach((field) => {
|
|
129
|
+
var _a;
|
|
130
|
+
if ((_a = field.OptionalValues) === null || _a === void 0 ? void 0 : _a.length) {
|
|
131
|
+
this._optionalValues.push({
|
|
132
|
+
fieldId: field.FieldID,
|
|
133
|
+
optionalValues: field.OptionalValues
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
this._uiControl.ControlFields = uiControlData.ControlFields.map((field) => this._genericFormService.convertToUiControlField(field));
|
|
138
|
+
}
|
|
139
|
+
this._uiControl.Columns = uiControlData.Columns;
|
|
140
|
+
if ((_b = this._uiControl.ControlFields) === null || _b === void 0 ? void 0 : _b.length) {
|
|
141
|
+
this._formData.Fields = [];
|
|
142
|
+
this._uiControl.ControlFields.forEach((item) => {
|
|
143
|
+
let value = '';
|
|
144
|
+
if (this._genericFormService.hasProperty(this._data, item.ApiName)) {
|
|
145
|
+
value = this._data[item.ApiName];
|
|
146
|
+
}
|
|
147
|
+
this._formData.Fields.push(this._genericFormService.createFormField(item, value, this.getOptionalValues(item.ApiName)));
|
|
148
|
+
});
|
|
149
|
+
componentRef.instance.layoutType = 'form';
|
|
150
|
+
componentRef.instance.layout = this._uiControl;
|
|
151
|
+
componentRef.instance.data = this._formData;
|
|
152
|
+
componentRef.instance.isInternal = false;
|
|
153
|
+
componentRef.instance.lockFields = this.isLocked;
|
|
154
|
+
componentRef.instance.valueChange.subscribe(($event) => {
|
|
155
|
+
this.onValueChanged($event);
|
|
156
|
+
});
|
|
157
|
+
componentRef.instance.fieldClick.subscribe(($event) => {
|
|
158
|
+
this.onfieldClicked($event);
|
|
159
|
+
});
|
|
160
|
+
componentRef.instance.formValidationChange.subscribe(($event) => {
|
|
161
|
+
this.onFormValidationChanged($event);
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}, 0);
|
|
142
167
|
}
|
|
143
168
|
/**
|
|
144
169
|
* updates form field's value
|
|
145
170
|
* @param field object containing the data of the required update
|
|
146
171
|
*/
|
|
147
172
|
updateFieldValue(fieldChanged) {
|
|
148
|
-
this._data[fieldChanged.
|
|
173
|
+
this._data[fieldChanged.ApiName] = fieldChanged.Value;
|
|
149
174
|
}
|
|
150
175
|
getOptionalValues(fieldId) {
|
|
151
176
|
const item = this._optionalValues.find((item) => item.fieldId === fieldId);
|
|
@@ -153,7 +178,7 @@ class GenericFormComponent {
|
|
|
153
178
|
}
|
|
154
179
|
getData() {
|
|
155
180
|
return {
|
|
156
|
-
UID: this.
|
|
181
|
+
UID: this._formData.UID,
|
|
157
182
|
Values: this._data
|
|
158
183
|
};
|
|
159
184
|
}
|
|
@@ -163,31 +188,33 @@ class GenericFormComponent {
|
|
|
163
188
|
*/
|
|
164
189
|
updateFields(fields) {
|
|
165
190
|
fields.forEach((field) => {
|
|
166
|
-
const index = this.
|
|
191
|
+
const index = this._formData.Fields.findIndex((item) => item.ApiName === field.FieldId);
|
|
167
192
|
if (index >= 0) {
|
|
168
193
|
for (const [key, value] of Object.entries(field.Params)) {
|
|
169
|
-
if (this._genericFormService.hasProperty(this.
|
|
170
|
-
const item = this.
|
|
194
|
+
if (this._genericFormService.hasProperty(this._formData.Fields[index], key)) {
|
|
195
|
+
const item = this._formData.Fields[index];
|
|
171
196
|
item[key] = value;
|
|
172
197
|
}
|
|
173
198
|
}
|
|
174
199
|
}
|
|
175
200
|
});
|
|
201
|
+
this._pepForm.ReloadForm();
|
|
202
|
+
this._pepForm.data = this._formData;
|
|
176
203
|
}
|
|
177
204
|
onValueChanged(event) {
|
|
178
205
|
const field = {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
206
|
+
UID: event.id,
|
|
207
|
+
ApiName: event.key,
|
|
208
|
+
Value: event.value
|
|
182
209
|
};
|
|
183
210
|
this.updateFieldValue(field);
|
|
184
211
|
this.valueChange.emit(field);
|
|
185
212
|
}
|
|
186
213
|
onfieldClicked(event) {
|
|
187
214
|
const field = {
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
215
|
+
UID: event.id,
|
|
216
|
+
ApiName: event.key,
|
|
217
|
+
Value: event.value
|
|
191
218
|
};
|
|
192
219
|
this.updateFieldValue(field);
|
|
193
220
|
this.fieldClick.emit(field);
|
|
@@ -196,8 +223,8 @@ class GenericFormComponent {
|
|
|
196
223
|
this.formValidationChange.emit(event);
|
|
197
224
|
}
|
|
198
225
|
}
|
|
199
|
-
GenericFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: GenericFormComponent, deps: [{ token: i1.PepLayoutService }, { token: PepGenericFormService }], target: i0.ɵɵFactoryTarget.Component });
|
|
200
|
-
GenericFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: GenericFormComponent, selector: "pep-generic-form", inputs: { dataSource: "dataSource", dataView: "dataView", isLocked: "isLocked", inline: "inline", showTopBar: "showTopBar", addPadding: "addPadding" }, outputs: { valueChange: "valueChange", fieldClick: "fieldClick", formValidationChange: "formValidationChange" }, providers: [PepGenericFormService], ngImport: i0, template: "<div *ngIf=\"inline\" class=\"inline-container
|
|
226
|
+
GenericFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: GenericFormComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: i1.PepLayoutService }, { token: PepGenericFormService }], target: i0.ɵɵFactoryTarget.Component });
|
|
227
|
+
GenericFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: GenericFormComponent, selector: "pep-generic-form", inputs: { dataSource: "dataSource", dataView: "dataView", isLocked: "isLocked", inline: "inline", showTopBar: "showTopBar", addPadding: "addPadding" }, outputs: { valueChange: "valueChange", fieldClick: "fieldClick", formValidationChange: "formValidationChange" }, providers: [PepGenericFormService], viewQueries: [{ propertyName: "pepListContainer", first: true, predicate: ["pepFormContainer"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<div *ngIf=\"inline\" class=\"inline-container\" [ngClass]=\"{ 'add-padding': addPadding }\">\n <div *ngIf=\"showTopBar\" class=\"inline-top-bar-container\">\n <ng-container *ngTemplateOutlet=\"topBarTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"formTemplate\"></ng-container>\n</div>\n\n<pep-page-layout *ngIf=\"!inline\" [addPadding]=\"addPadding\">\n <ng-container *ngIf=\"showTopBar\" pep-top-area>\n <ng-container *ngTemplateOutlet=\"topBarTemplate\"></ng-container>\n </ng-container>\n <div pep-main-area class=\"main-area-container\">\n <ng-container *ngTemplateOutlet=\"formTemplate\"></ng-container>\n </div>\n</pep-page-layout>\n\n<ng-template #topBarTemplate>\n <pep-top-bar [inline]=\"inline\"> \n <div header-start-content>\n <ng-content select=\"[left-buttons]\"></ng-content>\n </div>\n <div header-end-content>\n <ng-content select=\"[right-buttons]\"></ng-content>\n </div>\n\n <!-- <div footer-start-content>\n <ng-content select=\"[bottom-left-buttons]\"></ng-content>\n </div>\n <div footer-end-content>\n <ng-content select=\"[bottom-right-buttons]\"></ng-content>\n </div> -->\n </pep-top-bar>\n</ng-template>\n\n<ng-template #formTemplate>\n <div class=\"form-view\">\n <ng-container #pepFormContainer></ng-container>\n </div>\n</ng-template>\n", styles: [":host{height:inherit;display:block}.main-area-container{display:grid;height:inherit}.inline-container{height:inherit;display:grid;grid-template-rows:auto 1fr}.inline-container.add-padding{padding-inline:var(--pep-spacing-lg, 1rem)}\n"], components: [{ type: i3.PepPageLayoutComponent, selector: "pep-page-layout", inputs: ["addPadding", "showShadow"] }, { type: i4.PepTopBarComponent, selector: "pep-top-bar", inputs: ["inline", "title"], outputs: ["footerStateChange"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
201
228
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: GenericFormComponent, decorators: [{
|
|
202
229
|
type: Component,
|
|
203
230
|
args: [{
|
|
@@ -206,7 +233,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImpor
|
|
|
206
233
|
styleUrls: ['./generic-form.component.scss'],
|
|
207
234
|
providers: [PepGenericFormService]
|
|
208
235
|
}]
|
|
209
|
-
}], ctorParameters: function () { return [{ type: i1.PepLayoutService }, { type: PepGenericFormService }]; }, propDecorators: {
|
|
236
|
+
}], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i1.PepLayoutService }, { type: PepGenericFormService }]; }, propDecorators: { pepListContainer: [{
|
|
237
|
+
type: ViewChild,
|
|
238
|
+
args: ['pepFormContainer', { read: ViewContainerRef }]
|
|
239
|
+
}], dataSource: [{
|
|
210
240
|
type: Input
|
|
211
241
|
}], dataView: [{
|
|
212
242
|
type: Input
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pepperi-addons-ngx-composite-lib-generic-form.js","sources":["../../../projects/ngx-composite-lib/generic-form/generic-form.service.ts","../../../projects/ngx-composite-lib/generic-form/generic-form.component.ts","../../../projects/ngx-composite-lib/generic-form/generic-form.component.html","../../../projects/ngx-composite-lib/generic-form/generic-form.module.ts","../../../projects/ngx-composite-lib/generic-form/public-api.ts","../../../projects/ngx-composite-lib/generic-form/pepperi-addons-ngx-composite-lib-generic-form.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { ObjectsDataRowCell } from '@pepperi-addons/ngx-lib';\n\n\n@Injectable()\nexport class PepGenericFormService { \n\n constructor() {\n // \n }\n \n /**\n * checks if the object contains property\n * @param obj object\n * @param prop property name\n * @returns true if contains, false otherwise\n */\n hasProperty(obj: any, prop: string) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n createFormField(controlField: any, value: any, optionalValues: any[]) {\n const field = new ObjectsDataRowCell();\n \n field.ApiName = controlField.ApiName;\n field.Value = value;\n field.FieldType = controlField.FieldType;\n field.Enabled = !controlField.ReadOnly;\n field.Visible = !controlField.Hidden;\n /* field.Accessory = \"\";\n field.AdditionalValue = \"\";\n field.BackgroundColor = \"\";\n field.FormattedValue = \"\";*/\n field.GroupFields = [];\n field.Highlighted = false;\n // field.NotificationInfo = \"\";\n field.OptionalValues = optionalValues;\n /* field.ReferenceObjectInternalType = \"\";\n field.ReferenceObjectSubType = \"\";\n field.ReferenceObjectType = '0';\n field.TextColor = \"\";\n field.UiPageKey = \"\";*/\n\n return field;\n }\n\n convertToUiControlField(field: any): any {\n return {\n ApiName: field.ApiName,\n FieldType: field.FieldType,\n Title: field.Title,\n ReadOnly: field.ReadOnlyField,\n Mandatory: field.MandatoryField,\n Hidden: field.Hidden,\n ColumnWidth: field.ColumnWidth,\n ColumnWidthType: 1,\n MaxFieldCharacters: field.MaxCharacters,\n MinValue: field.MinValue,\n MaxValue: field.MaxValue,\n Layout: {\n X: field.Layout.X,\n Y: field.Layout.Y,\n Width: field.Layout.Width,\n Height: field.Layout.Field_Height,\n XAlignment: field.Layout.xAlignment,\n YAlignment: field.Layout.yAlignment,\n }\n }\n }\n\n}\n","import {\n Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n} from '@angular/core';\nimport { PepLayoutService } from '@pepperi-addons/ngx-lib';\nimport {\n IPepGenericFormDataView,\n IPepGenericFormValueChange,\n IPepGenericFormFieldUpdate,\n IPepGenericFormDataSource\n} from './generic-form.model';\nimport {\n UIControl,\n ObjectsDataRow,\n ObjectsDataRowCell,\n PepGuid\n} from '@pepperi-addons/ngx-lib';\nimport { DataViewConverter } from '@pepperi-addons/data-views';\nimport { PepGenericFormService } from './generic-form.service';\n\n\n@Component({\n selector: 'pep-generic-form',\n templateUrl: './generic-form.component.html',\n styleUrls: ['./generic-form.component.scss'],\n providers: [PepGenericFormService]\n})\nexport class GenericFormComponent implements OnInit {\n private _data: any;\n @Input()\n set dataSource(val: any) {\n this._data = val;\n this.createFormFields(); \n }\n\n private _optionalValues: any[] = [];\n formData: ObjectsDataRow;\n uiControl: UIControl;\n @Input()\n set dataView(val: IPepGenericFormDataView) {\n if (val) { \n this.formData.IsEditable = !this.isLocked;\n this.formData.UID = val.UID || PepGuid.newGuid();\n const uiControlData = DataViewConverter.toUIControlData(val);\n if (uiControlData) {\n if (uiControlData?.ControlFields) {\n val.Fields?.forEach((field: any) => {\n if (field.OptionalValues?.length) {\n this._optionalValues.push({\n fieldId: field.FieldID,\n optionalValues: field.OptionalValues\n });\n }\n });\n this.uiControl.ControlFields = uiControlData.ControlFields.map((field: any) => this._genericFormService.convertToUiControlField(field));\n \n }\n this.uiControl.Columns = uiControlData.Columns;\n this.createFormFields();\n }\n } \n }\n\n @Input()\n isLocked = false; \n\n @Input()\n inline = false;\n\n @Input()\n showTopBar = false;\n\n @Input()\n addPadding = false;\n\n @Output()\n valueChange: EventEmitter<IPepGenericFormValueChange> = new EventEmitter<IPepGenericFormValueChange>();\n\n @Output()\n fieldClick: EventEmitter<IPepGenericFormValueChange> = new EventEmitter<IPepGenericFormValueChange>();\n\n @Output()\n formValidationChange: EventEmitter<boolean> = new EventEmitter<boolean>(); \n\n constructor(\n private layoutService: PepLayoutService,\n public _genericFormService: PepGenericFormService\n ) {\n this.layoutService.onResize$.pipe().subscribe((size) => {\n // \n });\n this.formData = new ObjectsDataRow(); \n this.uiControl = new UIControl();\n }\n\n ngOnInit() {\n //\n }\n\n private createFormFields() {\n if (this._data && this.uiControl?.ControlFields?.length) {\n this.formData.Fields = [];\n this.uiControl.ControlFields.forEach((item) => {\n let value = '';\n if (this._genericFormService.hasProperty(this._data, item.ApiName)) {\n value = this._data[item.ApiName];\n }\n this.formData.Fields.push(this._genericFormService.createFormField(item, value, this.getOptionalValues(item.ApiName)) as ObjectsDataRowCell);\n });\n }\n } \n\n /**\n * updates form field's value\n * @param field object containing the data of the required update\n */\n private updateFieldValue(fieldChanged: IPepGenericFormValueChange) {\n this._data[fieldChanged.apiName] = fieldChanged.value;\n }\n\n private getOptionalValues(fieldId: string) {\n const item = this._optionalValues.find((item: any) => item.fieldId === fieldId);\n return item?.optionalValues || [];\n }\n\n getData() {\n return {\n UID: this.formData.UID,\n Values: this._data\n };\n } \n\n /**\n * updates form field(s) params\n * @param fields\n */\n updateFields(fields: Array<IPepGenericFormFieldUpdate>) {\n fields.forEach((field) => {\n const index = this.formData.Fields.findIndex((item) => item.ApiName === field.FieldId);\n if (index >= 0) {\n for (const [key, value] of Object.entries(field.Params)) {\n if (this._genericFormService.hasProperty(this.formData.Fields[index], key)) {\n const item = this.formData.Fields[index] as { [k: string]: any };\n item[key] = value;\n }\n }\n }\n });\n }\n\n onValueChanged(event: any) {\n const field: IPepGenericFormValueChange = {\n uid: event.id,\n apiName: event.key,\n value: event.value\n };\n this.updateFieldValue(field);\n this.valueChange.emit(field);\n }\n\n onfieldClicked(event: any) {\n const field: IPepGenericFormValueChange = {\n uid: event.id,\n apiName: event.key,\n value: event.value\n };\n this.updateFieldValue(field);\n this.fieldClick.emit(field);\n }\n\n onFormValidationChanged(event: any) {\n this.formValidationChange.emit(event);\n }\n\n\n}\n","<div *ngIf=\"inline\" class=\"inline-container form-view\" [ngClass]=\"{ 'add-padding': addPadding }\">\n <div *ngIf=\"showTopBar\" class=\"inline-top-bar-container\">\n <ng-container *ngTemplateOutlet=\"topBarTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"formTemplate\"></ng-container>\n</div>\n\n<pep-page-layout *ngIf=\"!inline\" [addPadding]=\"addPadding\">\n <ng-container *ngIf=\"showTopBar\" pep-top-area>\n <ng-container *ngTemplateOutlet=\"topBarTemplate\"></ng-container>\n </ng-container>\n <div pep-main-area class=\"main-area-container form-view\">\n <ng-container *ngTemplateOutlet=\"formTemplate\"></ng-container>\n </div>\n</pep-page-layout>\n\n<ng-template #topBarTemplate>\n <pep-top-bar [inline]=\"inline\"> \n <div header-start-content>\n <ng-content select=\"[left-buttons]\"></ng-content>\n </div>\n <div header-end-content>\n <ng-content select=\"[right-buttons]\"></ng-content>\n </div>\n\n <!-- <div footer-start-content>\n <ng-content select=\"[bottom-left-buttons]\"></ng-content>\n </div>\n <div footer-end-content>\n <ng-content select=\"[bottom-right-buttons]\"></ng-content>\n </div> -->\n </pep-top-bar>\n</ng-template>\n\n<ng-template #formTemplate>\n <pep-form [layoutType]=\"'form'\" [layout]=\"uiControl\" [data]=\"formData\" [isInternal]=\"false\" [lockFields]=\"isLocked\"\n (valueChange)=\"onValueChanged($event)\" (fieldClick)=\"onfieldClicked($event)\"\n (formValidationChange)=\"onFormValidationChanged($event)\">\n </pep-form>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n//import { MatFormFieldModule } from '@angular/material/form-field';\n//import { MaterialModule } from '@pepperi-addons/ngx-lib/';\n//import { ReactiveFormsModule } from '@angular/forms';\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport { PepFormModule } from '@pepperi-addons/ngx-lib/form';\nimport { PepMenuModule } from '@pepperi-addons/ngx-lib/menu';\nimport { PepPageLayoutModule } from '@pepperi-addons/ngx-lib/page-layout';\nimport { PepTopBarModule } from '@pepperi-addons/ngx-lib/top-bar';\n//import { PepTextboxModule } from '@pepperi-addons/ngx-lib/textbox';\n//import { PepDateModule } from '@pepperi-addons/ngx-lib/date';\n\nimport { PepGenericFormService } from './generic-form.service';\n\nimport { GenericFormComponent } from './generic-form.component';\n\n@NgModule({\n declarations: [\n GenericFormComponent\n ],\n imports: [\n CommonModule, \n\n // MatFormFieldModule,\n // ReactiveFormsModule,\n\n PepNgxLibModule,\n // PepListModule,\n PepFormModule,\n PepMenuModule,\n PepPageLayoutModule,\n PepTopBarModule,\n // PepTextboxModule,\n // PepDateModule\n // PepSearchModule,\n // PepBreadCrumbsModule\n ],\n exports: [\n GenericFormComponent\n ],\n providers: [\n PepGenericFormService\n ]\n})\nexport class PepGenericFormModule { }\n","/*\n* Public API Surface of ngx-composite-lib/generic-form\n*/\nexport * from './generic-form.module';\nexport * from './generic-form.component';\nexport * from './generic-form.model';\nexport * from './generic-form.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pepperi-addons-ngx-composite-lib-generic-form.js","sources":["../../../projects/ngx-composite-lib/generic-form/generic-form.service.ts","../../../projects/ngx-composite-lib/generic-form/generic-form.component.ts","../../../projects/ngx-composite-lib/generic-form/generic-form.component.html","../../../projects/ngx-composite-lib/generic-form/generic-form.module.ts","../../../projects/ngx-composite-lib/generic-form/public-api.ts","../../../projects/ngx-composite-lib/generic-form/pepperi-addons-ngx-composite-lib-generic-form.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { ObjectsDataRowCell } from '@pepperi-addons/ngx-lib';\n\n\n@Injectable()\nexport class PepGenericFormService { \n\n constructor() {\n // \n }\n \n /**\n * checks if the object contains property\n * @param obj object\n * @param prop property name\n * @returns true if contains, false otherwise\n */\n hasProperty(obj: any, prop: string) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n createFormField(controlField: any, value: any, optionalValues: any[]) {\n const field = new ObjectsDataRowCell();\n \n field.ApiName = controlField.ApiName;\n field.Value = value;\n field.FieldType = controlField.FieldType;\n field.Enabled = !controlField.ReadOnly;\n field.Visible = !controlField.Hidden;\n /* field.Accessory = \"\";\n field.AdditionalValue = \"\";\n field.BackgroundColor = \"\";\n field.FormattedValue = \"\";*/\n field.GroupFields = [];\n field.Highlighted = false;\n // field.NotificationInfo = \"\";\n field.OptionalValues = optionalValues;\n /* field.ReferenceObjectInternalType = \"\";\n field.ReferenceObjectSubType = \"\";\n field.ReferenceObjectType = '0';\n field.TextColor = \"\";\n field.UiPageKey = \"\";*/\n\n return field;\n }\n\n convertToUiControlField(field: any): any {\n return {\n ApiName: field.ApiName,\n FieldType: field.FieldType,\n Title: field.Title,\n ReadOnly: field.ReadOnlyField,\n Mandatory: field.MandatoryField,\n Hidden: field.Hidden,\n ColumnWidth: field.ColumnWidth,\n ColumnWidthType: 1,\n MaxFieldCharacters: field.MaxCharacters,\n MinValue: field.MinValue,\n MaxValue: field.MaxValue,\n Layout: {\n X: field.Layout.X,\n Y: field.Layout.Y,\n Width: field.Layout.Width,\n Height: field.Layout.Field_Height,\n XAlignment: field.Layout.xAlignment,\n YAlignment: field.Layout.yAlignment,\n }\n }\n }\n\n}\n","import {\n Component,\n OnInit,\n Input,\n Output,\n ViewChild,\n ViewContainerRef,\n EventEmitter,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport { PepFormComponent } from '@pepperi-addons/ngx-lib/form';\nimport {\n IPepGenericFormDataView,\n IPepGenericFormValueChange,\n IPepGenericFormFieldUpdate,\n IPepGenericFormData\n} from './generic-form.model';\nimport {\n UIControl,\n ObjectsDataRow,\n ObjectsDataRowCell,\n PepGuid,\n PepLayoutService\n} from '@pepperi-addons/ngx-lib';\nimport { DataViewConverter } from '@pepperi-addons/data-views';\nimport { PepGenericFormService } from './generic-form.service';\nimport { } from './'\n\n\n@Component({\n selector: 'pep-generic-form',\n templateUrl: './generic-form.component.html',\n styleUrls: ['./generic-form.component.scss'],\n providers: [PepGenericFormService]\n})\nexport class GenericFormComponent implements OnInit {\n private _pepFormContainer: ViewContainerRef | undefined;\n @ViewChild('pepFormContainer', { read: ViewContainerRef })\n set pepListContainer(val: ViewContainerRef) {\n this._pepFormContainer = val;\n }\n\n private _data: any;\n @Input()\n set dataSource(val: any) {\n this._data = val;\n }\n \n private _optionalValues: any[] = [];\n private _formData: ObjectsDataRow;\n private _uiControl: UIControl;\n @Input()\n set dataView(val: IPepGenericFormDataView) {\n this.initForm(val);\n }\n\n @Input()\n isLocked = false;\n\n @Input()\n inline = false;\n\n @Input()\n showTopBar = false;\n\n @Input()\n addPadding = false;\n\n @Output()\n valueChange: EventEmitter<IPepGenericFormValueChange> = new EventEmitter<IPepGenericFormValueChange>();\n\n @Output()\n fieldClick: EventEmitter<IPepGenericFormValueChange> = new EventEmitter<IPepGenericFormValueChange>();\n\n @Output()\n formValidationChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private _pepForm: any;\n\n constructor(\n private _resolver: ComponentFactoryResolver,\n private layoutService: PepLayoutService,\n public _genericFormService: PepGenericFormService\n ) {\n this.layoutService.onResize$.pipe().subscribe((size) => {\n // \n });\n this._formData = new ObjectsDataRow();\n this._uiControl = new UIControl();\n }\n\n ngOnInit() {\n //\n }\n\n private initForm(dataView: IPepGenericFormDataView) {\n setTimeout(() => {\n if (this._pepFormContainer) {\n if (this._pepFormContainer.length) {\n this._pepFormContainer.remove();\n this._formData = new ObjectsDataRow();\n this._uiControl = new UIControl();\n }\n\n const factory = this._resolver.resolveComponentFactory(PepFormComponent);\n const componentRef = this._pepFormContainer.createComponent(factory);\n this._pepForm = componentRef.instance;\n\n this._formData.IsEditable = !this.isLocked;\n this._formData.UID = dataView.UID || PepGuid.newGuid();\n const uiControlData = DataViewConverter.toUIControlData(dataView);\n if (uiControlData) {\n if (uiControlData?.ControlFields) {\n dataView.Fields?.forEach((field: any) => {\n if (field.OptionalValues?.length) {\n this._optionalValues.push({\n fieldId: field.FieldID,\n optionalValues: field.OptionalValues\n });\n }\n });\n this._uiControl.ControlFields = uiControlData.ControlFields.map((field: any) => this._genericFormService.convertToUiControlField(field));\n\n }\n this._uiControl.Columns = uiControlData.Columns;\n\n if (this._uiControl.ControlFields?.length) {\n this._formData.Fields = [];\n this._uiControl.ControlFields.forEach((item) => {\n let value = '';\n if (this._genericFormService.hasProperty(this._data, item.ApiName)) {\n value = this._data[item.ApiName];\n }\n this._formData.Fields.push(this._genericFormService.createFormField(item, value, this.getOptionalValues(item.ApiName)) as ObjectsDataRowCell);\n });\n\n componentRef.instance.layoutType = 'form';\n componentRef.instance.layout = this._uiControl;\n componentRef.instance.data = this._formData;\n componentRef.instance.isInternal = false;\n componentRef.instance.lockFields = this.isLocked;\n componentRef.instance.valueChange.subscribe(($event) => {\n this.onValueChanged($event);\n });\n componentRef.instance.fieldClick.subscribe(($event) => {\n this.onfieldClicked($event);\n });\n componentRef.instance.formValidationChange.subscribe(($event) => {\n this.onFormValidationChanged($event);\n });\n }\n }\n\n }\n\n }, 0);\n }\n\n /**\n * updates form field's value\n * @param field object containing the data of the required update\n */\n private updateFieldValue(fieldChanged: IPepGenericFormValueChange) {\n this._data[fieldChanged.ApiName] = fieldChanged.Value;\n }\n\n private getOptionalValues(fieldId: string) {\n const item = this._optionalValues.find((item: any) => item.fieldId === fieldId);\n return item?.optionalValues || [];\n }\n\n getData(): IPepGenericFormData {\n return {\n UID: this._formData.UID,\n Values: this._data\n };\n }\n\n /**\n * updates form field(s) params\n * @param fields\n */\n updateFields(fields: IPepGenericFormFieldUpdate[]) {\n fields.forEach((field) => {\n const index = this._formData.Fields.findIndex((item) => item.ApiName === field.FieldId);\n if (index >= 0) {\n for (const [key, value] of Object.entries(field.Params)) {\n if (this._genericFormService.hasProperty(this._formData.Fields[index], key)) {\n const item = this._formData.Fields[index] as { [k: string]: any };\n item[key] = value;\n }\n }\n }\n });\n this._pepForm.ReloadForm()\n this._pepForm.data = this._formData;\n }\n\n onValueChanged(event: any) {\n const field: IPepGenericFormValueChange = {\n UID: event.id,\n ApiName: event.key,\n Value: event.value\n };\n this.updateFieldValue(field);\n this.valueChange.emit(field);\n }\n\n onfieldClicked(event: any) {\n const field: IPepGenericFormValueChange = {\n UID: event.id,\n ApiName: event.key,\n Value: event.value\n };\n this.updateFieldValue(field);\n this.fieldClick.emit(field);\n }\n\n onFormValidationChanged(event: any) {\n this.formValidationChange.emit(event);\n }\n\n\n}\n","<div *ngIf=\"inline\" class=\"inline-container\" [ngClass]=\"{ 'add-padding': addPadding }\">\n <div *ngIf=\"showTopBar\" class=\"inline-top-bar-container\">\n <ng-container *ngTemplateOutlet=\"topBarTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"formTemplate\"></ng-container>\n</div>\n\n<pep-page-layout *ngIf=\"!inline\" [addPadding]=\"addPadding\">\n <ng-container *ngIf=\"showTopBar\" pep-top-area>\n <ng-container *ngTemplateOutlet=\"topBarTemplate\"></ng-container>\n </ng-container>\n <div pep-main-area class=\"main-area-container\">\n <ng-container *ngTemplateOutlet=\"formTemplate\"></ng-container>\n </div>\n</pep-page-layout>\n\n<ng-template #topBarTemplate>\n <pep-top-bar [inline]=\"inline\"> \n <div header-start-content>\n <ng-content select=\"[left-buttons]\"></ng-content>\n </div>\n <div header-end-content>\n <ng-content select=\"[right-buttons]\"></ng-content>\n </div>\n\n <!-- <div footer-start-content>\n <ng-content select=\"[bottom-left-buttons]\"></ng-content>\n </div>\n <div footer-end-content>\n <ng-content select=\"[bottom-right-buttons]\"></ng-content>\n </div> -->\n </pep-top-bar>\n</ng-template>\n\n<ng-template #formTemplate>\n <div class=\"form-view\">\n <ng-container #pepFormContainer></ng-container>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n//import { MatFormFieldModule } from '@angular/material/form-field';\n//import { MaterialModule } from '@pepperi-addons/ngx-lib/';\n//import { ReactiveFormsModule } from '@angular/forms';\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport { PepFormModule } from '@pepperi-addons/ngx-lib/form';\nimport { PepMenuModule } from '@pepperi-addons/ngx-lib/menu';\nimport { PepPageLayoutModule } from '@pepperi-addons/ngx-lib/page-layout';\nimport { PepTopBarModule } from '@pepperi-addons/ngx-lib/top-bar';\n//import { PepTextboxModule } from '@pepperi-addons/ngx-lib/textbox';\n//import { PepDateModule } from '@pepperi-addons/ngx-lib/date';\n\nimport { PepGenericFormService } from './generic-form.service';\n\nimport { GenericFormComponent } from './generic-form.component';\n\n@NgModule({\n declarations: [\n GenericFormComponent\n ],\n imports: [\n CommonModule, \n\n // MatFormFieldModule,\n // ReactiveFormsModule,\n\n PepNgxLibModule,\n // PepListModule,\n PepFormModule,\n PepMenuModule,\n PepPageLayoutModule,\n PepTopBarModule,\n // PepTextboxModule,\n // PepDateModule\n // PepSearchModule,\n // PepBreadCrumbsModule\n ],\n exports: [\n GenericFormComponent\n ],\n providers: [\n PepGenericFormService\n ]\n})\nexport class PepGenericFormModule { }\n","/*\n* Public API Surface of ngx-composite-lib/generic-form\n*/\nexport * from './generic-form.module';\nexport * from './generic-form.component';\nexport * from './generic-form.model';\nexport * from './generic-form.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|