@mediusinc/mng-commons 0.2.0 → 0.2.1-rc

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 (328) hide show
  1. package/.browserslistrc +16 -0
  2. package/karma.conf.js +51 -0
  3. package/ng-package.json +14 -0
  4. package/package.json +3 -24
  5. package/src/lib/api/models/builders/query-param.builder.ts +54 -0
  6. package/src/lib/api/models/filter-match-type.model.ts +25 -0
  7. package/src/lib/api/models/filter-param.model.ts +59 -0
  8. package/{lib/api/models/index.d.ts → src/lib/api/models/index.ts} +10 -8
  9. package/src/lib/api/models/mappers.ts +18 -0
  10. package/{lib/api/models/filter-match-type.model.d.ts → src/lib/api/models/query-mode.model.ts} +18 -23
  11. package/src/lib/api/models/query-param.model.ts +99 -0
  12. package/src/lib/api/models/query-result.model.ts +77 -0
  13. package/{lib/api/models/serialization.model.d.ts → src/lib/api/models/serialization.model.ts} +9 -8
  14. package/src/lib/api/services/crud-api.abstract.service.ts +113 -0
  15. package/{lib/api/services/index.d.ts → src/lib/api/services/index.ts} +1 -1
  16. package/{lib/api/utils/index.d.ts → src/lib/api/utils/index.ts} +2 -2
  17. package/src/lib/api/utils/medius-rest.util.ts +146 -0
  18. package/src/lib/api/utils/object-serializer.util.ts +227 -0
  19. package/src/lib/components/action/action.component.html +30 -0
  20. package/src/lib/components/action/action.component.ts +77 -0
  21. package/src/lib/components/action/dialog/action-dialog.component.html +26 -0
  22. package/src/lib/components/action/dialog/action-dialog.component.ts +171 -0
  23. package/{lib/components/action/index.d.ts → src/lib/components/action/index.ts} +3 -3
  24. package/{lib/components/action/models/action-confirmation-service.model.d.ts → src/lib/components/action/models/action-confirmation-service.model.ts} +7 -6
  25. package/src/lib/components/action/models/action-execution.model.ts +81 -0
  26. package/{lib/components/action/models/index.d.ts → src/lib/components/action/models/index.ts} +2 -2
  27. package/src/lib/components/action/route/action-route.component.html +1 -0
  28. package/src/lib/components/action/route/action-route.component.ts +159 -0
  29. package/src/lib/components/form/autocomplete/autocomplete.component.html +16 -0
  30. package/src/lib/components/form/autocomplete/autocomplete.component.ts +113 -0
  31. package/src/lib/components/form/dropdown/dropdown.component.html +29 -0
  32. package/src/lib/components/form/dropdown/dropdown.component.ts +109 -0
  33. package/src/lib/components/form/editor/form-editor.component.html +5 -0
  34. package/src/lib/components/form/editor/form-editor.component.ts +149 -0
  35. package/src/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.html +7 -0
  36. package/src/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.ts +21 -0
  37. package/src/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.html +9 -0
  38. package/src/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.ts +22 -0
  39. package/src/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.html +8 -0
  40. package/src/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.ts +10 -0
  41. package/src/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.html +56 -0
  42. package/src/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.ts +22 -0
  43. package/src/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.html +13 -0
  44. package/src/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.scss +4 -0
  45. package/src/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.ts +114 -0
  46. package/src/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.html +37 -0
  47. package/src/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.ts +133 -0
  48. package/src/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.html +10 -0
  49. package/src/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.ts +10 -0
  50. package/{lib/components/form/formly/fields/index.d.ts → src/lib/components/form/formly/fields/index.ts} +7 -7
  51. package/src/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.html +7 -0
  52. package/src/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.ts +13 -0
  53. package/src/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.html +6 -0
  54. package/src/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.ts +13 -0
  55. package/{lib/components/form/formly/wrappers/index.d.ts → src/lib/components/form/formly/wrappers/index.ts} +2 -2
  56. package/{lib/components/form/index.d.ts → src/lib/components/form/index.ts} +3 -3
  57. package/src/lib/components/form/models/form-editor.event.ts +7 -0
  58. package/{lib/components/form/models/index.d.ts → src/lib/components/form/models/index.ts} +1 -1
  59. package/src/lib/components/layout/breadcrumb.component.html +5 -0
  60. package/src/lib/components/layout/breadcrumb.component.ts +12 -0
  61. package/src/lib/components/layout/footer.component.html +7 -0
  62. package/src/lib/components/layout/footer.component.ts +15 -0
  63. package/{lib/components/layout/index.d.ts → src/lib/components/layout/index.ts} +6 -6
  64. package/src/lib/components/layout/main-layout.component.html +26 -0
  65. package/src/lib/components/layout/main-layout.component.ts +54 -0
  66. package/src/lib/components/layout/menu-item.component.html +41 -0
  67. package/src/lib/components/layout/menu-item.component.ts +170 -0
  68. package/src/lib/components/layout/menu.component.html +27 -0
  69. package/src/lib/components/layout/menu.component.ts +17 -0
  70. package/{lib/components/layout/services/index.d.ts → src/lib/components/layout/services/index.ts} +1 -1
  71. package/src/lib/components/layout/services/main-layout.component.service.ts +231 -0
  72. package/src/lib/components/layout/topbar.component.html +38 -0
  73. package/src/lib/components/layout/topbar.component.ts +62 -0
  74. package/{lib/components/tableview/index.d.ts → src/lib/components/tableview/index.ts} +5 -5
  75. package/{lib/components/tableview/models/index.d.ts → src/lib/components/tableview/models/index.ts} +1 -1
  76. package/src/lib/components/tableview/models/table.event.ts +22 -0
  77. package/src/lib/components/tableview/route/tableview-route.abstract.component.ts +31 -0
  78. package/{lib/components/tableview/services/index.d.ts → src/lib/components/tableview/services/index.ts} +1 -1
  79. package/src/lib/components/tableview/services/tableview.component.service.ts +22 -0
  80. package/src/lib/components/tableview/table/column-filter/column-filter.component.html +36 -0
  81. package/src/lib/components/tableview/table/column-filter/column-filter.component.ts +70 -0
  82. package/src/lib/components/tableview/table/column-value/column-value.component.html +14 -0
  83. package/src/lib/components/tableview/table/column-value/column-value.component.ts +19 -0
  84. package/src/lib/components/tableview/table/table.component.html +110 -0
  85. package/src/lib/components/tableview/table/table.component.ts +327 -0
  86. package/src/lib/components/tableview/tableview.component.html +37 -0
  87. package/src/lib/components/tableview/tableview.component.ts +78 -0
  88. package/src/lib/config/formly.config.ts +154 -0
  89. package/{lib/config/index.d.ts → src/lib/config/index.ts} +1 -1
  90. package/{lib/config/models/index.d.ts → src/lib/config/models/index.ts} +1 -1
  91. package/{lib/config/models/mng-config.model.d.ts → src/lib/config/models/mng-config.model.ts} +35 -34
  92. package/src/lib/data-providers/base.data-provider.ts +42 -0
  93. package/src/lib/data-providers/editor.data-provider.ts +60 -0
  94. package/{lib/data-providers/index.d.ts → src/lib/data-providers/index.ts} +5 -5
  95. package/src/lib/data-providers/lookup.data-provider.ts +29 -0
  96. package/{lib/data-providers/table.data-provider.d.ts → src/lib/data-providers/table.data-provider.ts} +8 -6
  97. package/src/lib/data-providers/tableview.data-provider.ts +29 -0
  98. package/src/lib/descriptors/action.descriptor.ts +439 -0
  99. package/src/lib/descriptors/editor.descriptor.ts +880 -0
  100. package/src/lib/descriptors/field.validator.ts +35 -0
  101. package/{lib/descriptors/index.d.ts → src/lib/descriptors/index.ts} +7 -7
  102. package/{lib/descriptors/lookup.descriptor.d.ts → src/lib/descriptors/lookup.descriptor.ts} +20 -17
  103. package/src/lib/descriptors/model.descriptor.ts +47 -0
  104. package/src/lib/descriptors/table.descriptor.ts +514 -0
  105. package/src/lib/descriptors/tableview.descriptor.ts +180 -0
  106. package/src/lib/directives/component.directive.ts +18 -0
  107. package/{lib/directives/index.d.ts → src/lib/directives/index.ts} +2 -2
  108. package/src/lib/directives/template.directive.ts +24 -0
  109. package/src/lib/mng-commons.module.ts +240 -0
  110. package/{lib/models/index.d.ts → src/lib/models/index.ts} +2 -2
  111. package/src/lib/models/router.model.ts +16 -0
  112. package/{lib/models/user.model.d.ts → src/lib/models/user.model.ts} +9 -8
  113. package/src/lib/pipes/boolean.pipe.ts +17 -0
  114. package/{lib/pipes/index.d.ts → src/lib/pipes/index.ts} +2 -2
  115. package/src/lib/pipes/property-path.pipe.ts +30 -0
  116. package/src/lib/services/action.service.ts +310 -0
  117. package/src/lib/services/commons.service.ts +407 -0
  118. package/src/lib/services/configuration.service.ts +98 -0
  119. package/{lib/services/index.d.ts → src/lib/services/index.ts} +4 -4
  120. package/src/lib/services/navigation.service.ts +42 -0
  121. package/src/lib/services/providers/commons-init.provider.ts +5 -0
  122. package/src/lib/services/providers/config-service.provider.ts +22 -0
  123. package/src/lib/services/providers/formly-config.provider.ts +39 -0
  124. package/{lib/services/providers/index.d.ts → src/lib/services/providers/index.ts} +3 -3
  125. package/src/lib/services/tokens/browser-storage.token.ts +9 -0
  126. package/{lib/services/tokens/index.d.ts → src/lib/services/tokens/index.ts} +2 -2
  127. package/src/lib/services/tokens/module-config.token.ts +5 -0
  128. package/{lib/types/index.d.ts → src/lib/types/index.ts} +2 -2
  129. package/src/lib/types/type.decorator.ts +7 -0
  130. package/src/lib/types/type.model.ts +12 -0
  131. package/src/lib/utils/editor-formly.util.ts +193 -0
  132. package/src/lib/utils/i18n.util.ts +148 -0
  133. package/{lib/utils/index.d.ts → src/lib/utils/index.ts} +5 -5
  134. package/src/lib/utils/model.util.ts +66 -0
  135. package/src/lib/utils/toast.util.ts +49 -0
  136. package/src/lib/utils/type.util.ts +44 -0
  137. package/{public-api.d.ts → src/public-api.ts} +42 -25
  138. package/src/test.ts +26 -0
  139. package/tsconfig.lib.json +15 -0
  140. package/tsconfig.lib.prod.json +10 -0
  141. package/tsconfig.spec.json +17 -0
  142. package/esm2020/lib/api/models/builders/query-param.builder.mjs +0 -48
  143. package/esm2020/lib/api/models/filter-match-type.model.mjs +0 -26
  144. package/esm2020/lib/api/models/filter-param.model.mjs +0 -46
  145. package/esm2020/lib/api/models/index.mjs +0 -9
  146. package/esm2020/lib/api/models/mappers.mjs +0 -17
  147. package/esm2020/lib/api/models/query-mode.model.mjs +0 -19
  148. package/esm2020/lib/api/models/query-param.model.mjs +0 -69
  149. package/esm2020/lib/api/models/query-result.model.mjs +0 -45
  150. package/esm2020/lib/api/models/serialization.model.mjs +0 -2
  151. package/esm2020/lib/api/services/crud-api.abstract.service.mjs +0 -72
  152. package/esm2020/lib/api/services/index.mjs +0 -2
  153. package/esm2020/lib/api/utils/index.mjs +0 -3
  154. package/esm2020/lib/api/utils/medius-rest.util.mjs +0 -122
  155. package/esm2020/lib/api/utils/object-serializer.util.mjs +0 -226
  156. package/esm2020/lib/components/action/action.component.mjs +0 -65
  157. package/esm2020/lib/components/action/dialog/action-dialog.component.mjs +0 -148
  158. package/esm2020/lib/components/action/index.mjs +0 -4
  159. package/esm2020/lib/components/action/models/action-confirmation-service.model.mjs +0 -2
  160. package/esm2020/lib/components/action/models/action-execution.model.mjs +0 -58
  161. package/esm2020/lib/components/action/models/index.mjs +0 -3
  162. package/esm2020/lib/components/action/route/action-route.component.mjs +0 -144
  163. package/esm2020/lib/components/form/autocomplete/autocomplete.component.mjs +0 -114
  164. package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +0 -113
  165. package/esm2020/lib/components/form/editor/form-editor.component.mjs +0 -141
  166. package/esm2020/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +0 -19
  167. package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +0 -19
  168. package/esm2020/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +0 -16
  169. package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +0 -26
  170. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +0 -109
  171. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +0 -122
  172. package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +0 -17
  173. package/esm2020/lib/components/form/formly/fields/index.mjs +0 -8
  174. package/esm2020/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +0 -17
  175. package/esm2020/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.mjs +0 -16
  176. package/esm2020/lib/components/form/formly/wrappers/index.mjs +0 -3
  177. package/esm2020/lib/components/form/index.mjs +0 -4
  178. package/esm2020/lib/components/form/models/form-editor.event.mjs +0 -7
  179. package/esm2020/lib/components/form/models/index.mjs +0 -2
  180. package/esm2020/lib/components/layout/breadcrumb.component.mjs +0 -17
  181. package/esm2020/lib/components/layout/footer.component.mjs +0 -17
  182. package/esm2020/lib/components/layout/index.mjs +0 -7
  183. package/esm2020/lib/components/layout/main-layout.component.mjs +0 -54
  184. package/esm2020/lib/components/layout/menu-item.component.mjs +0 -173
  185. package/esm2020/lib/components/layout/menu.component.mjs +0 -20
  186. package/esm2020/lib/components/layout/services/index.mjs +0 -2
  187. package/esm2020/lib/components/layout/services/main-layout.component.service.mjs +0 -190
  188. package/esm2020/lib/components/layout/topbar.component.mjs +0 -59
  189. package/esm2020/lib/components/tableview/index.mjs +0 -6
  190. package/esm2020/lib/components/tableview/models/index.mjs +0 -2
  191. package/esm2020/lib/components/tableview/models/table.event.mjs +0 -16
  192. package/esm2020/lib/components/tableview/route/tableview-route.abstract.component.mjs +0 -24
  193. package/esm2020/lib/components/tableview/services/index.mjs +0 -2
  194. package/esm2020/lib/components/tableview/services/tableview.component.service.mjs +0 -17
  195. package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +0 -74
  196. package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +0 -25
  197. package/esm2020/lib/components/tableview/table/table.component.mjs +0 -307
  198. package/esm2020/lib/components/tableview/tableview.component.mjs +0 -82
  199. package/esm2020/lib/config/formly.config.mjs +0 -136
  200. package/esm2020/lib/config/index.mjs +0 -2
  201. package/esm2020/lib/config/models/index.mjs +0 -2
  202. package/esm2020/lib/config/models/mng-config.model.mjs +0 -2
  203. package/esm2020/lib/data-providers/base.data-provider.mjs +0 -24
  204. package/esm2020/lib/data-providers/editor.data-provider.mjs +0 -37
  205. package/esm2020/lib/data-providers/index.mjs +0 -6
  206. package/esm2020/lib/data-providers/lookup.data-provider.mjs +0 -16
  207. package/esm2020/lib/data-providers/table.data-provider.mjs +0 -2
  208. package/esm2020/lib/data-providers/tableview.data-provider.mjs +0 -17
  209. package/esm2020/lib/descriptors/action.descriptor.mjs +0 -332
  210. package/esm2020/lib/descriptors/editor.descriptor.mjs +0 -670
  211. package/esm2020/lib/descriptors/field.validator.mjs +0 -21
  212. package/esm2020/lib/descriptors/index.mjs +0 -8
  213. package/esm2020/lib/descriptors/lookup.descriptor.mjs +0 -2
  214. package/esm2020/lib/descriptors/model.descriptor.mjs +0 -34
  215. package/esm2020/lib/descriptors/table.descriptor.mjs +0 -401
  216. package/esm2020/lib/descriptors/tableview.descriptor.mjs +0 -131
  217. package/esm2020/lib/directives/component.directive.mjs +0 -23
  218. package/esm2020/lib/directives/index.mjs +0 -3
  219. package/esm2020/lib/directives/template.directive.mjs +0 -29
  220. package/esm2020/lib/mng-commons.module.mjs +0 -410
  221. package/esm2020/lib/models/index.mjs +0 -3
  222. package/esm2020/lib/models/router.model.mjs +0 -2
  223. package/esm2020/lib/models/user.model.mjs +0 -2
  224. package/esm2020/lib/pipes/boolean.pipe.mjs +0 -22
  225. package/esm2020/lib/pipes/index.mjs +0 -3
  226. package/esm2020/lib/pipes/property-path.pipe.mjs +0 -36
  227. package/esm2020/lib/services/action.service.mjs +0 -269
  228. package/esm2020/lib/services/commons.service.mjs +0 -353
  229. package/esm2020/lib/services/configuration.service.mjs +0 -78
  230. package/esm2020/lib/services/index.mjs +0 -5
  231. package/esm2020/lib/services/navigation.service.mjs +0 -48
  232. package/esm2020/lib/services/providers/commons-init.provider.mjs +0 -4
  233. package/esm2020/lib/services/providers/config-service.provider.mjs +0 -20
  234. package/esm2020/lib/services/providers/formly-config.provider.mjs +0 -31
  235. package/esm2020/lib/services/providers/index.mjs +0 -4
  236. package/esm2020/lib/services/tokens/browser-storage.token.mjs +0 -6
  237. package/esm2020/lib/services/tokens/index.mjs +0 -3
  238. package/esm2020/lib/services/tokens/module-config.token.mjs +0 -3
  239. package/esm2020/lib/types/index.mjs +0 -3
  240. package/esm2020/lib/types/type.decorator.mjs +0 -7
  241. package/esm2020/lib/types/type.model.mjs +0 -2
  242. package/esm2020/lib/utils/editor-formly.util.mjs +0 -176
  243. package/esm2020/lib/utils/i18n.util.mjs +0 -125
  244. package/esm2020/lib/utils/index.mjs +0 -6
  245. package/esm2020/lib/utils/model.util.mjs +0 -57
  246. package/esm2020/lib/utils/toast.util.mjs +0 -39
  247. package/esm2020/lib/utils/type.util.mjs +0 -39
  248. package/esm2020/mediusinc-mng-commons.mjs +0 -5
  249. package/esm2020/public-api.mjs +0 -36
  250. package/fesm2015/mediusinc-mng-commons.mjs +0 -6250
  251. package/fesm2015/mediusinc-mng-commons.mjs.map +0 -1
  252. package/fesm2020/mediusinc-mng-commons.mjs +0 -6176
  253. package/fesm2020/mediusinc-mng-commons.mjs.map +0 -1
  254. package/lib/api/models/builders/query-param.builder.d.ts +0 -11
  255. package/lib/api/models/filter-param.model.d.ts +0 -23
  256. package/lib/api/models/mappers.d.ts +0 -6
  257. package/lib/api/models/query-mode.model.d.ts +0 -16
  258. package/lib/api/models/query-param.model.d.ts +0 -31
  259. package/lib/api/models/query-result.model.d.ts +0 -36
  260. package/lib/api/services/crud-api.abstract.service.d.ts +0 -23
  261. package/lib/api/utils/medius-rest.util.d.ts +0 -12
  262. package/lib/api/utils/object-serializer.util.d.ts +0 -30
  263. package/lib/components/action/action.component.d.ts +0 -36
  264. package/lib/components/action/dialog/action-dialog.component.d.ts +0 -46
  265. package/lib/components/action/models/action-execution.model.d.ts +0 -53
  266. package/lib/components/action/route/action-route.component.d.ts +0 -32
  267. package/lib/components/form/autocomplete/autocomplete.component.d.ts +0 -36
  268. package/lib/components/form/dropdown/dropdown.component.d.ts +0 -34
  269. package/lib/components/form/editor/form-editor.component.d.ts +0 -39
  270. package/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +0 -11
  271. package/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +0 -11
  272. package/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +0 -6
  273. package/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.d.ts +0 -12
  274. package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +0 -17
  275. package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +0 -36
  276. package/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +0 -6
  277. package/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +0 -8
  278. package/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.d.ts +0 -8
  279. package/lib/components/form/models/form-editor.event.d.ts +0 -5
  280. package/lib/components/layout/breadcrumb.component.d.ts +0 -8
  281. package/lib/components/layout/footer.component.d.ts +0 -9
  282. package/lib/components/layout/main-layout.component.d.ts +0 -21
  283. package/lib/components/layout/menu-item.component.d.ts +0 -29
  284. package/lib/components/layout/menu.component.d.ts +0 -10
  285. package/lib/components/layout/services/main-layout.component.service.d.ts +0 -65
  286. package/lib/components/layout/topbar.component.d.ts +0 -25
  287. package/lib/components/tableview/models/table.event.d.ts +0 -17
  288. package/lib/components/tableview/route/tableview-route.abstract.component.d.ts +0 -14
  289. package/lib/components/tableview/services/tableview.component.service.d.ts +0 -13
  290. package/lib/components/tableview/table/column-filter/column-filter.component.d.ts +0 -22
  291. package/lib/components/tableview/table/column-value/column-value.component.d.ts +0 -12
  292. package/lib/components/tableview/table/table.component.d.ts +0 -79
  293. package/lib/components/tableview/tableview.component.d.ts +0 -35
  294. package/lib/config/formly.config.d.ts +0 -14
  295. package/lib/data-providers/base.data-provider.d.ts +0 -17
  296. package/lib/data-providers/editor.data-provider.d.ts +0 -25
  297. package/lib/data-providers/lookup.data-provider.d.ts +0 -14
  298. package/lib/data-providers/tableview.data-provider.d.ts +0 -15
  299. package/lib/descriptors/action.descriptor.d.ts +0 -148
  300. package/lib/descriptors/editor.descriptor.d.ts +0 -255
  301. package/lib/descriptors/field.validator.d.ts +0 -18
  302. package/lib/descriptors/model.descriptor.d.ts +0 -15
  303. package/lib/descriptors/table.descriptor.d.ts +0 -164
  304. package/lib/descriptors/tableview.descriptor.d.ts +0 -39
  305. package/lib/directives/component.directive.d.ts +0 -11
  306. package/lib/directives/template.directive.d.ts +0 -13
  307. package/lib/mng-commons.module.d.ts +0 -79
  308. package/lib/models/router.model.d.ts +0 -14
  309. package/lib/pipes/boolean.pipe.d.ts +0 -7
  310. package/lib/pipes/property-path.pipe.d.ts +0 -7
  311. package/lib/services/action.service.d.ts +0 -92
  312. package/lib/services/commons.service.d.ts +0 -72
  313. package/lib/services/configuration.service.d.ts +0 -35
  314. package/lib/services/navigation.service.d.ts +0 -14
  315. package/lib/services/providers/commons-init.provider.d.ts +0 -2
  316. package/lib/services/providers/config-service.provider.d.ts +0 -5
  317. package/lib/services/providers/formly-config.provider.d.ts +0 -4
  318. package/lib/services/tokens/browser-storage.token.d.ts +0 -2
  319. package/lib/services/tokens/module-config.token.d.ts +0 -3
  320. package/lib/types/type.decorator.d.ts +0 -2
  321. package/lib/types/type.model.d.ts +0 -10
  322. package/lib/utils/editor-formly.util.d.ts +0 -9
  323. package/lib/utils/i18n.util.d.ts +0 -18
  324. package/lib/utils/model.util.d.ts +0 -7
  325. package/lib/utils/toast.util.d.ts +0 -13
  326. package/lib/utils/type.util.d.ts +0 -15
  327. package/mediusinc-mng-commons-0.2.0.tgz +0 -0
  328. package/mediusinc-mng-commons.d.ts +0 -5
@@ -0,0 +1,180 @@
1
+ import {AbstractControl} from '@angular/forms';
2
+
3
+ import {
4
+ ModelDescriptor,
5
+ AFieldDescriptor,
6
+ EditorDescriptor,
7
+ FieldInputDescriptor,
8
+ FieldLookupDescriptor,
9
+ FieldLookupEnumDescriptor,
10
+ FieldManyEditorDescriptor,
11
+ FieldManyToManyEditorDescriptor,
12
+ ColumnDescriptor,
13
+ TableDescriptor
14
+ } from './';
15
+ import {ClassType, EnumMemberType} from '../types';
16
+
17
+ export class TableviewDescriptor<T> {
18
+
19
+ private readonly _model: ModelDescriptor<T>;
20
+ private _table: TableDescriptor<T>;
21
+ private _viewEditor: EditorDescriptor<T>;
22
+ private _addEditor: EditorDescriptor<T>;
23
+ private _editEditor: EditorDescriptor<T>;
24
+ private _tableTitle: string;
25
+
26
+ constructor(modelType: ClassType<T>, idProperty?: string, titleProperty?: string) {
27
+ this._model = new ModelDescriptor<T>(modelType, idProperty, titleProperty);
28
+ this._table = new TableDescriptor<T>(modelType, idProperty, titleProperty);
29
+ this._viewEditor = new EditorDescriptor<T>(modelType, idProperty, titleProperty);
30
+ this._viewEditor.withDisabled();
31
+ this._addEditor = new EditorDescriptor<T>(modelType, idProperty, titleProperty);
32
+ this._editEditor = new EditorDescriptor<T>(modelType, idProperty, titleProperty);
33
+ this._tableTitle = `${this._model.typeName}.name`;
34
+ }
35
+
36
+ public get model() {
37
+ return this._model;
38
+ }
39
+
40
+ public get table() {
41
+ return this._table;
42
+ }
43
+
44
+ public get viewEditor() {
45
+ return this._viewEditor;
46
+ }
47
+
48
+ public get addEditor() {
49
+ return this._addEditor;
50
+ }
51
+
52
+ public get editEditor() {
53
+ return this._editEditor;
54
+ }
55
+
56
+ public get tableTitle() {
57
+ return this._tableTitle;
58
+ }
59
+
60
+ public withTableDescriptor(descriptor: TableDescriptor<T>): this {
61
+ this._table = descriptor;
62
+ return this;
63
+ }
64
+
65
+ public withViewDescriptor(descriptor: EditorDescriptor<T>): this {
66
+ this._viewEditor = descriptor;
67
+ return this;
68
+ }
69
+
70
+ public withAddDescriptor(descriptor: EditorDescriptor<T>): this {
71
+ this._addEditor = descriptor;
72
+ return this;
73
+ }
74
+
75
+ public withEditDescriptor(descriptor: EditorDescriptor<T>): this {
76
+ this._editEditor = descriptor;
77
+ return this;
78
+ }
79
+
80
+ public withTableTitle(title: string): this {
81
+ this._tableTitle = title;
82
+ return this;
83
+ }
84
+
85
+ public withValidator(name: string, expression: (control: AbstractControl) => boolean): this {
86
+ this._viewEditor.addValidator(name, expression);
87
+ this._addEditor.addValidator(name, expression);
88
+ this._editEditor.addValidator(name, expression);
89
+ return this;
90
+ }
91
+
92
+ public addColumnDescriptor<CT>(column: ColumnDescriptor<CT, T>): TableDescriptor<T> {
93
+ return this._table.addColumnDescriptor<CT>(column);
94
+ }
95
+
96
+ public addColumn(property: string): ColumnDescriptor<string, T> {
97
+ return this._table.addColumn(property);
98
+ }
99
+
100
+ public addColumnNumber(property: string, displayFormat?: string): ColumnDescriptor<number, T> {
101
+ return this._table.addColumnNumber(property, displayFormat);
102
+ }
103
+
104
+ public addColumnDate(property: string, displayFormat?: string): ColumnDescriptor<Date, T> {
105
+ return this._table.addColumnDate(property, displayFormat);
106
+ }
107
+
108
+ public addColumnBoolean(property: string): ColumnDescriptor<boolean, T> {
109
+ return this._table.addColumnBoolean(property);
110
+ }
111
+
112
+ public addColumnObject<CT>(property: string, modelType: ClassType<CT>, displayProperty: string): ColumnDescriptor<CT, T> {
113
+ return this._table.addColumnObject(property, modelType, displayProperty);
114
+ }
115
+
116
+ public createTabGroup(name: string, title?: string): this {
117
+ this._viewEditor.createTabGroup(name, title);
118
+ this._addEditor.createTabGroup(name, title);
119
+ this._editEditor.createTabGroup(name, title);
120
+ return this;
121
+ }
122
+
123
+ public createFieldGroup(name: string, title?: string): this {
124
+ this._viewEditor.createFieldGroup(name, title);
125
+ this._addEditor.createFieldGroup(name, title);
126
+ this._editEditor.createFieldGroup(name, title);
127
+ return this;
128
+ }
129
+
130
+ public addFieldDescriptor<FT>(field: AFieldDescriptor<FT, T>): this {
131
+ this._viewEditor.addFieldDescriptor(field);
132
+ this._addEditor.addFieldDescriptor(field);
133
+ this._editEditor.addFieldDescriptor(field);
134
+ return this;
135
+ }
136
+
137
+ public addField(property: string): FieldInputDescriptor<T> {
138
+ const field = this._viewEditor.addField(property);
139
+ this._addEditor.addFieldDescriptor(field);
140
+ this._editEditor.addFieldDescriptor(field);
141
+ return field;
142
+ }
143
+
144
+ public addFieldLookup<FT>(property: string, modelType: ClassType<FT>): FieldLookupDescriptor<FT, T> {
145
+ const field = this._viewEditor.addFieldLookup(property, modelType);
146
+ this._addEditor.addFieldDescriptor(field);
147
+ this._editEditor.addFieldDescriptor(field);
148
+ return field;
149
+ }
150
+
151
+ public addFieldLookupEnum(property: string, options: Array<EnumMemberType>): FieldLookupEnumDescriptor<T> {
152
+ const field = this._viewEditor.addFieldLookupEnum(property, options);
153
+ this._addEditor.addFieldDescriptor(field);
154
+ this._editEditor.addFieldDescriptor(field);
155
+ return field;
156
+ }
157
+
158
+ public addFieldManyEditor<FT>(property: string, type: ClassType<FT>, tableviewDescriptor: TableviewDescriptor<FT>): FieldManyEditorDescriptor<FT, T> {
159
+ const field = this._viewEditor.addFieldManyEditor(property, type, tableviewDescriptor);
160
+ this._addEditor.addFieldDescriptor(field);
161
+ this._editEditor.addFieldDescriptor(field);
162
+ return field;
163
+ }
164
+
165
+ public addFieldManyToManyEditor<FT>(property: string, type: ClassType<FT>, mainTableDescriptor: TableDescriptor<FT>, lookupTableDescriptor: TableDescriptor<FT>): FieldManyToManyEditorDescriptor<FT, T> {
166
+ const field = this._viewEditor.addFieldManyToManyEditor(property, type, mainTableDescriptor, lookupTableDescriptor);
167
+ this._addEditor.addFieldDescriptor(field);
168
+ this._editEditor.addFieldDescriptor(field);
169
+ return field;
170
+ }
171
+
172
+ public copy(): TableviewDescriptor<T> {
173
+ const tableview = new TableviewDescriptor(this._model.type, this._model.idPropertyName, this._model.titlePropertyName);
174
+ tableview._table = this._table.copy();
175
+ tableview._viewEditor = this._viewEditor.copy();
176
+ tableview._addEditor = this._addEditor.copy();
177
+ tableview._editEditor = this._editEditor.copy();
178
+ return tableview;
179
+ }
180
+ }
@@ -0,0 +1,18 @@
1
+ import {ComponentRef, Directive, Input, OnInit, Type, ViewContainerRef} from '@angular/core';
2
+
3
+ @Directive({
4
+ selector: '[mngComponent]',
5
+ })
6
+ export class MngComponentDirective<T> implements OnInit {
7
+
8
+ @Input('mngComponent') component!: Type<T>;
9
+
10
+ public componentRef!: ComponentRef<T>;
11
+
12
+ constructor(public viewContainerRef: ViewContainerRef) {}
13
+
14
+ ngOnInit() {
15
+ this.viewContainerRef.clear();
16
+ this.componentRef = this.viewContainerRef.createComponent<T>(this.component);
17
+ }
18
+ }
@@ -1,2 +1,2 @@
1
- export * from './component.directive';
2
- export * from './template.directive';
1
+ export * from './component.directive';
2
+ export * from './template.directive';
@@ -0,0 +1,24 @@
1
+ import {Directive, Input, TemplateRef, ViewContainerRef} from '@angular/core';
2
+
3
+ @Directive({
4
+ selector: '[mngTemplate]',
5
+ host: {}
6
+ })
7
+ export class MngTemplateDirective {
8
+
9
+ @Input() type!: string;
10
+ @Input('mngTemplate') name!: string;
11
+
12
+ constructor(
13
+ public template: TemplateRef<any>,
14
+ private viewContainerRef: ViewContainerRef
15
+ ) {}
16
+
17
+ public getType(): string {
18
+ return this.name;
19
+ }
20
+
21
+ public getViewContainerRef(): ViewContainerRef {
22
+ return this.viewContainerRef;
23
+ }
24
+ }
@@ -0,0 +1,240 @@
1
+ import {APP_INITIALIZER, ModuleWithProviders, NgModule} from '@angular/core';
2
+ import {CommonModule} from '@angular/common';
3
+ import {ReactiveFormsModule} from '@angular/forms';
4
+ import {RouterModule} from '@angular/router';
5
+ import {HttpClient, HttpClientModule} from '@angular/common/http';
6
+
7
+ import {FORMLY_CONFIG, FormlyModule} from '@ngx-formly/core';
8
+ import {TranslateModule, TranslateService} from '@ngx-translate/core';
9
+
10
+ // primeng modules
11
+ import {ConfirmationService, MessageService} from 'primeng/api';
12
+ import {AutoCompleteModule} from 'primeng/autocomplete';
13
+ import {BreadcrumbModule} from 'primeng/breadcrumb';
14
+ import {ButtonModule} from 'primeng/button';
15
+ import {CardModule} from 'primeng/card';
16
+ import {CheckboxModule} from 'primeng/checkbox';
17
+ import {ChipModule} from 'primeng/chip';
18
+ import {ConfirmDialogModule} from 'primeng/confirmdialog';
19
+ import {ConfirmPopupModule} from 'primeng/confirmpopup';
20
+ import {DialogModule} from 'primeng/dialog';
21
+ import {DialogService, DynamicDialogModule} from 'primeng/dynamicdialog';
22
+ import {DropdownModule} from 'primeng/dropdown';
23
+ import {InputNumberModule} from 'primeng/inputnumber';
24
+ import {InputMaskModule} from 'primeng/inputmask';
25
+ import {InputSwitchModule} from 'primeng/inputswitch';
26
+ import {InputTextModule} from 'primeng/inputtext';
27
+ import {InputTextareaModule} from 'primeng/inputtextarea';
28
+ import {PaginatorModule} from 'primeng/paginator';
29
+ import {RadioButtonModule} from 'primeng/radiobutton';
30
+ import {RippleModule} from 'primeng/ripple';
31
+ import {SelectButtonModule} from 'primeng/selectbutton';
32
+ import {TableModule} from 'primeng/table';
33
+ import {TagModule} from 'primeng/tag';
34
+ import {ToastModule} from 'primeng/toast';
35
+ import {ToggleButtonModule} from 'primeng/togglebutton';
36
+ import {ToolbarModule} from 'primeng/toolbar';
37
+ import {TooltipModule} from 'primeng/tooltip';
38
+ import {MessagesModule} from 'primeng/messages';
39
+ import {ProgressSpinnerModule} from 'primeng/progressspinner';
40
+ import {TabViewModule} from 'primeng/tabview';
41
+ import {FieldsetModule} from 'primeng/fieldset';
42
+ import {CalendarModule} from 'primeng/calendar';
43
+ import {MultiSelectModule} from 'primeng/multiselect';
44
+ import {SkeletonModule} from 'primeng/skeleton';
45
+
46
+ // directives
47
+ import {MngComponentDirective, MngTemplateDirective} from './directives';
48
+
49
+ // pipes
50
+ import {MngPropertyPathPipe, MngBooleanPipe} from './pipes';
51
+
52
+ // components
53
+ // editor components
54
+ import {MngFormEditorComponent, MngAutocompleteComponent, MngDropdownComponent} from './components/form';
55
+
56
+ // layout components
57
+ import {MngBreadcrumbComponent, MngFooterComponent, MngMainLayoutComponent, MngMenuComponent, MngMenuItemComponent, MngTopbarComponent} from './components/layout';
58
+
59
+ // formly components
60
+ import {MngFormlyFieldWrapperComponent, MngFormlyTableWrapperComponent} from './components/form/formly/wrappers';
61
+ import {MngFormlyFieldAutocompleteComponent, MngFormlyFieldDropdownComponent, MngFormlyFieldFieldsetComponent, MngFormlyFieldInputComponent, MngFormlyFieldTableDialogFormComponent, MngFormlyFieldTableDialogMultiselectComponent, MngFormlyFieldTabsComponent} from './components/form/formly/fields';
62
+
63
+ // table components
64
+ import {MngTableComponent, MngTableviewComponent, MngTableColumnFilterComponent, MngTableColumnValueComponent} from './components/tableview';
65
+ import {MngActionComponent, MngActionDialogComponent, MngActionRouteComponent} from './components/action';
66
+
67
+ // services
68
+ import {ObjectSerializer} from './api/utils';
69
+ import {MngActionService, MngCommonsService, MngConfigurationService, MngNavigationService} from './services';
70
+ import {mngConfigJsonAppInitializerProvider, mngConfigurationServiceProvider, mngFormlyConfigProvider} from './services/providers';
71
+
72
+ // component services
73
+ import {TableviewComponentService} from './components/tableview/services';
74
+ import {MngMainLayoutComponentService} from './components/layout/services';
75
+
76
+ // module config
77
+ import {MngModuleConfig} from './config/models';
78
+ import {mngCommonsInitializerProvider} from './services/providers';
79
+ import {MNG_MODULE_CONFIG_IT} from './services/tokens';
80
+
81
+ // primeng modules
82
+ export const primeNgModules = [
83
+ AutoCompleteModule,
84
+ BreadcrumbModule,
85
+ ButtonModule,
86
+ CalendarModule,
87
+ CardModule,
88
+ CheckboxModule,
89
+ ChipModule,
90
+ ConfirmDialogModule,
91
+ ConfirmPopupModule,
92
+ DialogModule,
93
+ DynamicDialogModule,
94
+ DropdownModule,
95
+ InputNumberModule,
96
+ InputMaskModule,
97
+ InputSwitchModule,
98
+ InputTextModule,
99
+ InputTextareaModule,
100
+ PaginatorModule,
101
+ RadioButtonModule,
102
+ RippleModule,
103
+ SelectButtonModule,
104
+ TableModule,
105
+ TagModule,
106
+ ToastModule,
107
+ ToggleButtonModule,
108
+ ToolbarModule,
109
+ TooltipModule,
110
+ MessagesModule,
111
+ ProgressSpinnerModule,
112
+ TabViewModule,
113
+ FieldsetModule,
114
+ MultiSelectModule,
115
+ SkeletonModule
116
+ ];
117
+
118
+ const declarations = [
119
+ // directives
120
+ MngComponentDirective,
121
+ MngTemplateDirective,
122
+
123
+ // pipes
124
+ MngPropertyPathPipe,
125
+ MngBooleanPipe,
126
+
127
+ // layout components
128
+ MngBreadcrumbComponent,
129
+ MngFooterComponent,
130
+ MngMainLayoutComponent,
131
+ MngMenuComponent,
132
+ MngMenuItemComponent,
133
+ MngTopbarComponent,
134
+
135
+ // mng fields
136
+ MngAutocompleteComponent,
137
+ MngDropdownComponent,
138
+
139
+ // formly wrappers
140
+ MngFormlyFieldWrapperComponent,
141
+ MngFormlyTableWrapperComponent,
142
+
143
+ // formly fields
144
+ MngFormlyFieldInputComponent,
145
+ MngFormlyFieldDropdownComponent,
146
+ MngFormlyFieldAutocompleteComponent,
147
+ MngFormlyFieldTableDialogMultiselectComponent,
148
+ MngFormlyFieldTableDialogFormComponent,
149
+ MngFormlyFieldTabsComponent,
150
+ MngFormlyFieldFieldsetComponent,
151
+
152
+ // table components
153
+ MngTableComponent,
154
+ MngTableviewComponent,
155
+ MngTableColumnValueComponent,
156
+ MngTableColumnFilterComponent,
157
+
158
+ // editor components
159
+ MngFormEditorComponent,
160
+ MngActionComponent,
161
+ MngActionDialogComponent,
162
+ MngActionRouteComponent
163
+ ];
164
+
165
+ @NgModule({
166
+ imports: [
167
+ // angular modules
168
+ CommonModule,
169
+ RouterModule,
170
+ HttpClientModule,
171
+ ReactiveFormsModule,
172
+
173
+ // other modules
174
+ TranslateModule.forChild({
175
+ extend: true
176
+ }),
177
+ FormlyModule.forChild(),
178
+ ...primeNgModules
179
+ ],
180
+ declarations: [
181
+ ...declarations
182
+ ],
183
+ exports: [
184
+ ...primeNgModules,
185
+ ...declarations
186
+ ]
187
+ })
188
+ export class MngCommonsModule {
189
+ static forRoot(config: MngModuleConfig): ModuleWithProviders<MngCommonsModule> {
190
+ return {
191
+ ngModule: MngCommonsModule,
192
+ providers: [
193
+ // primeng services
194
+ DialogService,
195
+ MessageService,
196
+ ConfirmationService,
197
+
198
+ MngActionService,
199
+ MngNavigationService,
200
+ MngCommonsService,
201
+
202
+ // component service
203
+ MngMainLayoutComponentService,
204
+ TableviewComponentService,
205
+
206
+ {
207
+ provide: MNG_MODULE_CONFIG_IT,
208
+ useValue: config
209
+ },
210
+ {
211
+ provide: ObjectSerializer,
212
+ useFactory: () => ObjectSerializer.get()
213
+ },
214
+ {
215
+ provide: MngConfigurationService,
216
+ useFactory: mngConfigurationServiceProvider,
217
+ deps: [HttpClient, MNG_MODULE_CONFIG_IT]
218
+ },
219
+ {
220
+ provide: APP_INITIALIZER,
221
+ useFactory: mngConfigJsonAppInitializerProvider,
222
+ deps: [MngConfigurationService, MNG_MODULE_CONFIG_IT],
223
+ multi: true
224
+ },
225
+ {
226
+ provide: APP_INITIALIZER,
227
+ useFactory: mngCommonsInitializerProvider,
228
+ deps: [MngCommonsService],
229
+ multi: true
230
+ },
231
+ {
232
+ provide: FORMLY_CONFIG,
233
+ multi: true,
234
+ useFactory: mngFormlyConfigProvider,
235
+ deps: [TranslateService, MNG_MODULE_CONFIG_IT]
236
+ }
237
+ ]
238
+ };
239
+ }
240
+ }
@@ -1,2 +1,2 @@
1
- export * from './router.model';
2
- export * from './user.model';
1
+ export * from './router.model';
2
+ export * from './user.model';
@@ -0,0 +1,16 @@
1
+ import {ActivatedRouteSnapshot, Data} from '@angular/router';
2
+ import {MenuItem} from 'primeng/api';
3
+ import {Type} from '@angular/core';
4
+
5
+ export interface MngBreadcrumbMenuItem extends MenuItem {
6
+ isHome?: boolean;
7
+ }
8
+
9
+ export interface MngRouterData extends Data {
10
+ breadcrumb?: string|string[]|MngBreadcrumbMenuItem|MngBreadcrumbMenuItem[]|((routeUrl: string, route: ActivatedRouteSnapshot) => MngBreadcrumbMenuItem[]);
11
+ pageTitle?: string;
12
+ topbarComponent?: Type<any>;
13
+ breadcrumbComponent?: Type<any>;
14
+ menuComponent?: Type<any>;
15
+ footerComponent?: Type<any>;
16
+ }
@@ -1,8 +1,9 @@
1
- import { IdType } from '../types';
2
- export interface IUser {
3
- id: IdType;
4
- username: string;
5
- displayName?: string;
6
- logout?: () => void;
7
- logoutUrl?: string;
8
- }
1
+ import {IdType} from '../types';
2
+
3
+ export interface IUser {
4
+ id: IdType;
5
+ username: string;
6
+ displayName?: string;
7
+ logout?:() => void;
8
+ logoutUrl?: string;
9
+ }
@@ -0,0 +1,17 @@
1
+ import { Pipe, PipeTransform } from '@angular/core';
2
+
3
+ @Pipe({
4
+ name: 'boolean',
5
+ pure: true
6
+ })
7
+ export class MngBooleanPipe implements PipeTransform {
8
+
9
+ transform(value: any): any {
10
+
11
+ if (typeof value === 'boolean') {
12
+ return value ? 'general.yes' : 'general.no';
13
+ } else {
14
+ return value;
15
+ }
16
+ }
17
+ }
@@ -1,2 +1,2 @@
1
- export * from './boolean.pipe';
2
- export * from './property-path.pipe';
1
+ export * from './boolean.pipe';
2
+ export * from './property-path.pipe';
@@ -0,0 +1,30 @@
1
+ import { Pipe, PipeTransform } from '@angular/core';
2
+
3
+ @Pipe({
4
+ name: 'propertyPath',
5
+ pure: true
6
+ })
7
+ export class MngPropertyPathPipe implements PipeTransform {
8
+
9
+ transform(value: any, path: string = ''): any {
10
+
11
+ if (path.indexOf('.') >= 0) {
12
+ const pathSplit = path.split('.');
13
+ let currValue = value;
14
+ for (const p of pathSplit) {
15
+ if (typeof currValue === 'undefined' || currValue === null) {
16
+ return currValue;
17
+ }
18
+ else if (typeof currValue === 'object') {
19
+ currValue = currValue[p];
20
+ } else {
21
+ console.warn(`Path ${path} is not valid for object`, value);
22
+ return currValue;
23
+ }
24
+ }
25
+ return currValue;
26
+ } else {
27
+ return typeof value === 'object' ? value[path] : value;
28
+ }
29
+ }
30
+ }