@mediusinc/mng-commons 0.2.1-rc → 0.2.4

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 (327) hide show
  1. package/esm2020/lib/api/models/builders/query-param.builder.mjs +48 -0
  2. package/esm2020/lib/api/models/filter-match-type.model.mjs +26 -0
  3. package/esm2020/lib/api/models/filter-param.model.mjs +46 -0
  4. package/esm2020/lib/api/models/index.mjs +9 -0
  5. package/esm2020/lib/api/models/mappers.mjs +17 -0
  6. package/esm2020/lib/api/models/query-mode.model.mjs +19 -0
  7. package/esm2020/lib/api/models/query-param.model.mjs +69 -0
  8. package/esm2020/lib/api/models/query-result.model.mjs +45 -0
  9. package/esm2020/lib/api/models/serialization.model.mjs +2 -0
  10. package/esm2020/lib/api/services/crud-api.abstract.service.mjs +72 -0
  11. package/esm2020/lib/api/services/index.mjs +2 -0
  12. package/esm2020/lib/api/utils/index.mjs +3 -0
  13. package/esm2020/lib/api/utils/medius-rest.util.mjs +122 -0
  14. package/esm2020/lib/api/utils/object-serializer.util.mjs +226 -0
  15. package/esm2020/lib/components/action/action.component.mjs +65 -0
  16. package/esm2020/lib/components/action/dialog/action-dialog.component.mjs +148 -0
  17. package/esm2020/lib/components/action/index.mjs +4 -0
  18. package/esm2020/lib/components/action/models/action-confirmation-service.model.mjs +2 -0
  19. package/esm2020/lib/components/action/models/action-execution.model.mjs +58 -0
  20. package/esm2020/lib/components/action/models/index.mjs +3 -0
  21. package/esm2020/lib/components/action/route/action-route.component.mjs +144 -0
  22. package/esm2020/lib/components/form/autocomplete/autocomplete.component.mjs +114 -0
  23. package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +113 -0
  24. package/esm2020/lib/components/form/editor/form-editor.component.mjs +141 -0
  25. package/esm2020/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +19 -0
  26. package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +19 -0
  27. package/esm2020/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +16 -0
  28. package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +26 -0
  29. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +109 -0
  30. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +122 -0
  31. package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +17 -0
  32. package/esm2020/lib/components/form/formly/fields/index.mjs +8 -0
  33. package/esm2020/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +17 -0
  34. package/esm2020/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.mjs +16 -0
  35. package/esm2020/lib/components/form/formly/wrappers/index.mjs +3 -0
  36. package/esm2020/lib/components/form/index.mjs +4 -0
  37. package/esm2020/lib/components/form/models/form-editor.event.mjs +7 -0
  38. package/esm2020/lib/components/form/models/index.mjs +2 -0
  39. package/esm2020/lib/components/layout/breadcrumb.component.mjs +17 -0
  40. package/esm2020/lib/components/layout/footer.component.mjs +17 -0
  41. package/esm2020/lib/components/layout/index.mjs +7 -0
  42. package/esm2020/lib/components/layout/main-layout.component.mjs +54 -0
  43. package/esm2020/lib/components/layout/menu-item.component.mjs +173 -0
  44. package/esm2020/lib/components/layout/menu.component.mjs +20 -0
  45. package/esm2020/lib/components/layout/services/index.mjs +2 -0
  46. package/esm2020/lib/components/layout/services/main-layout.component.service.mjs +190 -0
  47. package/esm2020/lib/components/layout/topbar.component.mjs +59 -0
  48. package/esm2020/lib/components/tableview/index.mjs +6 -0
  49. package/esm2020/lib/components/tableview/models/index.mjs +2 -0
  50. package/esm2020/lib/components/tableview/models/table.event.mjs +16 -0
  51. package/esm2020/lib/components/tableview/route/tableview-route.abstract.component.mjs +24 -0
  52. package/esm2020/lib/components/tableview/services/index.mjs +2 -0
  53. package/esm2020/lib/components/tableview/services/tableview.component.service.mjs +17 -0
  54. package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +74 -0
  55. package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +25 -0
  56. package/esm2020/lib/components/tableview/table/table.component.mjs +307 -0
  57. package/esm2020/lib/components/tableview/tableview.component.mjs +82 -0
  58. package/esm2020/lib/config/formly.config.mjs +136 -0
  59. package/esm2020/lib/config/index.mjs +2 -0
  60. package/esm2020/lib/config/models/index.mjs +2 -0
  61. package/esm2020/lib/config/models/mng-config.model.mjs +2 -0
  62. package/esm2020/lib/data-providers/base.data-provider.mjs +24 -0
  63. package/esm2020/lib/data-providers/editor.data-provider.mjs +37 -0
  64. package/esm2020/lib/data-providers/index.mjs +6 -0
  65. package/esm2020/lib/data-providers/lookup.data-provider.mjs +16 -0
  66. package/esm2020/lib/data-providers/table.data-provider.mjs +2 -0
  67. package/esm2020/lib/data-providers/tableview.data-provider.mjs +17 -0
  68. package/esm2020/lib/descriptors/action.descriptor.mjs +332 -0
  69. package/esm2020/lib/descriptors/editor.descriptor.mjs +670 -0
  70. package/esm2020/lib/descriptors/field.validator.mjs +21 -0
  71. package/esm2020/lib/descriptors/index.mjs +8 -0
  72. package/esm2020/lib/descriptors/lookup.descriptor.mjs +2 -0
  73. package/esm2020/lib/descriptors/model.descriptor.mjs +34 -0
  74. package/esm2020/lib/descriptors/table.descriptor.mjs +401 -0
  75. package/esm2020/lib/descriptors/tableview.descriptor.mjs +131 -0
  76. package/esm2020/lib/directives/component.directive.mjs +23 -0
  77. package/esm2020/lib/directives/index.mjs +3 -0
  78. package/esm2020/lib/directives/template.directive.mjs +29 -0
  79. package/esm2020/lib/mng-commons.module.mjs +410 -0
  80. package/esm2020/lib/models/index.mjs +3 -0
  81. package/esm2020/lib/models/router.model.mjs +2 -0
  82. package/esm2020/lib/models/user.model.mjs +2 -0
  83. package/esm2020/lib/pipes/boolean.pipe.mjs +22 -0
  84. package/esm2020/lib/pipes/index.mjs +3 -0
  85. package/esm2020/lib/pipes/property-path.pipe.mjs +36 -0
  86. package/esm2020/lib/services/action.service.mjs +269 -0
  87. package/esm2020/lib/services/commons.service.mjs +354 -0
  88. package/esm2020/lib/services/configuration.service.mjs +78 -0
  89. package/esm2020/lib/services/index.mjs +5 -0
  90. package/esm2020/lib/services/navigation.service.mjs +48 -0
  91. package/esm2020/lib/services/providers/commons-init.provider.mjs +4 -0
  92. package/esm2020/lib/services/providers/config-service.provider.mjs +20 -0
  93. package/esm2020/lib/services/providers/formly-config.provider.mjs +31 -0
  94. package/esm2020/lib/services/providers/index.mjs +4 -0
  95. package/esm2020/lib/services/tokens/browser-storage.token.mjs +6 -0
  96. package/esm2020/lib/services/tokens/index.mjs +3 -0
  97. package/esm2020/lib/services/tokens/module-config.token.mjs +3 -0
  98. package/esm2020/lib/types/index.mjs +3 -0
  99. package/esm2020/lib/types/type.decorator.mjs +7 -0
  100. package/esm2020/lib/types/type.model.mjs +2 -0
  101. package/esm2020/lib/utils/editor-formly.util.mjs +176 -0
  102. package/esm2020/lib/utils/i18n.util.mjs +125 -0
  103. package/esm2020/lib/utils/index.mjs +6 -0
  104. package/esm2020/lib/utils/model.util.mjs +57 -0
  105. package/esm2020/lib/utils/toast.util.mjs +39 -0
  106. package/esm2020/lib/utils/type.util.mjs +39 -0
  107. package/esm2020/mediusinc-mng-commons.mjs +5 -0
  108. package/esm2020/public-api.mjs +36 -0
  109. package/fesm2015/mediusinc-mng-commons.mjs +6252 -0
  110. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -0
  111. package/fesm2020/mediusinc-mng-commons.mjs +6177 -0
  112. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -0
  113. package/lib/api/models/builders/query-param.builder.d.ts +11 -0
  114. package/{src/lib/api/models/query-mode.model.ts → lib/api/models/filter-match-type.model.d.ts} +11 -6
  115. package/lib/api/models/filter-param.model.d.ts +23 -0
  116. package/{src/lib/api/models/index.ts → lib/api/models/index.d.ts} +0 -2
  117. package/lib/api/models/mappers.d.ts +6 -0
  118. package/lib/api/models/query-mode.model.d.ts +16 -0
  119. package/lib/api/models/query-param.model.d.ts +31 -0
  120. package/lib/api/models/query-result.model.d.ts +36 -0
  121. package/{src/lib/api/models/serialization.model.ts → lib/api/models/serialization.model.d.ts} +0 -1
  122. package/lib/api/services/crud-api.abstract.service.d.ts +23 -0
  123. package/{src/lib/api/services/index.ts → lib/api/services/index.d.ts} +0 -0
  124. package/{src/lib/api/utils/index.ts → lib/api/utils/index.d.ts} +0 -0
  125. package/lib/api/utils/medius-rest.util.d.ts +12 -0
  126. package/lib/api/utils/object-serializer.util.d.ts +30 -0
  127. package/lib/components/action/action.component.d.ts +36 -0
  128. package/lib/components/action/dialog/action-dialog.component.d.ts +46 -0
  129. package/{src/lib/components/action/index.ts → lib/components/action/index.d.ts} +0 -0
  130. package/{src/lib/components/action/models/action-confirmation-service.model.ts → lib/components/action/models/action-confirmation-service.model.d.ts} +2 -3
  131. package/lib/components/action/models/action-execution.model.d.ts +53 -0
  132. package/{src/lib/components/action/models/index.ts → lib/components/action/models/index.d.ts} +0 -0
  133. package/lib/components/action/route/action-route.component.d.ts +32 -0
  134. package/lib/components/form/autocomplete/autocomplete.component.d.ts +36 -0
  135. package/lib/components/form/dropdown/dropdown.component.d.ts +34 -0
  136. package/lib/components/form/editor/form-editor.component.d.ts +39 -0
  137. package/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +11 -0
  138. package/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +11 -0
  139. package/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +6 -0
  140. package/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.d.ts +12 -0
  141. package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +17 -0
  142. package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +36 -0
  143. package/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +6 -0
  144. package/{src/lib/components/form/formly/fields/index.ts → lib/components/form/formly/fields/index.d.ts} +0 -0
  145. package/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +8 -0
  146. package/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.d.ts +8 -0
  147. package/{src/lib/components/form/formly/wrappers/index.ts → lib/components/form/formly/wrappers/index.d.ts} +0 -0
  148. package/{src/lib/components/form/index.ts → lib/components/form/index.d.ts} +0 -0
  149. package/lib/components/form/models/form-editor.event.d.ts +5 -0
  150. package/{src/lib/components/form/models/index.ts → lib/components/form/models/index.d.ts} +0 -0
  151. package/lib/components/layout/breadcrumb.component.d.ts +8 -0
  152. package/lib/components/layout/footer.component.d.ts +9 -0
  153. package/{src/lib/components/layout/index.ts → lib/components/layout/index.d.ts} +0 -0
  154. package/lib/components/layout/main-layout.component.d.ts +21 -0
  155. package/lib/components/layout/menu-item.component.d.ts +29 -0
  156. package/lib/components/layout/menu.component.d.ts +10 -0
  157. package/{src/lib/components/layout/services/index.ts → lib/components/layout/services/index.d.ts} +0 -0
  158. package/lib/components/layout/services/main-layout.component.service.d.ts +65 -0
  159. package/lib/components/layout/topbar.component.d.ts +25 -0
  160. package/{src/lib/components/tableview/index.ts → lib/components/tableview/index.d.ts} +0 -0
  161. package/{src/lib/components/tableview/models/index.ts → lib/components/tableview/models/index.d.ts} +0 -0
  162. package/lib/components/tableview/models/table.event.d.ts +17 -0
  163. package/lib/components/tableview/route/tableview-route.abstract.component.d.ts +14 -0
  164. package/{src/lib/components/tableview/services/index.ts → lib/components/tableview/services/index.d.ts} +0 -0
  165. package/lib/components/tableview/services/tableview.component.service.d.ts +13 -0
  166. package/lib/components/tableview/table/column-filter/column-filter.component.d.ts +22 -0
  167. package/lib/components/tableview/table/column-value/column-value.component.d.ts +12 -0
  168. package/lib/components/tableview/table/table.component.d.ts +79 -0
  169. package/lib/components/tableview/tableview.component.d.ts +35 -0
  170. package/lib/config/formly.config.d.ts +14 -0
  171. package/{src/lib/config/index.ts → lib/config/index.d.ts} +0 -0
  172. package/{src/lib/config/models/index.ts → lib/config/models/index.d.ts} +0 -0
  173. package/{src/lib/config/models/mng-config.model.ts → lib/config/models/mng-config.model.d.ts} +8 -9
  174. package/lib/data-providers/base.data-provider.d.ts +17 -0
  175. package/lib/data-providers/editor.data-provider.d.ts +25 -0
  176. package/{src/lib/data-providers/index.ts → lib/data-providers/index.d.ts} +0 -0
  177. package/lib/data-providers/lookup.data-provider.d.ts +14 -0
  178. package/{src/lib/data-providers/table.data-provider.ts → lib/data-providers/table.data-provider.d.ts} +3 -5
  179. package/lib/data-providers/tableview.data-provider.d.ts +15 -0
  180. package/lib/descriptors/action.descriptor.d.ts +148 -0
  181. package/lib/descriptors/editor.descriptor.d.ts +255 -0
  182. package/lib/descriptors/field.validator.d.ts +18 -0
  183. package/{src/lib/descriptors/index.ts → lib/descriptors/index.d.ts} +0 -0
  184. package/{src/lib/descriptors/lookup.descriptor.ts → lib/descriptors/lookup.descriptor.d.ts} +6 -9
  185. package/lib/descriptors/model.descriptor.d.ts +15 -0
  186. package/lib/descriptors/table.descriptor.d.ts +164 -0
  187. package/lib/descriptors/tableview.descriptor.d.ts +39 -0
  188. package/lib/directives/component.directive.d.ts +11 -0
  189. package/{src/lib/directives/index.ts → lib/directives/index.d.ts} +0 -0
  190. package/lib/directives/template.directive.d.ts +13 -0
  191. package/lib/mng-commons.module.d.ts +79 -0
  192. package/{src/lib/models/index.ts → lib/models/index.d.ts} +0 -0
  193. package/lib/models/router.model.d.ts +14 -0
  194. package/{src/lib/models/user.model.ts → lib/models/user.model.d.ts} +2 -3
  195. package/lib/pipes/boolean.pipe.d.ts +7 -0
  196. package/{src/lib/pipes/index.ts → lib/pipes/index.d.ts} +0 -0
  197. package/lib/pipes/property-path.pipe.d.ts +7 -0
  198. package/lib/services/action.service.d.ts +92 -0
  199. package/lib/services/commons.service.d.ts +72 -0
  200. package/lib/services/configuration.service.d.ts +35 -0
  201. package/{src/lib/services/index.ts → lib/services/index.d.ts} +0 -0
  202. package/lib/services/navigation.service.d.ts +14 -0
  203. package/lib/services/providers/commons-init.provider.d.ts +2 -0
  204. package/lib/services/providers/config-service.provider.d.ts +5 -0
  205. package/lib/services/providers/formly-config.provider.d.ts +4 -0
  206. package/{src/lib/services/providers/index.ts → lib/services/providers/index.d.ts} +0 -0
  207. package/lib/services/tokens/browser-storage.token.d.ts +2 -0
  208. package/{src/lib/services/tokens/index.ts → lib/services/tokens/index.d.ts} +0 -0
  209. package/lib/services/tokens/module-config.token.d.ts +3 -0
  210. package/{src/lib/types/index.ts → lib/types/index.d.ts} +0 -0
  211. package/lib/types/type.decorator.d.ts +2 -0
  212. package/lib/types/type.model.d.ts +10 -0
  213. package/lib/utils/editor-formly.util.d.ts +9 -0
  214. package/lib/utils/i18n.util.d.ts +18 -0
  215. package/{src/lib/utils/index.ts → lib/utils/index.d.ts} +0 -0
  216. package/lib/utils/model.util.d.ts +7 -0
  217. package/lib/utils/toast.util.d.ts +13 -0
  218. package/lib/utils/type.util.d.ts +15 -0
  219. package/mediusinc-mng-commons.d.ts +5 -0
  220. package/package.json +27 -6
  221. package/{src/public-api.ts → public-api.d.ts} +0 -17
  222. package/.browserslistrc +0 -16
  223. package/karma.conf.js +0 -51
  224. package/ng-package.json +0 -14
  225. package/src/lib/api/models/builders/query-param.builder.ts +0 -54
  226. package/src/lib/api/models/filter-match-type.model.ts +0 -25
  227. package/src/lib/api/models/filter-param.model.ts +0 -59
  228. package/src/lib/api/models/mappers.ts +0 -18
  229. package/src/lib/api/models/query-param.model.ts +0 -99
  230. package/src/lib/api/models/query-result.model.ts +0 -77
  231. package/src/lib/api/services/crud-api.abstract.service.ts +0 -113
  232. package/src/lib/api/utils/medius-rest.util.ts +0 -146
  233. package/src/lib/api/utils/object-serializer.util.ts +0 -227
  234. package/src/lib/components/action/action.component.html +0 -30
  235. package/src/lib/components/action/action.component.ts +0 -77
  236. package/src/lib/components/action/dialog/action-dialog.component.html +0 -26
  237. package/src/lib/components/action/dialog/action-dialog.component.ts +0 -171
  238. package/src/lib/components/action/models/action-execution.model.ts +0 -81
  239. package/src/lib/components/action/route/action-route.component.html +0 -1
  240. package/src/lib/components/action/route/action-route.component.ts +0 -159
  241. package/src/lib/components/form/autocomplete/autocomplete.component.html +0 -16
  242. package/src/lib/components/form/autocomplete/autocomplete.component.ts +0 -113
  243. package/src/lib/components/form/dropdown/dropdown.component.html +0 -29
  244. package/src/lib/components/form/dropdown/dropdown.component.ts +0 -109
  245. package/src/lib/components/form/editor/form-editor.component.html +0 -5
  246. package/src/lib/components/form/editor/form-editor.component.ts +0 -149
  247. package/src/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.html +0 -7
  248. package/src/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.ts +0 -21
  249. package/src/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.html +0 -9
  250. package/src/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.ts +0 -22
  251. package/src/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.html +0 -8
  252. package/src/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.ts +0 -10
  253. package/src/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.html +0 -56
  254. package/src/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.ts +0 -22
  255. package/src/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.html +0 -13
  256. package/src/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.scss +0 -4
  257. package/src/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.ts +0 -114
  258. package/src/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.html +0 -37
  259. package/src/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.ts +0 -133
  260. package/src/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.html +0 -10
  261. package/src/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.ts +0 -10
  262. package/src/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.html +0 -7
  263. package/src/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.ts +0 -13
  264. package/src/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.html +0 -6
  265. package/src/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.ts +0 -13
  266. package/src/lib/components/form/models/form-editor.event.ts +0 -7
  267. package/src/lib/components/layout/breadcrumb.component.html +0 -5
  268. package/src/lib/components/layout/breadcrumb.component.ts +0 -12
  269. package/src/lib/components/layout/footer.component.html +0 -7
  270. package/src/lib/components/layout/footer.component.ts +0 -15
  271. package/src/lib/components/layout/main-layout.component.html +0 -26
  272. package/src/lib/components/layout/main-layout.component.ts +0 -54
  273. package/src/lib/components/layout/menu-item.component.html +0 -41
  274. package/src/lib/components/layout/menu-item.component.ts +0 -170
  275. package/src/lib/components/layout/menu.component.html +0 -27
  276. package/src/lib/components/layout/menu.component.ts +0 -17
  277. package/src/lib/components/layout/services/main-layout.component.service.ts +0 -231
  278. package/src/lib/components/layout/topbar.component.html +0 -38
  279. package/src/lib/components/layout/topbar.component.ts +0 -62
  280. package/src/lib/components/tableview/models/table.event.ts +0 -22
  281. package/src/lib/components/tableview/route/tableview-route.abstract.component.ts +0 -31
  282. package/src/lib/components/tableview/services/tableview.component.service.ts +0 -22
  283. package/src/lib/components/tableview/table/column-filter/column-filter.component.html +0 -36
  284. package/src/lib/components/tableview/table/column-filter/column-filter.component.ts +0 -70
  285. package/src/lib/components/tableview/table/column-value/column-value.component.html +0 -14
  286. package/src/lib/components/tableview/table/column-value/column-value.component.ts +0 -19
  287. package/src/lib/components/tableview/table/table.component.html +0 -110
  288. package/src/lib/components/tableview/table/table.component.ts +0 -327
  289. package/src/lib/components/tableview/tableview.component.html +0 -37
  290. package/src/lib/components/tableview/tableview.component.ts +0 -78
  291. package/src/lib/config/formly.config.ts +0 -154
  292. package/src/lib/data-providers/base.data-provider.ts +0 -42
  293. package/src/lib/data-providers/editor.data-provider.ts +0 -60
  294. package/src/lib/data-providers/lookup.data-provider.ts +0 -29
  295. package/src/lib/data-providers/tableview.data-provider.ts +0 -29
  296. package/src/lib/descriptors/action.descriptor.ts +0 -439
  297. package/src/lib/descriptors/editor.descriptor.ts +0 -880
  298. package/src/lib/descriptors/field.validator.ts +0 -35
  299. package/src/lib/descriptors/model.descriptor.ts +0 -47
  300. package/src/lib/descriptors/table.descriptor.ts +0 -514
  301. package/src/lib/descriptors/tableview.descriptor.ts +0 -180
  302. package/src/lib/directives/component.directive.ts +0 -18
  303. package/src/lib/directives/template.directive.ts +0 -24
  304. package/src/lib/mng-commons.module.ts +0 -240
  305. package/src/lib/models/router.model.ts +0 -16
  306. package/src/lib/pipes/boolean.pipe.ts +0 -17
  307. package/src/lib/pipes/property-path.pipe.ts +0 -30
  308. package/src/lib/services/action.service.ts +0 -310
  309. package/src/lib/services/commons.service.ts +0 -407
  310. package/src/lib/services/configuration.service.ts +0 -98
  311. package/src/lib/services/navigation.service.ts +0 -42
  312. package/src/lib/services/providers/commons-init.provider.ts +0 -5
  313. package/src/lib/services/providers/config-service.provider.ts +0 -22
  314. package/src/lib/services/providers/formly-config.provider.ts +0 -39
  315. package/src/lib/services/tokens/browser-storage.token.ts +0 -9
  316. package/src/lib/services/tokens/module-config.token.ts +0 -5
  317. package/src/lib/types/type.decorator.ts +0 -7
  318. package/src/lib/types/type.model.ts +0 -12
  319. package/src/lib/utils/editor-formly.util.ts +0 -193
  320. package/src/lib/utils/i18n.util.ts +0 -148
  321. package/src/lib/utils/model.util.ts +0 -66
  322. package/src/lib/utils/toast.util.ts +0 -49
  323. package/src/lib/utils/type.util.ts +0 -44
  324. package/src/test.ts +0 -26
  325. package/tsconfig.lib.json +0 -15
  326. package/tsconfig.lib.prod.json +0 -10
  327. package/tsconfig.spec.json +0 -17
@@ -1,880 +0,0 @@
1
- import {Type} from '@angular/core';
2
- import {AbstractControl} from '@angular/forms';
3
- import {FormlyFieldConfig} from '@ngx-formly/core';
4
-
5
- import {Observable, of} from 'rxjs';
6
-
7
- import {ClassType, EnumMemberType} from '../types';
8
- import {ILookupDataProvider, ITableDataProvider, LookupDataProvider, TableviewDataProvider} from '../data-providers';
9
- import {ModelDescriptor, TableDescriptor, TableviewDescriptor, FieldValidator, ILookupDescriptor} from './';
10
-
11
- import {MediusQueryParam, MediusQueryResult} from '../api/models';
12
- import {ObjectSerializer} from '../api/utils';
13
- import {ModelUtil} from '../utils';
14
-
15
- export class EditorDescriptor<T> {
16
-
17
- public static readonly defaultGroupName = '_default';
18
-
19
- private readonly _model: ModelDescriptor<T>;
20
- private readonly _tabs: Array<FieldTabGroupDescriptor<T>> = [];
21
- private readonly _groups: Array<FieldGroupDescriptor<T>> = [];
22
- private readonly _fields: Array<AFieldDescriptor<any, T>> = [];
23
- private _currentTabGroup?: FieldTabGroupDescriptor<T>;
24
- private _currentGroup?: FieldGroupDescriptor<T>;
25
-
26
- private _disabled: boolean = false;
27
-
28
- constructor(modelType: ClassType<T>, idProperty?: string, titleProperty?: string) {
29
- this._model = new ModelDescriptor<T>(modelType, idProperty, titleProperty);
30
- }
31
-
32
- public get model() {
33
- return this._model;
34
- }
35
-
36
- public get tabs() {
37
- return this._tabs;
38
- }
39
-
40
- public get disabled() {
41
- return this._disabled;
42
- }
43
-
44
- public get fields() {
45
- return this._fields;
46
- }
47
-
48
- public createTabGroup(name: string, title?: string): FieldTabGroupDescriptor<T> {
49
- const tabGroup = new FieldTabGroupDescriptor<T>(this, name);
50
- if (title) {
51
- tabGroup.withTitle(title);
52
- }
53
- this.createTabGroupDescriptor(tabGroup);
54
- return tabGroup;
55
- }
56
-
57
- public createFieldGroup(name: string, title?: string): FieldGroupDescriptor<T> {
58
- const fieldGroup = new FieldGroupDescriptor<T>(this, name);
59
- if (title) {
60
- fieldGroup.withTitle(title);
61
- }
62
- this.createFieldGroupDescriptor(fieldGroup);
63
- return fieldGroup;
64
- }
65
-
66
- public addFieldDescriptor<FT>(field: AFieldDescriptor<FT, T>): this {
67
- this.createDefaultGroup();
68
- this._fields.push(field);
69
- this._currentGroup?.addField(field);
70
- return this;
71
- }
72
-
73
- public addField(property: string): FieldInputDescriptor<T> {
74
- const field = new FieldInputDescriptor<T>(this, property);
75
- this.addFieldDescriptor(field);
76
- return field;
77
- }
78
-
79
- public removeField(property: string): this {
80
- const fieldIdx = this._fields.findIndex(f => f.property === property);
81
- if (fieldIdx < 0) {
82
- throw new Error(`Field ${property} does not exist.`);
83
- }
84
- const field = this._fields[fieldIdx];
85
- if (field.group) {
86
- const groupFieldIdx = field.group.fields.findIndex(f => f instanceof AFieldDescriptor && f.property === property);
87
- if (groupFieldIdx >= 0) {
88
- field.group.fields.splice(groupFieldIdx, 1);
89
- }
90
- }
91
- this._fields.splice(fieldIdx, 1);
92
- return this;
93
- }
94
-
95
- public getField(property: string): AFieldDescriptor<any, T>|null {
96
- return this._fields.find(f => f.property === property) ?? null;
97
- }
98
-
99
- public addFieldLookup<FT>(property: string, modelType: ClassType<FT>): FieldLookupDescriptor<FT, T> {
100
- const field = new FieldLookupDescriptor<FT, T>(this, property, modelType);
101
- this.addFieldDescriptor(field);
102
- return field;
103
- }
104
-
105
- public addFieldLookupEnum(property: string, options: Array<EnumMemberType>): FieldLookupEnumDescriptor<T> {
106
- const propDef = ObjectSerializer.get().findAttributeDefinitionByClassType(this.model.type, property);
107
- if (!propDef) {
108
- throw new Error(`Property (attribute) definition not found for property ${property} on class type ${this._model.typeName}`);
109
- }
110
- const enumDef = ObjectSerializer.get().findEnum(propDef.type);
111
- if (!enumDef) {
112
- throw new Error(`Enum definition ${propDef.type} not found for property ${property} on class type ${this._model.typeName}`);
113
- }
114
- const field = new FieldLookupEnumDescriptor(this, property, propDef.type, options);
115
- this.addFieldDescriptor(field);
116
- return field;
117
- }
118
-
119
- public addFieldManyEditor<FT>(property: string, type: ClassType<FT>, tableviewDescriptor: TableviewDescriptor<FT>): FieldManyEditorDescriptor<FT, T> {
120
- const field = new FieldManyEditorDescriptor(this, property, type, tableviewDescriptor);
121
- this.addFieldDescriptor(field);
122
- return field;
123
- }
124
-
125
- public addFieldManyToManyEditor<FT>(property: string, type: ClassType<FT>, mainTableDescriptor: TableDescriptor<FT>, lookupTableDescriptor: TableDescriptor<FT>): FieldManyToManyEditorDescriptor<FT, T> {
126
- const field = new FieldManyToManyEditorDescriptor(this, property, type, mainTableDescriptor, lookupTableDescriptor);
127
- this.addFieldDescriptor(field);
128
- return field;
129
- }
130
-
131
- public withDisabled(disabled: boolean = true): this {
132
- this._disabled = disabled;
133
- return this;
134
- }
135
-
136
- public addValidator(name: string, expression: (control: AbstractControl) => boolean) {
137
- if (this._currentGroup) {
138
- this._currentGroup.withValidator(name, expression);
139
- }
140
- }
141
-
142
- public copy(): EditorDescriptor<T> {
143
- const editor = new EditorDescriptor<T>(this.model.type, this.model.idPropertyName, this.model.titlePropertyName);
144
- for (const tabGroup of this._tabs) {
145
- editor.createTabGroupDescriptor(tabGroup.copy());
146
- }
147
- for (const tabGroup of editor._tabs) {
148
- for (const fieldGroup of tabGroup.fields) {
149
- editor._fields.push(...fieldGroup.fields);
150
- }
151
- editor._groups.push(...tabGroup.fields);
152
- }
153
- editor._currentTabGroup = editor._tabs[editor._tabs.length - 1];
154
- editor._currentGroup = editor._currentTabGroup.fields[editor._currentTabGroup.fields.length - 1];
155
- editor._disabled = this._disabled;
156
- return editor;
157
- }
158
-
159
- private createTabGroupDescriptor(tabGroup: FieldTabGroupDescriptor<T>): this {
160
- this._currentTabGroup = tabGroup;
161
- this._tabs.push(tabGroup);
162
- return this;
163
- }
164
-
165
- public createFieldGroupDescriptor(fieldGroup: FieldGroupDescriptor<T>): this {
166
- this.createDefaultTabGroup();
167
- this._currentGroup = fieldGroup;
168
- this._groups.push(fieldGroup);
169
- this._currentTabGroup?.addField(fieldGroup);
170
- return this;
171
- }
172
-
173
- private createDefaultGroup() {
174
- this.createDefaultTabGroup();
175
- if (this._currentTabGroup?.fields.length === 0) {
176
- this.createFieldGroup(EditorDescriptor.defaultGroupName);
177
- }
178
- }
179
-
180
- private createDefaultTabGroup() {
181
- if (this._tabs.length === 0) {
182
- this.createTabGroup(EditorDescriptor.defaultGroupName);
183
- }
184
- }
185
- }
186
-
187
- export abstract class AGenericFieldDescriptor<ET> {
188
- protected readonly _editor: EditorDescriptor<ET>;
189
-
190
- protected constructor(editor: EditorDescriptor<ET>) {
191
- this._editor = editor;
192
- }
193
-
194
- public get editor() {
195
- return this._editor;
196
- }
197
- }
198
-
199
- export abstract class AFieldDescriptor<T, ET> extends AGenericFieldDescriptor<ET> {
200
-
201
- protected readonly _property: string;
202
- protected _group?: AFieldGroupDescriptor<ET>;
203
- protected _label?: string;
204
- protected _placeholder?: string;
205
- protected _required: boolean = false;
206
- protected _disabled: boolean = false;
207
- protected _className: string = '';
208
- protected _getter?: (item: ET) => T;
209
- protected _setter?: (item: ET, value: T) => void;
210
- protected _validators: Array<FieldValidator> = [];
211
-
212
- protected constructor(editor: EditorDescriptor<ET>, property: string) {
213
- super(editor);
214
- this._property = property;
215
- this._label = this._editor.model.typeName + '.properties.' + property;
216
- }
217
-
218
- public abstract copy(): AFieldDescriptor<T, ET>;
219
-
220
- public get property() {
221
- return this._property;
222
- }
223
-
224
- public get group() {
225
- return this._group;
226
- }
227
-
228
- public get label() {
229
- return this._label;
230
- }
231
-
232
- public get placeholder() {
233
- return this._placeholder;
234
- }
235
-
236
- public get required() {
237
- return this._required;
238
- }
239
-
240
- public get disabled() {
241
- return this._disabled;
242
- }
243
-
244
- public get className() {
245
- return this._className;
246
- }
247
-
248
- public get getter() {
249
- return this._getter;
250
- }
251
-
252
- public get setter() {
253
- return this._setter;
254
- }
255
-
256
- public get validators() {
257
- return this._validators;
258
- }
259
-
260
- public withLabel(label: string): this {
261
- this._label = label;
262
- return this;
263
- }
264
-
265
- public withPlaceholder(placeholder: string): this {
266
- this._placeholder = placeholder;
267
- return this;
268
- }
269
-
270
- public withRequired(required: boolean = true): this {
271
- this._required = required;
272
- return this;
273
- }
274
-
275
- public withDisabled(disabled: boolean = true): this {
276
- this._disabled = disabled;
277
- return this;
278
- }
279
-
280
- public withClassName(className: string): this {
281
- this._className = className;
282
- return this;
283
- }
284
-
285
- public withGetter(getter: (item: ET) => T): this {
286
- this._getter = getter;
287
- return this;
288
- }
289
-
290
- public withSetter(setter: (item: ET, value: T) => void): this {
291
- this._setter = setter;
292
- return this;
293
- }
294
-
295
- public withValidator(name: string, expression: (control: AbstractControl) => boolean,
296
- message: (err: any, field: FormlyFieldConfig) => string): this {
297
- this._validators.push(new FieldValidator(name, expression, message));
298
- return this;
299
- }
300
-
301
- protected copyFieldsTo(obj: AFieldDescriptor<T, ET>) {
302
- obj._label = this._label;
303
- obj._placeholder = this._placeholder;
304
- obj._required = this._required;
305
- obj._disabled = this._disabled;
306
- obj._className = this._className;
307
- obj._getter = this._getter;
308
- obj._setter = this._setter;
309
- obj._validators = this._validators;
310
- }
311
- }
312
-
313
- export class FieldInputDescriptor<ET> extends AFieldDescriptor<string|number|boolean|Date, ET> {
314
-
315
- private _fieldType: FieldInputDescriptor.TypeEnum = FieldInputDescriptor.TypeEnum.Text;
316
-
317
- // textarea specific properties
318
- private _rows?: number;
319
-
320
- // number specific properties
321
- private _numberMin?: number;
322
- private _numberMax?: number;
323
- private _numberStep?: number;
324
- private _numberMinFractionDigits?: number;
325
- private _numberMaxFractionDigits?: number;
326
-
327
- // radio specific properties
328
- private _radioOptions: Array<string> = [];
329
-
330
- // datepicker specific properties
331
- private _datePickerFormat?: string;
332
- private _datePickerMin?: Date;
333
- private _datePickerMax?: Date;
334
- private _datePickerShowTime: boolean = false;
335
-
336
- // input specific
337
- private _maxLength?: number;
338
- private _minLength?: number;
339
- private _pattern?: string | RegExp;
340
-
341
- constructor(editor: EditorDescriptor<ET>, property: string) {
342
- super(editor, property);
343
- }
344
-
345
- public get fieldType() {
346
- return this._fieldType;
347
- }
348
-
349
- public get numberStep() {
350
- return this._numberStep;
351
- }
352
-
353
- public get numberMin() {
354
- return this._numberMin;
355
- }
356
-
357
- public get numberMax() {
358
- return this._numberMax;
359
- }
360
-
361
- public get rows() {
362
- return this._rows;
363
- }
364
-
365
- public get numberMinFractionDigits() {
366
- return this._numberMinFractionDigits;
367
- }
368
-
369
- public get numberMaxFractionDigits() {
370
- return this._numberMaxFractionDigits;
371
- }
372
-
373
- public get radioOptions() {
374
- return this._radioOptions;
375
- }
376
-
377
- public get datePickerFormat() {
378
- return this._datePickerFormat;
379
- }
380
-
381
- public get datePickerMin() {
382
- return this._datePickerMin;
383
- }
384
-
385
- public get datePickerMax() {
386
- return this._datePickerMax;
387
- }
388
-
389
- public get datePickerShowTime() {
390
- return this._datePickerShowTime;
391
- }
392
-
393
- public get maxLength() {
394
- return this._maxLength;
395
- }
396
-
397
- public get minLength() {
398
- return this._minLength;
399
- }
400
-
401
- public get pattern() {
402
- return this._pattern;
403
- }
404
-
405
- public asText(minLength?: number, maxLength?: number, pattern?: string | RegExp): this {
406
- this._fieldType = FieldInputDescriptor.TypeEnum.Text;
407
- this._minLength = minLength;
408
- this._maxLength = maxLength;
409
- this._pattern = pattern;
410
- return this;
411
- }
412
-
413
- public asTextarea(rows: number = 3): this {
414
- this._fieldType = FieldInputDescriptor.TypeEnum.Textarea;
415
- this._rows = rows;
416
- return this;
417
- }
418
-
419
- public asNumber(step?: number, min?: number, max?: number, minFractionDigits?: number, maxFractionDigits?: number): this {
420
- this._fieldType = FieldInputDescriptor.TypeEnum.Number;
421
- this._numberStep = step;
422
- this._numberMinFractionDigits = minFractionDigits;
423
- this._numberMaxFractionDigits = maxFractionDigits;
424
- this._numberMin = min ?? Number.MIN_SAFE_INTEGER;
425
- this._numberMax = max ?? Number.MAX_SAFE_INTEGER;
426
- return this;
427
- }
428
-
429
- public asSwitch(): this {
430
- this._fieldType = FieldInputDescriptor.TypeEnum.Switch;
431
- return this;
432
- }
433
-
434
- public asRadio(options: Array<string>): this {
435
- this._fieldType = FieldInputDescriptor.TypeEnum.Radio;
436
- this._radioOptions = options;
437
- return this;
438
- }
439
-
440
- public asDatePicker(format?: string, min?: Date, max?: Date, showTime?: boolean): this {
441
- this._fieldType = FieldInputDescriptor.TypeEnum.Datepicker;
442
- this._datePickerFormat = format ? format : 'dd.mm.yy';
443
- this._datePickerMin = min;
444
- this._datePickerMax = max;
445
- this._datePickerShowTime = showTime ?? false;
446
- return this;
447
- }
448
-
449
- public copy(): FieldInputDescriptor<ET> {
450
- const field = new FieldInputDescriptor<ET>(this._editor, this._property);
451
- this.copyFieldsTo(field);
452
- field._fieldType = this._fieldType;
453
- field._rows = this._rows;
454
- field._numberMin = this._numberMin;
455
- field._numberMax = this._numberMax;
456
- field._numberStep = this._numberStep;
457
- field._numberMinFractionDigits = this._numberMinFractionDigits;
458
- field._numberMaxFractionDigits = this._numberMaxFractionDigits;
459
- field._radioOptions = this._radioOptions;
460
- field._datePickerFormat = this._datePickerFormat;
461
- field._datePickerMin = this._datePickerMin;
462
- field._datePickerMax = this._datePickerMax;
463
- field._datePickerShowTime = this._datePickerShowTime;
464
- field._maxLength = this._maxLength;
465
- field._minLength = this._minLength;
466
- field._pattern = this._pattern;
467
- return field;
468
- }
469
- }
470
- export namespace FieldInputDescriptor {
471
- export enum TypeEnum {
472
- Text,
473
- Textarea,
474
- Number,
475
- Switch,
476
- Radio,
477
- Datepicker
478
- }
479
- }
480
-
481
- export class FieldLookupDescriptor<T, ET> extends AFieldDescriptor<T, ET> implements ILookupDescriptor<T> {
482
-
483
- protected readonly _modelType: ClassType<T>|null;
484
- protected _lookupType: FieldLookupDescriptor.LookupTypeEnum = FieldLookupDescriptor.LookupTypeEnum.Dropdown;
485
- protected _itemsLabelProperty?: string;
486
- protected _itemsValueProperty?: string;
487
- protected _dataKeyProperty?: string;
488
- protected _dataProvider?: ILookupDataProvider<T, any>;
489
-
490
- constructor(editor: EditorDescriptor<ET>, property: string, modelType: ClassType<T>|null) {
491
- super(editor, property);
492
- this._modelType = modelType;
493
- ModelUtil.trySetLookupItemsProperties(this);
494
- }
495
-
496
- public get modelType() {
497
- return this._modelType;
498
- }
499
-
500
- public get lookupType() {
501
- return this._lookupType;
502
- }
503
-
504
- public get itemsLabelProperty() {
505
- return this._itemsLabelProperty;
506
- }
507
-
508
- public get itemsValueProperty() {
509
- return this._itemsValueProperty;
510
- }
511
-
512
- public get dataKeyProperty() {
513
- return this._dataKeyProperty;
514
- }
515
-
516
- public get dataProvider() {
517
- return this._dataProvider;
518
- }
519
-
520
- public withItemsLabelProperty(itemsLabelProperty: string): this {
521
- this._itemsLabelProperty = itemsLabelProperty;
522
- return this;
523
- }
524
-
525
- public withItemsValueProperty(itemsValueProperty: string): this {
526
- this._itemsValueProperty = itemsValueProperty;
527
- return this;
528
- }
529
-
530
- public withDataKeyProperty(property: string): this {
531
- this._dataKeyProperty = property;
532
- return this;
533
- }
534
-
535
- public withLookup<S>(lookup: (queryParam?: MediusQueryParam, service?: S, search?: string) => Observable<Array<T>>, serviceType?: Type<S>): this {
536
- const dataProvider = new LookupDataProvider<T, S>(this._modelType);
537
- if (serviceType) {
538
- dataProvider.withServiceType(serviceType);
539
- }
540
- dataProvider.withLookup(lookup);
541
- this._dataProvider = dataProvider;
542
- return this;
543
- }
544
-
545
- public withLookupDataProvider(dataProvider: ILookupDataProvider<T, any>): this {
546
- this._dataProvider = dataProvider;
547
- return this;
548
- }
549
-
550
- public asAutocomplete(): this {
551
- this._lookupType = FieldLookupDescriptor.LookupTypeEnum.Autocomplete;
552
- return this;
553
- }
554
-
555
- public copy(): FieldLookupDescriptor<T, ET> {
556
- const field = new FieldLookupDescriptor(this._editor, this._property, this._modelType);
557
- this.copyFieldsTo(field);
558
- field._lookupType = this._lookupType;
559
- field._itemsLabelProperty = this._itemsLabelProperty;
560
- field._itemsValueProperty = this._itemsValueProperty;
561
- field._dataKeyProperty = this._dataKeyProperty;
562
- field._dataProvider = this._dataProvider;
563
- return field;
564
- }
565
- }
566
-
567
- export namespace FieldLookupDescriptor {
568
- export enum LookupTypeEnum {
569
- Dropdown,
570
- Autocomplete
571
- }
572
- }
573
-
574
- export class FieldLookupEnumDescriptor<ET> extends FieldLookupDescriptor<EnumMemberType, ET> {
575
-
576
- private readonly _enumName: string;
577
-
578
- constructor(editor: EditorDescriptor<ET>, property: string, enumName: string, options: Array<EnumMemberType>) {
579
- super(editor, property, null);
580
-
581
- this._enumName = enumName;
582
- const dataProvider = new LookupDataProvider<EnumMemberType, any>(null)
583
- .withEnumName(enumName)
584
- .withLookup(() => of(options));
585
- this.withLookupDataProvider(dataProvider);
586
- }
587
-
588
- public get enumName() {
589
- return this._enumName;
590
- }
591
-
592
- public override copy(): FieldLookupEnumDescriptor<ET> {
593
- const field = new FieldLookupEnumDescriptor<ET>(this._editor, this._property, this._enumName, []);
594
- this.copyFieldsTo(field);
595
- field._lookupType = this._lookupType;
596
- field._itemsLabelProperty = this._itemsLabelProperty;
597
- field._itemsValueProperty = this._itemsValueProperty;
598
- field._dataKeyProperty = this._dataKeyProperty;
599
- field._dataProvider = this._dataProvider;
600
- return field;
601
- }
602
- }
603
-
604
- export class FieldManyToManyEditorDescriptor<T, ET> extends AFieldDescriptor<T, ET> {
605
-
606
- private readonly _model: ModelDescriptor<T>;
607
- private readonly _mainTableDescriptor: TableDescriptor<T>; // table descriptor for main table component
608
- private readonly _lookupTableDescriptor: TableDescriptor<T>; // table descriptor for where select will be applied
609
- private _fieldType: FieldManyToManyEditorDescriptor.TypeEnum = FieldManyToManyEditorDescriptor.TypeEnum.DialogTableMultiselect;
610
- private _lookupTableDataProvider: ITableDataProvider<T, any>|null = null;
611
- private _actions: Array<FieldManyToManyEditorDescriptor.ActionEnum> = [];
612
- private _hasLookupExcludeValues: boolean = false;
613
- private _excludeFilterProperty: string = '';
614
- private _excludeValueProperty: string = '';
615
-
616
- constructor(editor: EditorDescriptor<ET>, property: string, modelType: ClassType<T>, mainTableDescriptor: TableDescriptor<T>, lookupTableDescriptor: TableDescriptor<T>) {
617
- super(editor, property);
618
- this._model = new ModelDescriptor<T>(modelType);
619
- this._mainTableDescriptor = mainTableDescriptor;
620
- this._lookupTableDescriptor = lookupTableDescriptor;
621
- this._actions.push(FieldManyToManyEditorDescriptor.ActionEnum.Add, FieldManyToManyEditorDescriptor.ActionEnum.Delete);
622
- }
623
-
624
- public get mainTableDescriptor() {
625
- return this._mainTableDescriptor;
626
- }
627
-
628
- public get lookupTableDescriptor() {
629
- return this._lookupTableDescriptor;
630
- }
631
-
632
- public get lookupTableDataProvider() {
633
- return this._lookupTableDataProvider;
634
- }
635
-
636
- public get actions() {
637
- return this._actions;
638
- }
639
-
640
- public get fieldType() {
641
- return this._fieldType;
642
- }
643
-
644
- public get hasLookupExcludeValues() {
645
- return this._hasLookupExcludeValues;
646
- }
647
-
648
- public get excludeFilterProperty() {
649
- return this._excludeFilterProperty;
650
- }
651
-
652
- public get excludeValueProperty() {
653
- return this._excludeValueProperty;
654
- }
655
-
656
- public withLookup<S>(getAll: (queryParam: MediusQueryParam, service?: S) => Observable<MediusQueryResult<T>>, serviceType?: Type<S>): this {
657
- const dataProvider = new TableviewDataProvider<T, S>(this._model.type);
658
- if (serviceType) {
659
- dataProvider.withServiceType(serviceType);
660
- }
661
- dataProvider.withGetAll(getAll);
662
- this._lookupTableDataProvider = dataProvider;
663
- return this;
664
- }
665
-
666
- public withLookupDataProvider(dataProvider: ITableDataProvider<T, any>): this {
667
- this._lookupTableDataProvider = dataProvider;
668
- return this;
669
- }
670
-
671
- public withActions(actions: Array<FieldManyToManyEditorDescriptor.ActionEnum> = []): this {
672
- this.actions.push(...actions);
673
- return this;
674
- }
675
-
676
- public withLookupExclude(filterProperty: string, valueProperty: string, hasLookupExclude: boolean = true): this {
677
- this._hasLookupExcludeValues = hasLookupExclude;
678
- this._excludeFilterProperty = filterProperty;
679
- this._excludeValueProperty = valueProperty;
680
- return this;
681
- }
682
-
683
- public copy(): FieldManyToManyEditorDescriptor<T, ET> {
684
- const field = new FieldManyToManyEditorDescriptor(this._editor, this._property, this._model.type, this._mainTableDescriptor.copy(), this._lookupTableDescriptor.copy());
685
- this.copyFieldsTo(field);
686
- field._fieldType = this._fieldType;
687
- field._actions = this._actions.map(a => a);
688
- field._lookupTableDataProvider = this._lookupTableDataProvider;
689
- field._hasLookupExcludeValues = this._hasLookupExcludeValues;
690
- field._excludeFilterProperty = this._excludeFilterProperty;
691
- field._excludeValueProperty = this._excludeValueProperty;
692
- return field;
693
- }
694
- }
695
-
696
- export namespace FieldManyToManyEditorDescriptor {
697
- export enum TypeEnum {
698
- DialogTableMultiselect
699
- }
700
-
701
- export enum ActionEnum {
702
- Add,
703
- Delete
704
- }
705
- }
706
-
707
- export class FieldManyEditorDescriptor<T, ET> extends AFieldDescriptor<T, ET> {
708
-
709
- private readonly _modelType: ClassType<T>;
710
- private readonly _tableviewDescriptor: TableviewDescriptor<T>;
711
- private _fieldType: FieldManyEditorDescriptor.TypeEnum = FieldManyEditorDescriptor.TypeEnum.DialogEditor;
712
- private _actions: Array<FieldManyEditorDescriptor.ActionEnum> = [];
713
-
714
- constructor(editor: EditorDescriptor<ET>, property: string, modelType: ClassType<T>, tableviewDescriptor: TableviewDescriptor<T>) {
715
- super(editor, property);
716
- this._modelType = modelType;
717
- this._tableviewDescriptor = tableviewDescriptor;
718
- this._actions.push(FieldManyEditorDescriptor.ActionEnum.Add, FieldManyEditorDescriptor.ActionEnum.Edit, FieldManyEditorDescriptor.ActionEnum.Delete);
719
- }
720
-
721
- public get tableviewDescriptor() {
722
- return this._tableviewDescriptor;
723
- }
724
-
725
- public get tableDescriptor() {
726
- return this._tableviewDescriptor.table;
727
- }
728
-
729
- public get editorForCreate() {
730
- return this._tableviewDescriptor.addEditor;
731
- }
732
-
733
- public get editorForRead() {
734
- return this._tableviewDescriptor.viewEditor;
735
- }
736
-
737
- public get editorForUpdate() {
738
- return this._tableviewDescriptor.editEditor;
739
- }
740
-
741
- public get fieldType() {
742
- return this._fieldType;
743
- }
744
-
745
- public get actions() {
746
- return this._actions;
747
- }
748
-
749
- public withActions(actions: Array<FieldManyToManyEditorDescriptor.ActionEnum> = []): this {
750
- this.actions.push(...actions);
751
- return this;
752
- }
753
-
754
- public copy(): FieldManyEditorDescriptor<T, ET> {
755
- const field = new FieldManyEditorDescriptor(this._editor, this._property, this._modelType, this._tableviewDescriptor.copy());
756
- this.copyFieldsTo(field);
757
- field._fieldType = this._fieldType;
758
- field._actions = this._actions.map(a => a);
759
- return field;
760
- }
761
- }
762
-
763
- export namespace FieldManyEditorDescriptor {
764
- export enum TypeEnum {
765
- DialogEditor
766
- }
767
-
768
- export enum ActionEnum {
769
- Add,
770
- Edit,
771
- Delete
772
- }
773
- }
774
-
775
- export abstract class AFieldGroupDescriptor<ET> extends AGenericFieldDescriptor<ET> {
776
-
777
- protected readonly _name: string;
778
- protected readonly _default: boolean;
779
- protected _title?: string;
780
- protected _fields: AGenericFieldDescriptor<ET>[] = [];
781
- protected _validators: Array<FieldValidator> = [];
782
-
783
- protected constructor(editor: EditorDescriptor<ET>, name: string) {
784
- super(editor);
785
- this._name = `${this.baseName}${name}`;
786
- this._default = name === EditorDescriptor.defaultGroupName;
787
- }
788
-
789
- abstract get fields(): AGenericFieldDescriptor<ET>[];
790
-
791
- abstract groupName(): string;
792
-
793
- abstract addField(field: AGenericFieldDescriptor<ET>): this;
794
-
795
- abstract copy(): AFieldGroupDescriptor<ET>;
796
-
797
- public get baseName() {
798
- return `${this.groupName()}_`;
799
- }
800
-
801
- public get name() {
802
- return this._name;
803
- }
804
-
805
- public get default() {
806
- return this._default;
807
- }
808
-
809
- public get title() {
810
- return this._title;
811
- }
812
-
813
- public get validators() {
814
- return this._validators;
815
- }
816
-
817
- public withTitle(title: string): this {
818
- this._title = title;
819
- return this;
820
- }
821
-
822
- public withValidator(name: string, expression: (control: AbstractControl) => boolean) {
823
- this._validators.push(new FieldValidator(name, expression, undefined));
824
- return this;
825
- }
826
- }
827
-
828
- export class FieldTabGroupDescriptor<ET> extends AFieldGroupDescriptor<ET> {
829
-
830
- constructor(editor: EditorDescriptor<ET>, name: string) {
831
- super(editor, name);
832
- }
833
-
834
- public get fields(): Array<FieldGroupDescriptor<ET>> {
835
- return this._fields as Array<FieldGroupDescriptor<ET>>;
836
- }
837
-
838
- public groupName(): string {
839
- return 'tab';
840
- }
841
-
842
- public addField(field: FieldGroupDescriptor<ET>): this {
843
- this._fields.push(field);
844
- return this;
845
- }
846
-
847
- public copy(): FieldTabGroupDescriptor<ET> {
848
- const tab = new FieldTabGroupDescriptor<ET>(this._editor, this.name.substring(this.baseName.length));
849
- tab._title = this._title;
850
- tab._fields = this.fields.map(f => f.copy());
851
- return tab;
852
- }
853
- }
854
-
855
- export class FieldGroupDescriptor<ET> extends AFieldGroupDescriptor<ET> {
856
-
857
- constructor(editor: EditorDescriptor<ET>, name: string) {
858
- super(editor, name);
859
- }
860
-
861
- public get fields(): Array<AFieldDescriptor<any, ET>> {
862
- return this._fields as Array<AFieldDescriptor<any, ET>>;
863
- }
864
-
865
- public groupName(): string {
866
- return 'group';
867
- }
868
-
869
- public addField(field: AFieldDescriptor<any, ET>): this {
870
- this._fields.push(field);
871
- return this;
872
- }
873
-
874
- public copy(): FieldGroupDescriptor<ET> {
875
- const group = new FieldGroupDescriptor<ET>(this._editor, this.name.substring(this.baseName.length));
876
- group._title = this._title;
877
- group._fields = this.fields.map(f => f.copy());
878
- return group;
879
- }
880
- }