@pepperi-addons/ngx-composite-lib 0.4.2-beta.96 → 0.5.0-ng15.1

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 (200) hide show
  1. package/color-settings/color-settings.component.d.ts +1 -1
  2. package/core/common/directives/reset-configuration-field.directive.d.ts +1 -1
  3. package/data-view-builder/data-view-builder.component.d.ts +1 -1
  4. package/data-view-builder/data-view-builder.model.d.ts +1 -1
  5. package/data-view-builder/menu-data-view/menu-data-view.component.d.ts +1 -1
  6. package/esm2020/color-settings/color-settings.component.mjs +13 -13
  7. package/esm2020/color-settings/color-settings.module.mjs +5 -5
  8. package/esm2020/core/common/directives/reset-configuration-field.directive.mjs +24 -24
  9. package/esm2020/core/common/services/dimx.service.mjs +4 -4
  10. package/esm2020/core/common/services/utilities.service.mjs +4 -4
  11. package/esm2020/data-view-builder/data-view-builder.component.mjs +19 -19
  12. package/esm2020/data-view-builder/data-view-builder.module.mjs +5 -5
  13. package/esm2020/data-view-builder/data-view-builder.service.mjs +7 -7
  14. package/esm2020/data-view-builder/menu-data-view/menu-data-view.component.mjs +4 -4
  15. package/esm2020/file-status-panel/file-status-panel.component.mjs +4 -4
  16. package/esm2020/file-status-panel/file-status-panel.module.mjs +5 -5
  17. package/esm2020/flow-picker-button/flow-picker-button.component.mjs +16 -16
  18. package/esm2020/flow-picker-button/flow-picker-button.module.mjs +5 -5
  19. package/esm2020/flow-picker-button/flow-picker-button.service.mjs +4 -4
  20. package/esm2020/generic-fields-builder/field-container/field-container.component.mjs +18 -0
  21. package/esm2020/generic-fields-builder/generic-fields-builder.component.mjs +119 -0
  22. package/esm2020/generic-fields-builder/generic-fields-builder.module.mjs +82 -0
  23. package/esm2020/generic-fields-builder/generic-fields-builder.service.mjs +39 -0
  24. package/esm2020/generic-fields-builder/pepperi-addons-ngx-composite-lib-generic-fields-builder.mjs +5 -0
  25. package/esm2020/generic-fields-builder/public-api.mjs +6 -0
  26. package/esm2020/generic-form/generic-form.component.mjs +13 -13
  27. package/esm2020/generic-form/generic-form.module.mjs +5 -5
  28. package/esm2020/generic-form/generic-form.service.mjs +4 -4
  29. package/esm2020/generic-list/generic-list.component.mjs +102 -49
  30. package/esm2020/generic-list/generic-list.module.mjs +18 -10
  31. package/esm2020/generic-list/generic-list.service.mjs +30 -5
  32. package/esm2020/group-buttons-settings/group-buttons-settings.component.mjs +15 -15
  33. package/esm2020/group-buttons-settings/group-buttons-settings.module.mjs +5 -5
  34. package/esm2020/icon-picker/icon-picker.component.mjs +4 -4
  35. package/esm2020/icon-picker/icon-picker.module.mjs +5 -5
  36. package/esm2020/icon-picker/icon-picker.service.mjs +4 -4
  37. package/esm2020/layout-builder/hide-in/hide-in.component.mjs +5 -5
  38. package/esm2020/layout-builder/hide-in/hide-in.module.mjs +5 -5
  39. package/esm2020/layout-builder/layout/layout.component.mjs +67 -42
  40. package/esm2020/layout-builder/layout/layout.module.mjs +7 -5
  41. package/esm2020/layout-builder/layout-builder-editor/layout-builder-editor.component.mjs +4 -4
  42. package/esm2020/layout-builder/layout-builder-editor/layout-builder-editor.module.mjs +5 -5
  43. package/esm2020/layout-builder/layout-builder-internal.service.mjs +77 -77
  44. package/esm2020/layout-builder/layout-builder.component.mjs +134 -103
  45. package/esm2020/layout-builder/layout-builder.model.mjs +1 -1
  46. package/esm2020/layout-builder/layout-builder.module.mjs +5 -5
  47. package/esm2020/layout-builder/layout-builder.service.mjs +31 -18
  48. package/esm2020/layout-builder/main-editor/main-editor.component.mjs +47 -36
  49. package/esm2020/layout-builder/main-editor/main-editor.module.mjs +5 -5
  50. package/esm2020/layout-builder/section/section.component.mjs +60 -35
  51. package/esm2020/layout-builder/section/section.module.mjs +5 -5
  52. package/esm2020/layout-builder/section-block/section-block.component.mjs +19 -19
  53. package/esm2020/layout-builder/section-block/section-block.module.mjs +5 -5
  54. package/esm2020/layout-builder/section-editor/section-editor.component.mjs +31 -22
  55. package/esm2020/layout-builder/section-editor/section-editor.module.mjs +10 -6
  56. package/esm2020/manage-parameters/manage-parameter/manage-parameter.component.mjs +10 -6
  57. package/esm2020/manage-parameters/manage-parameters.component.mjs +55 -19
  58. package/esm2020/manage-parameters/manage-parameters.model.mjs +1 -1
  59. package/esm2020/manage-parameters/manage-parameters.module.mjs +5 -5
  60. package/esm2020/manage-parameters/manage-parameters.service.mjs +14 -7
  61. package/esm2020/mapping-parameters/mapping-parameters.component.mjs +44 -0
  62. package/esm2020/mapping-parameters/mapping-parameters.model.mjs +6 -0
  63. package/esm2020/mapping-parameters/mapping-parameters.module.mjs +59 -0
  64. package/esm2020/mapping-parameters/mapping-parameters.service.mjs +37 -0
  65. package/esm2020/mapping-parameters/param-map/param-map.component.mjs +73 -0
  66. package/esm2020/mapping-parameters/pepperi-addons-ngx-composite-lib-mapping-parameters.mjs +5 -0
  67. package/esm2020/mapping-parameters/public-api.mjs +4 -0
  68. package/esm2020/ngx-composite-lib.module.mjs +5 -5
  69. package/esm2020/padding-settings/padding-settings.component.mjs +90 -0
  70. package/esm2020/padding-settings/padding-settings.model.mjs +7 -0
  71. package/esm2020/padding-settings/padding-settings.module.mjs +46 -0
  72. package/esm2020/padding-settings/pepperi-addons-ngx-composite-lib-padding-settings.mjs +5 -0
  73. package/esm2020/padding-settings/public-api.mjs +7 -0
  74. package/esm2020/rich-text/rich-text.component.mjs +12 -12
  75. package/esm2020/rich-text/rich-text.module.mjs +5 -5
  76. package/esm2020/rich-text/rich-text.service.mjs +4 -4
  77. package/esm2020/shadow-settings/shadow-settings.component.mjs +12 -12
  78. package/esm2020/shadow-settings/shadow-settings.module.mjs +5 -5
  79. package/esm2020/show-if-badge/show-if-badge.component.mjs +5 -5
  80. package/esm2020/show-if-badge/show-if-badge.module.mjs +5 -5
  81. package/fesm2015/pepperi-addons-ngx-composite-lib-color-settings.mjs +16 -16
  82. package/fesm2015/pepperi-addons-ngx-composite-lib-color-settings.mjs.map +1 -1
  83. package/fesm2015/pepperi-addons-ngx-composite-lib-data-view-builder.mjs +31 -31
  84. package/fesm2015/pepperi-addons-ngx-composite-lib-data-view-builder.mjs.map +1 -1
  85. package/fesm2015/pepperi-addons-ngx-composite-lib-file-status-panel.mjs +7 -7
  86. package/fesm2015/pepperi-addons-ngx-composite-lib-file-status-panel.mjs.map +1 -1
  87. package/fesm2015/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs +22 -22
  88. package/fesm2015/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs.map +1 -1
  89. package/fesm2015/pepperi-addons-ngx-composite-lib-generic-fields-builder.mjs +254 -0
  90. package/fesm2015/pepperi-addons-ngx-composite-lib-generic-fields-builder.mjs.map +1 -0
  91. package/fesm2015/pepperi-addons-ngx-composite-lib-generic-form.mjs +19 -19
  92. package/fesm2015/pepperi-addons-ngx-composite-lib-generic-form.mjs.map +1 -1
  93. package/fesm2015/pepperi-addons-ngx-composite-lib-generic-list.mjs +148 -60
  94. package/fesm2015/pepperi-addons-ngx-composite-lib-generic-list.mjs.map +1 -1
  95. package/fesm2015/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs +18 -18
  96. package/fesm2015/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs.map +1 -1
  97. package/fesm2015/pepperi-addons-ngx-composite-lib-icon-picker.mjs +10 -10
  98. package/fesm2015/pepperi-addons-ngx-composite-lib-icon-picker.mjs.map +1 -1
  99. package/fesm2015/pepperi-addons-ngx-composite-lib-layout-builder.mjs +854 -726
  100. package/fesm2015/pepperi-addons-ngx-composite-lib-layout-builder.mjs.map +1 -1
  101. package/fesm2015/pepperi-addons-ngx-composite-lib-manage-parameters.mjs +83 -35
  102. package/fesm2015/pepperi-addons-ngx-composite-lib-manage-parameters.mjs.map +1 -1
  103. package/fesm2015/pepperi-addons-ngx-composite-lib-mapping-parameters.mjs +207 -0
  104. package/fesm2015/pepperi-addons-ngx-composite-lib-mapping-parameters.mjs.map +1 -0
  105. package/fesm2015/pepperi-addons-ngx-composite-lib-padding-settings.mjs +150 -0
  106. package/fesm2015/pepperi-addons-ngx-composite-lib-padding-settings.mjs.map +1 -0
  107. package/fesm2015/pepperi-addons-ngx-composite-lib-rich-text.mjs +18 -18
  108. package/fesm2015/pepperi-addons-ngx-composite-lib-rich-text.mjs.map +1 -1
  109. package/fesm2015/pepperi-addons-ngx-composite-lib-shadow-settings.mjs +15 -15
  110. package/fesm2015/pepperi-addons-ngx-composite-lib-shadow-settings.mjs.map +1 -1
  111. package/fesm2015/pepperi-addons-ngx-composite-lib-show-if-badge.mjs +8 -8
  112. package/fesm2015/pepperi-addons-ngx-composite-lib-show-if-badge.mjs.map +1 -1
  113. package/fesm2015/pepperi-addons-ngx-composite-lib.mjs +33 -33
  114. package/fesm2015/pepperi-addons-ngx-composite-lib.mjs.map +1 -1
  115. package/fesm2020/pepperi-addons-ngx-composite-lib-color-settings.mjs +16 -16
  116. package/fesm2020/pepperi-addons-ngx-composite-lib-color-settings.mjs.map +1 -1
  117. package/fesm2020/pepperi-addons-ngx-composite-lib-data-view-builder.mjs +31 -31
  118. package/fesm2020/pepperi-addons-ngx-composite-lib-data-view-builder.mjs.map +1 -1
  119. package/fesm2020/pepperi-addons-ngx-composite-lib-file-status-panel.mjs +7 -7
  120. package/fesm2020/pepperi-addons-ngx-composite-lib-file-status-panel.mjs.map +1 -1
  121. package/fesm2020/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs +22 -22
  122. package/fesm2020/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs.map +1 -1
  123. package/fesm2020/pepperi-addons-ngx-composite-lib-generic-fields-builder.mjs +254 -0
  124. package/fesm2020/pepperi-addons-ngx-composite-lib-generic-fields-builder.mjs.map +1 -0
  125. package/fesm2020/pepperi-addons-ngx-composite-lib-generic-form.mjs +19 -19
  126. package/fesm2020/pepperi-addons-ngx-composite-lib-generic-form.mjs.map +1 -1
  127. package/fesm2020/pepperi-addons-ngx-composite-lib-generic-list.mjs +146 -60
  128. package/fesm2020/pepperi-addons-ngx-composite-lib-generic-list.mjs.map +1 -1
  129. package/fesm2020/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs +18 -18
  130. package/fesm2020/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs.map +1 -1
  131. package/fesm2020/pepperi-addons-ngx-composite-lib-icon-picker.mjs +10 -10
  132. package/fesm2020/pepperi-addons-ngx-composite-lib-icon-picker.mjs.map +1 -1
  133. package/fesm2020/pepperi-addons-ngx-composite-lib-layout-builder.mjs +845 -728
  134. package/fesm2020/pepperi-addons-ngx-composite-lib-layout-builder.mjs.map +1 -1
  135. package/fesm2020/pepperi-addons-ngx-composite-lib-manage-parameters.mjs +81 -33
  136. package/fesm2020/pepperi-addons-ngx-composite-lib-manage-parameters.mjs.map +1 -1
  137. package/fesm2020/pepperi-addons-ngx-composite-lib-mapping-parameters.mjs +209 -0
  138. package/fesm2020/pepperi-addons-ngx-composite-lib-mapping-parameters.mjs.map +1 -0
  139. package/fesm2020/pepperi-addons-ngx-composite-lib-padding-settings.mjs +150 -0
  140. package/fesm2020/pepperi-addons-ngx-composite-lib-padding-settings.mjs.map +1 -0
  141. package/fesm2020/pepperi-addons-ngx-composite-lib-rich-text.mjs +18 -18
  142. package/fesm2020/pepperi-addons-ngx-composite-lib-rich-text.mjs.map +1 -1
  143. package/fesm2020/pepperi-addons-ngx-composite-lib-shadow-settings.mjs +15 -15
  144. package/fesm2020/pepperi-addons-ngx-composite-lib-shadow-settings.mjs.map +1 -1
  145. package/fesm2020/pepperi-addons-ngx-composite-lib-show-if-badge.mjs +8 -8
  146. package/fesm2020/pepperi-addons-ngx-composite-lib-show-if-badge.mjs.map +1 -1
  147. package/fesm2020/pepperi-addons-ngx-composite-lib.mjs +33 -33
  148. package/fesm2020/pepperi-addons-ngx-composite-lib.mjs.map +1 -1
  149. package/file-status-panel/file-status-panel.component.d.ts +1 -1
  150. package/file-status-panel/file-status-panel.model.d.ts +1 -1
  151. package/flow-picker-button/flow-picker-button.component.d.ts +1 -1
  152. package/generic-fields-builder/field-container/field-container.component.d.ts +10 -0
  153. package/generic-fields-builder/generic-fields-builder.component.d.ts +46 -0
  154. package/generic-fields-builder/generic-fields-builder.module.d.ts +23 -0
  155. package/generic-fields-builder/generic-fields-builder.service.d.ts +14 -0
  156. package/generic-fields-builder/index.d.ts +5 -0
  157. package/generic-fields-builder/public-api.d.ts +2 -0
  158. package/generic-form/generic-form.component.d.ts +1 -1
  159. package/generic-list/generic-list.component.d.ts +25 -9
  160. package/generic-list/generic-list.module.d.ts +13 -11
  161. package/generic-list/generic-list.service.d.ts +3 -1
  162. package/group-buttons-settings/group-buttons-settings.component.d.ts +1 -1
  163. package/group-buttons-settings/group-buttons-settings.model.d.ts +1 -1
  164. package/icon-picker/icon-picker.component.d.ts +1 -1
  165. package/layout-builder/hide-in/hide-in.component.d.ts +1 -1
  166. package/layout-builder/hide-in/hide-in.component.theme.scss +1 -1
  167. package/layout-builder/layout/layout.component.d.ts +12 -8
  168. package/layout-builder/layout-builder-editor/layout-builder-editor.component.d.ts +1 -1
  169. package/layout-builder/layout-builder-internal.service.d.ts +5 -10
  170. package/layout-builder/layout-builder.component.d.ts +11 -4
  171. package/layout-builder/layout-builder.component.theme.scss +1 -1
  172. package/layout-builder/layout-builder.model.d.ts +3 -3
  173. package/layout-builder/layout-builder.service.d.ts +15 -6
  174. package/layout-builder/main-editor/main-editor.component.d.ts +7 -5
  175. package/layout-builder/section/section.component.d.ts +8 -1
  176. package/layout-builder/section-block/section-block.component.d.ts +1 -1
  177. package/layout-builder/section-editor/section-editor.component.d.ts +4 -1
  178. package/layout-builder/section-editor/section-editor.module.d.ts +3 -2
  179. package/manage-parameters/manage-parameter/manage-parameter.component.d.ts +3 -1
  180. package/manage-parameters/manage-parameters.component.d.ts +10 -3
  181. package/manage-parameters/manage-parameters.model.d.ts +4 -1
  182. package/manage-parameters/manage-parameters.service.d.ts +2 -2
  183. package/mapping-parameters/index.d.ts +5 -0
  184. package/mapping-parameters/mapping-parameters.component.d.ts +19 -0
  185. package/mapping-parameters/mapping-parameters.model.d.ts +8 -0
  186. package/mapping-parameters/mapping-parameters.module.d.ts +18 -0
  187. package/mapping-parameters/mapping-parameters.service.d.ts +12 -0
  188. package/mapping-parameters/param-map/param-map.component.d.ts +27 -0
  189. package/mapping-parameters/public-api.d.ts +3 -0
  190. package/package.json +27 -2
  191. package/padding-settings/index.d.ts +5 -0
  192. package/padding-settings/padding-settings.component.d.ts +22 -0
  193. package/padding-settings/padding-settings.model.d.ts +5 -0
  194. package/padding-settings/padding-settings.module.d.ts +14 -0
  195. package/padding-settings/public-api.d.ts +3 -0
  196. package/rich-text/rich-text.component.d.ts +1 -1
  197. package/shadow-settings/shadow-settings.component.d.ts +1 -1
  198. package/shadow-settings/shadow-settings.model.d.ts +1 -1
  199. package/show-if-badge/show-if-badge.component.d.ts +1 -1
  200. package/src/assets/i18n/en.ngx-composite-lib.json +30 -1
@@ -66,7 +66,7 @@ class ManageParametersService {
66
66
  }
67
67
  return res;
68
68
  }
69
- getParametersListDataView(parametersColumns, showType, showAccessibility) {
69
+ getParametersListDataView(parametersColumns, showType, showAccessibility, showPersistency) {
70
70
  let fields;
71
71
  let columns;
72
72
  // If columns are defined, use them. Otherwise, use the default columns.
@@ -82,7 +82,7 @@ class ManageParametersService {
82
82
  // Add Key and Description fields.
83
83
  fields = [
84
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),
85
+ this.getDataViewField('Description', 'TextArea', this.translate.instant('MANAGE_PARAMETERS.DESCRIPTION_TITLE'), false, true),
86
86
  ];
87
87
  // Add Type field only if showType is true.
88
88
  if (showType) {
@@ -94,6 +94,10 @@ class ManageParametersService {
94
94
  if (showAccessibility) {
95
95
  fields.push(this.getDataViewField('Internal', 'Boolean', this.translate.instant('MANAGE_PARAMETERS.INTERNAL_TITLE'), false, true));
96
96
  }
97
+ // Add Internal field.
98
+ if (showPersistency) {
99
+ fields.push(this.getDataViewField('Persistency', 'Boolean', this.translate.instant('MANAGE_PARAMETERS.PERSISTENCY_TITLE'), false, true));
100
+ }
97
101
  columns = fields.map(field => {
98
102
  return { Width: 100 / fields.length };
99
103
  });
@@ -112,7 +116,7 @@ class ManageParametersService {
112
116
  MinimumColumnWidth: 0
113
117
  };
114
118
  }
115
- getParameterFormDataView(formMode, paramType, showType, showAccessibility) {
119
+ getParameterFormDataView(formMode, paramType, showType, showAccessibility, showPersistency) {
116
120
  const fieldTypes = this.getAvailableTypes();
117
121
  const noEmptyOption = { emptyOption: false };
118
122
  // Add Key and Description fields.
@@ -134,6 +138,9 @@ class ManageParametersService {
134
138
  const accessibilityOptionalValues = [{ Key: 'Internal', Value: 'Internal' }, { Key: 'External', Value: 'External' }];
135
139
  fields.push(this.getDataViewField('Accessibility', 'ComboBox', this.translate.instant('MANAGE_PARAMETERS.ACCESSIBILITY_TITLE'), false, false, accessibilityOptionalValues, noEmptyOption));
136
140
  }
141
+ if (showPersistency) {
142
+ fields.push(this.getDataViewField('Persistency', 'Boolean', this.translate.instant('MANAGE_PARAMETERS.PERSISTENCY_TITLE'), false, false));
143
+ }
137
144
  return {
138
145
  Type: 'Form',
139
146
  Fields: fields,
@@ -145,9 +152,9 @@ class ManageParametersService {
145
152
  };
146
153
  }
147
154
  }
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: [{
155
+ ManageParametersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ManageParametersService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
156
+ ManageParametersService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ManageParametersService, providedIn: 'root' });
157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ManageParametersService, decorators: [{
151
158
  type: Injectable,
152
159
  args: [{
153
160
  providedIn: 'root'
@@ -163,17 +170,21 @@ class ManageParameterComponent {
163
170
  this.parameter = undefined;
164
171
  this.showType = false;
165
172
  this.showAccessibility = false;
173
+ this.showPersistency = false;
174
+ this.readonly = false;
166
175
  this.isValid = true;
167
176
  }
168
177
  loadDataView(paramType) {
169
- this.dataView = this.manageParametersService.getParameterFormDataView(this.incoming.Mode, paramType || 'String', this.showType, this.showAccessibility);
178
+ this.dataView = this.manageParametersService.getParameterFormDataView(this.incoming.Mode, paramType || 'String', this.showType, this.showAccessibility, this.showPersistency);
170
179
  }
171
180
  ngOnInit() {
172
- var _a, _b, _c;
181
+ var _a, _b, _c, _d, _e;
173
182
  this.parameter = this.getParameter(this.incoming.Parameter);
174
183
  this.showType = (_a = this.incoming.ShowType) !== null && _a !== void 0 ? _a : false;
175
184
  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);
185
+ this.showPersistency = (_c = this.incoming.ShowPersistency) !== null && _c !== void 0 ? _c : false;
186
+ this.readonly = (_d = this.incoming.Readonly) !== null && _d !== void 0 ? _d : false;
187
+ this.loadDataView((_e = this.parameter) === null || _e === void 0 ? void 0 : _e.Type);
177
188
  }
178
189
  saveParameter() {
179
190
  // before updating the parameter, remove redundant properties
@@ -218,11 +229,11 @@ class ManageParameterComponent {
218
229
  }
219
230
  }
220
231
  }
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: [{
232
+ ManageParameterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ManageParameterComponent, deps: [{ token: i1$1.MatDialogRef }, { token: ManageParametersService }, { token: i1.TranslateService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
233
+ ManageParameterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", 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\" [isLocked]=\"readonly\" (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: [":host ::ng-deep .pep-textarea-container textarea{margin-bottom:calc(var(--pep-spacing-lg, 1rem) * -1)!important}\n"], 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" }] });
234
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ManageParameterComponent, decorators: [{
224
235
  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>" }]
236
+ 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\" [isLocked]=\"readonly\" (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: [":host ::ng-deep .pep-textarea-container textarea{margin-bottom:calc(var(--pep-spacing-lg, 1rem) * -1)!important}\n"] }]
226
237
  }], ctorParameters: function () {
227
238
  return [{ type: i1$1.MatDialogRef }, { type: ManageParametersService }, { type: i1.TranslateService }, { type: undefined, decorators: [{
228
239
  type: Inject,
@@ -231,47 +242,72 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
231
242
  } });
232
243
 
233
244
  class ManageParametersComponent {
245
+ set showPersistency(value) {
246
+ this._showPersistency = value;
247
+ }
248
+ get showPersistency() {
249
+ return this._showPersistency;
250
+ }
251
+ set parameters(value) {
252
+ this._parameters = value || [];
253
+ this.notifyParametersChange(false);
254
+ }
255
+ get parameters() {
256
+ return this._parameters;
257
+ }
234
258
  constructor(translate, dataViewService, dialogService) {
235
259
  this.translate = translate;
236
260
  this.dataViewService = dataViewService;
237
261
  this.dialogService = dialogService;
238
262
  this.showType = false;
239
263
  this.showAccessibility = false;
264
+ this._showPersistency = false;
265
+ this.inline = true;
266
+ this.addPadding = false;
267
+ this.parametersTitle = '';
240
268
  // If columns are not defined, the default columns will be used (default is with no Internal - Accessibility).
241
269
  this.parametersColumns = [];
242
- this.parameters = [];
243
- this.parametersTitle = '';
270
+ this._parameters = [];
244
271
  this.parametersChange = new EventEmitter();
245
272
  this.listMessages = {};
246
273
  this.actions = {
247
274
  get: (data) => __awaiter(this, void 0, void 0, function* () {
275
+ var _a, _b;
248
276
  const actions = [];
249
277
  if (data && data.rows.length == 1) {
278
+ const paramName = data.rows[0];
279
+ const readOnly = (_b = (_a = this.parameters.find(x => x.Key === paramName)) === null || _a === void 0 ? void 0 : _a.Readonly) !== null && _b !== void 0 ? _b : false;
250
280
  actions.push({
251
281
  title: this.translate.instant('Edit'),
252
282
  handler: (objs) => __awaiter(this, void 0, void 0, function* () {
253
283
  this.openCreateParamForm('edit', objs.rows[0]);
254
284
  })
255
285
  });
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
- });
286
+ if (!readOnly) {
287
+ actions.push({
288
+ title: this.translate.instant('Delete'),
289
+ handler: (objs) => __awaiter(this, void 0, void 0, function* () {
290
+ this.showDeleteDialog(objs.rows[0]);
291
+ })
292
+ });
293
+ }
262
294
  }
263
295
  return actions;
264
296
  })
265
297
  };
266
298
  }
267
- notifyParametersChange() {
268
- this.parametersChange.emit(this.parameters);
299
+ notifyParametersChange(raiseEvent = true) {
300
+ // Sort the parameters by name
301
+ this._parameters = this.parameters.sort((a, b) => a.Key.localeCompare(b.Key));
269
302
  this.dataSource = this.getDataSource();
303
+ if (raiseEvent) {
304
+ this.parametersChange.emit(this.parameters);
305
+ }
270
306
  }
271
307
  getDataSource() {
272
308
  return {
273
309
  init: (params) => __awaiter(this, void 0, void 0, function* () {
274
- const listDataView = this.dataViewService.getParametersListDataView(this.parametersColumns, this.showType, this.showAccessibility);
310
+ const listDataView = this.dataViewService.getParametersListDataView(this.parametersColumns, this.showType, this.showAccessibility, this.showPersistency);
275
311
  console.log('data view:', listDataView);
276
312
  return {
277
313
  dataView: listDataView,
@@ -313,12 +349,18 @@ class ManageParametersComponent {
313
349
  if (this.showAccessibility) {
314
350
  defaultParam['Internal'] = false;
315
351
  }
352
+ // Add Persistency field only if showPersistency is true.
353
+ if (this.showPersistency) {
354
+ defaultParam['Persistency'] = false;
355
+ }
316
356
  const parameter = Object.assign(Object.assign({}, defaultParam), paramItem);
317
357
  const formData = {
318
358
  Parameter: parameter,
319
359
  Mode: formMode,
320
360
  ShowType: this.showType,
321
- ShowAccessibility: this.showAccessibility
361
+ ShowAccessibility: this.showAccessibility,
362
+ ShowPersistency: this.showPersistency,
363
+ Readonly: paramItem === null || paramItem === void 0 ? void 0 : paramItem.Readonly
322
364
  };
323
365
  const config = this.dialogService.getDialogConfig({}, 'large');
324
366
  config.data = new PepDialogData({
@@ -355,41 +397,47 @@ class ManageParametersComponent {
355
397
  }));
356
398
  }
357
399
  }
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: [{
400
+ ManageParametersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ManageParametersComponent, deps: [{ token: i1.TranslateService }, { token: ManageParametersService }, { token: i3.PepDialogService }], target: i0.ɵɵFactoryTarget.Component });
401
+ ManageParametersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ManageParametersComponent, selector: "pep-manage-parameters", inputs: { showType: "showType", showAccessibility: "showAccessibility", showPersistency: "showPersistency", inline: "inline", addPadding: "addPadding", parametersTitle: "parametersTitle", parametersColumns: "parametersColumns", parameters: "parameters" }, 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]=\"inline\"\n [actions]=\"actions\"\n [addPadding]=\"addPadding\"\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", "sideBarTitle", "description", "inline", "showSearch", "noDataFoundMsg", "emptyState", "selectionType", "supportSorting", "supportSortingFields", "separator", "sorting", "cacheSize", "hideSelectAll", "pager", "tableViewType", "zebraStripes", "smartFilter", "showTopBar", "breadCrumbsItems", "selectAll", "scrollPosition", "unknownCount"], outputs: ["itemClick", "fieldClick", "valueChange", "breadCrumbItemClick", "startIndexChange", "listLoad"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
402
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ManageParametersComponent, decorators: [{
361
403
  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"] }]
404
+ 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]=\"inline\"\n [actions]=\"actions\"\n [addPadding]=\"addPadding\"\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
405
  }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: ManageParametersService }, { type: i3.PepDialogService }]; }, propDecorators: { showType: [{
364
406
  type: Input
365
407
  }], showAccessibility: [{
366
408
  type: Input
367
- }], parametersColumns: [{
409
+ }], showPersistency: [{
368
410
  type: Input
369
- }], parameters: [{
411
+ }], inline: [{
412
+ type: Input
413
+ }], addPadding: [{
370
414
  type: Input
371
415
  }], parametersTitle: [{
372
416
  type: Input
417
+ }], parametersColumns: [{
418
+ type: Input
419
+ }], parameters: [{
420
+ type: Input
373
421
  }], parametersChange: [{
374
422
  type: Output
375
423
  }] } });
376
424
 
377
425
  class PepManageParametersModule {
378
426
  }
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,
427
+ PepManageParametersModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PepManageParametersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
428
+ PepManageParametersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: PepManageParametersModule, declarations: [ManageParametersComponent, ManageParameterComponent], imports: [CommonModule,
381
429
  PepNgxLibModule,
382
430
  PepDialogModule,
383
431
  PepButtonModule,
384
432
  PepGenericListModule,
385
433
  PepGenericFormModule], exports: [ManageParametersComponent] });
386
- PepManageParametersModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepManageParametersModule, providers: [ManageParametersService], imports: [CommonModule,
434
+ PepManageParametersModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PepManageParametersModule, providers: [ManageParametersService], imports: [CommonModule,
387
435
  PepNgxLibModule,
388
436
  PepDialogModule,
389
437
  PepButtonModule,
390
438
  PepGenericListModule,
391
439
  PepGenericFormModule] });
392
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepManageParametersModule, decorators: [{
440
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PepManageParametersModule, decorators: [{
393
441
  type: NgModule,
394
442
  args: [{
395
443
  declarations: [
@@ -1 +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":";;;;;;;;;;;;;;;;;;MAUa,uBAAuB,CAAA;AAEhC,IAAA,WAAA,CAAqB,SAA2B,EAAA;AAA3B,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;KAE/C;IAEO,iBAAiB,GAAA;AACrB,QAAA,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,sBAAsB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;AACtM,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,IAAG;YACpB,OAAO;AACH,gBAAA,GAAG,EAAE,IAAI;AACT,gBAAA,KAAK,EAAE,IAAI;aACd,CAAA;AACL,SAAC,CAAC,CAAA;KACL;AAEO,IAAA,yBAAyB,CAAC,SAA0B,EAAA;QACxD,IAAI,GAAG,GAAsB,SAAS,CAAC;AACvC,QAAA,QAAQ,SAAS;YACb,KAAK,MAAM,EAAE;gBACT,GAAG,GAAG,SAAS,CAAC;gBAChB,MAAM;AACT,aAAA;YACD,KAAK,SAAS,EAAE;gBACZ,GAAG,GAAG,eAAe,CAAC;gBACtB,MAAM;AACT,aAAA;YACD,KAAK,QAAQ,EAAE;gBACX,GAAG,GAAG,YAAY,CAAC;gBACnB,MAAM;AACT,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,GAAG,CAAC;KACd;IAEO,gBAAgB,CAAC,OAAe,EAAE,IAAuB,EAAE,KAAa,EAAE,SAAkB,EAAE,QAAiB,EACnH,iBAAoC,SAAS,EAAE,kBAAuB,SAAS,EAAE,SAAc,SAAS,EAAA;AAExG,QAAA,MAAM,GAAG,GAAQ;AACb,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,QAAQ,EAAE,QAAQ;SACrB,CAAA;AAED,QAAA,IAAI,cAAc,EAAE;AAChB,YAAA,GAAG,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC;AAC1C,SAAA;AAED,QAAA,IAAI,eAAe,EAAE;AACjB,YAAA,GAAG,CAAC,iBAAiB,CAAC,GAAG,eAAe,CAAC;AAC5C,SAAA;AAED,QAAA,IAAI,MAAM,EAAE;AACR,YAAA,GAAG,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;AAC1B,SAAA;AAED,QAAA,OAAO,GAAG,CAAC;KACd;AAED,IAAA,yBAAyB,CAAC,iBAAsC,EAAE,QAAiB,EAAE,iBAA0B,EAAA;AAC3G,QAAA,IAAI,MAAM,CAAC;AACX,QAAA,IAAI,OAAO,CAAC;;AAGZ,QAAA,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B,YAAA,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,IAAG;gBACpC,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC7F,aAAC,CAAC,CAAC;AAEH,YAAA,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,IAAG;AACrC,gBAAA,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAA;AAClC,aAAC,CAAC,CAAC;AACN,SAAA;AAAM,aAAA;;AAEH,YAAA,MAAM,GAAG;AACL,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,6BAA6B,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;AACxG,gBAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,qCAAqC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;aAC9H,CAAC;;AAGF,YAAA,IAAI,QAAQ,EAAE;gBACV,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,8BAA8B,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9H,aAAA;;YAGD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,uCAAuC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;;AAG5I,YAAA,IAAI,iBAAiB,EAAE;gBACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kCAAkC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACtI,aAAA;AAED,YAAA,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,IAAG;gBACzB,OAAO,EAAE,KAAK,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;AACzC,aAAC,CAAC,CAAC;AACN,SAAA;QAED,OAAO;AACH,YAAA,OAAO,EAAE;AACL,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE;AAC1B,gBAAA,UAAU,EAAE,WAAW;AAC1B,aAAA;AACD,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,kBAAkB,EAAE,CAAC;AACrB,YAAA,kBAAkB,EAAE,CAAC;SACxB,CAAA;KACJ;AAED,IAAA,wBAAwB,CAAC,QAA2B,EAAE,SAA0B,EAAE,QAAiB,EAAE,iBAA0B,EAAA;AAC3H,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC5C,QAAA,MAAM,aAAa,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;;AAG7C,QAAA,MAAM,MAAM,GAAG;AACX,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,6BAA6B,CAAC,EAAE,QAAQ,KAAK,KAAK,EAAE,QAAQ,IAAI,KAAK,EAAE,EAAE,EACpI,EAAE,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,mCAAmC,CAAC,EAAC,CAC1G;AACD,YAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,qCAAqC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAChI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAC,CAAC,EAAE,MAAM,EAAC,CAAC,EAAE,EAAE,CAClC;SACJ,CAAC;;AAGF,QAAA,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,8BAA8B,CAAC,EAAE,KAAK,EAAE,QAAQ,IAAI,KAAK,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;AAC1J,SAAA;;AAGD,QAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,uCAAuC,CAAC,EACxJ,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;;AAG1B,QAAA,IAAI,iBAAiB,EAAE;YACnB,MAAM,gCAAgC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC;AAC5F,YAAA,MAAM,uBAAuB,GAAG,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;AAElE,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,2BAA2B,EAAE,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,wCAAwC,CAAC,EAC/I,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,gCAAgC,EAAE,uBAAuB,CAAC,CAC1E,CAAC;YAEF,MAAM,2BAA2B,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;AACrH,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,uCAAuC,CAAC,EAC1H,KAAK,EAAE,KAAK,EAAE,2BAA2B,EAAE,aAAa,CAAC,CAC5D,CAAC;AACL,SAAA;QAED,OAAO;AACH,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,OAAO,EAAE;AACL,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,OAAO,EAAE,EAAG;AACZ,gBAAA,UAAU,EAAE,QAAQ;AACvB,aAAA;SACJ,CAAC;KACL;;oHAjKQ,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFrB,MAAM,EAAA,CAAA,CAAA;2FAER,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAC,MAAM;iBACpB,CAAA;;;MCMY,wBAAwB,CAAA;AAejC,IAAA,WAAA,CAAsB,SAAiD,EAC3D,uBAAgD,EAChD,SAA2B,EACH,QAA4B,EAAA;AAH1C,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAwC;AAC3D,QAAA,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAyB;AAChD,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;AACH,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAoB;AAThE,QAAA,IAAS,CAAA,SAAA,GAA6B,SAAS,CAAC;AAChD,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AACjB,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAE1B,QAAA,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;KAOd;AAEO,IAAA,YAAY,CAAC,SAA0B,EAAA;QAC3C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,IAAI,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;KAC3J;IAED,QAAQ,GAAA;;AACJ,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,KAAK,CAAC;QAChD,IAAI,CAAC,iBAAiB,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,CAAC,iBAAiB,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,KAAK,CAAC;QAClE,IAAI,CAAC,YAAY,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAC,CAAC;KAC3C;IAED,aAAa,GAAA;;AAET,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1C,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;AACvC,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;AACtD,SAAA;AAED,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC9B;IAED,KAAK,CAAC,YAAsC,SAAS,EAAA;QACjD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;KAC3C;AAED,IAAA,YAAY,CAAC,SAAuB,EAAA;AAChC,QAAA,MAAM,GAAG,GAAiB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;AAChE,QAAA,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,IAAG;YACxC,IAAI,QAAO,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,SAAS,EAAE;;AAEtC,gBAAA,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;oBACjB,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC1C,iBAAA;AACJ,aAAA;AAAM,iBAAA,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACtD,gBAAA,GAAG,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,UAAU,GAAG,UAAU,CAAA;AACnE,aAAA;AAAM,iBAAA;gBACH,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/B,aAAA;AACL,SAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,GAAG,CAAC,2BAA2B,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;AACvG,SAAA;AAED,QAAA,OAAO,GAAG,CAAC;KACd;AAED,IAAA,cAAc,CAAC,KAAiC,EAAA;QAC5C,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3C,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAClC,SAAA;aAAM,IAAI,KAAK,CAAC,OAAO,KAAK,eAAe,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACpE,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,KAAK,KAAK,UAAU,CAAC;AAC3D,aAAA;AACJ,SAAA;KACJ;;AA7EQ,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,oHAkBrB,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAlBlB,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,wDCfrC,+rCAyBa,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,YAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDVA,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACI,kBAAkB,EAAA,QAAA,EAAA,+rCAAA,EAAA,CAAA;;;8BAsBvB,MAAM;+BAAC,eAAe,CAAA;;;;MElBlB,yBAAyB,CAAA;AA6ClC,IAAA,WAAA,CAAqB,SAA2B,EACpC,eAAwC,EACxC,aAA+B,EAAA;AAFtB,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;AACpC,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAyB;AACxC,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;AA5C3C,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAGjB,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;;AAI1B,QAAA,IAAiB,CAAA,iBAAA,GAAwB,EAAE,CAAC;AAG5C,QAAA,IAAU,CAAA,UAAA,GAAmB,EAAE,CAAC;AAGhC,QAAA,IAAe,CAAA,eAAA,GAAG,EAAE,CAAC;AAGrB,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAkB,CAAC;AAGtD,QAAA,IAAY,CAAA,YAAA,GAA8B,EAAE,CAAC;QAE7C,IAAA,CAAA,OAAO,GAA2B;AAC9B,YAAA,GAAG,EAAE,CAAO,IAAsB,KAAI,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;gBAClC,MAAM,OAAO,GAAG,EAAE,CAAC;gBACnB,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;oBAC/B,OAAO,CAAC,IAAI,CAAC;wBACT,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;AACrC,wBAAA,OAAO,EAAE,CAAO,IAAS,KAAI,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;AACzB,4BAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,yBAAC,CAAA;AACJ,qBAAA,CAAC,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC;wBACT,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;AACvC,wBAAA,OAAO,EAAE,CAAO,IAAS,KAAI,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;4BACzB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,yBAAC,CAAA;AACJ,qBAAA,CAAC,CAAA;AACL,iBAAA;AACD,gBAAA,OAAO,OAAO,CAAC;AACnB,aAAC,CAAA;SACJ,CAAA;KAKI;IAEG,sBAAsB,GAAA;QAC1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;KAC1C;IAEO,aAAa,GAAA;QACjB,OAAO;AACH,YAAA,IAAI,EAAE,CAAO,MAA6B,KAAI,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;gBAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACnI,gBAAA,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;gBACxC,OAAO;AACH,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;oBAClC,KAAK,EAAE,IAAI,CAAC,UAAU;iBACzB,CAAC;AACN,aAAC,CAAA;AACD,YAAA,MAAM,EAAE;AACJ,gBAAA,KAAK,EAAE;AACH,oBAAA,IAAI,EAAE,QAAQ;AACjB,iBAAA;AACD,gBAAA,aAAa,EAAE,QAAQ;AACvB,gBAAA,UAAU,EAAE;AACR,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,qCAAqC,CAAC;AAC/D,oBAAA,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,2CAA2C,CAAC;AAC9E,iBAAA;AACJ,aAAA;SACyB,CAAA;KACjC;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,qCAAqC,EAAE,2CAA2C,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,IAAG;AAC9H,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACjC,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AAC3C,SAAC,CAAC,CAAA;KACL;AAED,IAAA,YAAY,CAAC,KAA0B,EAAA;QACnC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;KACjD;AAED,IAAA,mBAAmB,CAAC,QAA2B,EAAE,SAAS,GAAG,EAAE,EAAA;AAC3D,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;AACjE,QAAA,MAAM,YAAY,GAAiB;AAC/B,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,GAAG,EAAE,EAAE;AACP,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,WAAW,EAAE,EAAE;SAClB,CAAC;;QAGF,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,YAAY,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;AACpC,SAAA;AAED,QAAA,MAAM,SAAS,GAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,YAAY,CAAK,EAAA,SAAS,CAAE,CAAC;AAEpD,QAAA,MAAM,QAAQ,GAAuB;AACjC,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;SAC5C,CAAC;AAEF,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AAC/D,QAAA,MAAM,CAAC,IAAI,GAAG,IAAI,aAAa,CAAC;AAC5B,YAAA,OAAO,EAAE,wBAAwB;AACpC,SAAA,CAAC,CAAA;QAEF,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,wBAAwB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,KAAmB,KAAI;AACtH,YAAA,IAAI,KAAK,EAAE;gBACP,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC;;gBAE1E,IAAI,KAAK,GAAG,CAAC,EAAE;AACX,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,iBAAA;AACI,qBAAA;oBACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC3C,iBAAA;gBAED,IAAI,CAAC,sBAAsB,EAAE,CAAC;AACjC,aAAA;AACL,SAAC,CAAC,CAAC;KACN;AAED,IAAA,gBAAgB,CAAC,SAAiB,EAAA;AAC9B,QAAA,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC;AAC9B,YAAA,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,uCAAuC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AACjG,YAAA,WAAW,EAAE,eAAe;YAC5B,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,yCAAyC,CAAC;AAC7E,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAO,eAAe,KAAI,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;AAC5F,YAAA,IAAI,eAAe,EAAE;AACjB,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;AAClE,gBAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;oBACZ,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBACjC,IAAI,CAAC,sBAAsB,EAAE,CAAC;AACjC,iBAAA;AACJ,aAAA;SACJ,CAAA,CAAC,CAAC;KACN;;sHAvJQ,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,gSCftC,usBAmBmB,EAAA,MAAA,EAAA,CAAA,oCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,eAAA,EAAA,OAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDJN,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACI,uBAAuB,EAAA,QAAA,EAAA,usBAAA,EAAA,MAAA,EAAA,CAAA,oCAAA,CAAA,EAAA,CAAA;yKAOjC,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAIN,iBAAiB,EAAA,CAAA;sBADhB,KAAK;gBAKN,iBAAiB,EAAA,CAAA;sBADhB,KAAK;gBAIN,UAAU,EAAA,CAAA;sBADT,KAAK;gBAIN,eAAe,EAAA,CAAA;sBADd,KAAK;gBAIN,gBAAgB,EAAA,CAAA;sBADf,MAAM;;;MEPE,yBAAyB,CAAA;;sHAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,EAb9B,YAAA,EAAA,CAAA,yBAAyB,EAAE,wBAAwB,aAGnD,YAAY;QACZ,eAAe;QACf,eAAe;QACf,eAAe;QACf,oBAAoB;QACpB,oBAAoB,aAGd,yBAAyB,CAAA,EAAA,CAAA,CAAA;AAE1B,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,EAHvB,SAAA,EAAA,CAAC,uBAAuB,CAAC,YAPhC,YAAY;QACZ,eAAe;QACf,eAAe;QACf,eAAe;QACf,oBAAoB;QACpB,oBAAoB,CAAA,EAAA,CAAA,CAAA;2FAKf,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAfrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE;AACV,wBAAA,yBAAyB,EAAE,wBAAwB;AACtD,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,eAAe;wBACf,eAAe;wBACf,eAAe;wBACf,oBAAoB;wBACpB,oBAAoB;AACvB,qBAAA;oBACD,SAAS,EAAE,CAAC,uBAAuB,CAAC;oBACpC,OAAO,EAAE,CAAC,yBAAyB,CAAC;iBACvC,CAAA;;;AC8BD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;;AC7EA;;AAEG;;ACFH;;AAEG;;;;"}
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, showPersistency: 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', 'TextArea', 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 // Add Internal field.\n if (showPersistency) {\n fields.push(this.getDataViewField('Persistency', 'Boolean', this.translate.instant('MANAGE_PARAMETERS.PERSISTENCY_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, showPersistency: 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 if (showPersistency) {\n fields.push(this.getDataViewField('Persistency', 'Boolean', this.translate.instant('MANAGE_PARAMETERS.PERSISTENCY_TITLE'), \n false, false)\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 showPersistency = false;\n dataView!: IPepGenericFormDataView;\n readonly = false;\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, this.showPersistency);\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.showPersistency = this.incoming.ShowPersistency ?? false;\n this.readonly = this.incoming.Readonly ?? 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\" [isLocked]=\"readonly\" (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() showType = false;\n @Input() showAccessibility = false;\n \n private _showPersistency = false;\n @Input()\n set showPersistency(value: boolean) {\n this._showPersistency = value;\n }\n get showPersistency(): boolean {\n return this._showPersistency;\n }\n\n @Input() inline = true;\n @Input() addPadding = false;\n @Input() parametersTitle = '';\n\n // If columns are not defined, the default columns will be used (default is with no Internal - Accessibility).\n @Input() parametersColumns: IParametersColumn[] = [];\n\n private _parameters: IParamemeter[] = [];\n @Input()\n set parameters(value: IParamemeter[]) {\n this._parameters = value || [];\n\n this.notifyParametersChange(false);\n }\n get parameters(): IParamemeter[] {\n return this._parameters;\n }\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 const paramName = data.rows[0];\n const readOnly = this.parameters.find(x => x.Key === paramName)?.Readonly ?? false;\n actions.push({\n title: this.translate.instant('Edit'),\n handler: async (objs: any) => {\n this.openCreateParamForm('edit', objs.rows[0]);\n }\n });\n if (!readOnly) {\n actions.push({\n title: this.translate.instant('Delete'),\n handler: async (objs: any) => {\n this.showDeleteDialog(objs.rows[0]);\n }\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(raiseEvent = true) {\n // Sort the parameters by name\n this._parameters = this.parameters.sort((a, b) => a.Key.localeCompare(b.Key));\n\n this.dataSource = this.getDataSource();\n \n if (raiseEvent) {\n this.parametersChange.emit(this.parameters);\n }\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, this.showPersistency);\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 // Add Persistency field only if showPersistency is true.\n if (this.showPersistency) {\n defaultParam['Persistency'] = 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 ShowPersistency: this.showPersistency,\n Readonly: paramItem?.Readonly\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]=\"inline\"\n [actions]=\"actions\"\n [addPadding]=\"addPadding\"\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 Readonly?: boolean;\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 ShowPersistency?: boolean;\r\n Readonly?: 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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"}