@abp/ng.theme.shared 7.2.1 → 7.3.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (314) hide show
  1. package/{esm2020 → esm2022}/abp-ng.theme.shared.mjs +4 -4
  2. package/{esm2020 → esm2022}/extensions/abp-ng.theme.shared-extensions.mjs +4 -4
  3. package/esm2022/extensions/lib/adapters/date-time.adapter.mjs +45 -0
  4. package/esm2022/extensions/lib/adapters/date.adapter.mjs +42 -0
  5. package/esm2022/extensions/lib/adapters/time.adapter.mjs +37 -0
  6. package/esm2022/extensions/lib/components/abstract-actions/abstract-actions.component.mjs +26 -0
  7. package/esm2022/extensions/lib/components/date-time-picker/date-time-picker.component.mjs +110 -0
  8. package/esm2022/extensions/lib/components/extensible-form/extensible-form-prop.component.mjs +199 -0
  9. package/esm2022/extensions/lib/components/extensible-form/extensible-form.component.mjs +74 -0
  10. package/esm2022/extensions/lib/components/extensible-table/extensible-table.component.mjs +136 -0
  11. package/esm2022/extensions/lib/components/grid-actions/grid-actions.component.mjs +40 -0
  12. package/esm2022/extensions/lib/components/page-toolbar/page-toolbar.component.mjs +39 -0
  13. package/{esm2020 → esm2022}/extensions/lib/constants/extra-properties.mjs +1 -1
  14. package/esm2022/extensions/lib/directives/disabled.directive.mjs +30 -0
  15. package/esm2022/extensions/lib/directives/prop-data.directive.mjs +42 -0
  16. package/{esm2020 → esm2022}/extensions/lib/enums/components.mjs +1 -1
  17. package/{esm2020 → esm2022}/extensions/lib/enums/props.enum.mjs +1 -1
  18. package/{esm2020 → esm2022}/extensions/lib/models/actions.mjs +46 -46
  19. package/{esm2020 → esm2022}/extensions/lib/models/entity-actions.mjs +28 -28
  20. package/{esm2020 → esm2022}/extensions/lib/models/entity-props.mjs +42 -42
  21. package/esm2022/extensions/lib/models/form-props.mjs +76 -0
  22. package/{esm2020 → esm2022}/extensions/lib/models/internal/object-extensions.mjs +2 -2
  23. package/{esm2020 → esm2022}/extensions/lib/models/object-extensions.mjs +2 -2
  24. package/esm2022/extensions/lib/models/props.mjs +54 -0
  25. package/{esm2020 → esm2022}/extensions/lib/models/toolbar-actions.mjs +43 -43
  26. package/esm2022/extensions/lib/pipes/create-injector.pipe.mjs +37 -0
  27. package/esm2022/extensions/lib/services/extensions.service.mjs +25 -0
  28. package/{esm2020 → esm2022}/extensions/lib/tokens/extensible-form-view-provider.token.mjs +2 -2
  29. package/{esm2020 → esm2022}/extensions/lib/tokens/extensions.token.mjs +11 -11
  30. package/esm2022/extensions/lib/ui-extensions.module.mjs +97 -0
  31. package/{esm2020 → esm2022}/extensions/lib/utils/actions.util.mjs +8 -8
  32. package/{esm2020 → esm2022}/extensions/lib/utils/enum.util.mjs +41 -41
  33. package/{esm2020 → esm2022}/extensions/lib/utils/factory.util.mjs +3 -3
  34. package/esm2022/extensions/lib/utils/form-props.util.mjs +51 -0
  35. package/{esm2020 → esm2022}/extensions/lib/utils/localization.util.mjs +12 -12
  36. package/{esm2020 → esm2022}/extensions/lib/utils/props.util.mjs +13 -13
  37. package/esm2022/extensions/lib/utils/state.util.mjs +126 -0
  38. package/{esm2020 → esm2022}/extensions/lib/utils/typeahead.util.mjs +51 -51
  39. package/{esm2020 → esm2022}/extensions/lib/utils/validation.util.mjs +10 -10
  40. package/{esm2020 → esm2022}/extensions/public-api.mjs +30 -30
  41. package/{esm2020 → esm2022}/lib/animations/bounce.animations.mjs +16 -16
  42. package/{esm2020 → esm2022}/lib/animations/collapse.animations.mjs +49 -49
  43. package/{esm2020 → esm2022}/lib/animations/fade.animations.mjs +37 -37
  44. package/{esm2020 → esm2022}/lib/animations/index.mjs +6 -6
  45. package/{esm2020 → esm2022}/lib/animations/modal.animations.mjs +10 -10
  46. package/{esm2020 → esm2022}/lib/animations/slide.animations.mjs +7 -7
  47. package/{esm2020 → esm2022}/lib/animations/toast.animations.mjs +12 -12
  48. package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +44 -0
  49. package/esm2022/lib/components/breadcrumb-items/breadcrumb-items.component.mjs +20 -0
  50. package/esm2022/lib/components/button/button.component.mjs +103 -0
  51. package/{esm2020 → esm2022}/lib/components/card/card-body.component.mjs +27 -26
  52. package/esm2022/lib/components/card/card-footer.component.mjs +31 -0
  53. package/esm2022/lib/components/card/card-header.component.mjs +31 -0
  54. package/esm2022/lib/components/card/card-header.directive.mjs +20 -0
  55. package/esm2022/lib/components/card/card-img-top.directive.mjs +20 -0
  56. package/esm2022/lib/components/card/card-subtitle.directive.mjs +20 -0
  57. package/esm2022/lib/components/card/card-title.directive.mjs +20 -0
  58. package/esm2022/lib/components/card/card.component.mjs +24 -0
  59. package/esm2022/lib/components/card/card.module.mjs +50 -0
  60. package/{esm2020 → esm2022}/lib/components/card/index.mjs +9 -9
  61. package/esm2022/lib/components/checkbox/checkbox.component.mjs +89 -0
  62. package/esm2022/lib/components/confirmation/confirmation.component.mjs +46 -0
  63. package/esm2022/lib/components/form-input/form-input.component.mjs +95 -0
  64. package/esm2022/lib/components/http-error-wrapper/http-error-wrapper.component.mjs +60 -0
  65. package/{esm2020 → esm2022}/lib/components/index.mjs +16 -16
  66. package/esm2022/lib/components/loader-bar/loader-bar.component.mjs +122 -0
  67. package/esm2022/lib/components/loading/loading.component.mjs +20 -0
  68. package/esm2022/lib/components/modal/modal-close.directive.mjs +28 -0
  69. package/esm2022/lib/components/modal/modal-ref.service.mjs +27 -0
  70. package/esm2022/lib/components/modal/modal.component.mjs +190 -0
  71. package/esm2022/lib/components/password/password.component.mjs +39 -0
  72. package/esm2022/lib/components/toast/toast.component.mjs +56 -0
  73. package/esm2022/lib/components/toast-container/toast-container.component.mjs +59 -0
  74. package/{esm2020 → esm2022}/lib/constants/styles.mjs +1 -1
  75. package/{esm2020 → esm2022}/lib/constants/validation.mjs +19 -19
  76. package/esm2022/lib/directives/ellipsis.directive.mjs +65 -0
  77. package/{esm2020 → esm2022}/lib/directives/index.mjs +5 -5
  78. package/esm2022/lib/directives/loading.directive.mjs +90 -0
  79. package/esm2022/lib/directives/ngx-datatable-default.directive.mjs +76 -0
  80. package/esm2022/lib/directives/ngx-datatable-list.directive.mjs +95 -0
  81. package/esm2022/lib/directives/visible.directive.mjs +63 -0
  82. package/{esm2020 → esm2022}/lib/enums/form.mjs +5 -5
  83. package/{esm2020 → esm2022}/lib/enums/index.mjs +2 -2
  84. package/{esm2020 → esm2022}/lib/enums/route-names.mjs +1 -1
  85. package/esm2022/lib/handlers/document-dir.handler.mjs +32 -0
  86. package/esm2022/lib/handlers/error.handler.mjs +294 -0
  87. package/{esm2020 → esm2022}/lib/handlers/index.mjs +2 -2
  88. package/{esm2020 → esm2022}/lib/models/common.mjs +1 -1
  89. package/{esm2020 → esm2022}/lib/models/confirmation.mjs +9 -9
  90. package/{esm2020 → esm2022}/lib/models/index.mjs +7 -7
  91. package/{esm2020 → esm2022}/lib/models/nav-item.mjs +5 -5
  92. package/{esm2020 → esm2022}/lib/models/statistics.mjs +1 -1
  93. package/{esm2020 → esm2022}/lib/models/toaster.mjs +1 -1
  94. package/{esm2020 → esm2022}/lib/models/user-menu.mjs +3 -3
  95. package/{esm2020 → esm2022}/lib/models/validation.mjs +1 -1
  96. package/{esm2020 → esm2022}/lib/providers/index.mjs +2 -2
  97. package/{esm2020 → esm2022}/lib/providers/ng-bootstrap-config.provider.mjs +16 -16
  98. package/{esm2020 → esm2022}/lib/providers/route.provider.mjs +17 -17
  99. package/{esm2020 → esm2022}/lib/services/abstract-menu.service.mjs +49 -49
  100. package/esm2022/lib/services/confirmation.service.mjs +69 -0
  101. package/{esm2020 → esm2022}/lib/services/index.mjs +5 -5
  102. package/esm2022/lib/services/nav-items.service.mjs +18 -0
  103. package/esm2022/lib/services/page-alert.service.mjs +29 -0
  104. package/esm2022/lib/services/toaster.service.mjs +104 -0
  105. package/esm2022/lib/services/user-menu.service.mjs +18 -0
  106. package/esm2022/lib/theme-shared.module.mjs +202 -0
  107. package/{esm2020 → esm2022}/lib/tokens/append-content.token.mjs +10 -10
  108. package/{esm2020 → esm2022}/lib/tokens/confirmation-icons.token.mjs +10 -10
  109. package/{esm2020 → esm2022}/lib/tokens/http-error.token.mjs +13 -13
  110. package/{esm2020 → esm2022}/lib/tokens/index.mjs +4 -4
  111. package/{esm2020 → esm2022}/lib/tokens/ngx-datatable-messages.token.mjs +7 -7
  112. package/{esm2020 → esm2022}/lib/tokens/suppress-unsaved-changes-warning.token.mjs +2 -2
  113. package/esm2022/lib/utils/date-parser-formatter.mjs +59 -0
  114. package/{esm2020 → esm2022}/lib/utils/index.mjs +2 -2
  115. package/{esm2020 → esm2022}/lib/utils/validation-utils.mjs +61 -61
  116. package/{esm2020 → esm2022}/public-api.mjs +15 -15
  117. package/{esm2020 → esm2022}/testing/abp-ng.theme.shared-testing.mjs +4 -4
  118. package/{esm2020 → esm2022}/testing/lib/models/config.mjs +1 -1
  119. package/{esm2020 → esm2022}/testing/lib/models/index.mjs +1 -1
  120. package/esm2022/testing/lib/theme-shared-testing.module.mjs +47 -0
  121. package/{esm2020 → esm2022}/testing/public-api.mjs +3 -3
  122. package/extensions/index.d.ts +5 -5
  123. package/extensions/lib/adapters/date-time.adapter.d.ts +11 -11
  124. package/extensions/lib/adapters/date.adapter.d.ts +9 -9
  125. package/extensions/lib/adapters/time.adapter.d.ts +8 -8
  126. package/extensions/lib/components/abstract-actions/abstract-actions.component.d.ts +12 -12
  127. package/extensions/lib/components/date-time-picker/date-time-picker.component.d.ts +16 -16
  128. package/extensions/lib/components/extensible-form/extensible-form-prop.component.d.ts +43 -43
  129. package/extensions/lib/components/extensible-form/extensible-form.component.d.ts +25 -25
  130. package/extensions/lib/components/extensible-table/extensible-table.component.d.ts +38 -38
  131. package/extensions/lib/components/grid-actions/grid-actions.component.d.ts +13 -13
  132. package/extensions/lib/components/page-toolbar/page-toolbar.component.d.ts +20 -20
  133. package/extensions/lib/constants/extra-properties.d.ts +1 -1
  134. package/extensions/lib/directives/disabled.directive.d.ts +11 -11
  135. package/extensions/lib/directives/prop-data.directive.d.ts +19 -19
  136. package/extensions/lib/enums/components.d.ts +3 -3
  137. package/extensions/lib/enums/props.enum.d.ts +16 -16
  138. package/extensions/lib/models/actions.d.ts +36 -36
  139. package/extensions/lib/models/entity-actions.d.ts +22 -22
  140. package/extensions/lib/models/entity-props.d.ts +29 -29
  141. package/extensions/lib/models/form-props.d.ts +59 -58
  142. package/extensions/lib/models/internal/object-extensions.d.ts +86 -85
  143. package/extensions/lib/models/object-extensions.d.ts +2 -2
  144. package/extensions/lib/models/props.d.ts +45 -44
  145. package/extensions/lib/models/toolbar-actions.d.ts +38 -38
  146. package/extensions/lib/pipes/create-injector.pipe.d.ts +8 -8
  147. package/extensions/lib/services/extensions.service.d.ts +14 -14
  148. package/extensions/lib/tokens/extensible-form-view-provider.token.d.ts +5 -5
  149. package/extensions/lib/tokens/extensions.token.d.ts +20 -24
  150. package/extensions/lib/ui-extensions.module.d.ts +24 -24
  151. package/extensions/lib/utils/actions.util.d.ts +7 -7
  152. package/extensions/lib/utils/enum.util.d.ts +7 -7
  153. package/extensions/lib/utils/factory.util.d.ts +1 -1
  154. package/extensions/lib/utils/form-props.util.d.ts +3 -3
  155. package/extensions/lib/utils/localization.util.d.ts +3 -3
  156. package/extensions/lib/utils/props.util.d.ts +9 -9
  157. package/extensions/lib/utils/state.util.d.ts +5 -5
  158. package/extensions/lib/utils/typeahead.util.d.ts +11 -11
  159. package/extensions/lib/utils/validation.util.d.ts +3 -3
  160. package/extensions/public-api.d.ts +30 -30
  161. package/{fesm2020 → fesm2022}/abp-ng.theme.shared-extensions.mjs +1335 -1330
  162. package/fesm2022/abp-ng.theme.shared-extensions.mjs.map +1 -0
  163. package/{fesm2020 → fesm2022}/abp-ng.theme.shared-testing.mjs +40 -40
  164. package/{fesm2015 → fesm2022}/abp-ng.theme.shared-testing.mjs.map +1 -1
  165. package/{fesm2020 → fesm2022}/abp-ng.theme.shared.mjs +2292 -2293
  166. package/fesm2022/abp-ng.theme.shared.mjs.map +1 -0
  167. package/index.d.ts +5 -5
  168. package/lib/animations/bounce.animations.d.ts +1 -1
  169. package/lib/animations/collapse.animations.d.ts +9 -9
  170. package/lib/animations/fade.animations.d.ts +10 -10
  171. package/lib/animations/index.d.ts +6 -6
  172. package/lib/animations/modal.animations.d.ts +2 -2
  173. package/lib/animations/slide.animations.d.ts +1 -1
  174. package/lib/animations/toast.animations.d.ts +1 -1
  175. package/lib/components/breadcrumb/breadcrumb.component.d.ts +16 -16
  176. package/lib/components/breadcrumb-items/breadcrumb-items.component.d.ts +7 -7
  177. package/lib/components/button/button.component.d.ts +26 -26
  178. package/lib/components/card/card-body.component.d.ts +8 -8
  179. package/lib/components/card/card-footer.component.d.ts +8 -8
  180. package/lib/components/card/card-header.component.d.ts +8 -8
  181. package/lib/components/card/card-header.directive.d.ts +6 -6
  182. package/lib/components/card/card-img-top.directive.d.ts +6 -6
  183. package/lib/components/card/card-subtitle.directive.d.ts +6 -6
  184. package/lib/components/card/card-title.directive.d.ts +6 -6
  185. package/lib/components/card/card.component.d.ts +7 -7
  186. package/lib/components/card/card.module.d.ts +15 -15
  187. package/lib/components/card/index.d.ts +9 -9
  188. package/lib/components/checkbox/checkbox.component.d.ts +18 -18
  189. package/lib/components/confirmation/confirmation.component.d.ts +19 -19
  190. package/lib/components/form-input/form-input.component.d.ts +19 -20
  191. package/lib/components/http-error-wrapper/http-error-wrapper.component.d.ts +27 -27
  192. package/lib/components/index.d.ts +16 -16
  193. package/lib/components/loader-bar/loader-bar.component.d.ts +33 -33
  194. package/lib/components/loading/loading.component.d.ts +5 -5
  195. package/lib/components/modal/modal-close.directive.d.ts +9 -9
  196. package/lib/components/modal/modal-ref.service.d.ts +13 -13
  197. package/lib/components/modal/modal.component.d.ts +50 -50
  198. package/lib/components/password/password.component.d.ts +12 -12
  199. package/lib/components/toast/toast.component.d.ts +14 -14
  200. package/lib/components/toast-container/toast-container.component.d.ts +22 -22
  201. package/lib/constants/styles.d.ts +2 -2
  202. package/lib/constants/validation.d.ts +19 -19
  203. package/lib/directives/ellipsis.directive.d.ts +21 -21
  204. package/lib/directives/index.d.ts +5 -5
  205. package/lib/directives/loading.directive.d.ts +25 -25
  206. package/lib/directives/ngx-datatable-default.directive.d.ts +30 -30
  207. package/lib/directives/ngx-datatable-list.directive.d.ts +24 -24
  208. package/lib/directives/visible.directive.d.ts +18 -18
  209. package/lib/enums/form.d.ts +4 -4
  210. package/lib/enums/index.d.ts +2 -2
  211. package/lib/enums/route-names.d.ts +3 -3
  212. package/lib/handlers/document-dir.handler.d.ts +13 -13
  213. package/lib/handlers/error.handler.d.ts +83 -83
  214. package/lib/handlers/index.d.ts +2 -2
  215. package/lib/models/common.d.ts +21 -21
  216. package/lib/models/confirmation.d.ts +27 -27
  217. package/lib/models/index.d.ts +7 -7
  218. package/lib/models/nav-item.d.ts +13 -13
  219. package/lib/models/statistics.d.ts +12 -12
  220. package/lib/models/toaster.d.ts +30 -30
  221. package/lib/models/user-menu.d.ts +8 -8
  222. package/lib/models/validation.d.ts +1 -1
  223. package/lib/providers/index.d.ts +2 -2
  224. package/lib/providers/ng-bootstrap-config.provider.d.ts +8 -8
  225. package/lib/providers/route.provider.d.ts +8 -8
  226. package/lib/services/abstract-menu.service.d.ts +13 -13
  227. package/lib/services/confirmation.service.d.ts +21 -21
  228. package/lib/services/index.d.ts +5 -5
  229. package/lib/services/nav-items.service.d.ts +8 -8
  230. package/lib/services/page-alert.service.d.ts +18 -18
  231. package/lib/services/toaster.service.d.ts +60 -60
  232. package/lib/services/user-menu.service.d.ts +8 -8
  233. package/lib/theme-shared.module.d.ts +38 -38
  234. package/lib/tokens/append-content.token.d.ts +2 -2
  235. package/lib/tokens/confirmation-icons.token.d.ts +11 -11
  236. package/lib/tokens/http-error.token.d.ts +5 -5
  237. package/lib/tokens/index.d.ts +4 -4
  238. package/lib/tokens/ngx-datatable-messages.token.d.ts +12 -12
  239. package/lib/tokens/suppress-unsaved-changes-warning.token.d.ts +2 -2
  240. package/lib/utils/date-parser-formatter.d.ts +12 -12
  241. package/lib/utils/index.d.ts +2 -2
  242. package/lib/utils/validation-utils.d.ts +5 -5
  243. package/package.json +14 -24
  244. package/public-api.d.ts +12 -12
  245. package/testing/index.d.ts +5 -5
  246. package/testing/lib/models/config.d.ts +4 -4
  247. package/testing/lib/models/index.d.ts +1 -1
  248. package/testing/lib/theme-shared-testing.module.d.ts +14 -14
  249. package/testing/public-api.d.ts +3 -3
  250. package/esm2020/extensions/lib/adapters/date-time.adapter.mjs +0 -44
  251. package/esm2020/extensions/lib/adapters/date.adapter.mjs +0 -41
  252. package/esm2020/extensions/lib/adapters/time.adapter.mjs +0 -36
  253. package/esm2020/extensions/lib/components/abstract-actions/abstract-actions.component.mjs +0 -25
  254. package/esm2020/extensions/lib/components/date-time-picker/date-time-picker.component.mjs +0 -109
  255. package/esm2020/extensions/lib/components/extensible-form/extensible-form-prop.component.mjs +0 -198
  256. package/esm2020/extensions/lib/components/extensible-form/extensible-form.component.mjs +0 -73
  257. package/esm2020/extensions/lib/components/extensible-table/extensible-table.component.mjs +0 -135
  258. package/esm2020/extensions/lib/components/grid-actions/grid-actions.component.mjs +0 -39
  259. package/esm2020/extensions/lib/components/page-toolbar/page-toolbar.component.mjs +0 -38
  260. package/esm2020/extensions/lib/directives/disabled.directive.mjs +0 -29
  261. package/esm2020/extensions/lib/directives/prop-data.directive.mjs +0 -41
  262. package/esm2020/extensions/lib/models/form-props.mjs +0 -75
  263. package/esm2020/extensions/lib/models/props.mjs +0 -53
  264. package/esm2020/extensions/lib/pipes/create-injector.pipe.mjs +0 -36
  265. package/esm2020/extensions/lib/services/extensions.service.mjs +0 -24
  266. package/esm2020/extensions/lib/ui-extensions.module.mjs +0 -95
  267. package/esm2020/extensions/lib/utils/form-props.util.mjs +0 -51
  268. package/esm2020/extensions/lib/utils/state.util.mjs +0 -123
  269. package/esm2020/lib/components/breadcrumb/breadcrumb.component.mjs +0 -43
  270. package/esm2020/lib/components/breadcrumb-items/breadcrumb-items.component.mjs +0 -19
  271. package/esm2020/lib/components/button/button.component.mjs +0 -102
  272. package/esm2020/lib/components/card/card-footer.component.mjs +0 -30
  273. package/esm2020/lib/components/card/card-header.component.mjs +0 -30
  274. package/esm2020/lib/components/card/card-header.directive.mjs +0 -19
  275. package/esm2020/lib/components/card/card-img-top.directive.mjs +0 -19
  276. package/esm2020/lib/components/card/card-subtitle.directive.mjs +0 -19
  277. package/esm2020/lib/components/card/card-title.directive.mjs +0 -19
  278. package/esm2020/lib/components/card/card.component.mjs +0 -23
  279. package/esm2020/lib/components/card/card.module.mjs +0 -49
  280. package/esm2020/lib/components/checkbox/checkbox.component.mjs +0 -88
  281. package/esm2020/lib/components/confirmation/confirmation.component.mjs +0 -45
  282. package/esm2020/lib/components/form-input/form-input.component.mjs +0 -97
  283. package/esm2020/lib/components/http-error-wrapper/http-error-wrapper.component.mjs +0 -59
  284. package/esm2020/lib/components/loader-bar/loader-bar.component.mjs +0 -121
  285. package/esm2020/lib/components/loading/loading.component.mjs +0 -19
  286. package/esm2020/lib/components/modal/modal-close.directive.mjs +0 -27
  287. package/esm2020/lib/components/modal/modal-ref.service.mjs +0 -26
  288. package/esm2020/lib/components/modal/modal.component.mjs +0 -189
  289. package/esm2020/lib/components/password/password.component.mjs +0 -38
  290. package/esm2020/lib/components/toast/toast.component.mjs +0 -55
  291. package/esm2020/lib/components/toast-container/toast-container.component.mjs +0 -58
  292. package/esm2020/lib/directives/ellipsis.directive.mjs +0 -63
  293. package/esm2020/lib/directives/loading.directive.mjs +0 -89
  294. package/esm2020/lib/directives/ngx-datatable-default.directive.mjs +0 -75
  295. package/esm2020/lib/directives/ngx-datatable-list.directive.mjs +0 -94
  296. package/esm2020/lib/directives/visible.directive.mjs +0 -62
  297. package/esm2020/lib/handlers/document-dir.handler.mjs +0 -31
  298. package/esm2020/lib/handlers/error.handler.mjs +0 -291
  299. package/esm2020/lib/services/confirmation.service.mjs +0 -68
  300. package/esm2020/lib/services/nav-items.service.mjs +0 -17
  301. package/esm2020/lib/services/page-alert.service.mjs +0 -28
  302. package/esm2020/lib/services/toaster.service.mjs +0 -103
  303. package/esm2020/lib/services/user-menu.service.mjs +0 -17
  304. package/esm2020/lib/theme-shared.module.mjs +0 -200
  305. package/esm2020/lib/utils/date-parser-formatter.mjs +0 -58
  306. package/esm2020/testing/lib/theme-shared-testing.module.mjs +0 -46
  307. package/fesm2015/abp-ng.theme.shared-extensions.mjs +0 -1460
  308. package/fesm2015/abp-ng.theme.shared-extensions.mjs.map +0 -1
  309. package/fesm2015/abp-ng.theme.shared-testing.mjs +0 -54
  310. package/fesm2015/abp-ng.theme.shared.mjs +0 -2770
  311. package/fesm2015/abp-ng.theme.shared.mjs.map +0 -1
  312. package/fesm2020/abp-ng.theme.shared-extensions.mjs.map +0 -1
  313. package/fesm2020/abp-ng.theme.shared-testing.mjs.map +0 -1
  314. package/fesm2020/abp-ng.theme.shared.mjs.map +0 -1
@@ -0,0 +1,25 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { EntityActionsFactory } from '../models/entity-actions';
3
+ import { EntityPropsFactory } from '../models/entity-props';
4
+ import { CreateFormPropsFactory, EditFormPropsFactory } from '../models/form-props';
5
+ import { ToolbarActionsFactory } from '../models/toolbar-actions';
6
+ import * as i0 from "@angular/core";
7
+ class ExtensionsService {
8
+ constructor() {
9
+ this.entityActions = new EntityActionsFactory();
10
+ this.toolbarActions = new ToolbarActionsFactory();
11
+ this.entityProps = new EntityPropsFactory();
12
+ this.createFormProps = new CreateFormPropsFactory();
13
+ this.editFormProps = new EditFormPropsFactory();
14
+ }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ExtensionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
16
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ExtensionsService, providedIn: 'root' }); }
17
+ }
18
+ export { ExtensionsService };
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ExtensionsService, decorators: [{
20
+ type: Injectable,
21
+ args: [{
22
+ providedIn: 'root',
23
+ }]
24
+ }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtc2hhcmVkL2V4dGVuc2lvbnMvc3JjL2xpYi9zZXJ2aWNlcy9leHRlbnNpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFFbEUsTUFHYSxpQkFBaUI7SUFIOUI7UUFJVyxrQkFBYSxHQUFHLElBQUksb0JBQW9CLEVBQUssQ0FBQztRQUM5QyxtQkFBYyxHQUFHLElBQUkscUJBQXFCLEVBQU8sQ0FBQztRQUNsRCxnQkFBVyxHQUFHLElBQUksa0JBQWtCLEVBQUssQ0FBQztRQUMxQyxvQkFBZSxHQUFHLElBQUksc0JBQXNCLEVBQUssQ0FBQztRQUNsRCxrQkFBYSxHQUFHLElBQUksb0JBQW9CLEVBQUssQ0FBQztLQUN4RDs4R0FOWSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZoQixNQUFNOztTQUVQLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRW50aXR5QWN0aW9uc0ZhY3RvcnkgfSBmcm9tICcuLi9tb2RlbHMvZW50aXR5LWFjdGlvbnMnO1xyXG5pbXBvcnQgeyBFbnRpdHlQcm9wc0ZhY3RvcnkgfSBmcm9tICcuLi9tb2RlbHMvZW50aXR5LXByb3BzJztcclxuaW1wb3J0IHsgQ3JlYXRlRm9ybVByb3BzRmFjdG9yeSwgRWRpdEZvcm1Qcm9wc0ZhY3RvcnkgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS1wcm9wcyc7XHJcbmltcG9ydCB7IFRvb2xiYXJBY3Rpb25zRmFjdG9yeSB9IGZyb20gJy4uL21vZGVscy90b29sYmFyLWFjdGlvbnMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEV4dGVuc2lvbnNTZXJ2aWNlPFIgPSBhbnk+IHtcclxuICByZWFkb25seSBlbnRpdHlBY3Rpb25zID0gbmV3IEVudGl0eUFjdGlvbnNGYWN0b3J5PFI+KCk7XHJcbiAgcmVhZG9ubHkgdG9vbGJhckFjdGlvbnMgPSBuZXcgVG9vbGJhckFjdGlvbnNGYWN0b3J5PFJbXT4oKTtcclxuICByZWFkb25seSBlbnRpdHlQcm9wcyA9IG5ldyBFbnRpdHlQcm9wc0ZhY3Rvcnk8Uj4oKTtcclxuICByZWFkb25seSBjcmVhdGVGb3JtUHJvcHMgPSBuZXcgQ3JlYXRlRm9ybVByb3BzRmFjdG9yeTxSPigpO1xyXG4gIHJlYWRvbmx5IGVkaXRGb3JtUHJvcHMgPSBuZXcgRWRpdEZvcm1Qcm9wc0ZhY3Rvcnk8Uj4oKTtcclxufVxyXG4iXX0=
@@ -1,3 +1,3 @@
1
- import { ControlContainer, FormGroupDirective } from "@angular/forms";
2
- export const EXTENSIBLE_FORM_VIEW_PROVIDER = { provide: ControlContainer, useExisting: FormGroupDirective };
1
+ import { ControlContainer, FormGroupDirective } from "@angular/forms";
2
+ export const EXTENSIBLE_FORM_VIEW_PROVIDER = { provide: ControlContainer, useExisting: FormGroupDirective };
3
3
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS1mb3JtLXZpZXctcHJvdmlkZXIudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvZXh0ZW5zaW9ucy9zcmMvbGliL3Rva2Vucy9leHRlbnNpYmxlLWZvcm0tdmlldy1wcm92aWRlci50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIEZvcm1Hcm91cERpcmVjdGl2ZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IEVYVEVOU0lCTEVfRk9STV9WSUVXX1BST1ZJREVSID0geyBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLCB1c2VFeGlzdGluZzogRm9ybUdyb3VwRGlyZWN0aXZlIH1cclxuIl19
@@ -1,12 +1,12 @@
1
- import { InjectionToken } from '@angular/core';
2
- export const EXTENSIONS_IDENTIFIER = new InjectionToken('EXTENSIONS_IDENTIFIER');
3
- export const EXTENSIONS_ACTION_TYPE = new InjectionToken('EXTENSIONS_ACTION_TYPE');
4
- export const EXTENSIONS_ACTION_DATA = new InjectionToken('EXTENSIONS_ACTION_DATA');
5
- export const EXTENSIONS_ACTION_CALLBACK = new InjectionToken('EXTENSIONS_ACTION_DATA');
6
- export const PROP_DATA_STREAM = new InjectionToken('PROP_DATA_STREAM');
7
- export const ENTITY_PROP_TYPE_CLASSES = new InjectionToken('ENTITY_PROP_TYPE_CLASSES', {
8
- factory: () => ({}),
9
- });
10
- export const EXTENSIONS_FORM_PROP = new InjectionToken('EXTENSIONS_FORM_PROP');
11
- export const EXTENSIONS_FORM_PROP_DATA = new InjectionToken('EXTENSIONS_FORM_PROP_DATA');
1
+ import { InjectionToken } from '@angular/core';
2
+ export const EXTENSIONS_IDENTIFIER = new InjectionToken('EXTENSIONS_IDENTIFIER');
3
+ export const EXTENSIONS_ACTION_TYPE = new InjectionToken('EXTENSIONS_ACTION_TYPE');
4
+ export const EXTENSIONS_ACTION_DATA = new InjectionToken('EXTENSIONS_ACTION_DATA');
5
+ export const EXTENSIONS_ACTION_CALLBACK = new InjectionToken('EXTENSIONS_ACTION_DATA');
6
+ export const PROP_DATA_STREAM = new InjectionToken('PROP_DATA_STREAM');
7
+ export const ENTITY_PROP_TYPE_CLASSES = new InjectionToken('ENTITY_PROP_TYPE_CLASSES', {
8
+ factory: () => ({}),
9
+ });
10
+ export const EXTENSIONS_FORM_PROP = new InjectionToken('EXTENSIONS_FORM_PROP');
11
+ export const EXTENSIONS_FORM_PROP_DATA = new InjectionToken('EXTENSIONS_FORM_PROP_DATA');
12
12
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9leHRlbnNpb25zL3NyYy9saWIvdG9rZW5zL2V4dGVuc2lvbnMudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU8vQyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FBUyx1QkFBdUIsQ0FBQyxDQUFDO0FBR3pGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUFhLHdCQUF3QixDQUFDLENBQUM7QUFFL0YsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxjQUFjLENBQWEsd0JBQXdCLENBQUMsQ0FBQztBQUMvRixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLGNBQWMsQ0FDMUQsd0JBQXdCLENBQ3pCLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBa0Isa0JBQWtCLENBQUMsQ0FBQztBQUt4RixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FDeEQsMEJBQTBCLEVBQzFCO0lBQ0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBMEIsQ0FBQTtDQUMzQyxDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLGNBQWMsQ0FBVyxzQkFBc0IsQ0FBQyxDQUFDO0FBQ3pGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLElBQUksY0FBYyxDQUFVLDJCQUEyQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3Rpb25DYWxsYmFjaywgUmVhZG9ubHlBY3Rpb25EYXRhIGFzIEFjdGlvbkRhdGEgfSBmcm9tICcuLi9tb2RlbHMvYWN0aW9ucyc7XHJcbmltcG9ydCB7IEV4dGVuc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZXh0ZW5zaW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBlUHJvcFR5cGUgfSBmcm9tICcuLi9lbnVtcy9wcm9wcy5lbnVtJztcclxuaW1wb3J0IHsgRm9ybVByb3AgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS1wcm9wcyc7XHJcblxyXG5leHBvcnQgY29uc3QgRVhURU5TSU9OU19JREVOVElGSUVSID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0VYVEVOU0lPTlNfSURFTlRJRklFUicpO1xyXG5leHBvcnQgdHlwZSBBY3Rpb25LZXlzID0gRXh0cmFjdDwnZW50aXR5QWN0aW9ucycgfCAndG9vbGJhckFjdGlvbnMnLCBrZXlvZiBFeHRlbnNpb25zU2VydmljZT47XHJcblxyXG5leHBvcnQgY29uc3QgRVhURU5TSU9OU19BQ1RJT05fVFlQRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBY3Rpb25LZXlzPignRVhURU5TSU9OU19BQ1RJT05fVFlQRScpO1xyXG5cclxuZXhwb3J0IGNvbnN0IEVYVEVOU0lPTlNfQUNUSU9OX0RBVEEgPSBuZXcgSW5qZWN0aW9uVG9rZW48QWN0aW9uRGF0YT4oJ0VYVEVOU0lPTlNfQUNUSU9OX0RBVEEnKTtcclxuZXhwb3J0IGNvbnN0IEVYVEVOU0lPTlNfQUNUSU9OX0NBTExCQUNLID0gbmV3IEluamVjdGlvblRva2VuPEFjdGlvbkNhbGxiYWNrPHVua25vd24+PihcclxuICAnRVhURU5TSU9OU19BQ1RJT05fREFUQScsXHJcbik7XHJcbmV4cG9ydCBjb25zdCBQUk9QX0RBVEFfU1RSRUFNID0gbmV3IEluamVjdGlvblRva2VuPE9ic2VydmFibGU8YW55Pj4oJ1BST1BfREFUQV9TVFJFQU0nKTtcclxudHlwZSBFbnRpdHlQcm9wVHlwZUNsYXNzTWFwID0ge1xyXG4gIFtrZXkgaW4gZVByb3BUeXBlXTogc3RyaW5nO1xyXG59O1xyXG5leHBvcnQgdHlwZSBFbnRpdHlQcm9wVHlwZUNsYXNzID0gUGFydGlhbDxFbnRpdHlQcm9wVHlwZUNsYXNzTWFwPjtcclxuZXhwb3J0IGNvbnN0IEVOVElUWV9QUk9QX1RZUEVfQ0xBU1NFUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxFbnRpdHlQcm9wVHlwZUNsYXNzPihcclxuICAnRU5USVRZX1BST1BfVFlQRV9DTEFTU0VTJyxcclxuICB7XHJcbiAgICBmYWN0b3J5OiAoKSA9PiAoe30gYXMgRW50aXR5UHJvcFR5cGVDbGFzcyksXHJcbiAgfSxcclxuKTtcclxuXHJcbmV4cG9ydCBjb25zdCBFWFRFTlNJT05TX0ZPUk1fUFJPUCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGb3JtUHJvcD4oJ0VYVEVOU0lPTlNfRk9STV9QUk9QJyk7XHJcbmV4cG9ydCBjb25zdCBFWFRFTlNJT05TX0ZPUk1fUFJPUF9EQVRBID0gbmV3IEluamVjdGlvblRva2VuPHVua25vd24+KCdFWFRFTlNJT05TX0ZPUk1fUFJPUF9EQVRBJyk7XHJcbiJdfQ==
@@ -0,0 +1,97 @@
1
+ import { CoreModule } from '@abp/ng.core';
2
+ import { ThemeSharedModule } from '@abp/ng.theme.shared';
3
+ import { NgModule } from '@angular/core';
4
+ import { NgbDatepickerModule, NgbDropdownModule, NgbTimepickerModule, NgbTypeaheadModule, } from '@ng-bootstrap/ng-bootstrap';
5
+ import { NgxValidateCoreModule } from '@ngx-validate/core';
6
+ import { DateTimePickerComponent } from './components/date-time-picker/date-time-picker.component';
7
+ import { ExtensibleFormPropComponent } from './components/extensible-form/extensible-form-prop.component';
8
+ import { ExtensibleFormComponent } from './components/extensible-form/extensible-form.component';
9
+ import { ExtensibleTableComponent } from './components/extensible-table/extensible-table.component';
10
+ import { GridActionsComponent } from './components/grid-actions/grid-actions.component';
11
+ import { PageToolbarComponent } from './components/page-toolbar/page-toolbar.component';
12
+ import { DisabledDirective } from './directives/disabled.directive';
13
+ import { PropDataDirective } from './directives/prop-data.directive';
14
+ import { CreateInjectorPipe } from './pipes/create-injector.pipe';
15
+ import * as i0 from "@angular/core";
16
+ class BaseUiExtensionsModule {
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: BaseUiExtensionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
18
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.1", ngImport: i0, type: BaseUiExtensionsModule, declarations: [DateTimePickerComponent,
19
+ PageToolbarComponent,
20
+ GridActionsComponent,
21
+ ExtensibleFormPropComponent,
22
+ ExtensibleFormComponent,
23
+ ExtensibleTableComponent,
24
+ PropDataDirective,
25
+ DisabledDirective,
26
+ CreateInjectorPipe], imports: [CoreModule,
27
+ ThemeSharedModule,
28
+ NgxValidateCoreModule,
29
+ NgbDatepickerModule,
30
+ NgbDropdownModule,
31
+ NgbTimepickerModule,
32
+ NgbTypeaheadModule], exports: [DateTimePickerComponent,
33
+ PageToolbarComponent,
34
+ GridActionsComponent,
35
+ ExtensibleFormComponent,
36
+ ExtensibleTableComponent,
37
+ PropDataDirective,
38
+ DisabledDirective,
39
+ CreateInjectorPipe] }); }
40
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: BaseUiExtensionsModule, imports: [CoreModule,
41
+ ThemeSharedModule,
42
+ NgxValidateCoreModule,
43
+ NgbDatepickerModule,
44
+ NgbDropdownModule,
45
+ NgbTimepickerModule,
46
+ NgbTypeaheadModule] }); }
47
+ }
48
+ export { BaseUiExtensionsModule };
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: BaseUiExtensionsModule, decorators: [{
50
+ type: NgModule,
51
+ args: [{
52
+ exports: [
53
+ DateTimePickerComponent,
54
+ PageToolbarComponent,
55
+ GridActionsComponent,
56
+ ExtensibleFormComponent,
57
+ ExtensibleTableComponent,
58
+ PropDataDirective,
59
+ DisabledDirective,
60
+ CreateInjectorPipe,
61
+ ],
62
+ declarations: [
63
+ DateTimePickerComponent,
64
+ PageToolbarComponent,
65
+ GridActionsComponent,
66
+ ExtensibleFormPropComponent,
67
+ ExtensibleFormComponent,
68
+ ExtensibleTableComponent,
69
+ PropDataDirective,
70
+ DisabledDirective,
71
+ CreateInjectorPipe,
72
+ ],
73
+ imports: [
74
+ CoreModule,
75
+ ThemeSharedModule,
76
+ NgxValidateCoreModule,
77
+ NgbDatepickerModule,
78
+ NgbDropdownModule,
79
+ NgbTimepickerModule,
80
+ NgbTypeaheadModule,
81
+ ],
82
+ }]
83
+ }] });
84
+ class UiExtensionsModule {
85
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: UiExtensionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
86
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.1", ngImport: i0, type: UiExtensionsModule, imports: [BaseUiExtensionsModule], exports: [BaseUiExtensionsModule] }); }
87
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: UiExtensionsModule, imports: [BaseUiExtensionsModule, BaseUiExtensionsModule] }); }
88
+ }
89
+ export { UiExtensionsModule };
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: UiExtensionsModule, decorators: [{
91
+ type: NgModule,
92
+ args: [{
93
+ exports: [BaseUiExtensionsModule],
94
+ imports: [BaseUiExtensionsModule],
95
+ }]
96
+ }] });
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZXh0ZW5zaW9ucy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvZXh0ZW5zaW9ucy9zcmMvbGliL3VpLWV4dGVuc2lvbnMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsa0JBQWtCLEdBQ25CLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDbkcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDMUcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDakcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDcEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDeEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDeEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBRWxFLE1BZ0NhLHNCQUFzQjs4R0FBdEIsc0JBQXNCOytHQUF0QixzQkFBc0IsaUJBcEIvQix1QkFBdUI7WUFDdkIsb0JBQW9CO1lBQ3BCLG9CQUFvQjtZQUNwQiwyQkFBMkI7WUFDM0IsdUJBQXVCO1lBQ3ZCLHdCQUF3QjtZQUN4QixpQkFBaUI7WUFDakIsaUJBQWlCO1lBQ2pCLGtCQUFrQixhQUdsQixVQUFVO1lBQ1YsaUJBQWlCO1lBQ2pCLHFCQUFxQjtZQUNyQixtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLG1CQUFtQjtZQUNuQixrQkFBa0IsYUEzQmxCLHVCQUF1QjtZQUN2QixvQkFBb0I7WUFDcEIsb0JBQW9CO1lBQ3BCLHVCQUF1QjtZQUN2Qix3QkFBd0I7WUFDeEIsaUJBQWlCO1lBQ2pCLGlCQUFpQjtZQUNqQixrQkFBa0I7K0dBdUJULHNCQUFzQixZQVQvQixVQUFVO1lBQ1YsaUJBQWlCO1lBQ2pCLHFCQUFxQjtZQUNyQixtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLG1CQUFtQjtZQUNuQixrQkFBa0I7O1NBR1Qsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBaENsQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCx1QkFBdUI7d0JBQ3ZCLG9CQUFvQjt3QkFDcEIsb0JBQW9CO3dCQUNwQix1QkFBdUI7d0JBQ3ZCLHdCQUF3Qjt3QkFDeEIsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLGtCQUFrQjtxQkFDbkI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLHVCQUF1Qjt3QkFDdkIsb0JBQW9CO3dCQUNwQixvQkFBb0I7d0JBQ3BCLDJCQUEyQjt3QkFDM0IsdUJBQXVCO3dCQUN2Qix3QkFBd0I7d0JBQ3hCLGlCQUFpQjt3QkFDakIsaUJBQWlCO3dCQUNqQixrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRTt3QkFDUCxVQUFVO3dCQUNWLGlCQUFpQjt3QkFDakIscUJBQXFCO3dCQUNyQixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixrQkFBa0I7cUJBQ25CO2lCQUNGOztBQUdELE1BSWEsa0JBQWtCOzhHQUFsQixrQkFBa0I7K0dBQWxCLGtCQUFrQixZQU5sQixzQkFBc0IsYUFBdEIsc0JBQXNCOytHQU10QixrQkFBa0IsWUFGbkIsc0JBQXNCLEVBSnJCLHNCQUFzQjs7U0FNdEIsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBSjlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBUaGVtZVNoYXJlZE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBOZ2JEYXRlcGlja2VyTW9kdWxlLFxyXG4gIE5nYkRyb3Bkb3duTW9kdWxlLFxyXG4gIE5nYlRpbWVwaWNrZXJNb2R1bGUsXHJcbiAgTmdiVHlwZWFoZWFkTW9kdWxlLFxyXG59IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgTmd4VmFsaWRhdGVDb3JlTW9kdWxlIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0ZS10aW1lLXBpY2tlci9kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEV4dGVuc2libGVGb3JtUHJvcENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9leHRlbnNpYmxlLWZvcm0vZXh0ZW5zaWJsZS1mb3JtLXByb3AuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRXh0ZW5zaWJsZUZvcm1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS1mb3JtL2V4dGVuc2libGUtZm9ybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFeHRlbnNpYmxlVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS10YWJsZS9leHRlbnNpYmxlLXRhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdyaWRBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2dyaWQtYWN0aW9ucy9ncmlkLWFjdGlvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFnZVRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFnZS10b29sYmFyL3BhZ2UtdG9vbGJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaXNhYmxlZERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9kaXNhYmxlZC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBQcm9wRGF0YURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9wcm9wLWRhdGEuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ3JlYXRlSW5qZWN0b3JQaXBlIH0gZnJvbSAnLi9waXBlcy9jcmVhdGUtaW5qZWN0b3IucGlwZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGV4cG9ydHM6IFtcclxuICAgIERhdGVUaW1lUGlja2VyQ29tcG9uZW50LFxyXG4gICAgUGFnZVRvb2xiYXJDb21wb25lbnQsXHJcbiAgICBHcmlkQWN0aW9uc0NvbXBvbmVudCxcclxuICAgIEV4dGVuc2libGVGb3JtQ29tcG9uZW50LFxyXG4gICAgRXh0ZW5zaWJsZVRhYmxlQ29tcG9uZW50LFxyXG4gICAgUHJvcERhdGFEaXJlY3RpdmUsXHJcbiAgICBEaXNhYmxlZERpcmVjdGl2ZSxcclxuICAgIENyZWF0ZUluamVjdG9yUGlwZSxcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQsXHJcbiAgICBQYWdlVG9vbGJhckNvbXBvbmVudCxcclxuICAgIEdyaWRBY3Rpb25zQ29tcG9uZW50LFxyXG4gICAgRXh0ZW5zaWJsZUZvcm1Qcm9wQ29tcG9uZW50LFxyXG4gICAgRXh0ZW5zaWJsZUZvcm1Db21wb25lbnQsXHJcbiAgICBFeHRlbnNpYmxlVGFibGVDb21wb25lbnQsXHJcbiAgICBQcm9wRGF0YURpcmVjdGl2ZSxcclxuICAgIERpc2FibGVkRGlyZWN0aXZlLFxyXG4gICAgQ3JlYXRlSW5qZWN0b3JQaXBlLFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29yZU1vZHVsZSxcclxuICAgIFRoZW1lU2hhcmVkTW9kdWxlLFxyXG4gICAgTmd4VmFsaWRhdGVDb3JlTW9kdWxlLFxyXG4gICAgTmdiRGF0ZXBpY2tlck1vZHVsZSxcclxuICAgIE5nYkRyb3Bkb3duTW9kdWxlLFxyXG4gICAgTmdiVGltZXBpY2tlck1vZHVsZSxcclxuICAgIE5nYlR5cGVhaGVhZE1vZHVsZSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFzZVVpRXh0ZW5zaW9uc01vZHVsZSB7fVxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBleHBvcnRzOiBbQmFzZVVpRXh0ZW5zaW9uc01vZHVsZV0sXHJcbiAgaW1wb3J0czogW0Jhc2VVaUV4dGVuc2lvbnNNb2R1bGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlFeHRlbnNpb25zTW9kdWxlIHt9XHJcbiJdfQ==
@@ -1,9 +1,9 @@
1
- export function mergeWithDefaultActions(extension, defaultActions, ...contributors) {
2
- Object.keys(defaultActions).forEach((name) => {
3
- const actions = extension.get(name);
4
- actions.clearContributors();
5
- actions.addContributor((actionList) => actionList.addManyTail(defaultActions[name]));
6
- contributors.forEach(contributor => (contributor[name] || []).forEach((callback) => actions.addContributor(callback)));
7
- });
8
- }
1
+ export function mergeWithDefaultActions(extension, defaultActions, ...contributors) {
2
+ Object.keys(defaultActions).forEach((name) => {
3
+ const actions = extension.get(name);
4
+ actions.clearContributors();
5
+ actions.addContributor((actionList) => actionList.addManyTail(defaultActions[name]));
6
+ contributors.forEach(contributor => (contributor[name] || []).forEach((callback) => actions.addContributor(callback)));
7
+ });
8
+ }
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtc2hhcmVkL2V4dGVuc2lvbnMvc3JjL2xpYi91dGlscy9hY3Rpb25zLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBY0EsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxTQUFZLEVBQ1osY0FBeUMsRUFDekMsR0FBRyxZQUFxRDtJQUV4RCxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFO1FBQ25ELE1BQU0sT0FBTyxHQUF1QixTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hELE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxVQUFnRCxFQUFFLEVBQUUsQ0FDMUUsVUFBVSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDN0MsQ0FBQztRQUNGLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FDakMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBd0MsRUFBRSxFQUFFLENBQzdFLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQ2pDLENBQ0YsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbkNvbnRyaWJ1dG9yQ2FsbGJhY2ssIEFjdGlvbkxpc3QsIEFjdGlvbnNGYWN0b3J5LCBJbmZlcnJlZEFjdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvYWN0aW9uc1wiO1xyXG5pbXBvcnQge1xyXG4gIEVudGl0eUFjdGlvbkNvbnRyaWJ1dG9yQ2FsbGJhY2tzLFxyXG4gIEVudGl0eUFjdGlvbkRlZmF1bHRzLFxyXG4gIEVudGl0eUFjdGlvbnMsXHJcbiAgRW50aXR5QWN0aW9uc0ZhY3RvcnksXHJcbn0gZnJvbSAnLi4vbW9kZWxzL2VudGl0eS1hY3Rpb25zJztcclxuaW1wb3J0IHtcclxuICBUb29sYmFyQWN0aW9uQ29udHJpYnV0b3JDYWxsYmFja3MsXHJcbiAgVG9vbGJhckFjdGlvbkRlZmF1bHRzLFxyXG4gIFRvb2xiYXJBY3Rpb25zLFxyXG4gIFRvb2xiYXJBY3Rpb25zRmFjdG9yeSxcclxufSBmcm9tICcuLi9tb2RlbHMvdG9vbGJhci1hY3Rpb25zJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtZXJnZVdpdGhEZWZhdWx0QWN0aW9uczxGIGV4dGVuZHMgQWN0aW9uc0ZhY3Rvcnk8YW55Pj4oXHJcbiAgZXh0ZW5zaW9uOiBGLFxyXG4gIGRlZmF1bHRBY3Rpb25zOiBJbmZlcnJlZEFjdGlvbkRlZmF1bHRzPEY+LFxyXG4gIC4uLmNvbnRyaWJ1dG9yczogSW5mZXJyZWRBY3Rpb25Db250cmlidXRvckNhbGxiYWNrczxGPltdXHJcbikge1xyXG4gIE9iamVjdC5rZXlzKGRlZmF1bHRBY3Rpb25zKS5mb3JFYWNoKChuYW1lOiBzdHJpbmcpID0+IHtcclxuICAgIGNvbnN0IGFjdGlvbnM6IEluZmVycmVkQWN0aW9uczxGPiA9IGV4dGVuc2lvbi5nZXQobmFtZSk7XHJcbiAgICBhY3Rpb25zLmNsZWFyQ29udHJpYnV0b3JzKCk7XHJcbiAgICBhY3Rpb25zLmFkZENvbnRyaWJ1dG9yKChhY3Rpb25MaXN0OiBBY3Rpb25MaXN0PGFueSwgSW5mZXJyZWRBY3Rpb248YW55Pj4pID0+XHJcbiAgICAgIGFjdGlvbkxpc3QuYWRkTWFueVRhaWwoZGVmYXVsdEFjdGlvbnNbbmFtZV0pLFxyXG4gICAgKTtcclxuICAgIGNvbnRyaWJ1dG9ycy5mb3JFYWNoKGNvbnRyaWJ1dG9yID0+XHJcbiAgICAgIChjb250cmlidXRvcltuYW1lXSB8fCBbXSkuZm9yRWFjaCgoY2FsbGJhY2s6IEFjdGlvbkNvbnRyaWJ1dG9yQ2FsbGJhY2s8YW55PikgPT5cclxuICAgICAgICBhY3Rpb25zLmFkZENvbnRyaWJ1dG9yKGNhbGxiYWNrKSxcclxuICAgICAgKSxcclxuICAgICk7XHJcbiAgfSk7XHJcbn1cclxudHlwZSBJbmZlcnJlZEFjdGlvbkRlZmF1bHRzPEY+ID0gRiBleHRlbmRzIEVudGl0eUFjdGlvbnNGYWN0b3J5PGluZmVyIFJFPlxyXG4gID8gRW50aXR5QWN0aW9uRGVmYXVsdHM8UkU+XHJcbiAgOiBGIGV4dGVuZHMgVG9vbGJhckFjdGlvbnNGYWN0b3J5PGluZmVyIFJUPlxyXG4gID8gVG9vbGJhckFjdGlvbkRlZmF1bHRzPFJUPlxyXG4gIDogbmV2ZXI7XHJcblxyXG50eXBlIEluZmVycmVkQWN0aW9uQ29udHJpYnV0b3JDYWxsYmFja3M8Rj4gPSBGIGV4dGVuZHMgRW50aXR5QWN0aW9uc0ZhY3Rvcnk8aW5mZXIgUkU+XHJcbiAgPyBFbnRpdHlBY3Rpb25Db250cmlidXRvckNhbGxiYWNrczxSRT5cclxuICA6IEYgZXh0ZW5kcyBUb29sYmFyQWN0aW9uc0ZhY3Rvcnk8aW5mZXIgUlQ+XHJcbiAgPyBUb29sYmFyQWN0aW9uQ29udHJpYnV0b3JDYWxsYmFja3M8UlQ+XHJcbiAgOiBuZXZlcjtcclxuXHJcbnR5cGUgSW5mZXJyZWRBY3Rpb25zPEY+ID0gRiBleHRlbmRzIEVudGl0eUFjdGlvbnNGYWN0b3J5PGluZmVyIFJFPlxyXG4gID8gRW50aXR5QWN0aW9uczxSRT5cclxuICA6IEYgZXh0ZW5kcyBUb29sYmFyQWN0aW9uc0ZhY3Rvcnk8aW5mZXIgUlQ+XHJcbiAgPyBUb29sYmFyQWN0aW9uczxSVD5cclxuICA6IG5ldmVyO1xyXG4iXX0=
@@ -1,42 +1,42 @@
1
- import { LocalizationService } from '@abp/ng.core';
2
- import { merge, of } from 'rxjs';
3
- import { map } from 'rxjs/operators';
4
- import { EXTRA_PROPERTIES_KEY } from '../constants/extra-properties';
5
- export function createEnum(members) {
6
- const enumObject = {};
7
- members.forEach(({ name = '', value }) => {
8
- enumObject[(enumObject[name] = value)] = name;
9
- });
10
- return enumObject;
11
- }
12
- export function createEnumValueResolver(enumType, lookupEnum, propName) {
13
- return data => {
14
- const value = data.record[EXTRA_PROPERTIES_KEY][propName];
15
- const key = lookupEnum.transformed[value];
16
- const l10n = data.getInjected(LocalizationService);
17
- const localizeEnum = createEnumLocalizer(l10n, enumType, lookupEnum);
18
- return createLocalizationStream(l10n, localizeEnum(key));
19
- };
20
- }
21
- export function createEnumOptions(enumType, lookupEnum) {
22
- return data => {
23
- const l10n = data.getInjected(LocalizationService);
24
- const localizeEnum = createEnumLocalizer(l10n, enumType, lookupEnum);
25
- return createLocalizationStream(l10n, lookupEnum.fields.map(({ name = '', value }) => ({
26
- key: localizeEnum(name),
27
- value,
28
- })));
29
- };
30
- }
31
- function createLocalizationStream(l10n, mapTarget) {
32
- return merge(of(null), l10n.languageChange$).pipe(map(() => mapTarget));
33
- }
34
- function createEnumLocalizer(l10n, enumType, lookupEnum) {
35
- const resource = lookupEnum.localizationResource;
36
- const shortType = getShortEnumType(enumType);
37
- return key => l10n.localizeWithFallbackSync([resource || ''], ['Enum:' + shortType + '.' + key, shortType + '.' + key, key], key);
38
- }
39
- function getShortEnumType(enumType) {
40
- return enumType.split('.').pop();
41
- }
1
+ import { LocalizationService } from '@abp/ng.core';
2
+ import { merge, of } from 'rxjs';
3
+ import { map } from 'rxjs/operators';
4
+ import { EXTRA_PROPERTIES_KEY } from '../constants/extra-properties';
5
+ export function createEnum(members) {
6
+ const enumObject = {};
7
+ members.forEach(({ name = '', value }) => {
8
+ enumObject[(enumObject[name] = value)] = name;
9
+ });
10
+ return enumObject;
11
+ }
12
+ export function createEnumValueResolver(enumType, lookupEnum, propName) {
13
+ return data => {
14
+ const value = data.record[EXTRA_PROPERTIES_KEY][propName];
15
+ const key = lookupEnum.transformed[value];
16
+ const l10n = data.getInjected(LocalizationService);
17
+ const localizeEnum = createEnumLocalizer(l10n, enumType, lookupEnum);
18
+ return createLocalizationStream(l10n, localizeEnum(key));
19
+ };
20
+ }
21
+ export function createEnumOptions(enumType, lookupEnum) {
22
+ return data => {
23
+ const l10n = data.getInjected(LocalizationService);
24
+ const localizeEnum = createEnumLocalizer(l10n, enumType, lookupEnum);
25
+ return createLocalizationStream(l10n, lookupEnum.fields.map(({ name = '', value }) => ({
26
+ key: localizeEnum(name),
27
+ value,
28
+ })));
29
+ };
30
+ }
31
+ function createLocalizationStream(l10n, mapTarget) {
32
+ return merge(of(null), l10n.languageChange$).pipe(map(() => mapTarget));
33
+ }
34
+ function createEnumLocalizer(l10n, enumType, lookupEnum) {
35
+ const resource = lookupEnum.localizationResource;
36
+ const shortType = getShortEnumType(enumType);
37
+ return key => l10n.localizeWithFallbackSync([resource || ''], ['Enum:' + shortType + '.' + key, shortType + '.' + key, key], key);
38
+ }
39
+ function getShortEnumType(enumType) {
40
+ return enumType.split('.').pop();
41
+ }
42
42
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtc2hhcmVkL2V4dGVuc2lvbnMvc3JjL2xpYi91dGlscy9lbnVtLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE4QixtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJckUsTUFBTSxVQUFVLFVBQVUsQ0FBQyxPQUFnQztJQUN6RCxNQUFNLFVBQVUsR0FBUSxFQUFFLENBQUM7SUFFM0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQ3ZDLFVBQVUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFZLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUN2RCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLFFBQWdCLEVBQ2hCLFVBQTZDLEVBQzdDLFFBQWdCO0lBRWhCLE9BQU8sSUFBSSxDQUFDLEVBQUU7UUFDWixNQUFNLEtBQUssR0FBSSxJQUFJLENBQUMsTUFBYyxDQUFDLG9CQUFvQixDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkUsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDbkQsTUFBTSxZQUFZLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUVyRSxPQUFPLHdCQUF3QixDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixRQUFnQixFQUNoQixVQUE2QztJQUU3QyxPQUFPLElBQUksQ0FBQyxFQUFFO1FBQ1osTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sWUFBWSxHQUFHLG1CQUFtQixDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFckUsT0FBTyx3QkFBd0IsQ0FDN0IsSUFBSSxFQUNKLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQy9DLEdBQUcsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQ3ZCLEtBQUs7U0FDTixDQUFDLENBQUMsQ0FDSixDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsd0JBQXdCLENBQUMsSUFBeUIsRUFBRSxTQUFjO0lBQ3pFLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0FBQzFFLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUMxQixJQUF5QixFQUN6QixRQUFnQixFQUNoQixVQUE2QztJQUU3QyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsb0JBQW9CLENBQUM7SUFDakQsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFN0MsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUNYLElBQUksQ0FBQyx3QkFBd0IsQ0FDM0IsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLEVBQ2hCLENBQUMsT0FBTyxHQUFHLFNBQVMsR0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUM3RCxHQUFHLENBQ0osQ0FBQztBQUNOLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLFFBQWdCO0lBQ3hDLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJQLCBFeHRlbnNpb25FbnVtRmllbGREdG8sIExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBFWFRSQV9QUk9QRVJUSUVTX0tFWSB9IGZyb20gJy4uL2NvbnN0YW50cy9leHRyYS1wcm9wZXJ0aWVzJztcclxuaW1wb3J0IHsgT2JqZWN0RXh0ZW5zaW9ucyB9IGZyb20gJy4uL21vZGVscy9vYmplY3QtZXh0ZW5zaW9ucyc7XHJcbmltcG9ydCB7IFByb3BDYWxsYmFjayB9IGZyb20gJy4uL21vZGVscy9wcm9wcyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRW51bShtZW1iZXJzOiBFeHRlbnNpb25FbnVtRmllbGREdG9bXSkge1xyXG4gIGNvbnN0IGVudW1PYmplY3Q6IGFueSA9IHt9O1xyXG5cclxuICBtZW1iZXJzLmZvckVhY2goKHsgbmFtZSA9ICcnLCB2YWx1ZSB9KSA9PiB7XHJcbiAgICBlbnVtT2JqZWN0WyhlbnVtT2JqZWN0W25hbWVdID0gdmFsdWUgYXMgYW55KV0gPSBuYW1lO1xyXG4gIH0pO1xyXG5cclxuICByZXR1cm4gZW51bU9iamVjdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVudW1WYWx1ZVJlc29sdmVyPFQgPSBhbnk+KFxyXG4gIGVudW1UeXBlOiBzdHJpbmcsXHJcbiAgbG9va3VwRW51bTogT2JqZWN0RXh0ZW5zaW9ucy5FeHRlbnNpb25FbnVtRHRvLFxyXG4gIHByb3BOYW1lOiBzdHJpbmcsXHJcbik6IFByb3BDYWxsYmFjazxULCBPYnNlcnZhYmxlPHN0cmluZz4+IHtcclxuICByZXR1cm4gZGF0YSA9PiB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IChkYXRhLnJlY29yZCBhcyBhbnkpW0VYVFJBX1BST1BFUlRJRVNfS0VZXVtwcm9wTmFtZV07XHJcbiAgICBjb25zdCBrZXkgPSBsb29rdXBFbnVtLnRyYW5zZm9ybWVkW3ZhbHVlXTtcclxuICAgIGNvbnN0IGwxMG4gPSBkYXRhLmdldEluamVjdGVkKExvY2FsaXphdGlvblNlcnZpY2UpO1xyXG4gICAgY29uc3QgbG9jYWxpemVFbnVtID0gY3JlYXRlRW51bUxvY2FsaXplcihsMTBuLCBlbnVtVHlwZSwgbG9va3VwRW51bSk7XHJcblxyXG4gICAgcmV0dXJuIGNyZWF0ZUxvY2FsaXphdGlvblN0cmVhbShsMTBuLCBsb2NhbGl6ZUVudW0oa2V5KSk7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVudW1PcHRpb25zPFQgPSBhbnk+KFxyXG4gIGVudW1UeXBlOiBzdHJpbmcsXHJcbiAgbG9va3VwRW51bTogT2JqZWN0RXh0ZW5zaW9ucy5FeHRlbnNpb25FbnVtRHRvLFxyXG4pOiBQcm9wQ2FsbGJhY2s8VCwgT2JzZXJ2YWJsZTxBQlAuT3B0aW9uPGFueT5bXT4+IHtcclxuICByZXR1cm4gZGF0YSA9PiB7XHJcbiAgICBjb25zdCBsMTBuID0gZGF0YS5nZXRJbmplY3RlZChMb2NhbGl6YXRpb25TZXJ2aWNlKTtcclxuICAgIGNvbnN0IGxvY2FsaXplRW51bSA9IGNyZWF0ZUVudW1Mb2NhbGl6ZXIobDEwbiwgZW51bVR5cGUsIGxvb2t1cEVudW0pO1xyXG5cclxuICAgIHJldHVybiBjcmVhdGVMb2NhbGl6YXRpb25TdHJlYW0oXHJcbiAgICAgIGwxMG4sXHJcbiAgICAgIGxvb2t1cEVudW0uZmllbGRzLm1hcCgoeyBuYW1lID0gJycsIHZhbHVlIH0pID0+ICh7XHJcbiAgICAgICAga2V5OiBsb2NhbGl6ZUVudW0obmFtZSksXHJcbiAgICAgICAgdmFsdWUsXHJcbiAgICAgIH0pKSxcclxuICAgICk7XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlTG9jYWxpemF0aW9uU3RyZWFtKGwxMG46IExvY2FsaXphdGlvblNlcnZpY2UsIG1hcFRhcmdldDogYW55KSB7XHJcbiAgcmV0dXJuIG1lcmdlKG9mKG51bGwpLCBsMTBuLmxhbmd1YWdlQ2hhbmdlJCkucGlwZShtYXAoKCkgPT4gbWFwVGFyZ2V0KSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZUVudW1Mb2NhbGl6ZXIoXHJcbiAgbDEwbjogTG9jYWxpemF0aW9uU2VydmljZSxcclxuICBlbnVtVHlwZTogc3RyaW5nLFxyXG4gIGxvb2t1cEVudW06IE9iamVjdEV4dGVuc2lvbnMuRXh0ZW5zaW9uRW51bUR0byxcclxuKTogKGtleTogc3RyaW5nKSA9PiBzdHJpbmcge1xyXG4gIGNvbnN0IHJlc291cmNlID0gbG9va3VwRW51bS5sb2NhbGl6YXRpb25SZXNvdXJjZTtcclxuICBjb25zdCBzaG9ydFR5cGUgPSBnZXRTaG9ydEVudW1UeXBlKGVudW1UeXBlKTtcclxuXHJcbiAgcmV0dXJuIGtleSA9PlxyXG4gICAgbDEwbi5sb2NhbGl6ZVdpdGhGYWxsYmFja1N5bmMoXHJcbiAgICAgIFtyZXNvdXJjZSB8fCAnJ10sXHJcbiAgICAgIFsnRW51bTonICsgc2hvcnRUeXBlICsgJy4nICsga2V5LCBzaG9ydFR5cGUgKyAnLicgKyBrZXksIGtleV0sXHJcbiAgICAgIGtleSxcclxuICAgICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFNob3J0RW51bVR5cGUoZW51bVR5cGU6IHN0cmluZykge1xyXG4gIHJldHVybiBlbnVtVHlwZS5zcGxpdCgnLicpLnBvcCgpO1xyXG59XHJcbiJdfQ==
@@ -1,4 +1,4 @@
1
- export function selfFactory(dependency) {
2
- return dependency;
3
- }
1
+ export function selfFactory(dependency) {
2
+ return dependency;
3
+ }
4
4
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtc2hhcmVkL2V4dGVuc2lvbnMvc3JjL2xpYi91dGlscy9mYWN0b3J5LnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLFdBQVcsQ0FBQyxVQUFnQjtJQUMxQyxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHNlbGZGYWN0b3J5KGRlcGVuZGVuY3k/OiBhbnkpIHtcclxuICByZXR1cm4gZGVwZW5kZW5jeTtcclxufVxyXG4iXX0=
@@ -0,0 +1,51 @@
1
+ import { UntypedFormControl, UntypedFormGroup } from '@angular/forms';
2
+ import { DateTimeAdapter } from '../adapters/date-time.adapter';
3
+ import { DateAdapter } from '../adapters/date.adapter';
4
+ import { TimeAdapter } from '../adapters/time.adapter';
5
+ import { EXTRA_PROPERTIES_KEY } from '../constants/extra-properties';
6
+ import { ExtensionsService } from '../services/extensions.service';
7
+ import { EXTENSIONS_IDENTIFIER } from '../tokens/extensions.token';
8
+ export function generateFormFromProps(data) {
9
+ const extensions = data.getInjected((ExtensionsService));
10
+ const identifier = data.getInjected(EXTENSIONS_IDENTIFIER);
11
+ const form = new UntypedFormGroup({});
12
+ const extraForm = new UntypedFormGroup({});
13
+ form.addControl(EXTRA_PROPERTIES_KEY, extraForm);
14
+ const record = data.record || {};
15
+ const type = JSON.stringify(record) === '{}' ? 'create' : 'edit';
16
+ const props = extensions[`${type}FormProps`].get(identifier).props;
17
+ const extraProperties = record[EXTRA_PROPERTIES_KEY] || {};
18
+ props.forEach(({ value: prop }) => {
19
+ const name = prop.name;
20
+ const isExtraProperty = prop.isExtra || name in extraProperties;
21
+ let value = isExtraProperty ? extraProperties[name] : name in record ? record[name] : undefined;
22
+ if (typeof value === 'undefined')
23
+ value = prop.defaultValue;
24
+ if (value) {
25
+ let adapter;
26
+ switch (prop.type) {
27
+ case "date" /* ePropType.Date */:
28
+ adapter = new DateAdapter();
29
+ value = adapter.toModel(adapter.fromModel(value));
30
+ break;
31
+ case "time" /* ePropType.Time */:
32
+ adapter = new TimeAdapter();
33
+ value = adapter.toModel(adapter.fromModel(value));
34
+ break;
35
+ case "datetime" /* ePropType.DateTime */:
36
+ adapter = new DateTimeAdapter();
37
+ value = adapter.toModel(adapter.fromModel(value));
38
+ break;
39
+ default:
40
+ break;
41
+ }
42
+ }
43
+ const formControl = new UntypedFormControl(value, {
44
+ asyncValidators: prop.asyncValidators(data),
45
+ validators: prop.validators(data),
46
+ });
47
+ (isExtraProperty ? extraForm : form).addControl(name, formControl);
48
+ });
49
+ return form;
50
+ }
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1wcm9wcy51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtc2hhcmVkL2V4dGVuc2lvbnMvc3JjL2xpYi91dGlscy9mb3JtLXByb3BzLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkUsTUFBTSxVQUFVLHFCQUFxQixDQUFVLElBQWlCO0lBQzlELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQSxpQkFBb0IsQ0FBQSxDQUFDLENBQUM7SUFDMUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBRTNELE1BQU0sSUFBSSxHQUFHLElBQUksZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRWpELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO0lBQ2pDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNqRSxNQUFNLEtBQUssR0FBb0IsVUFBVSxDQUFDLEdBQUcsSUFBSSxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3BGLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUUzRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRTtRQUNoQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxJQUFJLGVBQWUsQ0FBQztRQUNoRSxJQUFJLEtBQUssR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFaEcsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXO1lBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFFNUQsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLE9BQW9ELENBQUM7WUFDekQsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNqQjtvQkFDRSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztvQkFDNUIsS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUNsRCxNQUFNO2dCQUNSO29CQUNFLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO29CQUM1QixLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7b0JBQ2xELE1BQU07Z0JBQ1I7b0JBQ0UsT0FBTyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7b0JBQ2hDLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFRLENBQUMsQ0FBQztvQkFDekQsTUFBTTtnQkFDUjtvQkFDRSxNQUFNO2FBQ1Q7U0FDRjtRQUVELE1BQU0sV0FBVyxHQUFHLElBQUksa0JBQWtCLENBQUMsS0FBSyxFQUFFO1lBQ2hELGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztZQUMzQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7U0FDbEMsQ0FBQyxDQUFDO1FBRUgsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNyRSxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRGF0ZVRpbWVBZGFwdGVyIH0gZnJvbSAnLi4vYWRhcHRlcnMvZGF0ZS10aW1lLmFkYXB0ZXInO1xyXG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJy4uL2FkYXB0ZXJzL2RhdGUuYWRhcHRlcic7XHJcbmltcG9ydCB7IFRpbWVBZGFwdGVyIH0gZnJvbSAnLi4vYWRhcHRlcnMvdGltZS5hZGFwdGVyJztcclxuaW1wb3J0IHsgRVhUUkFfUFJPUEVSVElFU19LRVkgfSBmcm9tICcuLi9jb25zdGFudHMvZXh0cmEtcHJvcGVydGllcyc7XHJcbmltcG9ydCB7IGVQcm9wVHlwZSB9IGZyb20gJy4uL2VudW1zL3Byb3BzLmVudW0nO1xyXG5pbXBvcnQgeyBGb3JtUHJvcCwgRm9ybVByb3BMaXN0IH0gZnJvbSBcIi4uL21vZGVscy9mb3JtLXByb3BzXCI7XHJcbmltcG9ydCB7IEluZmVycmVkUHJvcCwgUHJvcERhdGEgfSBmcm9tIFwiLi4vbW9kZWxzL3Byb3BzXCI7XHJcbmltcG9ydCB7IEV4dGVuc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZXh0ZW5zaW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRVhURU5TSU9OU19JREVOVElGSUVSIH0gZnJvbSAnLi4vdG9rZW5zL2V4dGVuc2lvbnMudG9rZW4nO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlRm9ybUZyb21Qcm9wczxSID0gYW55PihkYXRhOiBQcm9wRGF0YTxSPikge1xyXG4gIGNvbnN0IGV4dGVuc2lvbnMgPSBkYXRhLmdldEluamVjdGVkKEV4dGVuc2lvbnNTZXJ2aWNlPFI+KTtcclxuICBjb25zdCBpZGVudGlmaWVyID0gZGF0YS5nZXRJbmplY3RlZChFWFRFTlNJT05TX0lERU5USUZJRVIpO1xyXG5cclxuICBjb25zdCBmb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xyXG4gIGNvbnN0IGV4dHJhRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcclxuICBmb3JtLmFkZENvbnRyb2woRVhUUkFfUFJPUEVSVElFU19LRVksIGV4dHJhRm9ybSk7XHJcblxyXG4gIGNvbnN0IHJlY29yZCA9IGRhdGEucmVjb3JkIHx8IHt9O1xyXG4gIGNvbnN0IHR5cGUgPSBKU09OLnN0cmluZ2lmeShyZWNvcmQpID09PSAne30nID8gJ2NyZWF0ZScgOiAnZWRpdCc7XHJcbiAgY29uc3QgcHJvcHM6IEZvcm1Qcm9wTGlzdDxSPiA9IGV4dGVuc2lvbnNbYCR7dHlwZX1Gb3JtUHJvcHNgXS5nZXQoaWRlbnRpZmllcikucHJvcHM7XHJcbiAgY29uc3QgZXh0cmFQcm9wZXJ0aWVzID0gcmVjb3JkW0VYVFJBX1BST1BFUlRJRVNfS0VZXSB8fCB7fTtcclxuXHJcbiAgcHJvcHMuZm9yRWFjaCgoeyB2YWx1ZTogcHJvcCB9KSA9PiB7XHJcbiAgICBjb25zdCBuYW1lID0gcHJvcC5uYW1lO1xyXG4gICAgY29uc3QgaXNFeHRyYVByb3BlcnR5ID0gcHJvcC5pc0V4dHJhIHx8IG5hbWUgaW4gZXh0cmFQcm9wZXJ0aWVzO1xyXG4gICAgbGV0IHZhbHVlID0gaXNFeHRyYVByb3BlcnR5ID8gZXh0cmFQcm9wZXJ0aWVzW25hbWVdIDogbmFtZSBpbiByZWNvcmQgPyByZWNvcmRbbmFtZV0gOiB1bmRlZmluZWQ7XHJcblxyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHZhbHVlID0gcHJvcC5kZWZhdWx0VmFsdWU7XHJcblxyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIGxldCBhZGFwdGVyOiBEYXRlQWRhcHRlciB8IFRpbWVBZGFwdGVyIHwgRGF0ZVRpbWVBZGFwdGVyO1xyXG4gICAgICBzd2l0Y2ggKHByb3AudHlwZSkge1xyXG4gICAgICAgIGNhc2UgZVByb3BUeXBlLkRhdGU6XHJcbiAgICAgICAgICBhZGFwdGVyID0gbmV3IERhdGVBZGFwdGVyKCk7XHJcbiAgICAgICAgICB2YWx1ZSA9IGFkYXB0ZXIudG9Nb2RlbChhZGFwdGVyLmZyb21Nb2RlbCh2YWx1ZSkpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBlUHJvcFR5cGUuVGltZTpcclxuICAgICAgICAgIGFkYXB0ZXIgPSBuZXcgVGltZUFkYXB0ZXIoKTtcclxuICAgICAgICAgIHZhbHVlID0gYWRhcHRlci50b01vZGVsKGFkYXB0ZXIuZnJvbU1vZGVsKHZhbHVlKSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIGVQcm9wVHlwZS5EYXRlVGltZTpcclxuICAgICAgICAgIGFkYXB0ZXIgPSBuZXcgRGF0ZVRpbWVBZGFwdGVyKCk7XHJcbiAgICAgICAgICB2YWx1ZSA9IGFkYXB0ZXIudG9Nb2RlbChhZGFwdGVyLmZyb21Nb2RlbCh2YWx1ZSkgYXMgYW55KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZvcm1Db250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCh2YWx1ZSwge1xyXG4gICAgICBhc3luY1ZhbGlkYXRvcnM6IHByb3AuYXN5bmNWYWxpZGF0b3JzKGRhdGEpLFxyXG4gICAgICB2YWxpZGF0b3JzOiBwcm9wLnZhbGlkYXRvcnMoZGF0YSksXHJcbiAgICB9KTtcclxuXHJcbiAgICAoaXNFeHRyYVByb3BlcnR5ID8gZXh0cmFGb3JtIDogZm9ybSkuYWRkQ29udHJvbChuYW1lLCBmb3JtQ29udHJvbCk7XHJcbiAgfSk7XHJcblxyXG4gIHJldHVybiBmb3JtO1xyXG59XHJcbiJdfQ==
@@ -1,13 +1,13 @@
1
- import { createLocalizationPipeKeyGenerator, } from '@abp/ng.core';
2
- export function createDisplayNameLocalizationPipeKeyGenerator(localization) {
3
- const generateLocalizationPipeKey = createLocalizationPipeKeyGenerator(localization);
4
- return (displayName, fallback) => {
5
- if (displayName && displayName.name)
6
- return generateLocalizationPipeKey([displayName.resource || ''], [displayName.name], displayName.name);
7
- const key = generateLocalizationPipeKey([fallback.resource || ''], ['DisplayName:' + fallback.name], undefined);
8
- if (key)
9
- return key;
10
- return generateLocalizationPipeKey([fallback.resource || ''], [fallback.name || ''], fallback.name);
11
- };
12
- }
1
+ import { createLocalizationPipeKeyGenerator, } from '@abp/ng.core';
2
+ export function createDisplayNameLocalizationPipeKeyGenerator(localization) {
3
+ const generateLocalizationPipeKey = createLocalizationPipeKeyGenerator(localization);
4
+ return (displayName, fallback) => {
5
+ if (displayName && displayName.name)
6
+ return generateLocalizationPipeKey([displayName.resource || ''], [displayName.name], displayName.name);
7
+ const key = generateLocalizationPipeKey([fallback.resource || ''], ['DisplayName:' + fallback.name], undefined);
8
+ if (key)
9
+ return key;
10
+ return generateLocalizationPipeKey([fallback.resource || ''], [fallback.name || ''], fallback.name);
11
+ };
12
+ }
13
13
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvZXh0ZW5zaW9ucy9zcmMvbGliL3V0aWxzL2xvY2FsaXphdGlvbi51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxrQ0FBa0MsR0FDbkMsTUFBTSxjQUFjLENBQUM7QUFHdEIsTUFBTSxVQUFVLDZDQUE2QyxDQUMzRCxZQUFxRDtJQUVyRCxNQUFNLDJCQUEyQixHQUFHLGtDQUFrQyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRXJGLE9BQU8sQ0FDTCxXQUFrRCxFQUNsRCxRQUErQyxFQUMvQyxFQUFFO1FBQ0YsSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDLElBQUk7WUFDakMsT0FBTywyQkFBMkIsQ0FDaEMsQ0FBQyxXQUFXLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUM1QixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFDbEIsV0FBVyxDQUFDLElBQUksQ0FDakIsQ0FBQztRQUVKLE1BQU0sR0FBRyxHQUFHLDJCQUEyQixDQUNyQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLEVBQ3pCLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFDaEMsU0FBUyxDQUNWLENBQUM7UUFFRixJQUFJLEdBQUc7WUFBRSxPQUFPLEdBQUcsQ0FBQztRQUVwQixPQUFPLDJCQUEyQixDQUNoQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLEVBQ3pCLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsRUFDckIsUUFBUSxDQUFDLElBQUksQ0FDZCxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQXBwbGljYXRpb25Mb2NhbGl6YXRpb25Db25maWd1cmF0aW9uRHRvLFxyXG4gIGNyZWF0ZUxvY2FsaXphdGlvblBpcGVLZXlHZW5lcmF0b3IsXHJcbn0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgT2JqZWN0RXh0ZW5zaW9ucyB9IGZyb20gJy4uL21vZGVscy9vYmplY3QtZXh0ZW5zaW9ucyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGlzcGxheU5hbWVMb2NhbGl6YXRpb25QaXBlS2V5R2VuZXJhdG9yKFxyXG4gIGxvY2FsaXphdGlvbjogQXBwbGljYXRpb25Mb2NhbGl6YXRpb25Db25maWd1cmF0aW9uRHRvLFxyXG4pIHtcclxuICBjb25zdCBnZW5lcmF0ZUxvY2FsaXphdGlvblBpcGVLZXkgPSBjcmVhdGVMb2NhbGl6YXRpb25QaXBlS2V5R2VuZXJhdG9yKGxvY2FsaXphdGlvbik7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICBkaXNwbGF5TmFtZTogT2JqZWN0RXh0ZW5zaW9ucy5Mb2NhbGl6YWJsZVN0cmluZ0R0byxcclxuICAgIGZhbGxiYWNrOiBPYmplY3RFeHRlbnNpb25zLkxvY2FsaXphYmxlU3RyaW5nRHRvLFxyXG4gICkgPT4ge1xyXG4gICAgaWYgKGRpc3BsYXlOYW1lICYmIGRpc3BsYXlOYW1lLm5hbWUpXHJcbiAgICAgIHJldHVybiBnZW5lcmF0ZUxvY2FsaXphdGlvblBpcGVLZXkoXHJcbiAgICAgICAgW2Rpc3BsYXlOYW1lLnJlc291cmNlIHx8ICcnXSxcclxuICAgICAgICBbZGlzcGxheU5hbWUubmFtZV0sXHJcbiAgICAgICAgZGlzcGxheU5hbWUubmFtZSxcclxuICAgICAgKTtcclxuXHJcbiAgICBjb25zdCBrZXkgPSBnZW5lcmF0ZUxvY2FsaXphdGlvblBpcGVLZXkoXHJcbiAgICAgIFtmYWxsYmFjay5yZXNvdXJjZSB8fCAnJ10sXHJcbiAgICAgIFsnRGlzcGxheU5hbWU6JyArIGZhbGxiYWNrLm5hbWVdLFxyXG4gICAgICB1bmRlZmluZWQsXHJcbiAgICApO1xyXG5cclxuICAgIGlmIChrZXkpIHJldHVybiBrZXk7XHJcblxyXG4gICAgcmV0dXJuIGdlbmVyYXRlTG9jYWxpemF0aW9uUGlwZUtleShcclxuICAgICAgW2ZhbGxiYWNrLnJlc291cmNlIHx8ICcnXSxcclxuICAgICAgW2ZhbGxiYWNrLm5hbWUgfHwgJyddLFxyXG4gICAgICBmYWxsYmFjay5uYW1lLFxyXG4gICAgKTtcclxuICB9O1xyXG59XHJcbiJdfQ==
@@ -1,14 +1,14 @@
1
- import { of } from 'rxjs';
2
- import { EXTRA_PROPERTIES_KEY } from '../constants/extra-properties';
3
- export function createExtraPropertyValueResolver(name) {
4
- return (data) => of(data.record[EXTRA_PROPERTIES_KEY][name]);
5
- }
6
- export function mergeWithDefaultProps(extension, defaultProps, ...contributors) {
7
- Object.keys(defaultProps).forEach((name) => {
8
- const props = extension.get(name);
9
- props.clearContributors();
10
- props.addContributor((propList) => propList.addManyTail(defaultProps[name]));
11
- contributors.forEach(contributor => (contributor[name] || []).forEach((callback) => props.addContributor(callback)));
12
- });
13
- }
1
+ import { of } from 'rxjs';
2
+ import { EXTRA_PROPERTIES_KEY } from '../constants/extra-properties';
3
+ export function createExtraPropertyValueResolver(name) {
4
+ return (data) => of(data.record[EXTRA_PROPERTIES_KEY][name]);
5
+ }
6
+ export function mergeWithDefaultProps(extension, defaultProps, ...contributors) {
7
+ Object.keys(defaultProps).forEach((name) => {
8
+ const props = extension.get(name);
9
+ props.clearContributors();
10
+ props.addContributor((propList) => propList.addManyTail(defaultProps[name]));
11
+ contributors.forEach(contributor => (contributor[name] || []).forEach((callback) => props.addContributor(callback)));
12
+ });
13
+ }
14
14
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcHMudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9leHRlbnNpb25zL3NyYy9saWIvdXRpbHMvcHJvcHMudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBd0JyRSxNQUFNLFVBQVUsZ0NBQWdDLENBQzlDLElBQVk7SUFFWixPQUFPLENBQUMsSUFBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUUsSUFBSSxDQUFDLE1BQWlDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzVGLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLFNBQVksRUFDWixZQUFxQyxFQUNyQyxHQUFHLFlBQW1EO0lBRXRELE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBWSxFQUFFLEVBQUU7UUFDakQsTUFBTSxLQUFLLEdBQXFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDMUIsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFFBQTBDLEVBQUUsRUFBRSxDQUNsRSxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUN6QyxDQUFDO1FBQ0YsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUNqQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFzQyxFQUFFLEVBQUUsQ0FDM0UsS0FBSyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FDL0IsQ0FDRixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRVhUUkFfUFJPUEVSVElFU19LRVkgfSBmcm9tICcuLi9jb25zdGFudHMvZXh0cmEtcHJvcGVydGllcyc7XHJcbmltcG9ydCB7XHJcbiAgRW50aXR5UHJvcENvbnRyaWJ1dG9yQ2FsbGJhY2tzLFxyXG4gIEVudGl0eVByb3BEZWZhdWx0cyxcclxuICBFbnRpdHlQcm9wcyxcclxuICBFbnRpdHlQcm9wc0ZhY3RvcnksXHJcbn0gZnJvbSAnLi4vbW9kZWxzL2VudGl0eS1wcm9wcyc7XHJcbmltcG9ydCB7XHJcbiAgQ3JlYXRlRm9ybVByb3BDb250cmlidXRvckNhbGxiYWNrcyxcclxuICBDcmVhdGVGb3JtUHJvcERlZmF1bHRzLFxyXG4gIENyZWF0ZUZvcm1Qcm9wc0ZhY3RvcnksXHJcbiAgRWRpdEZvcm1Qcm9wQ29udHJpYnV0b3JDYWxsYmFja3MsXHJcbiAgRWRpdEZvcm1Qcm9wRGVmYXVsdHMsXHJcbiAgRWRpdEZvcm1Qcm9wc0ZhY3RvcnksXHJcbiAgRm9ybVByb3BzLFxyXG59IGZyb20gJy4uL21vZGVscy9mb3JtLXByb3BzJztcclxuaW1wb3J0IHtcclxuICBJbmZlcnJlZFByb3AsXHJcbiAgUHJvcENhbGxiYWNrLFxyXG4gIFByb3BDb250cmlidXRvckNhbGxiYWNrLFxyXG4gIFByb3BMaXN0LFxyXG4gIFByb3BzRmFjdG9yeSxcclxufSBmcm9tICcuLi9tb2RlbHMvcHJvcHMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUV4dHJhUHJvcGVydHlWYWx1ZVJlc29sdmVyPFQ+KFxyXG4gIG5hbWU6IHN0cmluZyxcclxuKTogUHJvcENhbGxiYWNrPFQsIE9ic2VydmFibGU8YW55Pj4ge1xyXG4gIHJldHVybiAoZGF0YT8pID0+IG9mKChkYXRhLnJlY29yZCBhcyB7IFtrZXk6IHN0cmluZ106IGFueSB9KVtFWFRSQV9QUk9QRVJUSUVTX0tFWV1bbmFtZV0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VXaXRoRGVmYXVsdFByb3BzPEYgZXh0ZW5kcyBQcm9wc0ZhY3Rvcnk8YW55Pj4oXHJcbiAgZXh0ZW5zaW9uOiBGLFxyXG4gIGRlZmF1bHRQcm9wczogSW5mZXJyZWRQcm9wRGVmYXVsdHM8Rj4sXHJcbiAgLi4uY29udHJpYnV0b3JzOiBJbmZlcnJlZFByb3BDb250cmlidXRvckNhbGxiYWNrczxGPltdXHJcbikge1xyXG4gIE9iamVjdC5rZXlzKGRlZmF1bHRQcm9wcykuZm9yRWFjaCgobmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCBwcm9wczogSW5mZXJyZWRQcm9wczxGPiA9IGV4dGVuc2lvbi5nZXQobmFtZSk7XHJcbiAgICBwcm9wcy5jbGVhckNvbnRyaWJ1dG9ycygpO1xyXG4gICAgcHJvcHMuYWRkQ29udHJpYnV0b3IoKHByb3BMaXN0OiBQcm9wTGlzdDxhbnksIEluZmVycmVkUHJvcDxhbnk+PikgPT5cclxuICAgICAgcHJvcExpc3QuYWRkTWFueVRhaWwoZGVmYXVsdFByb3BzW25hbWVdKSxcclxuICAgICk7XHJcbiAgICBjb250cmlidXRvcnMuZm9yRWFjaChjb250cmlidXRvciA9PlxyXG4gICAgICAoY29udHJpYnV0b3JbbmFtZV0gfHwgW10pLmZvckVhY2goKGNhbGxiYWNrOiBQcm9wQ29udHJpYnV0b3JDYWxsYmFjazxhbnk+KSA9PlxyXG4gICAgICAgIHByb3BzLmFkZENvbnRyaWJ1dG9yKGNhbGxiYWNrKSxcclxuICAgICAgKSxcclxuICAgICk7XHJcbiAgfSk7XHJcbn1cclxudHlwZSBJbmZlcnJlZFByb3BEZWZhdWx0czxGPiA9IEYgZXh0ZW5kcyBFbnRpdHlQcm9wc0ZhY3Rvcnk8aW5mZXIgUkU+XHJcbiAgPyBFbnRpdHlQcm9wRGVmYXVsdHM8UkU+XHJcbiAgOiBGIGV4dGVuZHMgQ3JlYXRlRm9ybVByb3BzRmFjdG9yeTxpbmZlciBSQ0Y+XHJcbiAgPyBDcmVhdGVGb3JtUHJvcERlZmF1bHRzPFJDRj5cclxuICA6IEYgZXh0ZW5kcyBFZGl0Rm9ybVByb3BzRmFjdG9yeTxpbmZlciBSRUY+XHJcbiAgPyBFZGl0Rm9ybVByb3BEZWZhdWx0czxSRUY+XHJcbiAgOiBuZXZlcjtcclxuXHJcbnR5cGUgSW5mZXJyZWRQcm9wQ29udHJpYnV0b3JDYWxsYmFja3M8Rj4gPSBGIGV4dGVuZHMgRW50aXR5UHJvcHNGYWN0b3J5PGluZmVyIFJFPlxyXG4gID8gRW50aXR5UHJvcENvbnRyaWJ1dG9yQ2FsbGJhY2tzPFJFPlxyXG4gIDogRiBleHRlbmRzIENyZWF0ZUZvcm1Qcm9wc0ZhY3Rvcnk8aW5mZXIgUkNGPlxyXG4gID8gQ3JlYXRlRm9ybVByb3BDb250cmlidXRvckNhbGxiYWNrczxSQ0Y+XHJcbiAgOiBGIGV4dGVuZHMgRWRpdEZvcm1Qcm9wc0ZhY3Rvcnk8aW5mZXIgUkVGPlxyXG4gID8gRWRpdEZvcm1Qcm9wQ29udHJpYnV0b3JDYWxsYmFja3M8UkVGPlxyXG4gIDogbmV2ZXI7XHJcblxyXG50eXBlIEluZmVycmVkUHJvcHM8Rj4gPSBGIGV4dGVuZHMgRW50aXR5UHJvcHNGYWN0b3J5PGluZmVyIFJFPlxyXG4gID8gRW50aXR5UHJvcHM8UkU+XHJcbiAgOiBGIGV4dGVuZHMgQ3JlYXRlRm9ybVByb3BzRmFjdG9yeTxpbmZlciBSQ0Y+XHJcbiAgPyBGb3JtUHJvcHM8UkNGPlxyXG4gIDogRiBleHRlbmRzIEVkaXRGb3JtUHJvcHNGYWN0b3J5PGluZmVyIFJFRj5cclxuICA/IEZvcm1Qcm9wczxSRUY+XHJcbiAgOiBuZXZlcjtcclxuIl19
@@ -0,0 +1,126 @@
1
+ import { pipe, zip } from 'rxjs';
2
+ import { filter, map, switchMap, take } from 'rxjs/operators';
3
+ import { EntityProp } from '../models/entity-props';
4
+ import { FormProp } from '../models/form-props';
5
+ import { createEnum, createEnumOptions, createEnumValueResolver } from './enum.util';
6
+ import { createDisplayNameLocalizationPipeKeyGenerator } from './localization.util';
7
+ import { createExtraPropertyValueResolver } from './props.util';
8
+ import { createTypeaheadDisplayNameGenerator, createTypeaheadOptions, getTypeaheadType, hasTypeaheadTextSuffix, } from './typeahead.util';
9
+ import { getValidatorsFromProperty } from './validation.util';
10
+ function selectObjectExtensions(configState) {
11
+ return configState.getOne$('objectExtensions');
12
+ }
13
+ function selectLocalization(configState) {
14
+ return configState.getOne$('localization');
15
+ }
16
+ function selectEnums(configState) {
17
+ return selectObjectExtensions(configState).pipe(map((extensions) => Object.keys(extensions.enums).reduce((acc, key) => {
18
+ const { fields, localizationResource } = extensions.enums[key];
19
+ acc[key] = {
20
+ fields,
21
+ localizationResource,
22
+ transformed: createEnum(fields),
23
+ };
24
+ return acc;
25
+ }, {})));
26
+ }
27
+ export function getObjectExtensionEntitiesFromStore(configState, moduleKey) {
28
+ return selectObjectExtensions(configState).pipe(map(extensions => {
29
+ if (!extensions)
30
+ return null;
31
+ return (extensions.modules[moduleKey] || {})
32
+ .entities;
33
+ }), map(entities => (isUndefined(entities) ? {} : entities)), filter(Boolean), take(1));
34
+ }
35
+ export function mapEntitiesToContributors(configState, resource) {
36
+ return pipe(switchMap((entities) => zip(selectLocalization(configState), selectEnums(configState)).pipe(map(([localization, enums]) => {
37
+ const generateDisplayName = createDisplayNameLocalizationPipeKeyGenerator(localization);
38
+ return Object.keys(entities).reduce((acc, key) => {
39
+ acc.prop[key] = [];
40
+ acc.createForm[key] = [];
41
+ acc.editForm[key] = [];
42
+ const entity = entities[key];
43
+ if (!entity)
44
+ return acc;
45
+ const properties = entity.properties;
46
+ if (!properties)
47
+ return acc;
48
+ const mapPropertiesToContributors = createPropertiesToContributorsMapper(generateDisplayName, resource, enums);
49
+ return mapPropertiesToContributors(properties, acc, key);
50
+ }, {
51
+ prop: {},
52
+ createForm: {},
53
+ editForm: {},
54
+ });
55
+ }))), take(1));
56
+ }
57
+ function createPropertiesToContributorsMapper(generateDisplayName, resource, enums) {
58
+ return (properties, contributors, key) => {
59
+ const isExtra = true;
60
+ const generateTypeaheadDisplayName = createTypeaheadDisplayNameGenerator(generateDisplayName, properties);
61
+ Object.keys(properties).forEach((name) => {
62
+ const property = properties[name];
63
+ const propName = name;
64
+ const lookup = property.ui.lookup || {};
65
+ const type = getTypeaheadType(lookup, name) || getTypeFromProperty(property);
66
+ const generateDN = hasTypeaheadTextSuffix(name)
67
+ ? generateTypeaheadDisplayName
68
+ : generateDisplayName;
69
+ const displayName = generateDN(property.displayName, { name, resource });
70
+ if (property.ui.onTable.isVisible) {
71
+ const sortable = Boolean(property.ui.onTable.isSortable);
72
+ const columnWidth = type === "boolean" /* ePropType.Boolean */ ? 150 : 250;
73
+ const valueResolver = type === "enum" /* ePropType.Enum */ &&
74
+ property.type
75
+ ? createEnumValueResolver(property.type, enums[property.type], propName)
76
+ : createExtraPropertyValueResolver(propName);
77
+ const entityProp = new EntityProp({
78
+ type,
79
+ name: propName,
80
+ displayName,
81
+ sortable,
82
+ columnWidth,
83
+ valueResolver,
84
+ isExtra,
85
+ });
86
+ const contributor = (propList) => propList.addTail(entityProp);
87
+ contributors.prop[key].push(contributor);
88
+ }
89
+ const isOnCreateForm = property.ui.onCreateForm.isVisible;
90
+ const isOnEditForm = property.ui.onEditForm.isVisible;
91
+ if (isOnCreateForm || isOnEditForm) {
92
+ const defaultValue = property.defaultValue;
93
+ const formText = property.formText;
94
+ const validators = () => getValidatorsFromProperty(property);
95
+ let options;
96
+ if (type === "enum" /* ePropType.Enum */)
97
+ options = createEnumOptions(propName, enums[property.type || '']);
98
+ else if (type === "typeahead" /* ePropType.Typeahead */)
99
+ options = createTypeaheadOptions(lookup);
100
+ const formProp = new FormProp({
101
+ type,
102
+ name: propName,
103
+ displayName,
104
+ options,
105
+ defaultValue,
106
+ validators,
107
+ isExtra,
108
+ formText,
109
+ });
110
+ const formContributor = (propList) => propList.addTail(formProp);
111
+ if (isOnCreateForm)
112
+ contributors.createForm[key].push(formContributor);
113
+ if (isOnEditForm)
114
+ contributors.editForm[key].push(formContributor);
115
+ }
116
+ });
117
+ return contributors;
118
+ };
119
+ }
120
+ function getTypeFromProperty(property) {
121
+ return property?.typeSimple?.replace(/\?$/, '');
122
+ }
123
+ function isUndefined(obj) {
124
+ return typeof obj === 'undefined';
125
+ }
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9leHRlbnNpb25zL3NyYy9saWIvdXRpbHMvc3RhdGUudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQWMsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFVBQVUsRUFBa0IsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsUUFBUSxFQUFnQixNQUFNLHNCQUFzQixDQUFDO0FBRzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckYsT0FBTyxFQUFFLDZDQUE2QyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hFLE9BQU8sRUFDTCxtQ0FBbUMsRUFDbkMsc0JBQXNCLEVBQ3RCLGdCQUFnQixFQUNoQixzQkFBc0IsR0FDdkIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU5RCxTQUFTLHNCQUFzQixDQUFDLFdBQStCO0lBQzdELE9BQU8sV0FBVyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUN6QixXQUErQjtJQUUvQixPQUFPLFdBQVcsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUNsQixXQUErQjtJQUUvQixPQUFPLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxD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QUksRUFBRSxDQUFDLENBQUMsQ0FBQztxQkFDL0QsSUFBSSxJQUFJLDBDQUF3QjtvQkFBRSxPQUFPLEdBQUcsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBRWhGLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDO29CQUM1QixJQUFJO29CQUNKLElBQUksRUFBRSxRQUFRO29CQUNkLFdBQVc7b0JBQ1gsT0FBTztvQkFDUCxZQUFZO29CQUNaLFVBQVU7b0JBQ1YsT0FBTztvQkFDUCxRQUFRO2lCQUNULENBQUMsQ0FBQztnQkFFSCxNQUFNLGVBQWUsR0FBRyxDQUFDLFFBQXlCLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRWxGLElBQUksY0FBYztvQkFBRSxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDdkUsSUFBSSxZQUFZO29CQUFFLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2FBQ3BFO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxRQUErQztJQUMxRSxPQUFPLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQXdCLENBQUM7QUFDekUsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEdBQVE7SUFDM0IsT0FBTyxPQUFPLEdBQUcsS0FBSyxXQUFXLENBQUM7QUFDcEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQUJQLFxyXG4gIEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbkR0byxcclxuICBDb25maWdTdGF0ZVNlcnZpY2UsXHJcbiAgRXh0ZW5zaW9uRW51bUR0byxcclxuICBFeHRlbnNpb25Qcm9wZXJ0eVVpTG9va3VwRHRvLFxyXG4gIE9iamVjdEV4dGVuc2lvbnNEdG8sXHJcbn0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgcGlwZSwgemlwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBzd2l0Y2hNYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGVQcm9wVHlwZSB9IGZyb20gJy4uL2VudW1zL3Byb3BzLmVudW0nO1xyXG5pbXBvcnQgeyBFbnRpdHlQcm9wLCBFbnRpdHlQcm9wTGlzdCB9IGZyb20gJy4uL21vZGVscy9lbnRpdHktcHJvcHMnO1xyXG5pbXBvcnQgeyBGb3JtUHJvcCwgRm9ybVByb3BMaXN0IH0gZnJvbSAnLi4vbW9kZWxzL2Zvcm0tcHJvcHMnO1xyXG5pbXBvcnQgeyBPYmplY3RFeHRlbnNpb25zIH0gZnJvbSAnLi4vbW9kZWxzL29iamVjdC1leHRlbnNpb25zJztcclxuaW1wb3J0IHsgUHJvcENhbGxiYWNrIH0gZnJvbSAnLi4vbW9kZWxzL3Byb3BzJztcclxuaW1wb3J0IHsgY3JlYXRlRW51bSwgY3JlYXRlRW51bU9wdGlvbnMsIGNyZWF0ZUVudW1WYWx1ZVJlc29sdmVyIH0gZnJvbSAnLi9lbnVtLnV0aWwnO1xyXG5pbXBvcnQgeyBjcmVhdGVEaXNwbGF5TmFtZUxvY2FsaXphdGlvblBpcGVLZXlHZW5lcmF0b3IgfSBmcm9tICcuL2xvY2FsaXphdGlvbi51dGlsJztcclxuaW1wb3J0IHsgY3JlYXRlRXh0cmFQcm9wZXJ0eVZhbHVlUmVzb2x2ZXIgfSBmcm9tICcuL3Byb3BzLnV0aWwnO1xyXG5pbXBvcnQge1xyXG4gIGNyZWF0ZVR5cGVhaGVhZERpc3BsYXlOYW1lR2VuZXJhdG9yLFxyXG4gIGNyZWF0ZVR5cGVhaGVhZE9wdGlvbnMsXHJcbiAgZ2V0VHlwZWFoZWFkVHlwZSxcclxuICBoYXNUeXBlYWhlYWRUZXh0U3VmZml4LFxyXG59IGZyb20gJy4vdHlwZWFoZWFkLnV0aWwnO1xyXG5pbXBvcnQgeyBnZXRWYWxpZGF0b3JzRnJvbVByb3BlcnR5IH0gZnJvbSAnLi92YWxpZGF0aW9uLnV0aWwnO1xyXG5cclxuZnVuY3Rpb24gc2VsZWN0T2JqZWN0RXh0ZW5zaW9ucyhjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlKTogT2JzZXJ2YWJsZTxPYmplY3RFeHRlbnNpb25zRHRvPiB7XHJcbiAgcmV0dXJuIGNvbmZpZ1N0YXRlLmdldE9uZSQoJ29iamVjdEV4dGVuc2lvbnMnKTtcclxufVxyXG5cclxuZnVuY3Rpb24gc2VsZWN0TG9jYWxpemF0aW9uKFxyXG4gIGNvbmZpZ1N0YXRlOiBDb25maWdTdGF0ZVNlcnZpY2UsXHJcbik6IE9ic2VydmFibGU8QXBwbGljYXRpb25Mb2NhbGl6YXRpb25Db25maWd1cmF0aW9uRHRvPiB7XHJcbiAgcmV0dXJuIGNvbmZpZ1N0YXRlLmdldE9uZSQoJ2xvY2FsaXphdGlvbicpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzZWxlY3RFbnVtcyhcclxuICBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlLFxyXG4pOiBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIEV4dGVuc2lvbkVudW1EdG8+PiB7XHJcbiAgcmV0dXJuIHNlbGVjdE9iamVjdEV4dGVuc2lvbnMoY29uZmlnU3RhdGUpLnBpcGUoXHJcbiAgICBtYXAoKGV4dGVuc2lvbnM6IE9iamVjdEV4dGVuc2lvbnNEdG8pID0+XHJcbiAgICAgIE9iamVjdC5rZXlzKGV4dGVuc2lvbnMuZW51bXMpLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcclxuICAgICAgICBjb25zdCB7IGZpZWxkcywgbG9jYWxpemF0aW9uUmVzb3VyY2UgfSA9IGV4dGVuc2lvbnMuZW51bXNba2V5XTtcclxuICAgICAgICBhY2Nba2V5XSA9IHtcclxuICAgICAgICAgIGZpZWxkcyxcclxuICAgICAgICAgIGxvY2FsaXphdGlvblJlc291cmNlLFxyXG4gICAgICAgICAgdHJhbnNmb3JtZWQ6IGNyZWF0ZUVudW0oZmllbGRzKSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIE9iamVjdEV4dGVuc2lvbnMuRXh0ZW5zaW9uRW51bUR0bz4pLFxyXG4gICAgKSxcclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0RXh0ZW5zaW9uRW50aXRpZXNGcm9tU3RvcmUoXHJcbiAgY29uZmlnU3RhdGU6IENvbmZpZ1N0YXRlU2VydmljZSxcclxuICBtb2R1bGVLZXk6IHN0cmluZyxcclxuKSB7XHJcbiAgcmV0dXJuIHNlbGVjdE9iamVjdEV4dGVuc2lvbnMoY29uZmlnU3RhdGUpLnBpcGUoXHJcbiAgICBtYXAoZXh0ZW5zaW9ucyA9PiB7XHJcbiAgICAgIGlmICghZXh0ZW5zaW9ucykgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICByZXR1cm4gKGV4dGVuc2lvbnMubW9kdWxlc1ttb2R1bGVLZXldIHx8ICh7fSBhcyBPYmplY3RFeHRlbnNpb25zLk1vZHVsZUV4dGVuc2lvbkR0bykpXHJcbiAgICAgICAgLmVudGl0aWVzO1xyXG4gICAgfSksXHJcbiAgICBtYXAoZW50aXRpZXMgPT4gKGlzVW5kZWZpbmVkKGVudGl0aWVzKSA/ICh7fSBhcyBhbnkpIDogZW50aXRpZXMpKSxcclxuICAgIGZpbHRlcjxPYmplY3RFeHRlbnNpb25zLkVudGl0eUV4dGVuc2lvbnM+KEJvb2xlYW4pLFxyXG4gICAgdGFrZSgxKSxcclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWFwRW50aXRpZXNUb0NvbnRyaWJ1dG9yczxUID0gYW55PihcclxuICBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlLFxyXG4gIHJlc291cmNlOiBzdHJpbmcsXHJcbikge1xyXG4gIHJldHVybiBwaXBlKFxyXG4gICAgc3dpdGNoTWFwKChlbnRpdGllczogYW55KSA9PlxyXG4gICAgICB6aXAoc2VsZWN0TG9jYWxpemF0aW9uKGNvbmZpZ1N0YXRlKSwgc2VsZWN0RW51bXMoY29uZmlnU3RhdGUpKS5waXBlKFxyXG4gICAgICAgIG1hcCgoW2xvY2FsaXphdGlvbiwgZW51bXNdKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBnZW5lcmF0ZURpc3BsYXlOYW1lID0gY3JlYXRlRGlzcGxheU5hbWVMb2NhbGl6YXRpb25QaXBlS2V5R2VuZXJhdG9yKGxvY2FsaXphdGlvbik7XHJcblxyXG4gICAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGVudGl0aWVzKS5yZWR1Y2UoXHJcbiAgICAgICAgICAgIChhY2MsIGtleToga2V5b2YgT2JqZWN0RXh0ZW5zaW9ucy5FbnRpdHlFeHRlbnNpb25zKSA9PiB7XHJcbiAgICAgICAgICAgICAgYWNjLnByb3Bba2V5XSA9IFtdO1xyXG4gICAgICAgICAgICAgIGFjYy5jcmVhdGVGb3JtW2tleV0gPSBbXTtcclxuICAgICAgICAgICAgICBhY2MuZWRpdEZvcm1ba2V5XSA9IFtdO1xyXG5cclxuICAgICAgICAgICAgICBjb25zdCBlbnRpdHk6IE9iamVjdEV4dGVuc2lvbnMuRW50aXR5RXh0ZW5zaW9uRHRvID0gZW50aXRpZXNba2V5XTtcclxuICAgICAgICAgICAgICBpZiAoIWVudGl0eSkgcmV0dXJuIGFjYztcclxuXHJcbiAgICAgICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IGVudGl0eS5wcm9wZXJ0aWVzO1xyXG4gICAgICAgICAgICAgIGlmICghcHJvcGVydGllcykgcmV0dXJuIGFjYztcclxuXHJcbiAgICAgICAgICAgICAgY29uc3QgbWFwUHJvcGVydGllc1RvQ29udHJpYnV0b3JzID0gY3JlYXRlUHJvcGVydGllc1RvQ29udHJpYnV0b3JzTWFwcGVyPFQ+KFxyXG4gICAgICAgICAgICAgICAgZ2VuZXJhdGVEaXNwbGF5TmFtZSxcclxuICAgICAgICAgICAgICAgIHJlc291cmNlLFxyXG4gICAgICAgICAgICAgICAgZW51bXMsXHJcbiAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgcmV0dXJuIG1hcFByb3BlcnRpZXNUb0NvbnRyaWJ1dG9ycyhwcm9wZXJ0aWVzLCBhY2MsIGtleSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBwcm9wOiB7fSxcclxuICAgICAgICAgICAgICBjcmVhdGVGb3JtOiB7fSxcclxuICAgICAgICAgICAgICBlZGl0Rm9ybToge30sXHJcbiAgICAgICAgICAgIH0gYXMgT2JqZWN0RXh0ZW5zaW9ucy5Qcm9wQ29udHJpYnV0b3JzLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9KSxcclxuICAgICAgKSxcclxuICAgICksXHJcbiAgICB0YWtlKDEpLFxyXG4gICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZVByb3BlcnRpZXNUb0NvbnRyaWJ1dG9yc01hcHBlcjxUID0gYW55PihcclxuICBnZW5lcmF0ZURpc3BsYXlOYW1lOiBPYmplY3RFeHRlbnNpb25zLkRpc3BsYXlOYW1lR2VuZXJhdG9yRm4sXHJcbiAgcmVzb3VyY2U6IHN0cmluZyxcclxuICBlbnVtczogUmVjb3JkPHN0cmluZywgT2JqZWN0RXh0ZW5zaW9ucy5FeHRlbnNpb25FbnVtRHRvPixcclxuKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIHByb3BlcnRpZXM6IE9iamVjdEV4dGVuc2lvbnMuRW50aXR5RXh0ZW5zaW9uUHJvcGVydGllcyxcclxuICAgIGNvbnRyaWJ1dG9yczogT2JqZWN0RXh0ZW5zaW9ucy5Qcm9wQ29udHJpYnV0b3JzPFQ+LFxyXG4gICAga2V5OiBzdHJpbmcsXHJcbiAgKSA9PiB7XHJcbiAgICBjb25zdCBpc0V4dHJhID0gdHJ1ZTtcclxuICAgIGNvbnN0IGdlbmVyYXRlVHlwZWFoZWFkRGlzcGxheU5hbWUgPSBjcmVhdGVUeXBlYWhlYWREaXNwbGF5TmFtZUdlbmVyYXRvcihcclxuICAgICAgZ2VuZXJhdGVEaXNwbGF5TmFtZSxcclxuICAgICAgcHJvcGVydGllcyxcclxuICAgICk7XHJcblxyXG4gICAgT2JqZWN0LmtleXMocHJvcGVydGllcykuZm9yRWFjaCgobmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGNvbnN0IHByb3BlcnR5ID0gcHJvcGVydGllc1tuYW1lXTtcclxuICAgICAgY29uc3QgcHJvcE5hbWUgPSBuYW1lO1xyXG4gICAgICBjb25zdCBsb29rdXAgPSBwcm9wZXJ0eS51aS5sb29rdXAgfHwgKHt9IGFzIEV4dGVuc2lvblByb3BlcnR5VWlMb29rdXBEdG8pO1xyXG4gICAgICBjb25zdCB0eXBlID0gZ2V0VHlwZWFoZWFkVHlwZShsb29rdXAsIG5hbWUpIHx8IGdldFR5cGVGcm9tUHJvcGVydHkocHJvcGVydHkpO1xyXG4gICAgICBjb25zdCBnZW5lcmF0ZUROID0gaGFzVHlwZWFoZWFkVGV4dFN1ZmZpeChuYW1lKVxyXG4gICAgICAgID8gZ2VuZXJhdGVUeXBlYWhlYWREaXNwbGF5TmFtZVxyXG4gICAgICAgIDogZ2VuZXJhdGVEaXNwbGF5TmFtZTtcclxuICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSBnZW5lcmF0ZUROKHByb3BlcnR5LmRpc3BsYXlOYW1lLCB7IG5hbWUsIHJlc291cmNlIH0pO1xyXG5cclxuICAgICAgaWYgKHByb3BlcnR5LnVpLm9uVGFibGUuaXNWaXNpYmxlKSB7XHJcbiAgICAgICAgY29uc3Qgc29ydGFibGUgPSBCb29sZWFuKHByb3BlcnR5LnVpLm9uVGFibGUuaXNTb3J0YWJsZSk7XHJcbiAgICAgICAgY29uc3QgY29sdW1uV2lkdGggPSB0eXBlID09PSBlUHJvcFR5cGUuQm9vbGVhbiA/IDE1MCA6IDI1MDtcclxuICAgICAgICBjb25zdCB2YWx1ZVJlc29sdmVyOiBQcm9wQ2FsbGJhY2s8VCwgT2JzZXJ2YWJsZTxhbnk+PiA9IHR5cGUgPT09IGVQcm9wVHlwZS5FbnVtICYmXHJcbiAgICAgICAgcHJvcGVydHkudHlwZVxyXG4gICAgICAgICAgPyBjcmVhdGVFbnVtVmFsdWVSZXNvbHZlcihwcm9wZXJ0eS50eXBlLCBlbnVtc1twcm9wZXJ0eS50eXBlXSwgcHJvcE5hbWUpXHJcbiAgICAgICAgICA6IGNyZWF0ZUV4dHJhUHJvcGVydHlWYWx1ZVJlc29sdmVyPFQ+KHByb3BOYW1lKTtcclxuXHJcbiAgICAgICAgY29uc3QgZW50aXR5UHJvcCA9IG5ldyBFbnRpdHlQcm9wPFQ+KHtcclxuICAgICAgICAgIHR5cGUsXHJcbiAgICAgICAgICBuYW1lOiBwcm9wTmFtZSxcclxuICAgICAgICAgIGRpc3BsYXlOYW1lLFxyXG4gICAgICAgICAgc29ydGFibGUsXHJcbiAgICAgICAgICBjb2x1bW5XaWR0aCxcclxuICAgICAgICAgIHZhbHVlUmVzb2x2ZXIsXHJcbiAgICAgICAgICBpc0V4dHJhLFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjb25zdCBjb250cmlidXRvciA9IChwcm9wTGlzdDogRW50aXR5UHJvcExpc3Q8VD4pID0+IHByb3BMaXN0LmFkZFRhaWwoZW50aXR5UHJvcCk7XHJcbiAgICAgICAgY29udHJpYnV0b3JzLnByb3Bba2V5XS5wdXNoKGNvbnRyaWJ1dG9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgaXNPbkNyZWF0ZUZvcm0gPSBwcm9wZXJ0eS51aS5vbkNyZWF0ZUZvcm0uaXNWaXNpYmxlO1xyXG4gICAgICBjb25zdCBpc09uRWRpdEZvcm0gPSBwcm9wZXJ0eS51aS5vbkVkaXRGb3JtLmlzVmlzaWJsZTtcclxuXHJcbiAgICAgIGlmIChpc09uQ3JlYXRlRm9ybSB8fCBpc09uRWRpdEZvcm0pIHtcclxuICAgICAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSBwcm9wZXJ0eS5kZWZhdWx0VmFsdWU7XHJcbiAgICAgICAgY29uc3QgZm9ybVRleHQgPSBwcm9wZXJ0eS5mb3JtVGV4dDtcclxuICAgICAgICBjb25zdCB2YWxpZGF0b3JzID0gKCkgPT4gZ2V0VmFsaWRhdG9yc0Zyb21Qcm9wZXJ0eShwcm9wZXJ0eSk7XHJcbiAgICAgICAgbGV0IG9wdGlvbnM6IFByb3BDYWxsYmFjazxhbnksIE9ic2VydmFibGU8QUJQLk9wdGlvbjxhbnk+W10+PiB8IHVuZGVmaW5lZDtcclxuICAgICAgICBpZiAodHlwZSA9PT0gZVByb3BUeXBlLkVudW0pXHJcbiAgICAgICAgICBvcHRpb25zID0gY3JlYXRlRW51bU9wdGlvbnMocHJvcE5hbWUsIGVudW1zW3Byb3BlcnR5LnR5cGUgfHwgJyddKTtcclxuICAgICAgICBlbHNlIGlmICh0eXBlID09PSBlUHJvcFR5cGUuVHlwZWFoZWFkKSBvcHRpb25zID0gY3JlYXRlVHlwZWFoZWFkT3B0aW9ucyhsb29rdXApO1xyXG5cclxuICAgICAgICBjb25zdCBmb3JtUHJvcCA9IG5ldyBGb3JtUHJvcCh7XHJcbiAgICAgICAgICB0eXBlLFxyXG4gICAgICAgICAgbmFtZTogcHJvcE5hbWUsXHJcbiAgICAgICAgICBkaXNwbGF5TmFtZSxcclxuICAgICAgICAgIG9wdGlvbnMsXHJcbiAgICAgICAgICBkZWZhdWx0VmFsdWUsXHJcbiAgICAgICAgICB2YWxpZGF0b3JzLFxyXG4gICAgICAgICAgaXNFeHRyYSxcclxuICAgICAgICAgIGZvcm1UZXh0LFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjb25zdCBmb3JtQ29udHJpYnV0b3IgPSAocHJvcExpc3Q6IEZvcm1Qcm9wTGlzdDxUPikgPT4gcHJvcExpc3QuYWRkVGFpbChmb3JtUHJvcCk7XHJcblxyXG4gICAgICAgIGlmIChpc09uQ3JlYXRlRm9ybSkgY29udHJpYnV0b3JzLmNyZWF0ZUZvcm1ba2V5XS5wdXNoKGZvcm1Db250cmlidXRvcik7XHJcbiAgICAgICAgaWYgKGlzT25FZGl0Rm9ybSkgY29udHJpYnV0b3JzLmVkaXRGb3JtW2tleV0ucHVzaChmb3JtQ29udHJpYnV0b3IpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gY29udHJpYnV0b3JzO1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFR5cGVGcm9tUHJvcGVydHkocHJvcGVydHk6IE9iamVjdEV4dGVuc2lvbnMuRXh0ZW5zaW9uUHJvcGVydHlEdG8pOiBlUHJvcFR5cGUge1xyXG4gIHJldHVybiBwcm9wZXJ0eT8udHlwZVNpbXBsZT8ucmVwbGFjZSgvXFw/JC8sICcnKSBhcyBzdHJpbmcgYXMgZVByb3BUeXBlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc1VuZGVmaW5lZChvYmo6IGFueSk6IG9iaiBpcyB1bmRlZmluZWQge1xyXG4gIHJldHVybiB0eXBlb2Ygb2JqID09PSAndW5kZWZpbmVkJztcclxufVxyXG4iXX0=