@mediusinc/mng-commons 0.0.1-rc.2

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 (187) hide show
  1. package/README.md +19 -0
  2. package/esm2020/lib/api/models/builders/query-param.builder.mjs +49 -0
  3. package/esm2020/lib/api/models/filter-match-type.model.mjs +24 -0
  4. package/esm2020/lib/api/models/filter-param.model.mjs +46 -0
  5. package/esm2020/lib/api/models/index.mjs +9 -0
  6. package/esm2020/lib/api/models/mappers.mjs +17 -0
  7. package/esm2020/lib/api/models/query-mode.model.mjs +19 -0
  8. package/esm2020/lib/api/models/query-param.model.mjs +69 -0
  9. package/esm2020/lib/api/models/query-result.model.mjs +45 -0
  10. package/esm2020/lib/api/models/serialization.model.mjs +2 -0
  11. package/esm2020/lib/api/services/abstract-crud-api.service.mjs +72 -0
  12. package/esm2020/lib/api/services/index.mjs +2 -0
  13. package/esm2020/lib/api/utils/index.mjs +3 -0
  14. package/esm2020/lib/api/utils/medius-rest.util.mjs +70 -0
  15. package/esm2020/lib/api/utils/object-serializer.util.mjs +226 -0
  16. package/esm2020/lib/components/action/action.component.mjs +63 -0
  17. package/esm2020/lib/components/action/dialog/action-dialog.component.mjs +148 -0
  18. package/esm2020/lib/components/action/index.mjs +4 -0
  19. package/esm2020/lib/components/action/route/action-route.component.mjs +144 -0
  20. package/esm2020/lib/components/form/editor/form-editor.component.mjs +140 -0
  21. package/esm2020/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +58 -0
  22. package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +51 -0
  23. package/esm2020/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +16 -0
  24. package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +26 -0
  25. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +94 -0
  26. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +124 -0
  27. package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +17 -0
  28. package/esm2020/lib/components/form/formly/fields/index.mjs +8 -0
  29. package/esm2020/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +17 -0
  30. package/esm2020/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.mjs +16 -0
  31. package/esm2020/lib/components/form/formly/wrappers/index.mjs +3 -0
  32. package/esm2020/lib/components/form/index.mjs +2 -0
  33. package/esm2020/lib/components/layout/app.breadcrumb.component.mjs +27 -0
  34. package/esm2020/lib/components/layout/app.footer.component.mjs +35 -0
  35. package/esm2020/lib/components/layout/app.main.component.mjs +25 -0
  36. package/esm2020/lib/components/layout/app.main.component.service.mjs +133 -0
  37. package/esm2020/lib/components/layout/app.menu.component.mjs +38 -0
  38. package/esm2020/lib/components/layout/app.menuitem.component.mjs +243 -0
  39. package/esm2020/lib/components/layout/app.topbar.component.mjs +135 -0
  40. package/esm2020/lib/components/layout/index.mjs +7 -0
  41. package/esm2020/lib/components/tableview/index.mjs +4 -0
  42. package/esm2020/lib/components/tableview/route/tableview-route.abstract.component.mjs +31 -0
  43. package/esm2020/lib/components/tableview/table/table.component.mjs +173 -0
  44. package/esm2020/lib/components/tableview/tableview.component.mjs +82 -0
  45. package/esm2020/lib/components/tableview/tableview.component.service.mjs +18 -0
  46. package/esm2020/lib/config/formly.config.mjs +165 -0
  47. package/esm2020/lib/config/index.mjs +2 -0
  48. package/esm2020/lib/directives/index.mjs +2 -0
  49. package/esm2020/lib/directives/template.directive.mjs +25 -0
  50. package/esm2020/lib/mng-commons.module.mjs +338 -0
  51. package/esm2020/lib/models/action/action.model.mjs +58 -0
  52. package/esm2020/lib/models/action/index.mjs +2 -0
  53. package/esm2020/lib/models/config/index.mjs +2 -0
  54. package/esm2020/lib/models/config/mng-config.model.mjs +3 -0
  55. package/esm2020/lib/models/descriptors/action-descriptor.model.mjs +283 -0
  56. package/esm2020/lib/models/descriptors/editor-descriptor.model.mjs +647 -0
  57. package/esm2020/lib/models/descriptors/index.mjs +6 -0
  58. package/esm2020/lib/models/descriptors/model-descriptor.model.mjs +34 -0
  59. package/esm2020/lib/models/descriptors/table-descriptor.model.mjs +123 -0
  60. package/esm2020/lib/models/descriptors/tableview-descriptor.model.mjs +124 -0
  61. package/esm2020/lib/models/events/editor-event.model.mjs +14 -0
  62. package/esm2020/lib/models/events/index.mjs +3 -0
  63. package/esm2020/lib/models/events/table-event.model.mjs +16 -0
  64. package/esm2020/lib/models/interfaces/confirmation-service.model.mjs +2 -0
  65. package/esm2020/lib/models/interfaces/index.mjs +2 -0
  66. package/esm2020/lib/models/providers/data-provider.model.mjs +86 -0
  67. package/esm2020/lib/models/providers/index.mjs +2 -0
  68. package/esm2020/lib/models/types/index.mjs +3 -0
  69. package/esm2020/lib/models/types/type.decorator.mjs +8 -0
  70. package/esm2020/lib/models/types/type.model.mjs +2 -0
  71. package/esm2020/lib/models/validators/field.validator.mjs +21 -0
  72. package/esm2020/lib/models/validators/index.mjs +2 -0
  73. package/esm2020/lib/pipes/index.mjs +2 -0
  74. package/esm2020/lib/pipes/property-path.pipe.mjs +36 -0
  75. package/esm2020/lib/services/action.service.mjs +239 -0
  76. package/esm2020/lib/services/breadcrumb.service.mjs +21 -0
  77. package/esm2020/lib/services/configuration.service.mjs +77 -0
  78. package/esm2020/lib/services/index.mjs +7 -0
  79. package/esm2020/lib/services/menu.service.mjs +26 -0
  80. package/esm2020/lib/services/navigation.service.mjs +49 -0
  81. package/esm2020/lib/services/providers/config-service.provider.mjs +12 -0
  82. package/esm2020/lib/services/providers/formly-config.provider.mjs +31 -0
  83. package/esm2020/lib/services/providers/index.mjs +3 -0
  84. package/esm2020/lib/services/settings.service.mjs +40 -0
  85. package/esm2020/lib/utils/editor-formly.util.mjs +165 -0
  86. package/esm2020/lib/utils/i18n.util.mjs +75 -0
  87. package/esm2020/lib/utils/index.mjs +5 -0
  88. package/esm2020/lib/utils/model.util.mjs +38 -0
  89. package/esm2020/lib/utils/type.util.mjs +43 -0
  90. package/esm2020/mediusinc-mng-commons.mjs +5 -0
  91. package/esm2020/public-api.mjs +33 -0
  92. package/fesm2015/mediusinc-mng-commons.mjs +5056 -0
  93. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -0
  94. package/fesm2020/mediusinc-mng-commons.mjs +5012 -0
  95. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -0
  96. package/lib/api/models/builders/query-param.builder.d.ts +11 -0
  97. package/lib/api/models/filter-match-type.model.d.ts +21 -0
  98. package/lib/api/models/filter-param.model.d.ts +23 -0
  99. package/lib/api/models/index.d.ts +8 -0
  100. package/lib/api/models/mappers.d.ts +6 -0
  101. package/lib/api/models/query-mode.model.d.ts +16 -0
  102. package/lib/api/models/query-param.model.d.ts +31 -0
  103. package/lib/api/models/query-result.model.d.ts +36 -0
  104. package/lib/api/models/serialization.model.d.ts +8 -0
  105. package/lib/api/services/abstract-crud-api.service.d.ts +23 -0
  106. package/lib/api/services/index.d.ts +1 -0
  107. package/lib/api/utils/index.d.ts +2 -0
  108. package/lib/api/utils/medius-rest.util.d.ts +6 -0
  109. package/lib/api/utils/object-serializer.util.d.ts +30 -0
  110. package/lib/components/action/action.component.d.ts +36 -0
  111. package/lib/components/action/dialog/action-dialog.component.d.ts +48 -0
  112. package/lib/components/action/index.d.ts +3 -0
  113. package/lib/components/action/route/action-route.component.d.ts +32 -0
  114. package/lib/components/form/editor/form-editor.component.d.ts +37 -0
  115. package/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +21 -0
  116. package/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +19 -0
  117. package/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +6 -0
  118. package/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.d.ts +12 -0
  119. package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +17 -0
  120. package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +36 -0
  121. package/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +6 -0
  122. package/lib/components/form/formly/fields/index.d.ts +7 -0
  123. package/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +8 -0
  124. package/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.d.ts +8 -0
  125. package/lib/components/form/formly/wrappers/index.d.ts +2 -0
  126. package/lib/components/form/index.d.ts +1 -0
  127. package/lib/components/layout/app.breadcrumb.component.d.ts +16 -0
  128. package/lib/components/layout/app.footer.component.d.ts +8 -0
  129. package/lib/components/layout/app.main.component.d.ts +12 -0
  130. package/lib/components/layout/app.main.component.service.d.ts +40 -0
  131. package/lib/components/layout/app.menu.component.d.ts +14 -0
  132. package/lib/components/layout/app.menuitem.component.d.ts +31 -0
  133. package/lib/components/layout/app.topbar.component.d.ts +16 -0
  134. package/lib/components/layout/index.d.ts +6 -0
  135. package/lib/components/tableview/index.d.ts +3 -0
  136. package/lib/components/tableview/route/tableview-route.abstract.component.d.ts +15 -0
  137. package/lib/components/tableview/table/table.component.d.ts +47 -0
  138. package/lib/components/tableview/tableview.component.d.ts +36 -0
  139. package/lib/components/tableview/tableview.component.service.d.ts +11 -0
  140. package/lib/config/formly.config.d.ts +8 -0
  141. package/lib/config/index.d.ts +1 -0
  142. package/lib/directives/index.d.ts +1 -0
  143. package/lib/directives/template.directive.d.ts +11 -0
  144. package/lib/mng-commons.module.d.ts +74 -0
  145. package/lib/models/action/action.model.d.ts +53 -0
  146. package/lib/models/action/index.d.ts +1 -0
  147. package/lib/models/config/index.d.ts +1 -0
  148. package/lib/models/config/mng-config.model.d.ts +19 -0
  149. package/lib/models/descriptors/action-descriptor.model.d.ts +124 -0
  150. package/lib/models/descriptors/editor-descriptor.model.d.ts +248 -0
  151. package/lib/models/descriptors/index.d.ts +5 -0
  152. package/lib/models/descriptors/model-descriptor.model.d.ts +15 -0
  153. package/lib/models/descriptors/table-descriptor.model.d.ts +45 -0
  154. package/lib/models/descriptors/tableview-descriptor.model.d.ts +38 -0
  155. package/lib/models/events/editor-event.model.d.ts +11 -0
  156. package/lib/models/events/index.d.ts +2 -0
  157. package/lib/models/events/table-event.model.d.ts +17 -0
  158. package/lib/models/interfaces/confirmation-service.model.d.ts +6 -0
  159. package/lib/models/interfaces/index.d.ts +1 -0
  160. package/lib/models/providers/data-provider.model.d.ts +62 -0
  161. package/lib/models/providers/index.d.ts +1 -0
  162. package/lib/models/types/index.d.ts +2 -0
  163. package/lib/models/types/type.decorator.d.ts +2 -0
  164. package/lib/models/types/type.model.d.ts +10 -0
  165. package/lib/models/validators/field.validator.d.ts +18 -0
  166. package/lib/models/validators/index.d.ts +1 -0
  167. package/lib/pipes/index.d.ts +1 -0
  168. package/lib/pipes/property-path.pipe.d.ts +7 -0
  169. package/lib/services/action.service.d.ts +92 -0
  170. package/lib/services/breadcrumb.service.d.ts +9 -0
  171. package/lib/services/configuration.service.d.ts +35 -0
  172. package/lib/services/index.d.ts +6 -0
  173. package/lib/services/menu.service.d.ts +11 -0
  174. package/lib/services/navigation.service.d.ts +14 -0
  175. package/lib/services/providers/config-service.provider.d.ts +5 -0
  176. package/lib/services/providers/formly-config.provider.d.ts +4 -0
  177. package/lib/services/providers/index.d.ts +2 -0
  178. package/lib/services/settings.service.d.ts +18 -0
  179. package/lib/utils/editor-formly.util.d.ts +9 -0
  180. package/lib/utils/i18n.util.d.ts +14 -0
  181. package/lib/utils/index.d.ts +4 -0
  182. package/lib/utils/model.util.d.ts +5 -0
  183. package/lib/utils/type.util.d.ts +15 -0
  184. package/mediusinc-mng-commons-0.0.1-rc.2.tgz +0 -0
  185. package/mediusinc-mng-commons.d.ts +5 -0
  186. package/package.json +38 -0
  187. package/public-api.d.ts +22 -0
@@ -0,0 +1,165 @@
1
+ import { FieldLookupDescriptor, FieldLookupEnumDescriptor, FieldManyEditorDescriptor, FieldManyToManyEditorDescriptor, FieldInputDescriptor } from '../models/descriptors';
2
+ export class EditorFormlyUtil {
3
+ static createFormlyConfigFromDescriptor(descriptor) {
4
+ const fields = [];
5
+ if (descriptor.tabs.length === 1 && descriptor.tabs[0].default) {
6
+ // dont use tabs
7
+ fields.push(...EditorFormlyUtil.createFormlyGroupType(descriptor.tabs[0].fields));
8
+ }
9
+ else {
10
+ fields.push(...EditorFormlyUtil.createFormlyTabType(descriptor.tabs));
11
+ }
12
+ return fields;
13
+ }
14
+ static createFormlyTabType(tabGroups) {
15
+ const tabsField = {
16
+ type: 'tabs',
17
+ fieldGroup: []
18
+ };
19
+ for (const tab of tabGroups) {
20
+ const tabField = {
21
+ id: tab.name,
22
+ templateOptions: {},
23
+ fieldGroup: []
24
+ };
25
+ if (tab.title) { // @ts-ignore
26
+ tabField.templateOptions.label = tab.title;
27
+ }
28
+ // @ts-ignore
29
+ tabField.fieldGroup.push(...EditorFormlyUtil.createFormlyGroupType(tab.fields));
30
+ // @ts-ignore
31
+ tabsField.fieldGroup.push(tabField);
32
+ }
33
+ return [tabsField];
34
+ }
35
+ static createFormlyGroupType(groups) {
36
+ if (groups.length === 1 && groups[0].default) {
37
+ // dont use fieldset, just create fields
38
+ return EditorFormlyUtil.createFormlyFields(groups[0]);
39
+ }
40
+ else {
41
+ const groupsField = {
42
+ type: 'fieldset',
43
+ fieldGroup: []
44
+ };
45
+ for (const group of groups) {
46
+ const groupField = {
47
+ id: group.name,
48
+ templateOptions: {
49
+ descriptor: group
50
+ },
51
+ fieldGroup: []
52
+ };
53
+ if (group.title) { // @ts-ignore
54
+ groupField.templateOptions.label = group.title;
55
+ }
56
+ // @ts-ignore
57
+ groupField.fieldGroup.push(...EditorFormlyUtil.createFormlyFields(group));
58
+ // @ts-ignore
59
+ groupsField.fieldGroup.push(groupField);
60
+ }
61
+ return [groupsField];
62
+ }
63
+ }
64
+ static createFormlyFields(descriptor) {
65
+ const fields = [];
66
+ for (const descriptorField of descriptor.fields) {
67
+ fields.push(EditorFormlyUtil.createFormlyField(descriptorField));
68
+ }
69
+ // wrap in group to be able to use flex grid
70
+ const wrapperGroup = {
71
+ fieldGroupClassName: 'p-fluid formgrid grid',
72
+ fieldGroup: fields,
73
+ validators: {}
74
+ };
75
+ for (const validator of descriptor.validators) {
76
+ // TODO: resolve ts ignore
77
+ // @ts-ignore
78
+ wrapperGroup.validators[validator.name] = { expression: validator.expression, message: validator.message };
79
+ }
80
+ return [wrapperGroup];
81
+ }
82
+ static createFormlyField(descriptor) {
83
+ const field = {
84
+ key: descriptor.property,
85
+ expressionProperties: {},
86
+ templateOptions: {},
87
+ validators: {}
88
+ };
89
+ let className = descriptor.className;
90
+ if (!className) {
91
+ // assign default field width through entire row
92
+ className = 'col-12';
93
+ }
94
+ if (className.indexOf('col-') < 0) {
95
+ // class was provided, but does not contain col- definition
96
+ className = `col-12 ${descriptor.className}`;
97
+ }
98
+ field.className = className;
99
+ // @ts-ignore
100
+ field.templateOptions.descriptor = descriptor;
101
+ if (descriptor instanceof FieldInputDescriptor) {
102
+ switch (descriptor.fieldType) {
103
+ case FieldInputDescriptor.TypeEnum.Textarea:
104
+ field.type = 'textarea';
105
+ break;
106
+ case FieldInputDescriptor.TypeEnum.Number:
107
+ field.type = 'number';
108
+ // @ts-ignore
109
+ field.templateOptions.min = descriptor.numberMin;
110
+ // @ts-ignore
111
+ field.templateOptions.max = descriptor.numberMax;
112
+ break;
113
+ case FieldInputDescriptor.TypeEnum.Switch:
114
+ field.type = 'switch';
115
+ break;
116
+ case FieldInputDescriptor.TypeEnum.Radio:
117
+ field.type = 'radio';
118
+ break;
119
+ case FieldInputDescriptor.TypeEnum.Datepicker:
120
+ field.type = 'datepicker';
121
+ break;
122
+ default:
123
+ field.type = 'input';
124
+ break;
125
+ }
126
+ }
127
+ else if (descriptor instanceof FieldLookupEnumDescriptor) {
128
+ field.type = 'enum';
129
+ }
130
+ else if (descriptor instanceof FieldLookupDescriptor) {
131
+ switch (descriptor.fieldType) {
132
+ case FieldLookupDescriptor.TypeEnum.Autocomplete:
133
+ field.type = 'autocomplete';
134
+ break;
135
+ case FieldLookupDescriptor.TypeEnum.Dropdown:
136
+ default:
137
+ field.type = 'dropdown';
138
+ break;
139
+ }
140
+ }
141
+ else if (descriptor instanceof FieldManyToManyEditorDescriptor) {
142
+ field.type = 'table-dialog-multiselect';
143
+ }
144
+ else if (descriptor instanceof FieldManyEditorDescriptor) {
145
+ field.type = 'table-dialog-form';
146
+ }
147
+ if (descriptor.label) { // @ts-ignore
148
+ field.templateOptions.label = descriptor.label;
149
+ }
150
+ if (descriptor.required) { // @ts-ignore
151
+ field.templateOptions.required = true;
152
+ }
153
+ if (descriptor.disabled) { // @ts-ignore
154
+ field.templateOptions.disabled = true;
155
+ }
156
+ else { // @ts-ignore
157
+ field.expressionProperties['templateOptions.disabled'] = 'formState.disabled';
158
+ }
159
+ for (const validator of descriptor.validators) {
160
+ field.validators[validator.name] = { expression: validator.expression, message: validator.message };
161
+ }
162
+ return field;
163
+ }
164
+ }
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWZvcm1seS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW5nLWNvbW1vbnMvc3JjL2xpYi91dGlscy9lZGl0b3ItZm9ybWx5LnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLHFCQUFxQixFQUV6Qix5QkFBeUIsRUFHekIseUJBQXlCLEVBQ3pCLCtCQUErQixFQUMvQixvQkFBb0IsRUFFdkIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixNQUFNLE9BQU8sZ0JBQWdCO0lBQ2xCLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxVQUFpQztRQUM1RSxNQUFNLE1BQU0sR0FBd0IsRUFBRSxDQUFDO1FBRXZDLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFO1lBQzVELGdCQUFnQjtZQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1NBQ3JGO2FBQU07WUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDekU7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRU0sTUFBTSxDQUFDLG1CQUFtQixDQUFDLFNBQXlDO1FBQ3ZFLE1BQU0sU0FBUyxHQUFzQjtZQUNqQyxJQUFJLEVBQUUsTUFBTTtZQUNaLFVBQVUsRUFBRSxFQUFFO1NBQ2pCLENBQUM7UUFDRixLQUFLLE1BQU0sR0FBRyxJQUFJLFNBQVMsRUFBRTtZQUN6QixNQUFNLFFBQVEsR0FBc0I7Z0JBQ2hDLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFB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SUFBSSxDQUFDO1NBQ3pDO2FBQU0sRUFBRSxhQUFhO1lBQ2xCLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLG9CQUFvQixDQUFDO1NBQ2pGO1FBRUQsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLENBQUMsVUFBVSxFQUFFO1lBQzNDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUMsQ0FBQztTQUNyRztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Rm9ybWx5RmllbGRDb25maWd9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuXG5pbXBvcnQge0ZpZWxkTG9va3VwRGVzY3JpcHRvcixcbiAgICBFZGl0b3JEZXNjcmlwdG9yLFxuICAgIEZpZWxkTG9va3VwRW51bURlc2NyaXB0b3IsXG4gICAgQUZpZWxkRGVzY3JpcHRvcixcbiAgICBGaWVsZFRhYkdyb3VwRGVzY3JpcHRvcixcbiAgICBGaWVsZE1hbnlFZGl0b3JEZXNjcmlwdG9yLFxuICAgIEZpZWxkTWFueVRvTWFueUVkaXRvckRlc2NyaXB0b3IsXG4gICAgRmllbGRJbnB1dERlc2NyaXB0b3IsXG4gICAgRmllbGRHcm91cERlc2NyaXB0b3Jcbn0gZnJvbSAnLi4vbW9kZWxzL2Rlc2NyaXB0b3JzJztcblxuZXhwb3J0IGNsYXNzIEVkaXRvckZvcm1seVV0aWwge1xuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlRm9ybWx5Q29uZmlnRnJvbURlc2NyaXB0b3IoZGVzY3JpcHRvcjogRWRpdG9yRGVzY3JpcHRvcjxhbnk+KTogRm9ybWx5RmllbGRDb25maWdbXSB7XG4gICAgICAgIGNvbnN0IGZpZWxkczogRm9ybWx5RmllbGRDb25maWdbXSA9IFtdO1xuXG4gICAgICAgIGlmIChkZXNjcmlwdG9yLnRhYnMubGVuZ3RoID09PSAxICYmIGRlc2NyaXB0b3IudGFic1swXS5kZWZhdWx0KSB7XG4gICAgICAgICAgICAvLyBkb250IHVzZSB0YWJzXG4gICAgICAgICAgICBmaWVsZHMucHVzaCguLi5FZGl0b3JGb3JtbHlVdGlsLmNyZWF0ZUZvcm1seUdyb3VwVHlwZShkZXNjcmlwdG9yLnRhYnNbMF0uZmllbGRzKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWVsZHMucHVzaCguLi5FZGl0b3JGb3JtbHlVdGlsLmNyZWF0ZUZvcm1seVRhYlR5cGUoZGVzY3JpcHRvci50YWJzKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmllbGRzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlRm9ybWx5VGFiVHlwZSh0YWJHcm91cHM6IEZpZWxkVGFiR3JvdXBEZXNjcmlwdG9yPGFueT5bXSk6IEZvcm1seUZpZWxkQ29uZmlnW10ge1xuICAgICAgICBjb25zdCB0YWJzRmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnID0ge1xuICAgICAgICAgICAgdHlwZTogJ3RhYnMnLFxuICAgICAgICAgICAgZmllbGRHcm91cDogW11cbiAgICAgICAgfTtcbiAgICAgICAgZm9yIChjb25zdCB0YWIgb2YgdGFiR3JvdXBzKSB7XG4gICAgICAgICAgICBjb25zdCB0YWJGaWVsZDogRm9ybWx5RmllbGRDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgaWQ6IHRhYi5uYW1lLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge30sXG4gICAgICAgICAgICAgICAgZmllbGRHcm91cDogW11cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAodGFiLnRpdGxlKSB7IC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICB0YWJGaWVsZC50ZW1wbGF0ZU9wdGlvbnMubGFiZWwgPSB0YWIudGl0bGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0YWJGaWVsZC5maWVsZEdyb3VwLnB1c2goLi4uRWRpdG9yRm9ybWx5VXRpbC5jcmVhdGVGb3JtbHlHcm91cFR5cGUodGFiLmZpZWxkcykpO1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGFic0ZpZWxkLmZpZWxkR3JvdXAucHVzaCh0YWJGaWVsZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFt0YWJzRmllbGRdO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlRm9ybWx5R3JvdXBUeXBlKGdyb3VwczogRmllbGRHcm91cERlc2NyaXB0b3I8YW55PltdKTogRm9ybWx5RmllbGRDb25maWdbXSB7XG4gICAgICAgIGlmIChncm91cHMubGVuZ3RoID09PSAxICYmIGdyb3Vwc1swXS5kZWZhdWx0KSB7XG4gICAgICAgICAgICAvLyBkb250IHVzZSBmaWVsZHNldCwganVzdCBjcmVhdGUgZmllbGRzXG4gICAgICAgICAgICByZXR1cm4gRWRpdG9yRm9ybWx5VXRpbC5jcmVhdGVGb3JtbHlGaWVsZHMoZ3JvdXBzWzBdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGdyb3Vwc0ZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnZmllbGRzZXQnLFxuICAgICAgICAgICAgICAgIGZpZWxkR3JvdXA6IFtdXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZm9yIChjb25zdCBncm91cCBvZiBncm91cHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBncm91cEZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGdyb3VwLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRvcjogZ3JvdXBcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZmllbGRHcm91cDogW11cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGlmIChncm91cC50aXRsZSkgeyAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwRmllbGQudGVtcGxhdGVPcHRpb25zLmxhYmVsID0gZ3JvdXAudGl0bGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICBncm91cEZpZWxkLmZpZWxkR3JvdXAucHVzaCguLi5FZGl0b3JGb3JtbHlVdGlsLmNyZWF0ZUZvcm1seUZpZWxkcyhncm91cCkpO1xuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICBncm91cHNGaWVsZC5maWVsZEdyb3VwLnB1c2goZ3JvdXBGaWVsZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gW2dyb3Vwc0ZpZWxkXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlRm9ybWx5RmllbGRzKGRlc2NyaXB0b3I6IEZpZWxkR3JvdXBEZXNjcmlwdG9yPGFueT4pOiBGb3JtbHlGaWVsZENvbmZpZ1tdIHtcbiAgICAgICAgY29uc3QgZmllbGRzOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgZGVzY3JpcHRvckZpZWxkIG9mIGRlc2NyaXB0b3IuZmllbGRzKSB7XG4gICAgICAgICAgICBmaWVsZHMucHVzaChFZGl0b3JGb3JtbHlVdGlsLmNyZWF0ZUZvcm1seUZpZWxkKGRlc2NyaXB0b3JGaWVsZCkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHdyYXAgaW4gZ3JvdXAgdG8gYmUgYWJsZSB0byB1c2UgZmxleCBncmlkXG4gICAgICAgIGNvbnN0IHdyYXBwZXJHcm91cCA9IHtcbiAgICAgICAgICAgIGZpZWxkR3JvdXBDbGFzc05hbWU6ICdwLWZsdWlkIGZvcm1ncmlkIGdyaWQnLFxuICAgICAgICAgICAgZmllbGRHcm91cDogZmllbGRzLFxuICAgICAgICAgICAgdmFsaWRhdG9yczoge31cbiAgICAgICAgfTtcblxuICAgICAgICBmb3IgKGNvbnN0IHZhbGlkYXRvciBvZiBkZXNjcmlwdG9yLnZhbGlkYXRvcnMpIHtcbiAgICAgICAgICAgIC8vIFRPRE86IHJlc29sdmUgdHMgaWdub3JlXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB3cmFwcGVyR3JvdXAudmFsaWRhdG9yc1t2YWxpZGF0b3IubmFtZV0gPSB7ZXhwcmVzc2lvbjogdmFsaWRhdG9yLmV4cHJlc3Npb24sIG1lc3NhZ2U6IHZhbGlkYXRvci5tZXNzYWdlfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbd3JhcHBlckdyb3VwXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZUZvcm1seUZpZWxkKGRlc2NyaXB0b3I6IEFGaWVsZERlc2NyaXB0b3I8YW55LCBhbnk+KTogRm9ybWx5RmllbGRDb25maWcge1xuICAgICAgICBjb25zdCBmaWVsZDogRm9ybWx5RmllbGRDb25maWcgPSB7XG4gICAgICAgICAgICBrZXk6IGRlc2NyaXB0b3IucHJvcGVydHksXG4gICAgICAgICAgICBleHByZXNzaW9uUHJvcGVydGllczoge30sXG4gICAgICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHt9LFxuICAgICAgICAgICAgdmFsaWRhdG9yczoge31cbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgY2xhc3NOYW1lID0gZGVzY3JpcHRvci5jbGFzc05hbWU7XG4gICAgICAgIGlmICghY2xhc3NOYW1lKSB7XG4gICAgICAgICAgICAvLyBhc3NpZ24gZGVmYXVsdCBmaWVsZCB3aWR0aCB0aHJvdWdoIGVudGlyZSByb3dcbiAgICAgICAgICAgIGNsYXNzTmFtZSA9ICdjb2wtMTInO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjbGFzc05hbWUuaW5kZXhPZignY29sLScpIDwgMCkge1xuICAgICAgICAgICAgLy8gY2xhc3Mgd2FzIHByb3ZpZGVkLCBidXQgZG9lcyBub3QgY29udGFpbiBjb2wtIGRlZmluaXRpb25cbiAgICAgICAgICAgIGNsYXNzTmFtZSA9IGBjb2wtMTIgJHtkZXNjcmlwdG9yLmNsYXNzTmFtZX1gO1xuICAgICAgICB9XG4gICAgICAgIGZpZWxkLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTtcblxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGZpZWxkLnRlbXBsYXRlT3B0aW9ucy5kZXNjcmlwdG9yID0gZGVzY3JpcHRvcjtcbiAgICAgICAgaWYgKGRlc2NyaXB0b3IgaW5zdGFuY2VvZiBGaWVsZElucHV0RGVzY3JpcHRvcikge1xuICAgICAgICAgICAgc3dpdGNoIChkZXNjcmlwdG9yLmZpZWxkVHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgRmllbGRJbnB1dERlc2NyaXB0b3IuVHlwZUVudW0uVGV4dGFyZWE6XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPSAndGV4dGFyZWEnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEZpZWxkSW5wdXREZXNjcmlwdG9yLlR5cGVFbnVtLk51bWJlcjpcbiAgICAgICAgICAgICAgICAgICAgZmllbGQudHlwZSA9ICdudW1iZXInO1xuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLnRlbXBsYXRlT3B0aW9ucy5taW4gPSBkZXNjcmlwdG9yLm51bWJlck1pbjtcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICBmaWVsZC50ZW1wbGF0ZU9wdGlvbnMubWF4ID0gZGVzY3JpcHRvci5udW1iZXJNYXg7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgRmllbGRJbnB1dERlc2NyaXB0b3IuVHlwZUVudW0uU3dpdGNoOlxuICAgICAgICAgICAgICAgICAgICBmaWVsZC50eXBlID0gJ3N3aXRjaCc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgRmllbGRJbnB1dERlc2NyaXB0b3IuVHlwZUVudW0uUmFkaW86XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPSAncmFkaW8nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEZpZWxkSW5wdXREZXNjcmlwdG9yLlR5cGVFbnVtLkRhdGVwaWNrZXI6XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPSAnZGF0ZXBpY2tlcic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPSAnaW5wdXQnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChkZXNjcmlwdG9yIGluc3RhbmNlb2YgRmllbGRMb29rdXBFbnVtRGVzY3JpcHRvcikge1xuICAgICAgICAgICAgZmllbGQudHlwZSA9ICdlbnVtJztcbiAgICAgICAgfSBlbHNlIGlmIChkZXNjcmlwdG9yIGluc3RhbmNlb2YgRmllbGRMb29rdXBEZXNjcmlwdG9yKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGRlc2NyaXB0b3IuZmllbGRUeXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBGaWVsZExvb2t1cERlc2NyaXB0b3IuVHlwZUVudW0uQXV0b2NvbXBsZXRlOlxuICAgICAgICAgICAgICAgICAgICBmaWVsZC50eXBlID0gJ2F1dG9jb21wbGV0ZSc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgRmllbGRMb29rdXBEZXNjcmlwdG9yLlR5cGVFbnVtLkRyb3Bkb3duOlxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPSAnZHJvcGRvd24nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChkZXNjcmlwdG9yIGluc3RhbmNlb2YgRmllbGRNYW55VG9NYW55RWRpdG9yRGVzY3JpcHRvcikge1xuICAgICAgICAgICAgZmllbGQudHlwZSA9ICd0YWJsZS1kaWFsb2ctbXVsdGlzZWxlY3QnO1xuICAgICAgICB9IGVsc2UgaWYgKGRlc2NyaXB0b3IgaW5zdGFuY2VvZiBGaWVsZE1hbnlFZGl0b3JEZXNjcmlwdG9yKSB7XG4gICAgICAgICAgICBmaWVsZC50eXBlID0gJ3RhYmxlLWRpYWxvZy1mb3JtJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkZXNjcmlwdG9yLmxhYmVsKSB7IC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIGZpZWxkLnRlbXBsYXRlT3B0aW9ucy5sYWJlbCA9IGRlc2NyaXB0b3IubGFiZWw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlc2NyaXB0b3IucmVxdWlyZWQpIHsgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgZmllbGQudGVtcGxhdGVPcHRpb25zLnJlcXVpcmVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVzY3JpcHRvci5kaXNhYmxlZCkgeyAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICBmaWVsZC50ZW1wbGF0ZU9wdGlvbnMuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgeyAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICBmaWVsZC5leHByZXNzaW9uUHJvcGVydGllc1sndGVtcGxhdGVPcHRpb25zLmRpc2FibGVkJ10gPSAnZm9ybVN0YXRlLmRpc2FibGVkJztcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgdmFsaWRhdG9yIG9mIGRlc2NyaXB0b3IudmFsaWRhdG9ycykge1xuICAgICAgICAgICAgZmllbGQudmFsaWRhdG9yc1t2YWxpZGF0b3IubmFtZV0gPSB7ZXhwcmVzc2lvbjogdmFsaWRhdG9yLmV4cHJlc3Npb24sIG1lc3NhZ2U6IHZhbGlkYXRvci5tZXNzYWdlfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,75 @@
1
+ import { first, map, mergeMap } from 'rxjs/operators';
2
+ export class I18nUtil {
3
+ static instantActionTranslation(translate, action, keyPath, customKey, item, fallbackKey) {
4
+ const keys = I18nUtil.getActionKeysByPriority(action, keyPath, customKey, fallbackKey);
5
+ const i18nModelName = I18nUtil.instantModelName(translate, action?.model, true);
6
+ const i18n = translate.instant(keys, I18nUtil.getActionI18nParams(action, item, i18nModelName));
7
+ return I18nUtil.selectKeyByPriority(keys, i18n);
8
+ }
9
+ static streamActionTranslation(translate, action, keyPath, customKey, item, fallbackKey) {
10
+ return I18nUtil.getActionTranslation(translate, action, keyPath, customKey, item, fallbackKey, false);
11
+ }
12
+ static getActionTranslation(translate, action, keyPath, customKey, item, fallbackKey, oneTime = true) {
13
+ const keys = I18nUtil.getActionKeysByPriority(action, keyPath, customKey, fallbackKey);
14
+ return I18nUtil.getModelName(translate, action?.model, oneTime, true).pipe(mergeMap(i18nModelName => translate.get(keys, I18nUtil.getActionI18nParams(action, item, i18nModelName ?? undefined))), map(i18n => I18nUtil.selectKeyByPriority(keys, i18n)));
15
+ }
16
+ static getActionKeysByPriority(action, keyPath, customKey, fallbackKey) {
17
+ const keys = [];
18
+ if (customKey) {
19
+ keys.push(customKey);
20
+ }
21
+ const modelActionKey = `${action.i18nModelActionBaseKey}.${keyPath}`;
22
+ const actionKey = `${action.actionName}.${keyPath}`;
23
+ keys.push(modelActionKey, actionKey);
24
+ if (fallbackKey) {
25
+ keys.push(fallbackKey);
26
+ }
27
+ return keys;
28
+ }
29
+ static getActionI18nParams(action, item, i18nModelName) {
30
+ const i18nParams = {
31
+ itemId: '',
32
+ itemTitle: ''
33
+ };
34
+ if (i18nModelName) {
35
+ i18nParams.modelName = i18nModelName;
36
+ }
37
+ if (item) {
38
+ if (action.model.idPropertyName && item[action.model.idPropertyName]) {
39
+ i18nParams.itemId = item[action.model.idPropertyName];
40
+ }
41
+ if (action.model.titlePropertyName && item[action.model.titlePropertyName]) {
42
+ i18nParams.itemTitle = item[action.model.titlePropertyName];
43
+ }
44
+ }
45
+ return i18nParams;
46
+ }
47
+ static instantModelName(translate, model, singular) {
48
+ return translate.instant(I18nUtil.getModelNameKeys(model, singular));
49
+ }
50
+ static getModelName(translate, model, oneTime = true, singular) {
51
+ const keys = I18nUtil.getModelNameKeys(model, singular);
52
+ const obs = translate.stream(keys);
53
+ if (oneTime) {
54
+ obs.pipe(first());
55
+ }
56
+ return obs.pipe(map(i18n => I18nUtil.selectKeyByPriority(keys, i18n)));
57
+ }
58
+ static getModelNameKeys(model, singular) {
59
+ let keys = [];
60
+ if (singular !== undefined) {
61
+ keys.push(singular ? `${model?.typeName}.nameSingular` : `${model?.typeName}.namePlural`);
62
+ }
63
+ keys.push(`${model?.typeName}.name`);
64
+ return keys;
65
+ }
66
+ static selectKeyByPriority(keys, i18n) {
67
+ for (const key of keys) {
68
+ if (key !== i18n[key]) {
69
+ return i18n[key];
70
+ }
71
+ }
72
+ return null;
73
+ }
74
+ }
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW5nLWNvbW1vbnMvc3JjL2xpYi91dGlscy9pMThuLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFJcEQsTUFBTSxPQUFPLFFBQVE7SUFFVixNQUFNLENBQUMsd0JBQXdCLENBQUMsU0FBMkIsRUFBRSxNQUE2QixFQUFFLE9BQWUsRUFBRSxTQUFrQixFQUFFLElBQVUsRUFBRSxXQUFvQjtRQUNwSyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsdUJBQXVCLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDdkYsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hGLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDaEcsT0FBTyxRQUFRLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSxNQUFNLENBQUMsdUJBQXVCLENBQUMsU0FBMkIsRUFBRSxNQUE2QixFQUFFLE9BQWUsRUFBRSxTQUFrQixFQUFFLElBQVUsRUFBRSxXQUFvQjtRQUNuSyxPQUFPLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMxRyxDQUFDO0lBRU0sTUFBTSxDQUFDLG9C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QUM7UUFDeEQsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxJQUFJLE9BQU8sRUFBRTtZQUNULEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQTtTQUNwQjtRQUNELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRU0sTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQTJCLEVBQUUsUUFBa0I7UUFDMUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2QsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxRQUFRLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsUUFBUSxhQUFhLENBQUMsQ0FBQztTQUM3RjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLEVBQUUsUUFBUSxPQUFPLENBQUMsQ0FBQztRQUNyQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU8sTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQWMsRUFBRSxJQUFTO1FBQ3hELEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO1lBQ3BCLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDbkIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDcEI7U0FDSjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaXJzdCwgbWFwLCBtZXJnZU1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge01vZGVsRGVzY3JpcHRvciwgQWN0aW9uRGVzY3JpcHRvcn0gZnJvbSAnLi4vbW9kZWxzL2Rlc2NyaXB0b3JzJztcblxuZXhwb3J0IGNsYXNzIEkxOG5VdGlsIHtcblxuICAgIHB1YmxpYyBzdGF0aWMgaW5zdGFudEFjdGlvblRyYW5zbGF0aW9uKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgYWN0aW9uOiBBY3Rpb25EZXNjcmlwdG9yPGFueT4sIGtleVBhdGg6IHN0cmluZywgY3VzdG9tS2V5Pzogc3RyaW5nLCBpdGVtPzogYW55LCBmYWxsYmFja0tleT86IHN0cmluZyk6IHN0cmluZ3xudWxsIHtcbiAgICAgICAgY29uc3Qga2V5cyA9IEkxOG5VdGlsLmdldEFjdGlvbktleXNCeVByaW9yaXR5KGFjdGlvbiwga2V5UGF0aCwgY3VzdG9tS2V5LCBmYWxsYmFja0tleSk7XG4gICAgICAgIGNvbnN0IGkxOG5Nb2RlbE5hbWUgPSBJMThuVXRpbC5pbnN0YW50TW9kZWxOYW1lKHRyYW5zbGF0ZSwgYWN0aW9uPy5tb2RlbCwgdHJ1ZSk7XG4gICAgICAgIGNvbnN0IGkxOG4gPSB0cmFuc2xhdGUuaW5zdGFudChrZXlzLCBJMThuVXRpbC5nZXRBY3Rpb25JMThuUGFyYW1zKGFjdGlvbiwgaXRlbSwgaTE4bk1vZGVsTmFtZSkpO1xuICAgICAgICByZXR1cm4gSTE4blV0aWwuc2VsZWN0S2V5QnlQcmlvcml0eShrZXlzLCBpMThuKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHN0cmVhbUFjdGlvblRyYW5zbGF0aW9uKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgYWN0aW9uOiBBY3Rpb25EZXNjcmlwdG9yPGFueT4sIGtleVBhdGg6IHN0cmluZywgY3VzdG9tS2V5Pzogc3RyaW5nLCBpdGVtPzogYW55LCBmYWxsYmFja0tleT86IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nfG51bGw+IHtcbiAgICAgICAgcmV0dXJuIEkxOG5VdGlsLmdldEFjdGlvblRyYW5zbGF0aW9uKHRyYW5zbGF0ZSwgYWN0aW9uLCBrZXlQYXRoLCBjdXN0b21LZXksIGl0ZW0sIGZhbGxiYWNrS2V5LCBmYWxzZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRBY3Rpb25UcmFuc2xhdGlvbih0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvcjxhbnk+LCBrZXlQYXRoOiBzdHJpbmcsIGN1c3RvbUtleT86IHN0cmluZywgaXRlbT86IGFueSwgZmFsbGJhY2tLZXk/OiBzdHJpbmcsIG9uZVRpbWU6IGJvb2xlYW4gPSB0cnVlKTogT2JzZXJ2YWJsZTxzdHJpbmd8bnVsbD4ge1xuICAgICAgICBjb25zdCBrZXlzID0gSTE4blV0aWwuZ2V0QWN0aW9uS2V5c0J5UHJpb3JpdHkoYWN0aW9uLCBrZXlQYXRoLCBjdXN0b21LZXksIGZhbGxiYWNrS2V5KTtcbiAgICAgICAgcmV0dXJuIEkxOG5VdGlsLmdldE1vZGVsTmFtZSh0cmFuc2xhdGUsIGFjdGlvbj8ubW9kZWwsIG9uZVRpbWUsIHRydWUpLnBpcGUoXG4gICAgICAgICAgICBtZXJnZU1hcChpMThuTW9kZWxOYW1lID0+IHRyYW5zbGF0ZS5nZXQoa2V5cywgSTE4blV0aWwuZ2V0QWN0aW9uSTE4blBhcmFtcyhhY3Rpb24sIGl0ZW0sIGkxOG5Nb2RlbE5hbWUgPz8gdW5kZWZpbmVkKSkpLFxuICAgICAgICAgICAgbWFwKGkxOG4gPT4gSTE4blV0aWwuc2VsZWN0S2V5QnlQcmlvcml0eShrZXlzLCBpMThuKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBnZXRBY3Rpb25LZXlzQnlQcmlvcml0eShhY3Rpb246IEFjdGlvbkRlc2NyaXB0b3I8YW55Piwga2V5UGF0aDogc3RyaW5nLCBjdXN0b21LZXk/OiBzdHJpbmcsIGZhbGxiYWNrS2V5Pzogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGtleXMgPSBbXTtcbiAgICAgICAgaWYgKGN1c3RvbUtleSkge1xuICAgICAgICAgICAga2V5cy5wdXNoKGN1c3RvbUtleSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbW9kZWxBY3Rpb25LZXkgPSBgJHthY3Rpb24uaTE4bk1vZGVsQWN0aW9uQmFzZUtleX0uJHtrZXlQYXRofWA7XG4gICAgICAgIGNvbnN0IGFjdGlvbktleSA9IGAke2FjdGlvbi5hY3Rpb25OYW1lfS4ke2tleVBhdGh9YDtcbiAgICAgICAga2V5cy5wdXNoKG1vZGVsQWN0aW9uS2V5LCBhY3Rpb25LZXkpO1xuICAgICAgICBpZiAoZmFsbGJhY2tLZXkpIHtcbiAgICAgICAgICAgIGtleXMucHVzaChmYWxsYmFja0tleSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtleXM7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRBY3Rpb25JMThuUGFyYW1zKGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvcjxhbnk+LCBpdGVtOiBhbnksIGkxOG5Nb2RlbE5hbWU/OiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgaTE4blBhcmFtczogYW55ID0ge1xuICAgICAgICAgICAgaXRlbUlkOiAnJyxcbiAgICAgICAgICAgIGl0ZW1UaXRsZTogJydcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGkxOG5Nb2RlbE5hbWUpIHtcbiAgICAgICAgICAgIGkxOG5QYXJhbXMubW9kZWxOYW1lID0gaTE4bk1vZGVsTmFtZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgaWYgKGFjdGlvbi5tb2RlbC5pZFByb3BlcnR5TmFtZSAmJiBpdGVtW2FjdGlvbi5tb2RlbC5pZFByb3BlcnR5TmFtZV0pIHtcbiAgICAgICAgICAgICAgICBpMThuUGFyYW1zLml0ZW1JZCA9IGl0ZW1bYWN0aW9uLm1vZGVsLmlkUHJvcGVydHlOYW1lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChhY3Rpb24ubW9kZWwudGl0bGVQcm9wZXJ0eU5hbWUgJiYgaXRlbVthY3Rpb24ubW9kZWwudGl0bGVQcm9wZXJ0eU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgaTE4blBhcmFtcy5pdGVtVGl0bGUgPSBpdGVtW2FjdGlvbi5tb2RlbC50aXRsZVByb3BlcnR5TmFtZV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGkxOG5QYXJhbXM7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBpbnN0YW50TW9kZWxOYW1lKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgbW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxhbnk+LCBzaW5ndWxhcj86IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdHJhbnNsYXRlLmluc3RhbnQoSTE4blV0aWwuZ2V0TW9kZWxOYW1lS2V5cyhtb2RlbCwgc2luZ3VsYXIpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldE1vZGVsTmFtZSh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8YW55Piwgb25lVGltZTogYm9vbGVhbiA9IHRydWUsIHNpbmd1bGFyPzogYm9vbGVhbik6IE9ic2VydmFibGU8c3RyaW5nfG51bGw+IHtcbiAgICAgICAgY29uc3Qga2V5cyA9IEkxOG5VdGlsLmdldE1vZGVsTmFtZUtleXMobW9kZWwsIHNpbmd1bGFyKTtcbiAgICAgICAgY29uc3Qgb2JzID0gdHJhbnNsYXRlLnN0cmVhbShrZXlzKTtcbiAgICAgICAgaWYgKG9uZVRpbWUpIHtcbiAgICAgICAgICAgIG9icy5waXBlKGZpcnN0KCkpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9icy5waXBlKG1hcChpMThuID0+IEkxOG5VdGlsLnNlbGVjdEtleUJ5UHJpb3JpdHkoa2V5cywgaTE4bikpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldE1vZGVsTmFtZUtleXMobW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxhbnk+LCBzaW5ndWxhcj86IGJvb2xlYW4pIHtcbiAgICAgICAgbGV0IGtleXMgPSBbXTtcbiAgICAgICAgaWYgKHNpbmd1bGFyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGtleXMucHVzaChzaW5ndWxhciA/IGAke21vZGVsPy50eXBlTmFtZX0ubmFtZVNpbmd1bGFyYCA6IGAke21vZGVsPy50eXBlTmFtZX0ubmFtZVBsdXJhbGApO1xuICAgICAgICB9XG4gICAgICAgIGtleXMucHVzaChgJHttb2RlbD8udHlwZU5hbWV9Lm5hbWVgKTtcbiAgICAgICAgcmV0dXJuIGtleXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgc2VsZWN0S2V5QnlQcmlvcml0eShrZXlzOiBzdHJpbmdbXSwgaTE4bjogYW55KTogc3RyaW5nfG51bGwge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgICAgICAgICBpZiAoa2V5ICE9PSBpMThuW2tleV0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaTE4bltrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export * from './editor-formly.util';
2
+ export * from './i18n.util';
3
+ export * from './model.util';
4
+ export * from './type.util';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbmctY29tbW9ucy9zcmMvbGliL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VkaXRvci1mb3JtbHkudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2kxOG4udXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVsLnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlLnV0aWwnO1xuIl19
@@ -0,0 +1,38 @@
1
+ import { ObjectSerializer } from '../api/utils';
2
+ export class ModelUtil {
3
+ static findIdAttribute(classType) {
4
+ const objSerializer = ObjectSerializer.get();
5
+ const attributes = objSerializer.findAttributesDefinitionByClassType(classType);
6
+ if (!attributes) {
7
+ return null;
8
+ }
9
+ let idAttribute = attributes.find(a => a.name === 'id');
10
+ if (!idAttribute) {
11
+ // if no id, try with code
12
+ idAttribute = attributes.find(a => a.name === 'code');
13
+ if (!idAttribute) {
14
+ // if no id or code, take the first attribute
15
+ idAttribute = attributes[0];
16
+ }
17
+ }
18
+ return idAttribute?.name ?? null;
19
+ }
20
+ static findTitleAttribute(classType) {
21
+ const objSerializer = ObjectSerializer.get();
22
+ const attributes = objSerializer.findAttributesDefinitionByClassType(classType);
23
+ if (!attributes) {
24
+ return null;
25
+ }
26
+ let titleAttribute = attributes.find(a => a.type === 'string' && a.name === 'name');
27
+ if (!titleAttribute) {
28
+ // if no name, try with title
29
+ titleAttribute = attributes.find(a => a.type === 'string' && a.name === 'title');
30
+ if (!titleAttribute) {
31
+ // if no name or title, take the first attribute
32
+ titleAttribute = attributes[0];
33
+ }
34
+ }
35
+ return titleAttribute?.name ?? null;
36
+ }
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9saWIvdXRpbHMvbW9kZWwudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFOUMsTUFBTSxPQUFPLFNBQVM7SUFDWCxNQUFNLENBQUMsZUFBZSxDQUFJLFNBQXVCO1FBQ3BELE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzdDLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxtQ0FBbUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2IsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELElBQUksV0FBVyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDZCwwQkFBMEI7WUFDMUIsV0FBVyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ2QsNkNBQTZDO2dCQUM3QyxXQUFXLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQy9CO1NBQ0o7UUFFRCxPQUFPLFdBQVcsRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDO0lBQ3JDLENBQUM7SUFFTSxNQUFNLENBQUMsa0JBQWtCLENBQUksU0FBdUI7UUFDdkQsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0MsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLG1DQUFtQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDYixPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsSUFBSSxjQUFjLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNqQiw2QkFBNkI7WUFDN0IsY0FBYyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDO1lBQ2pGLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ2pCLGdEQUFnRDtnQkFDaEQsY0FBYyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNsQztTQUNKO1FBRUQsT0FBTyxjQUFjLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQztJQUN4QyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NsYXNzVHlwZX0gZnJvbSAnLi4vbW9kZWxzL3R5cGVzJztcblxuaW1wb3J0IHtPYmplY3RTZXJpYWxpemVyfSBmcm9tICcuLi9hcGkvdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgTW9kZWxVdGlsIHtcbiAgICBwdWJsaWMgc3RhdGljIGZpbmRJZEF0dHJpYnV0ZTxUPihjbGFzc1R5cGU6IENsYXNzVHlwZTxUPik6IHN0cmluZ3xudWxsIHtcbiAgICAgICAgY29uc3Qgb2JqU2VyaWFsaXplciA9IE9iamVjdFNlcmlhbGl6ZXIuZ2V0KCk7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBvYmpTZXJpYWxpemVyLmZpbmRBdHRyaWJ1dGVzRGVmaW5pdGlvbkJ5Q2xhc3NUeXBlKGNsYXNzVHlwZSk7XG4gICAgICAgIGlmICghYXR0cmlidXRlcykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaWRBdHRyaWJ1dGUgPSBhdHRyaWJ1dGVzLmZpbmQoYSA9PiBhLm5hbWUgPT09ICdpZCcpO1xuICAgICAgICBpZiAoIWlkQXR0cmlidXRlKSB7XG4gICAgICAgICAgICAvLyBpZiBubyBpZCwgdHJ5IHdpdGggY29kZVxuICAgICAgICAgICAgaWRBdHRyaWJ1dGUgPSBhdHRyaWJ1dGVzLmZpbmQoYSA9PiBhLm5hbWUgPT09ICdjb2RlJyk7XG4gICAgICAgICAgICBpZiAoIWlkQXR0cmlidXRlKSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgbm8gaWQgb3IgY29kZSwgdGFrZSB0aGUgZmlyc3QgYXR0cmlidXRlXG4gICAgICAgICAgICAgICAgaWRBdHRyaWJ1dGUgPSBhdHRyaWJ1dGVzWzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGlkQXR0cmlidXRlPy5uYW1lID8/IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmaW5kVGl0bGVBdHRyaWJ1dGU8VD4oY2xhc3NUeXBlOiBDbGFzc1R5cGU8VD4pOiBzdHJpbmd8bnVsbCB7XG4gICAgICAgIGNvbnN0IG9ialNlcmlhbGl6ZXIgPSBPYmplY3RTZXJpYWxpemVyLmdldCgpO1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gb2JqU2VyaWFsaXplci5maW5kQXR0cmlidXRlc0RlZmluaXRpb25CeUNsYXNzVHlwZShjbGFzc1R5cGUpO1xuICAgICAgICBpZiAoIWF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHRpdGxlQXR0cmlidXRlID0gYXR0cmlidXRlcy5maW5kKGEgPT4gYS50eXBlID09PSAnc3RyaW5nJyAmJiBhLm5hbWUgPT09ICduYW1lJyk7XG4gICAgICAgIGlmICghdGl0bGVBdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgIC8vIGlmIG5vIG5hbWUsIHRyeSB3aXRoIHRpdGxlXG4gICAgICAgICAgICB0aXRsZUF0dHJpYnV0ZSA9IGF0dHJpYnV0ZXMuZmluZChhID0+IGEudHlwZSA9PT0gJ3N0cmluZycgJiYgYS5uYW1lID09PSAndGl0bGUnKTtcbiAgICAgICAgICAgIGlmICghdGl0bGVBdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgICAgICAvLyBpZiBubyBuYW1lIG9yIHRpdGxlLCB0YWtlIHRoZSBmaXJzdCBhdHRyaWJ1dGVcbiAgICAgICAgICAgICAgICB0aXRsZUF0dHJpYnV0ZSA9IGF0dHJpYnV0ZXNbMF07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGl0bGVBdHRyaWJ1dGU/Lm5hbWUgPz8gbnVsbDtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,43 @@
1
+ import 'reflect-metadata';
2
+ import { typeNameDecoratorPropertyName } from '../models/types';
3
+ export class TypeUtil {
4
+ static defineReflectTypeName(targetType, typeName) {
5
+ if (!typeName) {
6
+ typeName = TypeUtil.getDecoratorTypeName(targetType);
7
+ if (!typeName) {
8
+ console.warn(`Type name not provided for target ${targetType}, nor could be retrieved from decorator. Type name was not registered to reflect.`);
9
+ return;
10
+ }
11
+ }
12
+ // @ts-ignore
13
+ if (!Reflect.hasOwnMetadata(typeNameDecoratorPropertyName, targetType)) {
14
+ // @ts-ignore
15
+ Reflect.defineMetadata(typeNameDecoratorPropertyName, typeName, targetType);
16
+ }
17
+ }
18
+ /**
19
+ * Gets type name from either decorator or reflect metadata.
20
+ * @param type Class.
21
+ */
22
+ static findTypeName(type) {
23
+ let decoratorName = TypeUtil.getDecoratorTypeName(type);
24
+ if (decoratorName) {
25
+ return decoratorName;
26
+ }
27
+ // @ts-ignore
28
+ decoratorName = Reflect.getMetadata(typeNameDecoratorPropertyName, type);
29
+ if (decoratorName) {
30
+ return decoratorName;
31
+ }
32
+ return type.name;
33
+ }
34
+ /**
35
+ * Get value from decorator defined property name
36
+ * @param type Class.
37
+ */
38
+ static getDecoratorTypeName(type) {
39
+ // @ts-ignore
40
+ return type[typeNameDecoratorPropertyName];
41
+ }
42
+ }
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW5nLWNvbW1vbnMvc3JjL2xpYi91dGlscy90eXBlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEVBQVksNkJBQTZCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUV6RSxNQUFNLE9BQU8sUUFBUTtJQUVWLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxVQUEwQixFQUFFLFFBQWlCO1FBQzdFLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDWCxRQUFRLEdBQUcsUUFBUSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsVUFBVSxtRkFBbUYsQ0FBQyxDQUFDO2dCQUNqSixPQUFPO2FBQ1Y7U0FDSjtRQUNELGFBQWE7UUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyw2QkFBNkIsRUFBRSxVQUFVLENBQUMsRUFBRTtZQUNwRSxhQUFhO1lBQ2IsT0FBTyxDQUFDLGNBQWMsQ0FBQyw2QkFBNkIsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDL0U7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFvQjtRQUMzQyxJQUFJLGFBQWEsR0FBRyxRQUFRLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEQsSUFBSSxhQUFhLEVBQUU7WUFDZixPQUFPLGFBQWEsQ0FBQztTQUN4QjtRQUNELGFBQWE7UUFDYixhQUFhLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyw2QkFBNkIsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN6RSxJQUFJLGFBQWEsRUFBRTtZQUNmLE9BQU8sYUFBYSxDQUFDO1NBQ3hCO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBYztRQUM3QyxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnO1xuXG5pbXBvcnQge0NsYXNzVHlwZSwgdHlwZU5hbWVEZWNvcmF0b3JQcm9wZXJ0eU5hbWV9IGZyb20gJy4uL21vZGVscy90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBUeXBlVXRpbCB7XG5cbiAgICBwdWJsaWMgc3RhdGljIGRlZmluZVJlZmxlY3RUeXBlTmFtZSh0YXJnZXRUeXBlOiBDbGFzc1R5cGU8YW55PiwgdHlwZU5hbWU/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF0eXBlTmFtZSkge1xuICAgICAgICAgICAgdHlwZU5hbWUgPSBUeXBlVXRpbC5nZXREZWNvcmF0b3JUeXBlTmFtZSh0YXJnZXRUeXBlKTtcbiAgICAgICAgICAgIGlmICghdHlwZU5hbWUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFR5cGUgbmFtZSBub3QgcHJvdmlkZWQgZm9yIHRhcmdldCAke3RhcmdldFR5cGV9LCBub3IgY291bGQgYmUgcmV0cmlldmVkIGZyb20gZGVjb3JhdG9yLiBUeXBlIG5hbWUgd2FzIG5vdCByZWdpc3RlcmVkIHRvIHJlZmxlY3QuYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKCFSZWZsZWN0Lmhhc093bk1ldGFkYXRhKHR5cGVOYW1lRGVjb3JhdG9yUHJvcGVydHlOYW1lLCB0YXJnZXRUeXBlKSkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YSh0eXBlTmFtZURlY29yYXRvclByb3BlcnR5TmFtZSwgdHlwZU5hbWUsIHRhcmdldFR5cGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0eXBlIG5hbWUgZnJvbSBlaXRoZXIgZGVjb3JhdG9yIG9yIHJlZmxlY3QgbWV0YWRhdGEuXG4gICAgICogQHBhcmFtIHR5cGUgQ2xhc3MuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBmaW5kVHlwZU5hbWUodHlwZTogQ2xhc3NUeXBlPGFueT4pOiBzdHJpbmcge1xuICAgICAgICBsZXQgZGVjb3JhdG9yTmFtZSA9IFR5cGVVdGlsLmdldERlY29yYXRvclR5cGVOYW1lKHR5cGUpO1xuICAgICAgICBpZiAoZGVjb3JhdG9yTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIGRlY29yYXRvck5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBkZWNvcmF0b3JOYW1lID0gUmVmbGVjdC5nZXRNZXRhZGF0YSh0eXBlTmFtZURlY29yYXRvclByb3BlcnR5TmFtZSwgdHlwZSk7XG4gICAgICAgIGlmIChkZWNvcmF0b3JOYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVjb3JhdG9yTmFtZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHlwZS5uYW1lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB2YWx1ZSBmcm9tIGRlY29yYXRvciBkZWZpbmVkIHByb3BlcnR5IG5hbWVcbiAgICAgKiBAcGFyYW0gdHlwZSBDbGFzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldERlY29yYXRvclR5cGVOYW1lKHR5cGU6IEZ1bmN0aW9uKTogc3RyaW5nfHVuZGVmaW5lZCB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcmV0dXJuIHR5cGVbdHlwZU5hbWVEZWNvcmF0b3JQcm9wZXJ0eU5hbWVdO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaXVzaW5jLW1uZy1jb21tb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvbW5nLWNvbW1vbnMvc3JjL21lZGl1c2luYy1tbmctY29tbW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,33 @@
1
+ /*
2
+ * Public API Surface of mng-commons
3
+ */
4
+ // module
5
+ export * from './lib/mng-commons.module';
6
+ // services
7
+ export * from './lib/api/services';
8
+ export * from './lib/services';
9
+ export * from './lib/services/providers';
10
+ // utils
11
+ export * from './lib/api/utils';
12
+ export * from './lib/utils';
13
+ // components
14
+ export * from './lib/components/action';
15
+ export * from './lib/components/form';
16
+ export * from './lib/components/form/formly/fields';
17
+ export * from './lib/components/form/formly/wrappers';
18
+ export * from './lib/components/layout';
19
+ export * from './lib/components/tableview';
20
+ // directives
21
+ export * from './lib/directives';
22
+ // pipes
23
+ export * from './lib/pipes';
24
+ // models
25
+ export * from './lib/api/models';
26
+ export * from './lib/models/config';
27
+ export * from './lib/models/descriptors';
28
+ export * from './lib/models/events';
29
+ export * from './lib/models/interfaces';
30
+ export * from './lib/models/providers';
31
+ export * from './lib/models/types';
32
+ export * from './lib/models/validators';
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsU0FBUztBQUNULGNBQWMsMEJBQTBCLENBQUM7QUFFekMsV0FBVztBQUNYLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDBCQUEwQixDQUFDO0FBRXpDLFFBQVE7QUFDUixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsYUFBYSxDQUFDO0FBRTVCLGFBQWE7QUFDYixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxhQUFhO0FBQ2IsY0FBYyxrQkFBa0IsQ0FBQztBQUVqQyxRQUFRO0FBQ1IsY0FBYyxhQUFhLENBQUM7QUFFNUIsU0FBUztBQUNULGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgbW5nLWNvbW1vbnNcbiAqL1xuXG4vLyBtb2R1bGVcbmV4cG9ydCAqIGZyb20gJy4vbGliL21uZy1jb21tb25zLm1vZHVsZSc7XG5cbi8vIHNlcnZpY2VzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvc2VydmljZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvcHJvdmlkZXJzJztcblxuLy8gdXRpbHNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS91dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscyc7XG5cbi8vIGNvbXBvbmVudHNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybWx5L2ZpZWxkcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybWx5L3dyYXBwZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGF5b3V0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGFibGV2aWV3JztcblxuLy8gZGlyZWN0aXZlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcyc7XG5cbi8vIHBpcGVzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcyc7XG5cbi8vIG1vZGVsc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL21vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9kZXNjcmlwdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZXZlbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9pbnRlcmZhY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9wcm92aWRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy92YWxpZGF0b3JzJztcbiJdfQ==