@pepperi-addons/ngx-composite-lib 0.4.2-beta.9 → 0.4.2-beta.91

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.
Files changed (175) hide show
  1. package/color-settings/color-settings.component.d.ts +3 -2
  2. package/core/common/services/dimx.service.d.ts +4 -0
  3. package/esm2020/color-settings/color-settings.component.mjs +6 -3
  4. package/esm2020/core/common/directives/reset-configuration-field.directive.mjs +5 -4
  5. package/esm2020/core/common/services/dimx.service.mjs +1 -1
  6. package/esm2020/data-view-builder/menu-data-view/menu-data-view.component.mjs +2 -2
  7. package/esm2020/file-status-panel/file-status-panel.module.mjs +23 -3
  8. package/esm2020/flow-picker-button/flow-picker-button.component.mjs +94 -0
  9. package/esm2020/flow-picker-button/flow-picker-button.module.mjs +36 -0
  10. package/esm2020/flow-picker-button/flow-picker-button.service.mjs +21 -0
  11. package/esm2020/flow-picker-button/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs +5 -0
  12. package/esm2020/flow-picker-button/public-api.mjs +6 -0
  13. package/esm2020/generic-list/generic-list.component.mjs +50 -7
  14. package/esm2020/generic-list/generic-list.service.mjs +6 -2
  15. package/esm2020/group-buttons-settings/group-buttons-settings.component.mjs +17 -4
  16. package/esm2020/group-buttons-settings/group-buttons-settings.model.mjs +1 -1
  17. package/esm2020/group-buttons-settings/public-api.mjs +2 -2
  18. package/esm2020/icon-picker/icon-picker.component.mjs +79 -0
  19. package/esm2020/icon-picker/icon-picker.module.mjs +44 -0
  20. package/esm2020/icon-picker/icon-picker.service.mjs +17 -0
  21. package/esm2020/icon-picker/pepperi-addons-ngx-composite-lib-icon-picker.mjs +5 -0
  22. package/esm2020/icon-picker/public-api.mjs +6 -0
  23. package/esm2020/layout-builder/hide-in/hide-in.component.mjs +54 -0
  24. package/esm2020/layout-builder/hide-in/hide-in.module.mjs +81 -0
  25. package/esm2020/layout-builder/layout/layout.component.mjs +204 -0
  26. package/esm2020/layout-builder/layout/layout.module.mjs +54 -0
  27. package/esm2020/layout-builder/layout-builder-editor/layout-builder-editor.component.mjs +25 -0
  28. package/esm2020/layout-builder/layout-builder-editor/layout-builder-editor.module.mjs +45 -0
  29. package/esm2020/layout-builder/layout-builder-internal.service.mjs +628 -0
  30. package/esm2020/layout-builder/layout-builder.component.mjs +201 -0
  31. package/esm2020/layout-builder/layout-builder.model.mjs +2 -0
  32. package/esm2020/layout-builder/layout-builder.module.mjs +143 -0
  33. package/esm2020/layout-builder/layout-builder.service.mjs +36 -0
  34. package/esm2020/layout-builder/main-editor/main-editor.component.mjs +130 -0
  35. package/esm2020/layout-builder/main-editor/main-editor.module.mjs +99 -0
  36. package/esm2020/layout-builder/pepperi-addons-ngx-composite-lib-layout-builder.mjs +5 -0
  37. package/esm2020/layout-builder/public-api.mjs +12 -0
  38. package/esm2020/layout-builder/section/section.component.mjs +350 -0
  39. package/esm2020/layout-builder/section/section.module.mjs +44 -0
  40. package/esm2020/layout-builder/section-block/section-block.component.mjs +113 -0
  41. package/esm2020/layout-builder/section-block/section-block.module.mjs +34 -0
  42. package/esm2020/layout-builder/section-editor/section-editor.component.mjs +192 -0
  43. package/esm2020/layout-builder/section-editor/section-editor.module.mjs +44 -0
  44. package/esm2020/manage-parameters/manage-parameter/manage-parameter.component.mjs +82 -0
  45. package/esm2020/manage-parameters/manage-parameters.component.mjs +153 -0
  46. package/esm2020/manage-parameters/manage-parameters.model.mjs +24 -0
  47. package/esm2020/manage-parameters/manage-parameters.module.mjs +45 -0
  48. package/esm2020/manage-parameters/manage-parameters.service.mjs +142 -0
  49. package/esm2020/manage-parameters/pepperi-addons-ngx-composite-lib-manage-parameters.mjs +5 -0
  50. package/esm2020/manage-parameters/public-api.mjs +8 -0
  51. package/esm2020/rich-text/pepperi-addons-ngx-composite-lib-rich-text.mjs +5 -0
  52. package/esm2020/rich-text/public-api.mjs +6 -0
  53. package/esm2020/rich-text/rich-text.component.mjs +154 -0
  54. package/esm2020/rich-text/rich-text.module.mjs +52 -0
  55. package/esm2020/rich-text/rich-text.service.mjs +21 -0
  56. package/esm2020/shadow-settings/shadow-settings.component.mjs +7 -4
  57. package/esm2020/show-if-badge/pepperi-addons-ngx-composite-lib-show-if-badge.mjs +5 -0
  58. package/esm2020/show-if-badge/public-api.mjs +6 -0
  59. package/esm2020/show-if-badge/show-if-badge.component.mjs +44 -0
  60. package/esm2020/show-if-badge/show-if-badge.module.mjs +50 -0
  61. package/fesm2015/pepperi-addons-ngx-composite-lib-color-settings.mjs +5 -2
  62. package/fesm2015/pepperi-addons-ngx-composite-lib-color-settings.mjs.map +1 -1
  63. package/fesm2015/pepperi-addons-ngx-composite-lib-data-view-builder.mjs +2 -2
  64. package/fesm2015/pepperi-addons-ngx-composite-lib-file-status-panel.mjs +22 -3
  65. package/fesm2015/pepperi-addons-ngx-composite-lib-file-status-panel.mjs.map +1 -1
  66. package/fesm2015/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs +161 -0
  67. package/fesm2015/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs.map +1 -0
  68. package/fesm2015/pepperi-addons-ngx-composite-lib-generic-list.mjs +55 -7
  69. package/fesm2015/pepperi-addons-ngx-composite-lib-generic-list.mjs.map +1 -1
  70. package/fesm2015/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs +17 -4
  71. package/fesm2015/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs.map +1 -1
  72. package/fesm2015/pepperi-addons-ngx-composite-lib-icon-picker.mjs +146 -0
  73. package/fesm2015/pepperi-addons-ngx-composite-lib-icon-picker.mjs.map +1 -0
  74. package/fesm2015/pepperi-addons-ngx-composite-lib-layout-builder.mjs +2344 -0
  75. package/fesm2015/pepperi-addons-ngx-composite-lib-layout-builder.mjs.map +1 -0
  76. package/fesm2015/pepperi-addons-ngx-composite-lib-manage-parameters.mjs +441 -0
  77. package/fesm2015/pepperi-addons-ngx-composite-lib-manage-parameters.mjs.map +1 -0
  78. package/fesm2015/pepperi-addons-ngx-composite-lib-rich-text.mjs +234 -0
  79. package/fesm2015/pepperi-addons-ngx-composite-lib-rich-text.mjs.map +1 -0
  80. package/fesm2015/pepperi-addons-ngx-composite-lib-shadow-settings.mjs +6 -3
  81. package/fesm2015/pepperi-addons-ngx-composite-lib-shadow-settings.mjs.map +1 -1
  82. package/fesm2015/pepperi-addons-ngx-composite-lib-show-if-badge.mjs +100 -0
  83. package/fesm2015/pepperi-addons-ngx-composite-lib-show-if-badge.mjs.map +1 -0
  84. package/fesm2015/pepperi-addons-ngx-composite-lib.mjs +4 -3
  85. package/fesm2015/pepperi-addons-ngx-composite-lib.mjs.map +1 -1
  86. package/fesm2020/pepperi-addons-ngx-composite-lib-color-settings.mjs +5 -2
  87. package/fesm2020/pepperi-addons-ngx-composite-lib-color-settings.mjs.map +1 -1
  88. package/fesm2020/pepperi-addons-ngx-composite-lib-data-view-builder.mjs +2 -2
  89. package/fesm2020/pepperi-addons-ngx-composite-lib-file-status-panel.mjs +22 -3
  90. package/fesm2020/pepperi-addons-ngx-composite-lib-file-status-panel.mjs.map +1 -1
  91. package/fesm2020/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs +155 -0
  92. package/fesm2020/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs.map +1 -0
  93. package/fesm2020/pepperi-addons-ngx-composite-lib-generic-list.mjs +54 -7
  94. package/fesm2020/pepperi-addons-ngx-composite-lib-generic-list.mjs.map +1 -1
  95. package/fesm2020/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs +17 -4
  96. package/fesm2020/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs.map +1 -1
  97. package/fesm2020/pepperi-addons-ngx-composite-lib-icon-picker.mjs +145 -0
  98. package/fesm2020/pepperi-addons-ngx-composite-lib-icon-picker.mjs.map +1 -0
  99. package/fesm2020/pepperi-addons-ngx-composite-lib-layout-builder.mjs +2321 -0
  100. package/fesm2020/pepperi-addons-ngx-composite-lib-layout-builder.mjs.map +1 -0
  101. package/fesm2020/pepperi-addons-ngx-composite-lib-manage-parameters.mjs +438 -0
  102. package/fesm2020/pepperi-addons-ngx-composite-lib-manage-parameters.mjs.map +1 -0
  103. package/fesm2020/pepperi-addons-ngx-composite-lib-rich-text.mjs +230 -0
  104. package/fesm2020/pepperi-addons-ngx-composite-lib-rich-text.mjs.map +1 -0
  105. package/fesm2020/pepperi-addons-ngx-composite-lib-shadow-settings.mjs +6 -3
  106. package/fesm2020/pepperi-addons-ngx-composite-lib-shadow-settings.mjs.map +1 -1
  107. package/fesm2020/pepperi-addons-ngx-composite-lib-show-if-badge.mjs +100 -0
  108. package/fesm2020/pepperi-addons-ngx-composite-lib-show-if-badge.mjs.map +1 -0
  109. package/fesm2020/pepperi-addons-ngx-composite-lib.mjs +4 -3
  110. package/fesm2020/pepperi-addons-ngx-composite-lib.mjs.map +1 -1
  111. package/flow-picker-button/flow-picker-button.component.d.ts +27 -0
  112. package/flow-picker-button/flow-picker-button.module.d.ts +11 -0
  113. package/flow-picker-button/flow-picker-button.service.d.ts +9 -0
  114. package/flow-picker-button/index.d.ts +5 -0
  115. package/flow-picker-button/public-api.d.ts +2 -0
  116. package/generic-list/generic-list.component.d.ts +13 -4
  117. package/generic-list/generic-list.service.d.ts +2 -1
  118. package/group-buttons-settings/group-buttons-settings.component.d.ts +5 -2
  119. package/group-buttons-settings/group-buttons-settings.model.d.ts +1 -1
  120. package/icon-picker/icon-picker.component.d.ts +24 -0
  121. package/icon-picker/icon-picker.module.d.ts +13 -0
  122. package/icon-picker/icon-picker.service.d.ts +8 -0
  123. package/icon-picker/index.d.ts +5 -0
  124. package/icon-picker/public-api.d.ts +2 -0
  125. package/layout-builder/hide-in/hide-in.component.d.ts +25 -0
  126. package/layout-builder/hide-in/hide-in.component.theme.scss +9 -0
  127. package/layout-builder/hide-in/hide-in.module.d.ts +20 -0
  128. package/layout-builder/index.d.ts +5 -0
  129. package/layout-builder/layout/layout.component.d.ts +49 -0
  130. package/layout-builder/layout/layout.module.d.ts +16 -0
  131. package/layout-builder/layout-builder-editor/layout-builder-editor.component.d.ts +12 -0
  132. package/layout-builder/layout-builder-editor/layout-builder-editor.module.d.ts +14 -0
  133. package/layout-builder/layout-builder-internal.service.d.ts +120 -0
  134. package/layout-builder/layout-builder.component.d.ts +51 -0
  135. package/layout-builder/layout-builder.component.theme.scss +57 -0
  136. package/layout-builder/layout-builder.model.d.ts +43 -0
  137. package/layout-builder/layout-builder.module.d.ts +32 -0
  138. package/layout-builder/layout-builder.service.d.ts +15 -0
  139. package/layout-builder/main-editor/main-editor.component.d.ts +46 -0
  140. package/layout-builder/main-editor/main-editor.module.d.ts +27 -0
  141. package/layout-builder/public-api.d.ts +8 -0
  142. package/layout-builder/section/section.component.d.ts +76 -0
  143. package/layout-builder/section/section.component.theme.scss +115 -0
  144. package/layout-builder/section/section.module.d.ts +14 -0
  145. package/layout-builder/section-block/section-block.component.d.ts +38 -0
  146. package/layout-builder/section-block/section-block.component.theme.scss +13 -0
  147. package/layout-builder/section-block/section-block.module.d.ts +11 -0
  148. package/layout-builder/section-editor/section-editor.component.d.ts +53 -0
  149. package/layout-builder/section-editor/section-editor.module.d.ts +14 -0
  150. package/manage-parameters/index.d.ts +5 -0
  151. package/manage-parameters/manage-parameter/manage-parameter.component.d.ts +28 -0
  152. package/manage-parameters/manage-parameters.component.d.ts +33 -0
  153. package/manage-parameters/manage-parameters.model.d.ts +21 -0
  154. package/manage-parameters/manage-parameters.module.d.ts +14 -0
  155. package/manage-parameters/manage-parameters.service.d.ts +16 -0
  156. package/manage-parameters/public-api.d.ts +3 -0
  157. package/package.json +49 -1
  158. package/rich-text/index.d.ts +5 -0
  159. package/rich-text/public-api.d.ts +2 -0
  160. package/rich-text/rich-text.component.d.ts +43 -0
  161. package/rich-text/rich-text.module.d.ts +16 -0
  162. package/rich-text/rich-text.service.d.ts +9 -0
  163. package/shadow-settings/shadow-settings.component.d.ts +2 -1
  164. package/show-if-badge/index.d.ts +5 -0
  165. package/show-if-badge/public-api.d.ts +2 -0
  166. package/show-if-badge/show-if-badge.component.d.ts +20 -0
  167. package/show-if-badge/show-if-badge.module.d.ts +16 -0
  168. package/src/assets/i18n/en.ngx-composite-lib.json +80 -4
  169. package/pepperi-addons-ngx-composite-lib-0.4.2-beta.8.tgz +0 -0
  170. package/src/assets/images/brand-leaf-full@1x.png +0 -0
  171. package/src/assets/images/brand-leaf-full@2x.png +0 -0
  172. package/src/assets/images/brand-leaf-round.png +0 -0
  173. package/src/assets/images/brand-leaf-round@2x.png +0 -0
  174. package/src/assets/images/brand-leaf-skiny@1x.png +0 -0
  175. 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", "unknownCount"], 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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"}