@pepperi-addons/ngx-composite-lib 0.4.2-beta.8 → 0.4.2-beta.80
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/color-settings/color-settings.component.d.ts +3 -2
- package/core/common/services/dimx.service.d.ts +4 -0
- package/esm2020/color-settings/color-settings.component.mjs +6 -3
- package/esm2020/core/common/directives/reset-configuration-field.directive.mjs +5 -4
- package/esm2020/core/common/services/dimx.service.mjs +1 -1
- package/esm2020/file-status-panel/file-status-panel.module.mjs +23 -3
- package/esm2020/flow-picker-button/flow-picker-button.component.mjs +94 -0
- package/esm2020/flow-picker-button/flow-picker-button.module.mjs +36 -0
- package/esm2020/flow-picker-button/flow-picker-button.service.mjs +21 -0
- package/esm2020/flow-picker-button/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs +5 -0
- package/esm2020/flow-picker-button/public-api.mjs +6 -0
- package/esm2020/generic-list/generic-list.component.mjs +55 -7
- package/esm2020/generic-list/generic-list.service.mjs +6 -2
- package/esm2020/group-buttons-settings/group-buttons-settings.component.mjs +17 -4
- package/esm2020/group-buttons-settings/group-buttons-settings.model.mjs +1 -1
- package/esm2020/icon-picker/icon-picker.component.mjs +79 -0
- package/esm2020/icon-picker/icon-picker.module.mjs +44 -0
- package/esm2020/icon-picker/icon-picker.service.mjs +17 -0
- package/esm2020/icon-picker/pepperi-addons-ngx-composite-lib-icon-picker.mjs +5 -0
- package/esm2020/icon-picker/public-api.mjs +6 -0
- package/esm2020/layout-builder/hide-in/hide-in.component.mjs +54 -0
- package/esm2020/layout-builder/hide-in/hide-in.module.mjs +81 -0
- package/esm2020/layout-builder/layout/layout.component.mjs +204 -0
- package/esm2020/layout-builder/layout/layout.module.mjs +54 -0
- package/esm2020/layout-builder/layout-builder-editor/layout-builder-editor.component.mjs +29 -0
- package/esm2020/layout-builder/layout-builder-editor/layout-builder-editor.module.mjs +45 -0
- package/esm2020/layout-builder/layout-builder-internal.service.mjs +628 -0
- package/esm2020/layout-builder/layout-builder.component.mjs +197 -0
- package/esm2020/layout-builder/layout-builder.model.mjs +2 -0
- package/esm2020/layout-builder/layout-builder.module.mjs +143 -0
- package/esm2020/layout-builder/layout-builder.service.mjs +36 -0
- package/esm2020/layout-builder/main-editor/main-editor.component.mjs +130 -0
- package/esm2020/layout-builder/main-editor/main-editor.module.mjs +99 -0
- package/esm2020/layout-builder/pepperi-addons-ngx-composite-lib-layout-builder.mjs +5 -0
- package/esm2020/layout-builder/public-api.mjs +12 -0
- package/esm2020/layout-builder/section/section.component.mjs +296 -0
- package/esm2020/layout-builder/section/section.module.mjs +44 -0
- package/esm2020/layout-builder/section-block/section-block.component.mjs +113 -0
- package/esm2020/layout-builder/section-block/section-block.module.mjs +34 -0
- package/esm2020/layout-builder/section-editor/section-editor.component.mjs +192 -0
- package/esm2020/layout-builder/section-editor/section-editor.module.mjs +44 -0
- package/esm2020/manage-parameters/manage-parameter/manage-parameter.component.mjs +82 -0
- package/esm2020/manage-parameters/manage-parameters.component.mjs +153 -0
- package/esm2020/manage-parameters/manage-parameters.model.mjs +24 -0
- package/esm2020/manage-parameters/manage-parameters.module.mjs +45 -0
- package/esm2020/manage-parameters/manage-parameters.service.mjs +142 -0
- package/esm2020/manage-parameters/pepperi-addons-ngx-composite-lib-manage-parameters.mjs +5 -0
- package/esm2020/manage-parameters/public-api.mjs +8 -0
- package/esm2020/rich-text/pepperi-addons-ngx-composite-lib-rich-text.mjs +5 -0
- package/esm2020/rich-text/public-api.mjs +6 -0
- package/esm2020/rich-text/rich-text.component.mjs +154 -0
- package/esm2020/rich-text/rich-text.module.mjs +52 -0
- package/esm2020/rich-text/rich-text.service.mjs +21 -0
- package/esm2020/shadow-settings/shadow-settings.component.mjs +7 -4
- package/esm2020/show-if-badge/pepperi-addons-ngx-composite-lib-show-if-badge.mjs +5 -0
- package/esm2020/show-if-badge/public-api.mjs +6 -0
- package/esm2020/show-if-badge/show-if-badge.component.mjs +44 -0
- package/esm2020/show-if-badge/show-if-badge.module.mjs +50 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-color-settings.mjs +5 -2
- package/fesm2015/pepperi-addons-ngx-composite-lib-color-settings.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-file-status-panel.mjs +22 -3
- package/fesm2015/pepperi-addons-ngx-composite-lib-file-status-panel.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs +161 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-generic-list.mjs +61 -7
- package/fesm2015/pepperi-addons-ngx-composite-lib-generic-list.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs +16 -3
- package/fesm2015/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-icon-picker.mjs +146 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-icon-picker.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-layout-builder.mjs +2290 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-layout-builder.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-manage-parameters.mjs +441 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-manage-parameters.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-rich-text.mjs +234 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-rich-text.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-shadow-settings.mjs +6 -3
- package/fesm2015/pepperi-addons-ngx-composite-lib-shadow-settings.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-show-if-badge.mjs +100 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-show-if-badge.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib.mjs +4 -3
- package/fesm2015/pepperi-addons-ngx-composite-lib.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-composite-lib-color-settings.mjs +5 -2
- package/fesm2020/pepperi-addons-ngx-composite-lib-color-settings.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-composite-lib-file-status-panel.mjs +22 -3
- package/fesm2020/pepperi-addons-ngx-composite-lib-file-status-panel.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs +155 -0
- package/fesm2020/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-composite-lib-generic-list.mjs +59 -7
- package/fesm2020/pepperi-addons-ngx-composite-lib-generic-list.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs +16 -3
- package/fesm2020/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-composite-lib-icon-picker.mjs +145 -0
- package/fesm2020/pepperi-addons-ngx-composite-lib-icon-picker.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-composite-lib-layout-builder.mjs +2267 -0
- package/fesm2020/pepperi-addons-ngx-composite-lib-layout-builder.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-composite-lib-manage-parameters.mjs +438 -0
- package/fesm2020/pepperi-addons-ngx-composite-lib-manage-parameters.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-composite-lib-rich-text.mjs +230 -0
- package/fesm2020/pepperi-addons-ngx-composite-lib-rich-text.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-composite-lib-shadow-settings.mjs +6 -3
- package/fesm2020/pepperi-addons-ngx-composite-lib-shadow-settings.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-composite-lib-show-if-badge.mjs +100 -0
- package/fesm2020/pepperi-addons-ngx-composite-lib-show-if-badge.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-composite-lib.mjs +4 -3
- package/fesm2020/pepperi-addons-ngx-composite-lib.mjs.map +1 -1
- package/flow-picker-button/flow-picker-button.component.d.ts +27 -0
- package/flow-picker-button/flow-picker-button.module.d.ts +11 -0
- package/flow-picker-button/flow-picker-button.service.d.ts +9 -0
- package/flow-picker-button/index.d.ts +5 -0
- package/flow-picker-button/public-api.d.ts +2 -0
- package/generic-list/generic-list.component.d.ts +15 -5
- package/generic-list/generic-list.service.d.ts +2 -1
- package/group-buttons-settings/group-buttons-settings.component.d.ts +5 -2
- package/group-buttons-settings/group-buttons-settings.model.d.ts +1 -1
- package/icon-picker/icon-picker.component.d.ts +24 -0
- package/icon-picker/icon-picker.module.d.ts +13 -0
- package/icon-picker/icon-picker.service.d.ts +8 -0
- package/icon-picker/index.d.ts +5 -0
- package/icon-picker/public-api.d.ts +2 -0
- package/layout-builder/hide-in/hide-in.component.d.ts +25 -0
- package/layout-builder/hide-in/hide-in.component.theme.scss +9 -0
- package/layout-builder/hide-in/hide-in.module.d.ts +20 -0
- package/layout-builder/index.d.ts +5 -0
- package/layout-builder/layout/layout.component.d.ts +49 -0
- package/layout-builder/layout/layout.module.d.ts +16 -0
- package/layout-builder/layout-builder-editor/layout-builder-editor.component.d.ts +15 -0
- package/layout-builder/layout-builder-editor/layout-builder-editor.module.d.ts +14 -0
- package/layout-builder/layout-builder-internal.service.d.ts +120 -0
- package/layout-builder/layout-builder.component.d.ts +50 -0
- package/layout-builder/layout-builder.component.theme.scss +57 -0
- package/layout-builder/layout-builder.model.d.ts +44 -0
- package/layout-builder/layout-builder.module.d.ts +32 -0
- package/layout-builder/layout-builder.service.d.ts +15 -0
- package/layout-builder/main-editor/main-editor.component.d.ts +46 -0
- package/layout-builder/main-editor/main-editor.module.d.ts +27 -0
- package/layout-builder/public-api.d.ts +8 -0
- package/layout-builder/section/section.component.d.ts +75 -0
- package/layout-builder/section/section.component.theme.scss +115 -0
- package/layout-builder/section/section.module.d.ts +14 -0
- package/layout-builder/section-block/section-block.component.d.ts +38 -0
- package/layout-builder/section-block/section-block.component.theme.scss +13 -0
- package/layout-builder/section-block/section-block.module.d.ts +11 -0
- package/layout-builder/section-editor/section-editor.component.d.ts +53 -0
- package/layout-builder/section-editor/section-editor.module.d.ts +14 -0
- package/manage-parameters/index.d.ts +5 -0
- package/manage-parameters/manage-parameter/manage-parameter.component.d.ts +28 -0
- package/manage-parameters/manage-parameters.component.d.ts +33 -0
- package/manage-parameters/manage-parameters.model.d.ts +21 -0
- package/manage-parameters/manage-parameters.module.d.ts +14 -0
- package/manage-parameters/manage-parameters.service.d.ts +16 -0
- package/manage-parameters/public-api.d.ts +3 -0
- package/package.json +49 -1
- package/rich-text/index.d.ts +5 -0
- package/rich-text/public-api.d.ts +2 -0
- package/rich-text/rich-text.component.d.ts +43 -0
- package/rich-text/rich-text.module.d.ts +16 -0
- package/rich-text/rich-text.service.d.ts +9 -0
- package/shadow-settings/shadow-settings.component.d.ts +2 -1
- package/show-if-badge/index.d.ts +5 -0
- package/show-if-badge/public-api.d.ts +2 -0
- package/show-if-badge/show-if-badge.component.d.ts +20 -0
- package/show-if-badge/show-if-badge.module.d.ts +16 -0
- package/src/assets/i18n/en.ngx-composite-lib.json +77 -4
- package/src/assets/images/brand-leaf-full@1x.png +0 -0
- package/src/assets/images/brand-leaf-full@2x.png +0 -0
- package/src/assets/images/brand-leaf-round.png +0 -0
- package/src/assets/images/brand-leaf-round@2x.png +0 -0
- package/src/assets/images/brand-leaf-skiny@1x.png +0 -0
- package/src/assets/images/brand-leaf-skiny@2x.png +0 -0
|
@@ -0,0 +1,441 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable, Component, Inject, EventEmitter, Input, Output, NgModule } from '@angular/core';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { PepNgxLibModule } from '@pepperi-addons/ngx-lib';
|
|
5
|
+
import { __awaiter } from 'tslib';
|
|
6
|
+
import * as i3 from '@pepperi-addons/ngx-lib/dialog';
|
|
7
|
+
import { PepDialogData, PepDialogModule } from '@pepperi-addons/ngx-lib/dialog';
|
|
8
|
+
import * as i1$1 from '@angular/material/dialog';
|
|
9
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
10
|
+
import { SchemeFieldTypes } from '@pepperi-addons/papi-sdk';
|
|
11
|
+
import * as i1 from '@ngx-translate/core';
|
|
12
|
+
import * as i5 from '@pepperi-addons/ngx-lib/button';
|
|
13
|
+
import { PepButtonModule } from '@pepperi-addons/ngx-lib/button';
|
|
14
|
+
import * as i6 from '@pepperi-addons/ngx-composite-lib/generic-form';
|
|
15
|
+
import { PepGenericFormModule } from '@pepperi-addons/ngx-composite-lib/generic-form';
|
|
16
|
+
import * as i5$1 from '@pepperi-addons/ngx-composite-lib/generic-list';
|
|
17
|
+
import { PepGenericListModule } from '@pepperi-addons/ngx-composite-lib/generic-list';
|
|
18
|
+
|
|
19
|
+
class ManageParametersService {
|
|
20
|
+
constructor(translate) {
|
|
21
|
+
this.translate = translate;
|
|
22
|
+
}
|
|
23
|
+
getAvailableTypes() {
|
|
24
|
+
const types = SchemeFieldTypes.filter(type => ['Array', 'DateTime', 'Resource', 'ContainedResource', 'DynamicResource', 'ContainedDynamicResource', 'MultipleStringValues'].includes(type) === false);
|
|
25
|
+
return types.map(type => {
|
|
26
|
+
return {
|
|
27
|
+
Key: type,
|
|
28
|
+
Value: type
|
|
29
|
+
};
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
convertParamsTypeToDVType(paramType) {
|
|
33
|
+
let res = 'TextBox';
|
|
34
|
+
switch (paramType) {
|
|
35
|
+
case 'Bool': {
|
|
36
|
+
res = 'Boolean';
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
case 'Integer': {
|
|
40
|
+
res = 'NumberInteger';
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
case 'Double': {
|
|
44
|
+
res = 'NumberReal';
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return res;
|
|
49
|
+
}
|
|
50
|
+
getDataViewField(fieldId, type, title, mandatory, readOnly, optionalValues = undefined, additionalProps = undefined, layout = undefined) {
|
|
51
|
+
const res = {
|
|
52
|
+
FieldID: fieldId,
|
|
53
|
+
Type: type,
|
|
54
|
+
Title: title,
|
|
55
|
+
Mandatory: mandatory,
|
|
56
|
+
ReadOnly: readOnly
|
|
57
|
+
};
|
|
58
|
+
if (optionalValues) {
|
|
59
|
+
res['OptionalValues'] = optionalValues;
|
|
60
|
+
}
|
|
61
|
+
if (additionalProps) {
|
|
62
|
+
res['AdditionalProps'] = additionalProps;
|
|
63
|
+
}
|
|
64
|
+
if (layout) {
|
|
65
|
+
res['Layout'] = layout;
|
|
66
|
+
}
|
|
67
|
+
return res;
|
|
68
|
+
}
|
|
69
|
+
getParametersListDataView(parametersColumns, showType, showAccessibility) {
|
|
70
|
+
let fields;
|
|
71
|
+
let columns;
|
|
72
|
+
// If columns are defined, use them. Otherwise, use the default columns.
|
|
73
|
+
if (parametersColumns.length > 0) {
|
|
74
|
+
fields = parametersColumns.map(column => {
|
|
75
|
+
return this.getDataViewField(column.Key, column.Type, column.Title, false, true, [], {});
|
|
76
|
+
});
|
|
77
|
+
columns = parametersColumns.map(column => {
|
|
78
|
+
return { Width: column.Width };
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
// Add Key and Description fields.
|
|
83
|
+
fields = [
|
|
84
|
+
this.getDataViewField('Key', 'Link', this.translate.instant('MANAGE_PARAMETERS.KEY_TITLE'), false, true),
|
|
85
|
+
this.getDataViewField('Description', 'TextBox', this.translate.instant('MANAGE_PARAMETERS.DESCRIPTION_TITLE'), false, true),
|
|
86
|
+
];
|
|
87
|
+
// Add Type field only if showType is true.
|
|
88
|
+
if (showType) {
|
|
89
|
+
fields.push(this.getDataViewField('Type', 'TextBox', this.translate.instant('MANAGE_PARAMETERS.TYPE_TITLE'), false, true));
|
|
90
|
+
}
|
|
91
|
+
// Add DefaultValue field.
|
|
92
|
+
fields.push(this.getDataViewField('DefaultValue', 'TextBox', this.translate.instant('MANAGE_PARAMETERS.DEFAULT_VALUE_TITLE'), false, true));
|
|
93
|
+
// Add Internal field.
|
|
94
|
+
if (showAccessibility) {
|
|
95
|
+
fields.push(this.getDataViewField('Internal', 'Boolean', this.translate.instant('MANAGE_PARAMETERS.INTERNAL_TITLE'), false, true));
|
|
96
|
+
}
|
|
97
|
+
columns = fields.map(field => {
|
|
98
|
+
return { Width: 100 / fields.length };
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
return {
|
|
102
|
+
Context: {
|
|
103
|
+
Name: '',
|
|
104
|
+
Profile: { InternalID: 0 },
|
|
105
|
+
ScreenSize: 'Landscape'
|
|
106
|
+
},
|
|
107
|
+
Type: 'Grid',
|
|
108
|
+
Title: '',
|
|
109
|
+
Fields: fields,
|
|
110
|
+
Columns: columns,
|
|
111
|
+
FrozenColumnsCount: 0,
|
|
112
|
+
MinimumColumnWidth: 0
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
getParameterFormDataView(formMode, paramType, showType, showAccessibility) {
|
|
116
|
+
const fieldTypes = this.getAvailableTypes();
|
|
117
|
+
const noEmptyOption = { emptyOption: false };
|
|
118
|
+
// Add Key and Description fields.
|
|
119
|
+
const fields = [
|
|
120
|
+
this.getDataViewField('Key', 'TextBox', this.translate.instant('MANAGE_PARAMETERS.KEY_TITLE'), formMode === 'add', formMode != 'add', [], { regex: '^([a-zA-Z0-9-_])*$', regexError: this.translate.instant('MANAGE_PARAMETERS.KEY_REGEX_ERROR') }),
|
|
121
|
+
this.getDataViewField('Description', 'TextArea', this.translate.instant('MANAGE_PARAMETERS.DESCRIPTION_TITLE'), false, false, [], {}, { Size: { Width: 1, Height: 2 } })
|
|
122
|
+
];
|
|
123
|
+
// Add Type field only if showType is true.
|
|
124
|
+
if (showType) {
|
|
125
|
+
this.getDataViewField('Type', 'ComboBox', this.translate.instant('MANAGE_PARAMETERS.TYPE_TITLE'), false, formMode != 'add', fieldTypes, noEmptyOption);
|
|
126
|
+
}
|
|
127
|
+
// Add DefaultValue field.
|
|
128
|
+
fields.push(this.getDataViewField('DefaultValue', this.convertParamsTypeToDVType(paramType), this.translate.instant('MANAGE_PARAMETERS.DEFAULT_VALUE_TITLE'), false, false, [], {}));
|
|
129
|
+
// Add Internal and Accessibility_Description fields.
|
|
130
|
+
if (showAccessibility) {
|
|
131
|
+
const accessibilityDescAdditionalProps = { renderTitle: false, renderEnlargeButton: false };
|
|
132
|
+
const accessibilityDescLayout = { Size: { Height: 0, Width: 1 } };
|
|
133
|
+
fields.push(this.getDataViewField('Accessibility_Description', 'RichTextHTML', this.translate.instant('MANAGE_PARAMETERS.INTERNAL_DESCRIPTION'), false, true, [], accessibilityDescAdditionalProps, accessibilityDescLayout));
|
|
134
|
+
const accessibilityOptionalValues = [{ Key: 'Internal', Value: 'Internal' }, { Key: 'External', Value: 'External' }];
|
|
135
|
+
fields.push(this.getDataViewField('Accessibility', 'ComboBox', this.translate.instant('MANAGE_PARAMETERS.ACCESSIBILITY_TITLE'), false, false, accessibilityOptionalValues, noEmptyOption));
|
|
136
|
+
}
|
|
137
|
+
return {
|
|
138
|
+
Type: 'Form',
|
|
139
|
+
Fields: fields,
|
|
140
|
+
Context: {
|
|
141
|
+
Name: '',
|
|
142
|
+
Profile: {},
|
|
143
|
+
ScreenSize: 'Tablet'
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
ManageParametersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ManageParametersService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
149
|
+
ManageParametersService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ManageParametersService, providedIn: 'root' });
|
|
150
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ManageParametersService, decorators: [{
|
|
151
|
+
type: Injectable,
|
|
152
|
+
args: [{
|
|
153
|
+
providedIn: 'root'
|
|
154
|
+
}]
|
|
155
|
+
}], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
|
|
156
|
+
|
|
157
|
+
class ManageParameterComponent {
|
|
158
|
+
constructor(dialogRef, manageParametersService, translate, incoming) {
|
|
159
|
+
this.dialogRef = dialogRef;
|
|
160
|
+
this.manageParametersService = manageParametersService;
|
|
161
|
+
this.translate = translate;
|
|
162
|
+
this.incoming = incoming;
|
|
163
|
+
this.parameter = undefined;
|
|
164
|
+
this.showType = false;
|
|
165
|
+
this.showAccessibility = false;
|
|
166
|
+
this.isValid = true;
|
|
167
|
+
}
|
|
168
|
+
loadDataView(paramType) {
|
|
169
|
+
this.dataView = this.manageParametersService.getParameterFormDataView(this.incoming.Mode, paramType || 'String', this.showType, this.showAccessibility);
|
|
170
|
+
}
|
|
171
|
+
ngOnInit() {
|
|
172
|
+
var _a, _b, _c;
|
|
173
|
+
this.parameter = this.getParameter(this.incoming.Parameter);
|
|
174
|
+
this.showType = (_a = this.incoming.ShowType) !== null && _a !== void 0 ? _a : false;
|
|
175
|
+
this.showAccessibility = (_b = this.incoming.ShowAccessibility) !== null && _b !== void 0 ? _b : false;
|
|
176
|
+
this.loadDataView((_c = this.parameter) === null || _c === void 0 ? void 0 : _c.Type);
|
|
177
|
+
}
|
|
178
|
+
saveParameter() {
|
|
179
|
+
// before updating the parameter, remove redundant properties
|
|
180
|
+
if (this.parameter && this.showAccessibility) {
|
|
181
|
+
delete this.parameter['Accessibility'];
|
|
182
|
+
delete this.parameter['Accessibility_Description'];
|
|
183
|
+
}
|
|
184
|
+
this.close(this.parameter);
|
|
185
|
+
}
|
|
186
|
+
close(parameter = undefined) {
|
|
187
|
+
this.dialogRef.close(parameter || null);
|
|
188
|
+
}
|
|
189
|
+
getParameter(parameter) {
|
|
190
|
+
const ret = JSON.parse(JSON.stringify(parameter));
|
|
191
|
+
Object.keys(parameter || {}).forEach(prop => {
|
|
192
|
+
if (typeof (parameter[prop]) != 'boolean') {
|
|
193
|
+
// if the value is null/undefined, don't copy it
|
|
194
|
+
if (parameter[prop]) {
|
|
195
|
+
ret[prop] = parameter[prop].toString();
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
else if (prop === 'Internal' && this.showAccessibility) {
|
|
199
|
+
ret['Accessibility'] = parameter[prop] ? 'Internal' : 'External';
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
ret[prop] = parameter[prop];
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
if (this.showAccessibility) {
|
|
206
|
+
ret['Accessibility_Description'] = this.translate.instant('MANAGE_PARAMETERS.INTERNAL_DESCRIPTION');
|
|
207
|
+
}
|
|
208
|
+
return ret;
|
|
209
|
+
}
|
|
210
|
+
onValueChanged(event) {
|
|
211
|
+
if (event.ApiName === 'Type' && this.showType) {
|
|
212
|
+
this.loadDataView(event.Value);
|
|
213
|
+
}
|
|
214
|
+
else if (event.ApiName === 'Accessibility' && this.showAccessibility) {
|
|
215
|
+
if (this.parameter) {
|
|
216
|
+
this.parameter['Internal'] = event.Value === 'Internal';
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
ManageParameterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ManageParameterComponent, deps: [{ token: i1$1.MatDialogRef }, { token: ManageParametersService }, { token: i1.TranslateService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
222
|
+
ManageParameterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: ManageParameterComponent, selector: "manage-parameter", ngImport: i0, template: "<pep-dialog [title]=\"(incoming.Mode === 'edit' ? 'MANAGE_PARAMETERS.EDIT_FORM_TITLE' : 'MANAGE_PARAMETERS.ADD_FORM_TITLE') | translate\">\n <ng-container pep-dialog-content>\n <pep-generic-form #addForm [dataSource]=\"parameter\" [dataView]=\"dataView\" (formValidationChange)=\"isValid = $event\" (valueChange)=\"onValueChanged($event)\">\n\n </pep-generic-form>\n </ng-container>\n <ng-container pep-dialog-actions>\n <div class=\"pep-spacing-element-negative\" style=\"display: flex;\"> \n <pep-button \n class=\"pep-spacing-element\"\n [sizeType]=\"'md'\" \n [value]=\"'Cancel' | translate\" \n [styleType]=\"'weak'\" \n (buttonClick)=\"close()\"\n ></pep-button>\n <pep-button \n class=\"pep-spacing-element\"\n [sizeType]=\"'md'\" \n [value]=\"(incoming.Mode === 'edit' ? 'Update' : 'Save') | translate\"\n [styleType]=\"'strong'\" \n (buttonClick)=\"saveParameter()\"\n [disabled]=\"!isValid\"\n ></pep-button>\n </div>\n </ng-container>\n</pep-dialog>", styles: [""], dependencies: [{ kind: "component", type: i3.PepDialogComponent, selector: "pep-dialog", inputs: ["title", "showClose", "showHeader", "showFooter"], outputs: ["close"] }, { kind: "component", type: i5.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i6.GenericFormComponent, selector: "pep-generic-form", inputs: ["dataSource", "dataView", "isLocked", "inline", "showTopBar", "addPadding"], outputs: ["valueChange", "fieldClick", "formValidationChange"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
|
|
223
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ManageParameterComponent, decorators: [{
|
|
224
|
+
type: Component,
|
|
225
|
+
args: [{ selector: 'manage-parameter', template: "<pep-dialog [title]=\"(incoming.Mode === 'edit' ? 'MANAGE_PARAMETERS.EDIT_FORM_TITLE' : 'MANAGE_PARAMETERS.ADD_FORM_TITLE') | translate\">\n <ng-container pep-dialog-content>\n <pep-generic-form #addForm [dataSource]=\"parameter\" [dataView]=\"dataView\" (formValidationChange)=\"isValid = $event\" (valueChange)=\"onValueChanged($event)\">\n\n </pep-generic-form>\n </ng-container>\n <ng-container pep-dialog-actions>\n <div class=\"pep-spacing-element-negative\" style=\"display: flex;\"> \n <pep-button \n class=\"pep-spacing-element\"\n [sizeType]=\"'md'\" \n [value]=\"'Cancel' | translate\" \n [styleType]=\"'weak'\" \n (buttonClick)=\"close()\"\n ></pep-button>\n <pep-button \n class=\"pep-spacing-element\"\n [sizeType]=\"'md'\" \n [value]=\"(incoming.Mode === 'edit' ? 'Update' : 'Save') | translate\"\n [styleType]=\"'strong'\" \n (buttonClick)=\"saveParameter()\"\n [disabled]=\"!isValid\"\n ></pep-button>\n </div>\n </ng-container>\n</pep-dialog>" }]
|
|
226
|
+
}], ctorParameters: function () {
|
|
227
|
+
return [{ type: i1$1.MatDialogRef }, { type: ManageParametersService }, { type: i1.TranslateService }, { type: undefined, decorators: [{
|
|
228
|
+
type: Inject,
|
|
229
|
+
args: [MAT_DIALOG_DATA]
|
|
230
|
+
}] }];
|
|
231
|
+
} });
|
|
232
|
+
|
|
233
|
+
class ManageParametersComponent {
|
|
234
|
+
constructor(translate, dataViewService, dialogService) {
|
|
235
|
+
this.translate = translate;
|
|
236
|
+
this.dataViewService = dataViewService;
|
|
237
|
+
this.dialogService = dialogService;
|
|
238
|
+
this.showType = false;
|
|
239
|
+
this.showAccessibility = false;
|
|
240
|
+
// If columns are not defined, the default columns will be used (default is with no Internal - Accessibility).
|
|
241
|
+
this.parametersColumns = [];
|
|
242
|
+
this.parameters = [];
|
|
243
|
+
this.parametersTitle = '';
|
|
244
|
+
this.parametersChange = new EventEmitter();
|
|
245
|
+
this.listMessages = {};
|
|
246
|
+
this.actions = {
|
|
247
|
+
get: (data) => __awaiter(this, void 0, void 0, function* () {
|
|
248
|
+
const actions = [];
|
|
249
|
+
if (data && data.rows.length == 1) {
|
|
250
|
+
actions.push({
|
|
251
|
+
title: this.translate.instant('Edit'),
|
|
252
|
+
handler: (objs) => __awaiter(this, void 0, void 0, function* () {
|
|
253
|
+
this.openCreateParamForm('edit', objs.rows[0]);
|
|
254
|
+
})
|
|
255
|
+
});
|
|
256
|
+
actions.push({
|
|
257
|
+
title: this.translate.instant('Delete'),
|
|
258
|
+
handler: (objs) => __awaiter(this, void 0, void 0, function* () {
|
|
259
|
+
this.showDeleteDialog(objs.rows[0]);
|
|
260
|
+
})
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
return actions;
|
|
264
|
+
})
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
notifyParametersChange() {
|
|
268
|
+
this.parametersChange.emit(this.parameters);
|
|
269
|
+
this.dataSource = this.getDataSource();
|
|
270
|
+
}
|
|
271
|
+
getDataSource() {
|
|
272
|
+
return {
|
|
273
|
+
init: (params) => __awaiter(this, void 0, void 0, function* () {
|
|
274
|
+
const listDataView = this.dataViewService.getParametersListDataView(this.parametersColumns, this.showType, this.showAccessibility);
|
|
275
|
+
console.log('data view:', listDataView);
|
|
276
|
+
return {
|
|
277
|
+
dataView: listDataView,
|
|
278
|
+
totalCount: this.parameters.length,
|
|
279
|
+
items: this.parameters
|
|
280
|
+
};
|
|
281
|
+
}),
|
|
282
|
+
inputs: {
|
|
283
|
+
pager: {
|
|
284
|
+
type: 'scroll'
|
|
285
|
+
},
|
|
286
|
+
selectionType: 'single',
|
|
287
|
+
emptyState: {
|
|
288
|
+
show: true,
|
|
289
|
+
title: this.listMessages['MANAGE_PARAMETERS.EMPTY_STATE_TITLE'],
|
|
290
|
+
description: this.listMessages['MANAGE_PARAMETERS.EMPTY_STATE_DESCRIPTION'],
|
|
291
|
+
}
|
|
292
|
+
},
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
ngOnInit() {
|
|
296
|
+
this.translate.get(['MANAGE_PARAMETERS.EMPTY_STATE_TITLE', 'MANAGE_PARAMETERS.EMPTY_STATE_DESCRIPTION']).subscribe(translations => {
|
|
297
|
+
this.listMessages = translations;
|
|
298
|
+
this.dataSource = this.getDataSource();
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
onFieldClick(event) {
|
|
302
|
+
this.openCreateParamForm('edit', event.value);
|
|
303
|
+
}
|
|
304
|
+
openCreateParamForm(formMode, paramName = '') {
|
|
305
|
+
const paramItem = this.parameters.find(x => x.Key === paramName);
|
|
306
|
+
const defaultParam = {
|
|
307
|
+
DefaultValue: '',
|
|
308
|
+
Key: '',
|
|
309
|
+
Type: 'String',
|
|
310
|
+
Description: ''
|
|
311
|
+
};
|
|
312
|
+
// Add Accessibility field only if showAccessibility is true.
|
|
313
|
+
if (this.showAccessibility) {
|
|
314
|
+
defaultParam['Internal'] = false;
|
|
315
|
+
}
|
|
316
|
+
const parameter = Object.assign(Object.assign({}, defaultParam), paramItem);
|
|
317
|
+
const formData = {
|
|
318
|
+
Parameter: parameter,
|
|
319
|
+
Mode: formMode,
|
|
320
|
+
ShowType: this.showType,
|
|
321
|
+
ShowAccessibility: this.showAccessibility
|
|
322
|
+
};
|
|
323
|
+
const config = this.dialogService.getDialogConfig({}, 'large');
|
|
324
|
+
config.data = new PepDialogData({
|
|
325
|
+
content: ManageParameterComponent
|
|
326
|
+
});
|
|
327
|
+
this.dialogService.openDialog(ManageParameterComponent, formData, config).afterClosed().subscribe((value) => {
|
|
328
|
+
if (value) {
|
|
329
|
+
const index = this.parameters.findIndex(param => param.Key === value.Key);
|
|
330
|
+
// if the param doesn't exist, push to the end of the array, otherwise edit existing
|
|
331
|
+
if (index < 0) {
|
|
332
|
+
this.parameters.push(value);
|
|
333
|
+
}
|
|
334
|
+
else {
|
|
335
|
+
this.parameters.splice(index, 1, value);
|
|
336
|
+
}
|
|
337
|
+
this.notifyParametersChange();
|
|
338
|
+
}
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
showDeleteDialog(paramName) {
|
|
342
|
+
const dataMsg = new PepDialogData({
|
|
343
|
+
title: this.translate.instant('MANAGE_PARAMETERS.DELETE_DIALOG_TITLE', { param_name: paramName }),
|
|
344
|
+
actionsType: 'cancel-delete',
|
|
345
|
+
content: this.translate.instant('MANAGE_PARAMETERS.DELETE_DIALOG_CONTENT')
|
|
346
|
+
});
|
|
347
|
+
this.dialogService.openDefaultDialog(dataMsg).afterClosed().subscribe((isDeletePressed) => __awaiter(this, void 0, void 0, function* () {
|
|
348
|
+
if (isDeletePressed) {
|
|
349
|
+
const index = this.parameters.findIndex(x => x.Key === paramName);
|
|
350
|
+
if (index > -1) {
|
|
351
|
+
this.parameters.splice(index, 1);
|
|
352
|
+
this.notifyParametersChange();
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}));
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
ManageParametersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ManageParametersComponent, deps: [{ token: i1.TranslateService }, { token: ManageParametersService }, { token: i3.PepDialogService }], target: i0.ɵɵFactoryTarget.Component });
|
|
359
|
+
ManageParametersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: ManageParametersComponent, selector: "pep-manage-parameters", inputs: { showType: "showType", showAccessibility: "showAccessibility", parametersColumns: "parametersColumns", parameters: "parameters", parametersTitle: "parametersTitle" }, outputs: { parametersChange: "parametersChange" }, ngImport: i0, template: "<pep-generic-list class=\"generic-list\"\n [title]=\"parametersTitle || ('MANAGE_PARAMETERS.TITLE' | translate)\"\n [showTopBar]=\"true\" \n [dataSource]=\"dataSource\" \n [inline]=\"true\"\n [actions]=\"actions\"\n [addPadding]=\"false\"\n [uuidMapping]=\"'Key'\"\n (fieldClick)=\"onFieldClick($event)\"\n >\n <ng-container right-buttons>\n <pep-button \n class=\"pep-spacing-element\"\n [sizeType]=\"'sm'\" \n [value]=\"'MANAGE_PARAMETERS.ADD_BUTTON_TITLE' | translate\"\n [styleType]=\"'strong'\" \n (buttonClick)=\"openCreateParamForm('add', '')\"\n ></pep-button>\n </ng-container>\n</pep-generic-list>", styles: [":host .generic-list{height:100%}\n"], dependencies: [{ kind: "component", type: i5.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i5$1.GenericListComponent, selector: "pep-generic-list", inputs: ["dataSource", "actions", "uuidMapping", "disabled", "addPadding", "title", "description", "inline", "showSearch", "noDataFoundMsg", "emptyState", "selectionType", "supportSorting", "supportSortingFields", "separator", "sorting", "cacheSize", "hideSelectAll", "pager", "tableViewType", "zebraStripes", "smartFilter", "showTopBar", "breadCrumbsItems", "selectAll", "scrollPosition"], outputs: ["fieldClick", "valueChange", "breadCrumbItemClick", "startIndexChange", "listLoad"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
|
|
360
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ManageParametersComponent, decorators: [{
|
|
361
|
+
type: Component,
|
|
362
|
+
args: [{ selector: 'pep-manage-parameters', template: "<pep-generic-list class=\"generic-list\"\n [title]=\"parametersTitle || ('MANAGE_PARAMETERS.TITLE' | translate)\"\n [showTopBar]=\"true\" \n [dataSource]=\"dataSource\" \n [inline]=\"true\"\n [actions]=\"actions\"\n [addPadding]=\"false\"\n [uuidMapping]=\"'Key'\"\n (fieldClick)=\"onFieldClick($event)\"\n >\n <ng-container right-buttons>\n <pep-button \n class=\"pep-spacing-element\"\n [sizeType]=\"'sm'\" \n [value]=\"'MANAGE_PARAMETERS.ADD_BUTTON_TITLE' | translate\"\n [styleType]=\"'strong'\" \n (buttonClick)=\"openCreateParamForm('add', '')\"\n ></pep-button>\n </ng-container>\n</pep-generic-list>", styles: [":host .generic-list{height:100%}\n"] }]
|
|
363
|
+
}], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: ManageParametersService }, { type: i3.PepDialogService }]; }, propDecorators: { showType: [{
|
|
364
|
+
type: Input
|
|
365
|
+
}], showAccessibility: [{
|
|
366
|
+
type: Input
|
|
367
|
+
}], parametersColumns: [{
|
|
368
|
+
type: Input
|
|
369
|
+
}], parameters: [{
|
|
370
|
+
type: Input
|
|
371
|
+
}], parametersTitle: [{
|
|
372
|
+
type: Input
|
|
373
|
+
}], parametersChange: [{
|
|
374
|
+
type: Output
|
|
375
|
+
}] } });
|
|
376
|
+
|
|
377
|
+
class PepManageParametersModule {
|
|
378
|
+
}
|
|
379
|
+
PepManageParametersModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepManageParametersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
380
|
+
PepManageParametersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: PepManageParametersModule, declarations: [ManageParametersComponent, ManageParameterComponent], imports: [CommonModule,
|
|
381
|
+
PepNgxLibModule,
|
|
382
|
+
PepDialogModule,
|
|
383
|
+
PepButtonModule,
|
|
384
|
+
PepGenericListModule,
|
|
385
|
+
PepGenericFormModule], exports: [ManageParametersComponent] });
|
|
386
|
+
PepManageParametersModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepManageParametersModule, providers: [ManageParametersService], imports: [CommonModule,
|
|
387
|
+
PepNgxLibModule,
|
|
388
|
+
PepDialogModule,
|
|
389
|
+
PepButtonModule,
|
|
390
|
+
PepGenericListModule,
|
|
391
|
+
PepGenericFormModule] });
|
|
392
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepManageParametersModule, decorators: [{
|
|
393
|
+
type: NgModule,
|
|
394
|
+
args: [{
|
|
395
|
+
declarations: [
|
|
396
|
+
ManageParametersComponent, ManageParameterComponent
|
|
397
|
+
],
|
|
398
|
+
imports: [
|
|
399
|
+
CommonModule,
|
|
400
|
+
PepNgxLibModule,
|
|
401
|
+
PepDialogModule,
|
|
402
|
+
PepButtonModule,
|
|
403
|
+
PepGenericListModule,
|
|
404
|
+
PepGenericFormModule
|
|
405
|
+
],
|
|
406
|
+
providers: [ManageParametersService],
|
|
407
|
+
exports: [ManageParametersComponent],
|
|
408
|
+
}]
|
|
409
|
+
}] });
|
|
410
|
+
|
|
411
|
+
// export interface FlowDraggableItem extends IPepDraggableItem {
|
|
412
|
+
// data: {
|
|
413
|
+
// key: string;
|
|
414
|
+
// addonUUID: string;
|
|
415
|
+
// blockExecutionRelativeURL: string;
|
|
416
|
+
// moduleName: string;
|
|
417
|
+
// componentName: string;
|
|
418
|
+
// }
|
|
419
|
+
// }
|
|
420
|
+
// export interface FlowPickerData {
|
|
421
|
+
// runFlowData?: FlowObject
|
|
422
|
+
// fields?: AddonDataScheme['Fields']
|
|
423
|
+
// }
|
|
424
|
+
// export interface PageTitleButton {
|
|
425
|
+
// Key: string;
|
|
426
|
+
// Title: string;
|
|
427
|
+
// StyleType: PepStyleType;
|
|
428
|
+
// Disabled: boolean
|
|
429
|
+
// }
|
|
430
|
+
// export type PollResultCallback = (status: DebugFlowResult)=> void;
|
|
431
|
+
|
|
432
|
+
/*
|
|
433
|
+
* Public API Surface of ngx-composite-lib/manage-parameters
|
|
434
|
+
*/
|
|
435
|
+
|
|
436
|
+
/**
|
|
437
|
+
* Generated bundle index. Do not edit.
|
|
438
|
+
*/
|
|
439
|
+
|
|
440
|
+
export { ManageParametersComponent, PepManageParametersModule };
|
|
441
|
+
//# sourceMappingURL=pepperi-addons-ngx-composite-lib-manage-parameters.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pepperi-addons-ngx-composite-lib-manage-parameters.mjs","sources":["../../../projects/ngx-composite-lib/manage-parameters/manage-parameters.service.ts","../../../projects/ngx-composite-lib/manage-parameters/manage-parameter/manage-parameter.component.ts","../../../projects/ngx-composite-lib/manage-parameters/manage-parameter/manage-parameter.component.html","../../../projects/ngx-composite-lib/manage-parameters/manage-parameters.component.ts","../../../projects/ngx-composite-lib/manage-parameters/manage-parameters.component.html","../../../projects/ngx-composite-lib/manage-parameters/manage-parameters.module.ts","../../../projects/ngx-composite-lib/manage-parameters/manage-parameters.model.ts","../../../projects/ngx-composite-lib/manage-parameters/public-api.ts","../../../projects/ngx-composite-lib/manage-parameters/pepperi-addons-ngx-composite-lib-manage-parameters.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { IPepGenericFormDataView } from \"@pepperi-addons/ngx-composite-lib/generic-form\";\nimport { KeyValuePair } from \"@pepperi-addons/ngx-lib\";\nimport { DataViewFieldType, GridDataView, SchemeFieldType, SchemeFieldTypes } from \"@pepperi-addons/papi-sdk\";\nimport { IParametersColumn, ParameterFormType } from \"./manage-parameters.model\";\n\n@Injectable({\n providedIn:'root'\n})\nexport class ManageParametersService {\n \n constructor (private translate: TranslateService) {\n\n }\n\n private getAvailableTypes(): KeyValuePair<string>[] {\n const types = SchemeFieldTypes.filter(type => ['Array', 'DateTime', 'Resource', 'ContainedResource', 'DynamicResource', 'ContainedDynamicResource', 'MultipleStringValues'].includes(type) === false);\n return types.map(type => {\n return {\n Key: type,\n Value: type\n }\n })\n }\n\n private convertParamsTypeToDVType(paramType: SchemeFieldType): DataViewFieldType {\n let res: DataViewFieldType = 'TextBox';\n switch (paramType) {\n case 'Bool': {\n res = 'Boolean';\n break;\n }\n case 'Integer': {\n res = 'NumberInteger';\n break;\n }\n case 'Double': {\n res = 'NumberReal';\n break;\n }\n }\n return res;\n }\n\n private getDataViewField(fieldId: string, type: DataViewFieldType, title: string, mandatory: boolean, readOnly: boolean, \n optionalValues: any[] | undefined = undefined, additionalProps: any = undefined, layout: any = undefined): any {\n\n const res: any = {\n FieldID: fieldId,\n Type: type,\n Title: title,\n Mandatory: mandatory,\n ReadOnly: readOnly\n }\n\n if (optionalValues) {\n res['OptionalValues'] = optionalValues;\n }\n\n if (additionalProps) {\n res['AdditionalProps'] = additionalProps;\n }\n\n if (layout) {\n res['Layout'] = layout;\n }\n\n return res;\n }\n\n getParametersListDataView(parametersColumns: IParametersColumn[], showType: boolean, showAccessibility: boolean): GridDataView {\n let fields;\n let columns;\n\n // If columns are defined, use them. Otherwise, use the default columns.\n if (parametersColumns.length > 0) {\n fields = parametersColumns.map(column => {\n return this.getDataViewField(column.Key, column.Type, column.Title, false, true, [], {});\n });\n\n columns = parametersColumns.map(column => {\n return { Width: column.Width }\n });\n } else {\n // Add Key and Description fields.\n fields = [\n this.getDataViewField('Key', 'Link', this.translate.instant('MANAGE_PARAMETERS.KEY_TITLE'), false, true),\n this.getDataViewField('Description', 'TextBox', this.translate.instant('MANAGE_PARAMETERS.DESCRIPTION_TITLE'), false, true),\n ];\n\n // Add Type field only if showType is true.\n if (showType) {\n fields.push(this.getDataViewField('Type', 'TextBox', this.translate.instant('MANAGE_PARAMETERS.TYPE_TITLE'), false, true));\n }\n\n // Add DefaultValue field.\n fields.push(this.getDataViewField('DefaultValue', 'TextBox', this.translate.instant('MANAGE_PARAMETERS.DEFAULT_VALUE_TITLE'), false, true));\n\n // Add Internal field.\n if (showAccessibility) {\n fields.push(this.getDataViewField('Internal', 'Boolean', this.translate.instant('MANAGE_PARAMETERS.INTERNAL_TITLE'), false, true));\n }\n\n columns = fields.map(field => {\n return { Width: 100 / fields.length }\n });\n }\n\n return {\n Context: {\n Name: '',\n Profile: { InternalID: 0 },\n ScreenSize: 'Landscape'\n },\n Type: 'Grid',\n Title: '',\n Fields: fields,\n Columns: columns,\n FrozenColumnsCount: 0,\n MinimumColumnWidth: 0\n }\n }\n\n getParameterFormDataView(formMode: ParameterFormType, paramType: SchemeFieldType, showType: boolean, showAccessibility: boolean): IPepGenericFormDataView {\n const fieldTypes = this.getAvailableTypes();\n const noEmptyOption = { emptyOption: false };\n\n // Add Key and Description fields.\n const fields = [\n this.getDataViewField('Key', 'TextBox', this.translate.instant('MANAGE_PARAMETERS.KEY_TITLE'), formMode === 'add', formMode != 'add', [], \n { regex: '^([a-zA-Z0-9-_])*$', regexError: this.translate.instant('MANAGE_PARAMETERS.KEY_REGEX_ERROR')}\n ),\n this.getDataViewField('Description', 'TextArea', this.translate.instant('MANAGE_PARAMETERS.DESCRIPTION_TITLE'), false, false, [], {}, \n { Size: { Width:1, Height:2 } }\n )\n ];\n\n // Add Type field only if showType is true.\n if (showType) {\n this.getDataViewField('Type', 'ComboBox', this.translate.instant('MANAGE_PARAMETERS.TYPE_TITLE'), false, formMode != 'add', fieldTypes, noEmptyOption);\n }\n \n // Add DefaultValue field.\n fields.push(this.getDataViewField('DefaultValue', this.convertParamsTypeToDVType(paramType), this.translate.instant('MANAGE_PARAMETERS.DEFAULT_VALUE_TITLE'), \n false, false, [], {}))\n \n // Add Internal and Accessibility_Description fields.\n if (showAccessibility) {\n const accessibilityDescAdditionalProps = { renderTitle: false, renderEnlargeButton: false };\n const accessibilityDescLayout = { Size: { Height: 0, Width: 1 } };\n\n fields.push(this.getDataViewField('Accessibility_Description', 'RichTextHTML', this.translate.instant('MANAGE_PARAMETERS.INTERNAL_DESCRIPTION'), \n false, true, [], accessibilityDescAdditionalProps, accessibilityDescLayout)\n );\n \n const accessibilityOptionalValues = [{ Key: 'Internal', Value: 'Internal' }, { Key: 'External', Value: 'External' }];\n fields.push(this.getDataViewField('Accessibility', 'ComboBox', this.translate.instant('MANAGE_PARAMETERS.ACCESSIBILITY_TITLE'), \n false, false, accessibilityOptionalValues, noEmptyOption)\n );\n }\n\n return {\n Type: 'Form',\n Fields: fields,\n Context: {\n Name: '',\n Profile: { },\n ScreenSize: 'Tablet'\n }\n };\n }\n}","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nimport { GenericFormComponent, IPepGenericFormDataView, IPepGenericFormValueChange } from '@pepperi-addons/ngx-composite-lib/generic-form';\nimport { IParamemeter, IParameterFormData } from '../manage-parameters.model';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport { ManageParametersService } from '../manage-parameters.service';\nimport { SchemeFieldType } from '@pepperi-addons/papi-sdk';\n\n@Component({\n selector: 'manage-parameter',\n templateUrl: './manage-parameter.component.html',\n styleUrls: ['./manage-parameter.component.scss']\n})\nexport class ManageParameterComponent implements OnInit {\n\n // @ViewChild('flowsList', {read: GenericFormComponent}) set genericFormSetter(inForm: GenericFormComponent) {\n // if (inForm) {\n // this.form = inForm;\n // }\n // };\n \n form!: GenericFormComponent;\n parameter: IParamemeter | undefined = undefined;\n showType = false;\n showAccessibility = false;\n dataView!: IPepGenericFormDataView;\n isValid = true;\n\n constructor ( private dialogRef: MatDialogRef<ManageParameterComponent>,\n private manageParametersService: ManageParametersService,\n private translate: TranslateService,\n @Inject(MAT_DIALOG_DATA) public incoming: IParameterFormData) {\n\n }\n\n private loadDataView(paramType: SchemeFieldType) {\n this.dataView = this.manageParametersService.getParameterFormDataView(this.incoming.Mode, paramType || 'String', this.showType, this.showAccessibility);\n }\n\n ngOnInit(): void {\n this.parameter = this.getParameter(this.incoming.Parameter);\n this.showType = this.incoming.ShowType ?? false;\n this.showAccessibility = this.incoming.ShowAccessibility ?? false;\n this.loadDataView(this.parameter?.Type);\n }\n\n saveParameter() {\n // before updating the parameter, remove redundant properties\n if (this.parameter && this.showAccessibility) {\n delete this.parameter['Accessibility'];\n delete this.parameter['Accessibility_Description'];\n }\n\n this.close(this.parameter);\n }\n\n close(parameter: IParamemeter | undefined = undefined) {\n this.dialogRef.close(parameter || null);\n }\n\n getParameter(parameter: IParamemeter): IParamemeter {\n const ret: IParamemeter = JSON.parse(JSON.stringify(parameter));\n Object.keys(parameter || {}).forEach(prop => {\n if (typeof(parameter[prop]) != 'boolean') {\n // if the value is null/undefined, don't copy it\n if (parameter[prop]) {\n ret[prop] = parameter[prop].toString();\n }\n } else if (prop === 'Internal' && this.showAccessibility) {\n ret['Accessibility'] = parameter[prop] ? 'Internal' : 'External'\n } else {\n ret[prop] = parameter[prop];\n }\n });\n \n if (this.showAccessibility) {\n ret['Accessibility_Description'] = this.translate.instant('MANAGE_PARAMETERS.INTERNAL_DESCRIPTION');\n }\n\n return ret;\n }\n\n onValueChanged(event: IPepGenericFormValueChange) {\n if (event.ApiName === 'Type' && this.showType) {\n this.loadDataView(event.Value);\n } else if (event.ApiName === 'Accessibility' && this.showAccessibility) {\n if (this.parameter) {\n this.parameter['Internal'] = event.Value === 'Internal';\n }\n }\n }\n\n}","<pep-dialog [title]=\"(incoming.Mode === 'edit' ? 'MANAGE_PARAMETERS.EDIT_FORM_TITLE' : 'MANAGE_PARAMETERS.ADD_FORM_TITLE') | translate\">\n <ng-container pep-dialog-content>\n <pep-generic-form #addForm [dataSource]=\"parameter\" [dataView]=\"dataView\" (formValidationChange)=\"isValid = $event\" (valueChange)=\"onValueChanged($event)\">\n\n </pep-generic-form>\n </ng-container>\n <ng-container pep-dialog-actions>\n <div class=\"pep-spacing-element-negative\" style=\"display: flex;\"> \n <pep-button \n class=\"pep-spacing-element\"\n [sizeType]=\"'md'\" \n [value]=\"'Cancel' | translate\" \n [styleType]=\"'weak'\" \n (buttonClick)=\"close()\"\n ></pep-button>\n <pep-button \n class=\"pep-spacing-element\"\n [sizeType]=\"'md'\" \n [value]=\"(incoming.Mode === 'edit' ? 'Update' : 'Save') | translate\"\n [styleType]=\"'strong'\" \n (buttonClick)=\"saveParameter()\"\n [disabled]=\"!isValid\"\n ></pep-button>\n </div>\n </ng-container>\n</pep-dialog>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { IPepGenericListActions, IPepGenericListDataSource, IPepGenericListParams } from '@pepperi-addons/ngx-composite-lib/generic-list';\nimport { PepDialogData, PepDialogService } from '@pepperi-addons/ngx-lib/dialog';\nimport { PepSelectionData } from '@pepperi-addons/ngx-lib/list';\nimport { ParameterFormType, IParameterFormData, IParamemeter, IParametersColumn } from './manage-parameters.model';\nimport { ManageParameterComponent } from './manage-parameter/manage-parameter.component';\nimport { IPepFieldClickEvent } from '@pepperi-addons/ngx-lib';\nimport { ManageParametersService } from './manage-parameters.service';\n\n@Component({\n selector: 'pep-manage-parameters',\n templateUrl: './manage-parameters.component.html',\n styleUrls: ['./manage-parameters.component.scss']\n})\nexport class ManageParametersComponent implements OnInit {\n\n @Input()\n showType = false;\n\n @Input()\n showAccessibility = false;\n\n // If columns are not defined, the default columns will be used (default is with no Internal - Accessibility).\n @Input()\n parametersColumns: IParametersColumn[] = [];\n\n @Input()\n parameters: IParamemeter[] = [];\n\n @Input()\n parametersTitle = '';\n\n @Output()\n parametersChange = new EventEmitter<IParamemeter[]>();\n \n dataSource!: IPepGenericListDataSource;\n listMessages: { [key: string]: string } = {};\n\n actions: IPepGenericListActions = {\n get: async (data: PepSelectionData) => {\n const actions = [];\n if (data && data.rows.length == 1) {\n actions.push({\n title: this.translate.instant('Edit'),\n handler: async (objs: any) => {\n this.openCreateParamForm('edit', objs.rows[0]);\n }\n });\n actions.push({\n title: this.translate.instant('Delete'),\n handler: async (objs: any) => {\n this.showDeleteDialog(objs.rows[0]);\n }\n })\n }\n return actions;\n }\n }\n\n constructor (private translate: TranslateService,\n private dataViewService: ManageParametersService,\n private dialogService: PepDialogService\n ) { }\n\n private notifyParametersChange() {\n this.parametersChange.emit(this.parameters);\n this.dataSource = this.getDataSource();\n }\n\n private getDataSource(): IPepGenericListDataSource {\n return {\n init: async (params: IPepGenericListParams) => {\n const listDataView = this.dataViewService.getParametersListDataView(this.parametersColumns, this.showType, this.showAccessibility);\n console.log('data view:', listDataView);\n return {\n dataView: listDataView,\n totalCount: this.parameters.length,\n items: this.parameters\n };\n },\n inputs: {\n pager: {\n type: 'scroll'\n },\n selectionType: 'single',\n emptyState: {\n show: true,\n title: this.listMessages['MANAGE_PARAMETERS.EMPTY_STATE_TITLE'],\n description: this.listMessages['MANAGE_PARAMETERS.EMPTY_STATE_DESCRIPTION'],\n }\n },\n } as IPepGenericListDataSource\n }\n\n ngOnInit(): void {\n this.translate.get(['MANAGE_PARAMETERS.EMPTY_STATE_TITLE', 'MANAGE_PARAMETERS.EMPTY_STATE_DESCRIPTION']).subscribe(translations => {\n this.listMessages = translations;\n this.dataSource = this.getDataSource();\n })\n }\n\n onFieldClick(event: IPepFieldClickEvent) {\n this.openCreateParamForm('edit', event.value);\n }\n\n openCreateParamForm(formMode: ParameterFormType, paramName = '') {\n const paramItem = this.parameters.find(x => x.Key === paramName);\n const defaultParam: IParamemeter = {\n DefaultValue: '',\n Key: '',\n Type: 'String',\n Description: ''\n };\n\n // Add Accessibility field only if showAccessibility is true.\n if (this.showAccessibility) {\n defaultParam['Internal'] = false;\n }\n\n const parameter = { ...defaultParam, ...paramItem };\n \n const formData: IParameterFormData = {\n Parameter: parameter,\n Mode: formMode,\n ShowType: this.showType,\n ShowAccessibility: this.showAccessibility\n };\n\n const config = this.dialogService.getDialogConfig({}, 'large');\n config.data = new PepDialogData({\n content: ManageParameterComponent\n })\n \n this.dialogService.openDialog(ManageParameterComponent, formData, config).afterClosed().subscribe((value: IParamemeter) => {\n if (value) {\n const index = this.parameters.findIndex(param => param.Key === value.Key);\n // if the param doesn't exist, push to the end of the array, otherwise edit existing\n if (index < 0) {\n this.parameters.push(value);\n }\n else {\n this.parameters.splice(index, 1, value);\n }\n\n this.notifyParametersChange();\n }\n });\n }\n\n showDeleteDialog(paramName: string) {\n const dataMsg = new PepDialogData({\n title: this.translate.instant('MANAGE_PARAMETERS.DELETE_DIALOG_TITLE', { param_name: paramName }),\n actionsType: 'cancel-delete',\n content: this.translate.instant('MANAGE_PARAMETERS.DELETE_DIALOG_CONTENT')\n });\n\n this.dialogService.openDefaultDialog(dataMsg).afterClosed().subscribe(async (isDeletePressed) => {\n if (isDeletePressed) {\n const index = this.parameters.findIndex(x => x.Key === paramName);\n if (index > -1) {\n this.parameters.splice(index, 1);\n this.notifyParametersChange();\n }\n }\n });\n }\n}\n","<pep-generic-list class=\"generic-list\"\n [title]=\"parametersTitle || ('MANAGE_PARAMETERS.TITLE' | translate)\"\n [showTopBar]=\"true\" \n [dataSource]=\"dataSource\" \n [inline]=\"true\"\n [actions]=\"actions\"\n [addPadding]=\"false\"\n [uuidMapping]=\"'Key'\"\n (fieldClick)=\"onFieldClick($event)\"\n >\n <ng-container right-buttons>\n <pep-button \n class=\"pep-spacing-element\"\n [sizeType]=\"'sm'\" \n [value]=\"'MANAGE_PARAMETERS.ADD_BUTTON_TITLE' | translate\"\n [styleType]=\"'strong'\" \n (buttonClick)=\"openCreateParamForm('add', '')\"\n ></pep-button>\n </ng-container>\n</pep-generic-list>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport { ManageParametersComponent } from './manage-parameters.component';\nimport { ManageParameterComponent } from './manage-parameter/manage-parameter.component';\nimport { PepDialogModule } from '@pepperi-addons/ngx-lib/dialog';\nimport { PepGenericListModule } from '@pepperi-addons/ngx-composite-lib/generic-list';\nimport { PepGenericFormModule } from '@pepperi-addons/ngx-composite-lib/generic-form';\nimport { PepButtonModule } from '@pepperi-addons/ngx-lib/button';\nimport { ManageParametersService } from './manage-parameters.service';\n\n@NgModule({\n declarations: [\n ManageParametersComponent, ManageParameterComponent\n ],\n imports: [\n CommonModule,\n PepNgxLibModule,\n PepDialogModule,\n PepButtonModule,\n PepGenericListModule,\n PepGenericFormModule\n ],\n providers: [ManageParametersService],\n exports: [ManageParametersComponent],\n})\nexport class PepManageParametersModule { }\n","// import { AddonDataScheme, FlowParam, FormDataView, NgComponentRelation } from \"@pepperi-addons/papi-sdk\";\r\n// import { IAddonBlockLoaderDialogOptions } from \"@pepperi-addons/ngx-lib/remote-loader\";\r\n\r\nimport { DataViewFieldType, SchemeFieldType } from \"@pepperi-addons/papi-sdk\";\r\n\r\n// import { DebugFlowResult, FlowObject, LogicBlock } from \"shared\";\r\n// import { IPepDraggableItem } from \"@pepperi-addons/ngx-lib/draggable-items\";\r\n// import { PepStyleType } from \"@pepperi-addons/ngx-lib\";\r\n\r\n// export interface LogicBlockEditorOptions extends IAddonBlockLoaderDialogOptions {\r\n// block: LogicBlock;\r\n// }\r\n\r\n// export interface LogicBlockRelation extends NgComponentRelation {\r\n// BlockExecutionRelativeURL: string;\r\n// }\r\n\r\n// export type ActionType = 'Add' | 'Edit' | 'Delete' | 'Duplicate' | 'Logs' | 'Test';\r\n\r\n// export interface ActionClickedEventData {\r\n// ActionType: ActionType,\r\n// ItemKey?: string\r\n// }\r\n\r\n// export const GL_PAGE_SIZE = 30;\r\n// export const API_PAGE_SIZE = 100;\r\n// export const SELECTION_FIELD_PREFIX = 'ValueSelectionType_';\r\n\r\n// export const SECOND = 1000;\r\n// export const MINUTE = 60 * SECOND;\r\n\r\nexport type ParameterFormType = 'add' | 'edit';\r\n\r\nexport interface IParametersColumn {\r\n Key: string; // This is the property name of the parameter.\r\n Title: string;\r\n Type: DataViewFieldType,\r\n Width: number;\r\n}\r\n\r\nexport interface IParamemeter {\r\n Key: string;\r\n Type: SchemeFieldType;\r\n Description?: string;\r\n DefaultValue: any;\r\n [key: string]: any;\r\n}\r\n\r\nexport interface IParameterFormData {\r\n Mode: ParameterFormType;\r\n Parameter: IParamemeter;\r\n ShowType?: boolean;\r\n ShowAccessibility?: boolean;\r\n}\r\n\r\n// export interface FlowDraggableItem extends IPepDraggableItem {\r\n// data: {\r\n// key: string;\r\n// addonUUID: string;\r\n// blockExecutionRelativeURL: string;\r\n// moduleName: string;\r\n// componentName: string;\r\n// }\r\n// }\r\n\r\n// export interface FlowPickerData {\r\n// runFlowData?: FlowObject\r\n// fields?: AddonDataScheme['Fields']\r\n// }\r\n\r\n// export interface PageTitleButton {\r\n// Key: string;\r\n// Title: string;\r\n// StyleType: PepStyleType;\r\n// Disabled: boolean\r\n// }\r\n\r\n// export type PollResultCallback = (status: DebugFlowResult)=> void;","/*\n * Public API Surface of ngx-composite-lib/manage-parameters\n */\nexport * from './manage-parameters.module';\nexport * from './manage-parameters.component';\n// export * from './manage-parameter/manage-parameter.component';\nexport * from './manage-parameters.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i4","i3","i2.ManageParametersService","i5"],"mappings":"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"}
|