@abp/ng.theme.shared 4.4.1 → 5.0.0-beta.1-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 (305) hide show
  1. package/abp-ng.theme.shared.d.ts +1 -34
  2. package/bundles/abp-ng.theme.shared-extensions.umd.js +473 -361
  3. package/bundles/abp-ng.theme.shared-extensions.umd.js.map +1 -1
  4. package/bundles/abp-ng.theme.shared-testing.umd.js +33 -7
  5. package/bundles/abp-ng.theme.shared-testing.umd.js.map +1 -1
  6. package/bundles/abp-ng.theme.shared.umd.js +691 -1078
  7. package/bundles/abp-ng.theme.shared.umd.js.map +1 -1
  8. package/esm2015/abp-ng.theme.shared.js +1 -34
  9. package/esm2015/abp-ng.theme.shared.js.map +1 -0
  10. package/esm2015/extensions/abp-ng.theme.shared-extensions.js +1 -5
  11. package/esm2015/extensions/abp-ng.theme.shared-extensions.js.map +1 -0
  12. package/esm2015/extensions/lib/adapters/date-time.adapter.js +7 -4
  13. package/esm2015/extensions/lib/adapters/date-time.adapter.js.map +1 -0
  14. package/esm2015/extensions/lib/adapters/date.adapter.js +7 -4
  15. package/esm2015/extensions/lib/adapters/date.adapter.js.map +1 -0
  16. package/esm2015/extensions/lib/adapters/time.adapter.js +7 -4
  17. package/esm2015/extensions/lib/adapters/time.adapter.js.map +1 -0
  18. package/esm2015/extensions/lib/components/abstract-actions/abstract-actions.component.js +9 -12
  19. package/esm2015/extensions/lib/components/abstract-actions/abstract-actions.component.js.map +1 -0
  20. package/esm2015/extensions/lib/components/date-time-picker/date-time-picker.component.js +74 -35
  21. package/esm2015/extensions/lib/components/date-time-picker/date-time-picker.component.js.map +1 -0
  22. package/esm2015/extensions/lib/components/extensible-form/extensible-form-prop.component.js +49 -34
  23. package/esm2015/extensions/lib/components/extensible-form/extensible-form-prop.component.js.map +1 -0
  24. package/esm2015/extensions/lib/components/extensible-form/extensible-form.component.js +42 -30
  25. package/esm2015/extensions/lib/components/extensible-form/extensible-form.component.js.map +1 -0
  26. package/esm2015/extensions/lib/components/extensible-table/extensible-table.component.js +59 -28
  27. package/esm2015/extensions/lib/components/extensible-table/extensible-table.component.js.map +1 -0
  28. package/esm2015/extensions/lib/components/grid-actions/grid-actions.component.js +34 -23
  29. package/esm2015/extensions/lib/components/grid-actions/grid-actions.component.js.map +1 -0
  30. package/esm2015/extensions/lib/components/page-toolbar/page-toolbar.component.js +26 -18
  31. package/esm2015/extensions/lib/components/page-toolbar/page-toolbar.component.js.map +1 -0
  32. package/esm2015/extensions/lib/constants/extra-properties.js +1 -1
  33. package/esm2015/extensions/lib/constants/extra-properties.js.map +1 -0
  34. package/esm2015/extensions/lib/directives/disabled.directive.js +15 -12
  35. package/esm2015/extensions/lib/directives/disabled.directive.js.map +1 -0
  36. package/esm2015/extensions/lib/directives/prop-data.directive.js +21 -18
  37. package/esm2015/extensions/lib/directives/prop-data.directive.js.map +1 -0
  38. package/esm2015/extensions/lib/enums/props.enum.js +1 -1
  39. package/esm2015/extensions/lib/enums/props.enum.js.map +1 -0
  40. package/esm2015/extensions/lib/models/actions.js +1 -2
  41. package/esm2015/extensions/lib/models/actions.js.map +1 -0
  42. package/esm2015/extensions/lib/models/entity-actions.js +1 -1
  43. package/esm2015/extensions/lib/models/entity-actions.js.map +1 -0
  44. package/esm2015/extensions/lib/models/entity-props.js +3 -1
  45. package/esm2015/extensions/lib/models/entity-props.js.map +1 -0
  46. package/esm2015/extensions/lib/models/form-props.js +1 -2
  47. package/esm2015/extensions/lib/models/form-props.js.map +1 -0
  48. package/esm2015/extensions/lib/models/internal/object-extensions.js +1 -1
  49. package/esm2015/extensions/lib/models/internal/object-extensions.js.map +1 -0
  50. package/esm2015/extensions/lib/models/object-extensions.js +1 -1
  51. package/esm2015/extensions/lib/models/object-extensions.js.map +1 -0
  52. package/esm2015/extensions/lib/models/props.js +1 -2
  53. package/esm2015/extensions/lib/models/props.js.map +1 -0
  54. package/esm2015/extensions/lib/models/toolbar-actions.js +1 -1
  55. package/esm2015/extensions/lib/models/toolbar-actions.js.map +1 -0
  56. package/esm2015/extensions/lib/services/extensions.service.js +9 -7
  57. package/esm2015/extensions/lib/services/extensions.service.js.map +1 -0
  58. package/esm2015/extensions/lib/tokens/extensions.token.js +2 -1
  59. package/esm2015/extensions/lib/tokens/extensions.token.js.map +1 -0
  60. package/esm2015/extensions/lib/ui-extensions.module.js +75 -39
  61. package/esm2015/extensions/lib/ui-extensions.module.js.map +1 -0
  62. package/esm2015/extensions/lib/utils/actions.util.js +1 -1
  63. package/esm2015/extensions/lib/utils/actions.util.js.map +1 -0
  64. package/esm2015/extensions/lib/utils/enum.util.js +1 -1
  65. package/esm2015/extensions/lib/utils/enum.util.js.map +1 -0
  66. package/esm2015/extensions/lib/utils/factory.util.js +1 -1
  67. package/esm2015/extensions/lib/utils/factory.util.js.map +1 -0
  68. package/esm2015/extensions/lib/utils/form-props.util.js +1 -1
  69. package/esm2015/extensions/lib/utils/form-props.util.js.map +1 -0
  70. package/esm2015/extensions/lib/utils/localization.util.js +1 -1
  71. package/esm2015/extensions/lib/utils/localization.util.js.map +1 -0
  72. package/esm2015/extensions/lib/utils/props.util.js +1 -1
  73. package/esm2015/extensions/lib/utils/props.util.js.map +1 -0
  74. package/esm2015/extensions/lib/utils/state.util.js +1 -1
  75. package/esm2015/extensions/lib/utils/state.util.js.map +1 -0
  76. package/esm2015/extensions/lib/utils/typeahead.util.js +1 -1
  77. package/esm2015/extensions/lib/utils/typeahead.util.js.map +1 -0
  78. package/esm2015/extensions/lib/utils/validation.util.js +1 -1
  79. package/esm2015/extensions/lib/utils/validation.util.js.map +1 -0
  80. package/esm2015/extensions/public-api.js +1 -1
  81. package/esm2015/extensions/public-api.js.map +1 -0
  82. package/esm2015/lib/animations/bounce.animations.js +5 -5
  83. package/esm2015/lib/animations/bounce.animations.js.map +1 -0
  84. package/esm2015/lib/animations/collapse.animations.js +1 -1
  85. package/esm2015/lib/animations/collapse.animations.js.map +1 -0
  86. package/esm2015/lib/animations/fade.animations.js +1 -1
  87. package/esm2015/lib/animations/fade.animations.js.map +1 -0
  88. package/esm2015/lib/animations/index.js +1 -1
  89. package/esm2015/lib/animations/index.js.map +1 -0
  90. package/esm2015/lib/animations/modal.animations.js +1 -1
  91. package/esm2015/lib/animations/modal.animations.js.map +1 -0
  92. package/esm2015/lib/animations/slide.animations.js +1 -1
  93. package/esm2015/lib/animations/slide.animations.js.map +1 -0
  94. package/esm2015/lib/animations/toast.animations.js +1 -1
  95. package/esm2015/lib/animations/toast.animations.js.map +1 -0
  96. package/esm2015/lib/components/breadcrumb/breadcrumb.component.js +19 -21
  97. package/esm2015/lib/components/breadcrumb/breadcrumb.component.js.map +1 -0
  98. package/esm2015/lib/components/breadcrumb-items/breadcrumb-items.component.js +22 -0
  99. package/esm2015/lib/components/breadcrumb-items/breadcrumb-items.component.js.map +1 -0
  100. package/esm2015/lib/components/button/button.component.js +57 -30
  101. package/esm2015/lib/components/button/button.component.js.map +1 -0
  102. package/esm2015/lib/components/confirmation/confirmation.component.js +14 -8
  103. package/esm2015/lib/components/confirmation/confirmation.component.js.map +1 -0
  104. package/esm2015/lib/components/http-error-wrapper/http-error-wrapper.component.js +25 -20
  105. package/esm2015/lib/components/http-error-wrapper/http-error-wrapper.component.js.map +1 -0
  106. package/esm2015/lib/components/index.js +3 -6
  107. package/esm2015/lib/components/index.js.map +1 -0
  108. package/esm2015/lib/components/loader-bar/loader-bar.component.js +34 -21
  109. package/esm2015/lib/components/loader-bar/loader-bar.component.js.map +1 -0
  110. package/esm2015/lib/components/loading/loading.component.js +20 -13
  111. package/esm2015/lib/components/loading/loading.component.js.map +1 -0
  112. package/esm2015/lib/components/modal/modal-close.directive.js +14 -10
  113. package/esm2015/lib/components/modal/modal-close.directive.js.map +1 -0
  114. package/esm2015/lib/components/modal/modal-ref.service.js +7 -5
  115. package/esm2015/lib/components/modal/modal-ref.service.js.map +1 -0
  116. package/esm2015/lib/components/modal/modal.component.js +57 -65
  117. package/esm2015/lib/components/modal/modal.component.js.map +1 -0
  118. package/esm2015/lib/components/toast/toast.component.js +25 -22
  119. package/esm2015/lib/components/toast/toast.component.js.map +1 -0
  120. package/esm2015/lib/components/toast-container/toast-container.component.js +25 -16
  121. package/esm2015/lib/components/toast-container/toast-container.component.js.map +1 -0
  122. package/esm2015/lib/constants/styles.js +1 -1
  123. package/esm2015/lib/constants/styles.js.map +1 -0
  124. package/esm2015/lib/constants/validation.js +1 -1
  125. package/esm2015/lib/constants/validation.js.map +1 -0
  126. package/esm2015/lib/directives/ellipsis.directive.js +40 -24
  127. package/esm2015/lib/directives/ellipsis.directive.js.map +1 -0
  128. package/esm2015/lib/directives/index.js +2 -3
  129. package/esm2015/lib/directives/index.js.map +1 -0
  130. package/esm2015/lib/directives/loading.directive.js +20 -17
  131. package/esm2015/lib/directives/loading.directive.js.map +1 -0
  132. package/esm2015/lib/directives/ngx-datatable-default.directive.js +21 -16
  133. package/esm2015/lib/directives/ngx-datatable-default.directive.js.map +1 -0
  134. package/esm2015/lib/directives/ngx-datatable-list.directive.js +22 -18
  135. package/esm2015/lib/directives/ngx-datatable-list.directive.js.map +1 -0
  136. package/esm2015/lib/enums/index.js +1 -1
  137. package/esm2015/lib/enums/index.js.map +1 -0
  138. package/esm2015/lib/enums/route-names.js +1 -1
  139. package/esm2015/lib/enums/route-names.js.map +1 -0
  140. package/esm2015/lib/handlers/error.handler.js +28 -37
  141. package/esm2015/lib/handlers/error.handler.js.map +1 -0
  142. package/esm2015/lib/handlers/index.js +1 -1
  143. package/esm2015/lib/handlers/index.js.map +1 -0
  144. package/esm2015/lib/handlers/lazy-style.handler.js +9 -10
  145. package/esm2015/lib/handlers/lazy-style.handler.js.map +1 -0
  146. package/esm2015/lib/models/common.js +1 -1
  147. package/esm2015/lib/models/common.js.map +1 -0
  148. package/esm2015/lib/models/confirmation.js +1 -1
  149. package/esm2015/lib/models/confirmation.js.map +1 -0
  150. package/esm2015/lib/models/index.js +1 -1
  151. package/esm2015/lib/models/index.js.map +1 -0
  152. package/esm2015/lib/models/nav-item.js +1 -1
  153. package/esm2015/lib/models/nav-item.js.map +1 -0
  154. package/esm2015/lib/models/statistics.js +1 -1
  155. package/esm2015/lib/models/statistics.js.map +1 -0
  156. package/esm2015/lib/models/toaster.js +1 -1
  157. package/esm2015/lib/models/toaster.js.map +1 -0
  158. package/esm2015/lib/providers/index.js +1 -1
  159. package/esm2015/lib/providers/index.js.map +1 -0
  160. package/esm2015/lib/providers/ng-bootstrap-config.provider.js +1 -1
  161. package/esm2015/lib/providers/ng-bootstrap-config.provider.js.map +1 -0
  162. package/esm2015/lib/providers/route.provider.js +1 -1
  163. package/esm2015/lib/providers/route.provider.js.map +1 -0
  164. package/esm2015/lib/services/confirmation.service.js +7 -8
  165. package/esm2015/lib/services/confirmation.service.js.map +1 -0
  166. package/esm2015/lib/services/index.js +2 -3
  167. package/esm2015/lib/services/index.js.map +1 -0
  168. package/esm2015/lib/services/nav-items.service.js +7 -5
  169. package/esm2015/lib/services/nav-items.service.js.map +1 -0
  170. package/esm2015/lib/services/page-alert.service.js +7 -6
  171. package/esm2015/lib/services/page-alert.service.js.map +1 -0
  172. package/esm2015/lib/services/toaster.service.js +22 -21
  173. package/esm2015/lib/services/toaster.service.js.map +1 -0
  174. package/esm2015/lib/theme-shared.module.js +72 -39
  175. package/esm2015/lib/theme-shared.module.js.map +1 -0
  176. package/esm2015/lib/tokens/append-content.token.js +1 -3
  177. package/esm2015/lib/tokens/append-content.token.js.map +1 -0
  178. package/esm2015/lib/tokens/http-error.token.js +1 -1
  179. package/esm2015/lib/tokens/http-error.token.js.map +1 -0
  180. package/esm2015/lib/tokens/index.js +1 -1
  181. package/esm2015/lib/tokens/index.js.map +1 -0
  182. package/esm2015/lib/tokens/lazy-styles.token.js +1 -1
  183. package/esm2015/lib/tokens/lazy-styles.token.js.map +1 -0
  184. package/esm2015/lib/tokens/ngx-datatable-messages.token.js +1 -1
  185. package/esm2015/lib/tokens/ngx-datatable-messages.token.js.map +1 -0
  186. package/esm2015/lib/tokens/suppress-unsaved-changes-warning.token.js +1 -2
  187. package/esm2015/lib/tokens/suppress-unsaved-changes-warning.token.js.map +1 -0
  188. package/esm2015/lib/utils/date-parser-formatter.js +13 -10
  189. package/esm2015/lib/utils/date-parser-formatter.js.map +1 -0
  190. package/esm2015/lib/utils/index.js +1 -2
  191. package/esm2015/lib/utils/index.js.map +1 -0
  192. package/esm2015/lib/utils/validation-utils.js +1 -1
  193. package/esm2015/lib/utils/validation-utils.js.map +1 -0
  194. package/esm2015/public-api.js +1 -1
  195. package/esm2015/public-api.js.map +1 -0
  196. package/esm2015/testing/abp-ng.theme.shared-testing.js +1 -1
  197. package/esm2015/testing/abp-ng.theme.shared-testing.js.map +1 -0
  198. package/esm2015/testing/lib/models/config.js +1 -1
  199. package/esm2015/testing/lib/models/config.js.map +1 -0
  200. package/esm2015/testing/lib/models/index.js +1 -1
  201. package/esm2015/testing/lib/models/index.js.map +1 -0
  202. package/esm2015/testing/lib/theme-shared-testing.module.js +12 -7
  203. package/esm2015/testing/lib/theme-shared-testing.module.js.map +1 -0
  204. package/esm2015/testing/public-api.js +1 -1
  205. package/esm2015/testing/public-api.js.map +1 -0
  206. package/extensions/abp-ng.theme.shared-extensions.d.ts +1 -4
  207. package/extensions/lib/adapters/date-time.adapter.d.ts +3 -0
  208. package/extensions/lib/adapters/date.adapter.d.ts +3 -0
  209. package/extensions/lib/adapters/time.adapter.d.ts +3 -0
  210. package/extensions/lib/components/abstract-actions/abstract-actions.component.d.ts +3 -0
  211. package/extensions/lib/components/date-time-picker/date-time-picker.component.d.ts +3 -0
  212. package/extensions/lib/components/extensible-form/extensible-form-prop.component.d.ts +3 -0
  213. package/extensions/lib/components/extensible-form/extensible-form.component.d.ts +3 -0
  214. package/extensions/lib/components/extensible-table/extensible-table.component.d.ts +9 -4
  215. package/extensions/lib/components/grid-actions/grid-actions.component.d.ts +3 -0
  216. package/extensions/lib/components/page-toolbar/page-toolbar.component.d.ts +3 -0
  217. package/extensions/lib/directives/disabled.directive.d.ts +3 -0
  218. package/extensions/lib/directives/prop-data.directive.d.ts +3 -0
  219. package/extensions/lib/models/entity-props.d.ts +5 -2
  220. package/extensions/lib/services/extensions.service.d.ts +3 -0
  221. package/extensions/lib/tokens/extensions.token.d.ts +3 -1
  222. package/extensions/lib/ui-extensions.module.d.ts +19 -0
  223. package/extensions/lib/utils/state.util.d.ts +1 -1
  224. package/extensions/package.json +0 -1
  225. package/fesm2015/abp-ng.theme.shared-extensions.js +540 -409
  226. package/fesm2015/abp-ng.theme.shared-extensions.js.map +1 -1
  227. package/fesm2015/abp-ng.theme.shared-testing.js +11 -6
  228. package/fesm2015/abp-ng.theme.shared-testing.js.map +1 -1
  229. package/fesm2015/abp-ng.theme.shared.js +645 -917
  230. package/fesm2015/abp-ng.theme.shared.js.map +1 -1
  231. package/lib/components/breadcrumb/breadcrumb.component.d.ts +3 -0
  232. package/lib/components/breadcrumb-items/breadcrumb-items.component.d.ts +6 -0
  233. package/lib/components/button/button.component.d.ts +4 -1
  234. package/lib/components/confirmation/confirmation.component.d.ts +3 -0
  235. package/lib/components/http-error-wrapper/http-error-wrapper.component.d.ts +6 -3
  236. package/lib/components/index.d.ts +2 -5
  237. package/lib/components/loader-bar/loader-bar.component.d.ts +3 -0
  238. package/lib/components/loading/loading.component.d.ts +4 -4
  239. package/lib/components/modal/modal-close.directive.d.ts +3 -0
  240. package/lib/components/modal/modal-ref.service.d.ts +3 -0
  241. package/lib/components/modal/modal.component.d.ts +4 -18
  242. package/lib/components/toast/toast.component.d.ts +5 -4
  243. package/lib/components/toast-container/toast-container.component.d.ts +5 -1
  244. package/lib/directives/ellipsis.directive.d.ts +6 -0
  245. package/lib/directives/index.d.ts +1 -2
  246. package/lib/directives/loading.directive.d.ts +3 -0
  247. package/lib/directives/ngx-datatable-default.directive.d.ts +3 -0
  248. package/lib/directives/ngx-datatable-list.directive.d.ts +3 -0
  249. package/lib/handlers/error.handler.d.ts +9 -7
  250. package/lib/handlers/lazy-style.handler.d.ts +3 -0
  251. package/lib/models/confirmation.d.ts +3 -3
  252. package/lib/models/toaster.d.ts +5 -5
  253. package/lib/providers/ng-bootstrap-config.provider.d.ts +1 -1
  254. package/lib/providers/route.provider.d.ts +1 -1
  255. package/lib/services/confirmation.service.d.ts +3 -0
  256. package/lib/services/index.d.ts +1 -2
  257. package/lib/services/nav-items.service.d.ts +3 -0
  258. package/lib/services/page-alert.service.d.ts +3 -0
  259. package/lib/services/toaster.service.d.ts +4 -1
  260. package/lib/theme-shared.module.d.ts +26 -0
  261. package/lib/utils/date-parser-formatter.d.ts +3 -0
  262. package/lib/utils/index.d.ts +0 -1
  263. package/package.json +4 -6
  264. package/testing/abp-ng.theme.shared-testing.d.ts +1 -0
  265. package/testing/lib/theme-shared-testing.module.d.ts +6 -0
  266. package/testing/package.json +0 -1
  267. package/abp-ng.theme.shared.metadata.json +0 -1
  268. package/bundles/abp-ng.theme.shared-extensions-testing.umd.js +0 -28
  269. package/bundles/abp-ng.theme.shared-extensions-testing.umd.js.map +0 -1
  270. package/bundles/abp-ng.theme.shared-extensions-testing.umd.min.js +0 -2
  271. package/bundles/abp-ng.theme.shared-extensions-testing.umd.min.js.map +0 -1
  272. package/bundles/abp-ng.theme.shared-extensions.umd.min.js +0 -17
  273. package/bundles/abp-ng.theme.shared-extensions.umd.min.js.map +0 -1
  274. package/bundles/abp-ng.theme.shared-testing.umd.min.js +0 -2
  275. package/bundles/abp-ng.theme.shared-testing.umd.min.js.map +0 -1
  276. package/bundles/abp-ng.theme.shared.umd.min.js +0 -2
  277. package/bundles/abp-ng.theme.shared.umd.min.js.map +0 -1
  278. package/esm2015/extensions/testing/abp-ng.theme.shared-extensions-testing.js +0 -5
  279. package/esm2015/extensions/testing/lib/ui-extensions-testing.module.js +0 -11
  280. package/esm2015/extensions/testing/public-api.js +0 -2
  281. package/esm2015/lib/components/chart/chart.component.js +0 -120
  282. package/esm2015/lib/components/modal/modal-container.component.js +0 -16
  283. package/esm2015/lib/components/sort-order-icon/sort-order-icon.component.js +0 -62
  284. package/esm2015/lib/components/table/table.component.js +0 -71
  285. package/esm2015/lib/components/table-empty-message/table-empty-message.component.js +0 -29
  286. package/esm2015/lib/directives/table-sort.directive.js +0 -43
  287. package/esm2015/lib/services/modal.service.js +0 -46
  288. package/esm2015/lib/utils/widget-utils.js +0 -13
  289. package/extensions/abp-ng.theme.shared-extensions.metadata.json +0 -1
  290. package/extensions/testing/abp-ng.theme.shared-extensions-testing.d.ts +0 -4
  291. package/extensions/testing/abp-ng.theme.shared-extensions-testing.metadata.json +0 -1
  292. package/extensions/testing/lib/ui-extensions-testing.module.d.ts +0 -2
  293. package/extensions/testing/package.json +0 -11
  294. package/extensions/testing/public-api.d.ts +0 -1
  295. package/fesm2015/abp-ng.theme.shared-extensions-testing.js +0 -18
  296. package/fesm2015/abp-ng.theme.shared-extensions-testing.js.map +0 -1
  297. package/lib/components/chart/chart.component.d.ts +0 -30
  298. package/lib/components/modal/modal-container.component.d.ts +0 -7
  299. package/lib/components/sort-order-icon/sort-order-icon.component.d.ts +0 -18
  300. package/lib/components/table/table.component.d.ts +0 -30
  301. package/lib/components/table-empty-message/table-empty-message.component.d.ts +0 -7
  302. package/lib/directives/table-sort.directive.d.ts +0 -21
  303. package/lib/services/modal.service.d.ts +0 -16
  304. package/lib/utils/widget-utils.d.ts +0 -3
  305. package/testing/abp-ng.theme.shared-testing.metadata.json +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensible-form-prop.component.js","sourceRoot":"","sources":["../../../../../../../../packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.ts","../../../../../../../../packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html"],"names":[],"mappings":"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","sourcesContent":["import { ABP, AbpValidators, ConfigStateService, TrackByService } from '@abp/ng.core';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n Optional,\n SimpleChanges,\n SkipSelf,\n ViewChild,\n} from '@angular/core';\nimport {\n ControlContainer,\n FormGroup,\n FormGroupDirective,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { NgbDateAdapter, NgbTimeAdapter } from '@ng-bootstrap/ng-bootstrap';\nimport { Observable, of } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators';\nimport { DateAdapter } from '../../adapters/date.adapter';\nimport { TimeAdapter } from '../../adapters/time.adapter';\nimport { EXTRA_PROPERTIES_KEY } from '../../constants/extra-properties';\nimport { ePropType } from '../../enums/props.enum';\nimport { FormProp } from '../../models/form-props';\nimport { PropData } from '../../models/props';\nimport { selfFactory } from '../../utils/factory.util';\nimport { addTypeaheadTextSuffix } from '../../utils/typeahead.util';\n\n@Component({\n selector: 'abp-extensible-form-prop',\n templateUrl: './extensible-form-prop.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [\n {\n provide: ControlContainer,\n useFactory: selfFactory,\n deps: [[new Optional(), new SkipSelf(), ControlContainer]],\n },\n { provide: NgbDateAdapter, useClass: DateAdapter },\n { provide: NgbTimeAdapter, useClass: TimeAdapter },\n ],\n})\nexport class ExtensibleFormPropComponent implements OnChanges, AfterViewInit {\n @Input() data: PropData;\n\n @Input() prop: FormProp;\n\n @Input() first: boolean;\n\n @ViewChild('field') private fieldRef: ElementRef<HTMLElement>;\n\n asterisk = '';\n\n options$: Observable<ABP.Option<any>[]> = of([]);\n\n validators: ValidatorFn[] = [];\n\n readonly: boolean;\n\n disabled: boolean;\n\n private readonly form: FormGroup;\n\n typeaheadModel: any;\n\n setTypeaheadValue(selectedOption: ABP.Option<string>) {\n this.typeaheadModel = selectedOption || { key: null, value: null };\n const { key, value } = this.typeaheadModel;\n const [keyControl, valueControl] = this.getTypeaheadControls();\n if (valueControl.value && !value) valueControl.markAsDirty();\n keyControl.setValue(key);\n valueControl.setValue(value);\n }\n\n search = (text$: Observable<string>) =>\n text$\n ? text$.pipe(\n debounceTime(300),\n distinctUntilChanged(),\n switchMap(text => this.prop.options(this.data, text)),\n )\n : of([]);\n\n typeaheadFormatter = (option: ABP.Option<any>) => option.key;\n\n get meridian() {\n return (\n this.configState.getDeep('localization.currentCulture.dateTimeFormat.shortTimePattern') || ''\n ).includes('tt');\n }\n\n get isInvalid() {\n const control = this.form.get(this.prop.name);\n return control.touched && control.invalid;\n }\n\n constructor(\n public readonly cdRef: ChangeDetectorRef,\n public readonly track: TrackByService,\n protected configState: ConfigStateService,\n groupDirective: FormGroupDirective,\n ) {\n this.form = groupDirective.form;\n }\n\n private getTypeaheadControls() {\n const { name } = this.prop;\n const extraPropName = `${EXTRA_PROPERTIES_KEY}.${name}`;\n const keyControl =\n this.form.get(addTypeaheadTextSuffix(extraPropName)) ||\n this.form.get(addTypeaheadTextSuffix(name));\n const valueControl = this.form.get(extraPropName) || this.form.get(name);\n return [keyControl, valueControl];\n }\n\n private setAsterisk() {\n this.asterisk = this.validators.some(isRequired) ? '*' : '';\n }\n\n ngAfterViewInit() {\n if (this.first && this.fieldRef) {\n this.fieldRef.nativeElement.focus();\n }\n }\n\n getComponent(prop: FormProp): string {\n switch (prop.type) {\n case ePropType.Boolean:\n return 'checkbox';\n case ePropType.Date:\n return 'date';\n case ePropType.DateTime:\n return 'dateTime';\n case ePropType.Hidden:\n return 'hidden';\n case ePropType.MultiSelect:\n return 'multiselect';\n case ePropType.Text:\n return 'textarea';\n case ePropType.Time:\n return 'time';\n case ePropType.Typeahead:\n return 'typeahead';\n default:\n return prop.options ? 'select' : 'input';\n }\n }\n\n getType(prop: FormProp): string {\n switch (prop.type) {\n case ePropType.Date:\n case ePropType.String:\n return 'text';\n case ePropType.Boolean:\n return 'checkbox';\n case ePropType.Number:\n return 'number';\n case ePropType.Email:\n return 'email';\n case ePropType.Password:\n return 'password';\n default:\n return 'hidden';\n }\n }\n\n ngOnChanges({ prop }: SimpleChanges) {\n const currentProp = prop?.currentValue;\n const { options, readonly, disabled, validators } = currentProp || {};\n\n if (options) this.options$ = options(this.data);\n if (readonly) this.readonly = readonly(this.data);\n if (disabled) this.disabled = disabled(this.data);\n if (validators) {\n this.validators = validators(this.data);\n this.setAsterisk();\n }\n\n const [keyControl, valueControl] = this.getTypeaheadControls();\n if (keyControl && valueControl)\n this.typeaheadModel = { key: keyControl.value, value: valueControl.value };\n }\n}\n\nfunction isRequired(validator: ValidatorFn) {\n return validator === Validators.required || validator === AbpValidators.required;\n}\n","<div class=\"form-group\" *abpPermission=\"prop.permission\" [ngSwitch]=\"getComponent(prop)\">\n <ng-template ngSwitchCase=\"input\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <input\n #field\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n [autocomplete]=\"prop.autocomplete\"\n [type]=\"getType(prop)\"\n [abpDisabled]=\"disabled\"\n [readonly]=\"readonly\"\n class=\"form-control\"\n />\n </ng-template>\n\n <ng-template ngSwitchCase=\"hidden\">\n <input [formControlName]=\"prop.name\" type=\"hidden\" />\n </ng-template>\n\n <ng-template ngSwitchCase=\"checkbox\">\n <div class=\"custom-checkbox custom-control\" validationTarget>\n <input\n #field\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n [abpDisabled]=\"disabled\"\n type=\"checkbox\"\n class=\"custom-control-input\"\n />\n <ng-template\n [ngTemplateOutlet]=\"label\"\n [ngTemplateOutletContext]=\"{ $implicit: 'custom-control-label' }\"\n ></ng-template>\n </div>\n </ng-template>\n\n <ng-template ngSwitchCase=\"select\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <select\n #field\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n [abpDisabled]=\"disabled\"\n class=\"custom-select form-control\"\n >\n <option\n *ngFor=\"let option of options$ | async; trackBy: track.by('value')\"\n [ngValue]=\"option.value\"\n >\n {{ option.key }}\n </option>\n </select>\n </ng-template>\n\n <ng-template ngSwitchCase=\"multiselect\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <select\n #field\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n [abpDisabled]=\"disabled\"\n multiple=\"multiple\"\n class=\"custom-select form-control\"\n >\n <option\n *ngFor=\"let option of options$ | async; trackBy: track.by('value')\"\n [ngValue]=\"option.value\"\n >\n {{ option.key }}\n </option>\n </select>\n </ng-template>\n\n <ng-template ngSwitchCase=\"typeahead\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <div #typeahead class=\"position-relative\" validationStyle validationTarget>\n <input\n #field\n [id]=\"prop.id\"\n [autocomplete]=\"prop.autocomplete\"\n [abpDisabled]=\"disabled\"\n [ngbTypeahead]=\"search\"\n [editable]=\"false\"\n [inputFormatter]=\"typeaheadFormatter\"\n [resultFormatter]=\"typeaheadFormatter\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"typeaheadModel\"\n (selectItem)=\"setTypeaheadValue($event.item)\"\n (blur)=\"setTypeaheadValue(typeaheadModel)\"\n [class.is-invalid]=\"typeahead.classList.contains('is-invalid')\"\n class=\"form-control\"\n />\n <input [formControlName]=\"prop.name\" type=\"hidden\" />\n </div>\n </ng-template>\n\n <ng-template ngSwitchCase=\"date\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <input\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n (click)=\"datepicker.open()\"\n (keyup.space)=\"datepicker.open()\"\n ngbDatepicker\n #datepicker=\"ngbDatepicker\"\n type=\"text\"\n class=\"form-control\"\n />\n </ng-template>\n\n <ng-template ngSwitchCase=\"time\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <ngb-timepicker [formControlName]=\"prop.name\"></ngb-timepicker>\n </ng-template>\n\n <ng-template ngSwitchCase=\"dateTime\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <abp-date-time-picker [prop]=\"prop\" [meridian]=\"meridian\"></abp-date-time-picker>\n </ng-template>\n\n <ng-template ngSwitchCase=\"textarea\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <textarea\n #field\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n [abpDisabled]=\"disabled\"\n [readonly]=\"readonly\"\n class=\"form-control\"\n ></textarea>\n </ng-template>\n</div>\n\n<ng-template #label let-classes>\n <label [htmlFor]=\"prop.id\" [ngClass]=\"classes\"\n >{{ prop.displayName | abpLocalization }} {{ asterisk }}</label\n >\n</ng-template>\n"]}
@@ -1,12 +1,19 @@
1
1
  import { TrackByService } from '@abp/ng.core';
2
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, Optional, SkipSelf, ViewChildren, } from '@angular/core';
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, Optional, QueryList, SkipSelf, ViewChildren, } from '@angular/core';
3
3
  import { ControlContainer } from '@angular/forms';
4
4
  import { EXTRA_PROPERTIES_KEY } from '../../constants/extra-properties';
5
5
  import { ExtensionsService } from '../../services/extensions.service';
6
6
  import { EXTENSIONS_IDENTIFIER } from '../../tokens/extensions.token';
7
7
  import { selfFactory } from '../../utils/factory.util';
8
8
  import { ExtensibleFormPropComponent } from './extensible-form-prop.component';
9
- const ɵ0 = selfFactory;
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@abp/ng.core";
11
+ import * as i2 from "@angular/forms";
12
+ import * as i3 from "../../services/extensions.service";
13
+ import * as i4 from "./extensible-form-prop.component";
14
+ import * as i5 from "@angular/common";
15
+ import * as i6 from "../../directives/prop-data.directive";
16
+ import * as i7 from "@ngx-validate/core";
10
17
  export class ExtensibleFormComponent {
11
18
  constructor(cdRef, track, container, extensions, identifier) {
12
19
  this.cdRef = cdRef;
@@ -28,31 +35,36 @@ export class ExtensibleFormComponent {
28
35
  return (this.form.controls.extraProperties || { controls: {} });
29
36
  }
30
37
  }
31
- ExtensibleFormComponent.decorators = [
32
- { type: Component, args: [{
33
- exportAs: 'abpExtensibleForm',
34
- selector: 'abp-extensible-form',
35
- template: "<ng-container *ngIf=\"form\">\n <ng-container *abpPropData=\"let data; fromList: propList; withRecord: record\">\n <ng-container *ngFor=\"let prop of propList; let first = first; trackBy: track.by('name')\">\n <ng-container *ngIf=\"prop.visible(data)\">\n <ng-container\n [formGroupName]=\"extraPropertiesKey\"\n *ngIf=\"extraProperties.controls[prop.name]; else tempDefault\"\n >\n <abp-extensible-form-prop [prop]=\"prop\" [data]=\"data\"></abp-extensible-form-prop>\n </ng-container>\n\n <ng-template #tempDefault>\n <abp-extensible-form-prop\n *ngIf=\"form.get(prop.name)\"\n [prop]=\"prop\"\n [data]=\"data\"\n [first]=\"first\"\n ></abp-extensible-form-prop>\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>\n",
36
- changeDetection: ChangeDetectionStrategy.OnPush,
37
- viewProviders: [
38
- {
39
- provide: ControlContainer,
40
- useFactory: ɵ0,
41
- deps: [[new Optional(), new SkipSelf(), ControlContainer]],
42
- },
43
- ]
44
- },] }
45
- ];
46
- ExtensibleFormComponent.ctorParameters = () => [
47
- { type: ChangeDetectorRef },
48
- { type: TrackByService },
49
- { type: ControlContainer },
50
- { type: ExtensionsService },
51
- { type: String, decorators: [{ type: Inject, args: [EXTENSIONS_IDENTIFIER,] }] }
52
- ];
53
- ExtensibleFormComponent.propDecorators = {
54
- formProps: [{ type: ViewChildren, args: [ExtensibleFormPropComponent,] }],
55
- selectedRecord: [{ type: Input }]
56
- };
57
- export { ɵ0 };
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9leHRlbnNpb25zL3NyYy9saWIvY29tcG9uZW50cy9leHRlbnNpYmxlLWZvcm0vZXh0ZW5zaWJsZS1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFFUixRQUFRLEVBQ1IsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztXQVU3RCxXQUFXO0FBSzdCLE1BQU0sT0FBTyx1QkFBdUI7SUF1QmxDLFlBQ2tCLEtBQXdCLEVBQ3hCLEtBQXFCLEVBQzdCLFNBQTJCLEVBQzNCLFVBQTZCLEVBQ0UsVUFBa0I7UUFKekMsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDN0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDRSxlQUFVLEdBQVYsVUFBVSxDQUFRO1FBakIzRCx1QkFBa0IsR0FBRyxvQkFBb0IsQ0FBQztJQWtCdkMsQ0FBQztJQXpCSixJQUNJLGNBQWMsQ0FBQyxNQUFTO1FBQzFCLE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUM1RSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQy9FLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFNRCxJQUFJLElBQUk7UUFDTixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFjLENBQUM7SUFDbkYsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFjLENBQUM7SUFDL0UsQ0FBQzs7O1lBbENGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixRQUFRLEVBQUUscUJBQXFCO2dCQUMvQiw0NEJBQStDO2dCQUMvQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtnQkFDL0MsYUFBYSxFQUFFO29CQUNiO3dCQUNFLE9BQU8sRUFBRSxnQkFBZ0I7d0JBQ3pCLFVBQVUsSUFBYTt3QkFDdkIsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztxQkFDM0Q7aUJBQ0Y7YUFDRjs7O1lBN0JDLGlCQUFpQjtZQUhWLGNBQWM7WUFZZCxnQkFBZ0I7WUFHaEIsaUJBQWlCO3lDQThDckIsTUFBTSxTQUFDLHFCQUFxQjs7O3dCQTNCOUIsWUFBWSxTQUFDLDJCQUEyQjs2QkFHeEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYWNrQnlTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgUXVlcnlMaXN0LFxuICBTa2lwU2VsZixcbiAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEVYVFJBX1BST1BFUlRJRVNfS0VZIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2V4dHJhLXByb3BlcnRpZXMnO1xuaW1wb3J0IHsgRm9ybVByb3BMaXN0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tcHJvcHMnO1xuaW1wb3J0IHsgRXh0ZW5zaW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHRlbnNpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgRVhURU5TSU9OU19JREVOVElGSUVSIH0gZnJvbSAnLi4vLi4vdG9rZW5zL2V4dGVuc2lvbnMudG9rZW4nO1xuaW1wb3J0IHsgc2VsZkZhY3RvcnkgfSBmcm9tICcuLi8uLi91dGlscy9mYWN0b3J5LnV0aWwnO1xuaW1wb3J0IHsgRXh0ZW5zaWJsZUZvcm1Qcm9wQ29tcG9uZW50IH0gZnJvbSAnLi9leHRlbnNpYmxlLWZvcm0tcHJvcC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgZXhwb3J0QXM6ICdhYnBFeHRlbnNpYmxlRm9ybScsXG4gIHNlbGVjdG9yOiAnYWJwLWV4dGVuc2libGUtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9leHRlbnNpYmxlLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdmlld1Byb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsXG4gICAgICB1c2VGYWN0b3J5OiBzZWxmRmFjdG9yeSxcbiAgICAgIGRlcHM6IFtbbmV3IE9wdGlvbmFsKCksIG5ldyBTa2lwU2VsZigpLCBDb250cm9sQ29udGFpbmVyXV0sXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRXh0ZW5zaWJsZUZvcm1Db21wb25lbnQ8UiA9IGFueT4ge1xuICBAVmlld0NoaWxkcmVuKEV4dGVuc2libGVGb3JtUHJvcENvbXBvbmVudClcbiAgZm9ybVByb3BzOiBRdWVyeUxpc3Q8RXh0ZW5zaWJsZUZvcm1Qcm9wQ29tcG9uZW50PjtcblxuICBASW5wdXQoKVxuICBzZXQgc2VsZWN0ZWRSZWNvcmQocmVjb3JkOiBSKSB7XG4gICAgY29uc3QgdHlwZSA9ICFyZWNvcmQgfHwgSlNPTi5zdHJpbmdpZnkocmVjb3JkKSA9PT0gJ3t9JyA/ICdjcmVhdGUnIDogJ2VkaXQnO1xuICAgIHRoaXMucHJvcExpc3QgPSB0aGlzLmV4dGVuc2lvbnNbYCR7dHlwZX1Gb3JtUHJvcHNgXS5nZXQodGhpcy5pZGVudGlmaWVyKS5wcm9wcztcbiAgICB0aGlzLnJlY29yZCA9IHJlY29yZDtcbiAgfVxuXG4gIGV4dHJhUHJvcGVydGllc0tleSA9IEVYVFJBX1BST1BFUlRJRVNfS0VZO1xuICBwcm9wTGlzdDogRm9ybVByb3BMaXN0PFI+O1xuICByZWNvcmQ6IFI7XG5cbiAgZ2V0IGZvcm0oKTogRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gKHRoaXMuY29udGFpbmVyID8gdGhpcy5jb250YWluZXIuY29udHJvbCA6IHsgY29udHJvbHM6IHt9IH0pIGFzIEZvcm1Hcm91cDtcbiAgfVxuXG4gIGdldCBleHRyYVByb3BlcnRpZXMoKTogRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scy5leHRyYVByb3BlcnRpZXMgfHwgeyBjb250cm9sczoge30gfSkgYXMgRm9ybUdyb3VwO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgcmVhZG9ubHkgdHJhY2s6IFRyYWNrQnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxuICAgIHByaXZhdGUgZXh0ZW5zaW9uczogRXh0ZW5zaW9uc1NlcnZpY2UsXG4gICAgQEluamVjdChFWFRFTlNJT05TX0lERU5USUZJRVIpIHByaXZhdGUgaWRlbnRpZmllcjogc3RyaW5nLFxuICApIHt9XG59XG4iXX0=
38
+ ExtensibleFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ExtensibleFormComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TrackByService }, { token: i2.ControlContainer }, { token: i3.ExtensionsService }, { token: EXTENSIONS_IDENTIFIER }], target: i0.ɵɵFactoryTarget.Component });
39
+ ExtensibleFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: ExtensibleFormComponent, selector: "abp-extensible-form", inputs: { selectedRecord: "selectedRecord" }, viewQueries: [{ propertyName: "formProps", predicate: ExtensibleFormPropComponent, descendants: true }], exportAs: ["abpExtensibleForm"], ngImport: i0, template: "<ng-container *ngIf=\"form\">\n <ng-container *abpPropData=\"let data; fromList: propList; withRecord: record\">\n <ng-container *ngFor=\"let prop of propList; let first = first; trackBy: track.by('name')\">\n <ng-container *ngIf=\"prop.visible(data)\">\n <ng-container\n [formGroupName]=\"extraPropertiesKey\"\n *ngIf=\"extraProperties.controls[prop.name]; else tempDefault\"\n >\n <abp-extensible-form-prop [prop]=\"prop\" [data]=\"data\"></abp-extensible-form-prop>\n </ng-container>\n\n <ng-template #tempDefault>\n <abp-extensible-form-prop\n *ngIf=\"form.get(prop.name)\"\n [prop]=\"prop\"\n [data]=\"data\"\n [first]=\"first\"\n ></abp-extensible-form-prop>\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>\n", components: [{ type: i4.ExtensibleFormPropComponent, selector: "abp-extensible-form-prop", inputs: ["data", "prop", "first"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.PropDataDirective, selector: "[abpPropData]", inputs: ["abpPropDataFromList", "abpPropDataWithRecord", "abpPropDataAtIndex"], exportAs: ["abpPropData"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i7.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", inputs: ["blueprints", "errorTemplate", "invalidClasses", "mapErrorsFn", "skipValidation", "targetSelector", "validateOnSubmit"] }], viewProviders: [
40
+ {
41
+ provide: ControlContainer,
42
+ useFactory: selfFactory,
43
+ deps: [[new Optional(), new SkipSelf(), ControlContainer]],
44
+ },
45
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ExtensibleFormComponent, decorators: [{
47
+ type: Component,
48
+ args: [{
49
+ exportAs: 'abpExtensibleForm',
50
+ selector: 'abp-extensible-form',
51
+ templateUrl: './extensible-form.component.html',
52
+ changeDetection: ChangeDetectionStrategy.OnPush,
53
+ viewProviders: [
54
+ {
55
+ provide: ControlContainer,
56
+ useFactory: selfFactory,
57
+ deps: [[new Optional(), new SkipSelf(), ControlContainer]],
58
+ },
59
+ ],
60
+ }]
61
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.TrackByService }, { type: i2.ControlContainer }, { type: i3.ExtensionsService }, { type: undefined, decorators: [{
62
+ type: Inject,
63
+ args: [EXTENSIONS_IDENTIFIER]
64
+ }] }]; }, propDecorators: { formProps: [{
65
+ type: ViewChildren,
66
+ args: [ExtensibleFormPropComponent]
67
+ }], selectedRecord: [{
68
+ type: Input
69
+ }] } });
70
+ //# sourceMappingURL=extensible-form.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensible-form.component.js","sourceRoot":"","sources":["../../../../../../../../packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form.component.ts","../../../../../../../../packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,SAAS,EACT,MAAM,EACN,KAAK,EACL,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAa,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;;;;;;;;;AAe/E,MAAM,OAAO,uBAAuB;IAuBlC,YACkB,KAAwB,EACxB,KAAqB,EAC7B,SAA2B,EAC3B,UAA6B,EACE,UAAkB;QAJzC,UAAK,GAAL,KAAK,CAAmB;QACxB,UAAK,GAAL,KAAK,CAAgB;QAC7B,cAAS,GAAT,SAAS,CAAkB;QAC3B,eAAU,GAAV,UAAU,CAAmB;QACE,eAAU,GAAV,UAAU,CAAQ;QAjB3D,uBAAkB,GAAG,oBAAoB,CAAC;IAkBvC,CAAC;IAzBJ,IACI,cAAc,CAAC,MAAS;QAC1B,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QAC5E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC;QAC/E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAMD,IAAI,IAAI;QACN,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAc,CAAC;IACnF,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAc,CAAC;IAC/E,CAAC;;oHArBU,uBAAuB,kJA4BxB,qBAAqB;wGA5BpB,uBAAuB,uIACpB,2BAA2B,iFClC3C,k4BAuBA,g7BDEiB;QACb;YACE,OAAO,EAAE,gBAAgB;YACzB,UAAU,EAAE,WAAW;YACvB,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,IAAI,QAAQ,EAAE,EAAE,gBAAgB,CAAC,CAAC;SAC3D;KACF;2FAEU,uBAAuB;kBAbnC,SAAS;mBAAC;oBACT,QAAQ,EAAE,mBAAmB;oBAC7B,QAAQ,EAAE,qBAAqB;oBAC/B,WAAW,EAAE,kCAAkC;oBAC/C,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE;wBACb;4BACE,OAAO,EAAE,gBAAgB;4BACzB,UAAU,EAAE,WAAW;4BACvB,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,IAAI,QAAQ,EAAE,EAAE,gBAAgB,CAAC,CAAC;yBAC3D;qBACF;iBACF;;0BA6BI,MAAM;2BAAC,qBAAqB;4CA1B/B,SAAS;sBADR,YAAY;uBAAC,2BAA2B;gBAIrC,cAAc;sBADjB,KAAK","sourcesContent":["import { TrackByService } from '@abp/ng.core';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n Input,\n Optional,\n QueryList,\n SkipSelf,\n ViewChildren,\n} from '@angular/core';\nimport { ControlContainer, FormGroup } from '@angular/forms';\nimport { EXTRA_PROPERTIES_KEY } from '../../constants/extra-properties';\nimport { FormPropList } from '../../models/form-props';\nimport { ExtensionsService } from '../../services/extensions.service';\nimport { EXTENSIONS_IDENTIFIER } from '../../tokens/extensions.token';\nimport { selfFactory } from '../../utils/factory.util';\nimport { ExtensibleFormPropComponent } from './extensible-form-prop.component';\n\n@Component({\n exportAs: 'abpExtensibleForm',\n selector: 'abp-extensible-form',\n templateUrl: './extensible-form.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [\n {\n provide: ControlContainer,\n useFactory: selfFactory,\n deps: [[new Optional(), new SkipSelf(), ControlContainer]],\n },\n ],\n})\nexport class ExtensibleFormComponent<R = any> {\n @ViewChildren(ExtensibleFormPropComponent)\n formProps: QueryList<ExtensibleFormPropComponent>;\n\n @Input()\n set selectedRecord(record: R) {\n const type = !record || JSON.stringify(record) === '{}' ? 'create' : 'edit';\n this.propList = this.extensions[`${type}FormProps`].get(this.identifier).props;\n this.record = record;\n }\n\n extraPropertiesKey = EXTRA_PROPERTIES_KEY;\n propList: FormPropList<R>;\n record: R;\n\n get form(): FormGroup {\n return (this.container ? this.container.control : { controls: {} }) as FormGroup;\n }\n\n get extraProperties(): FormGroup {\n return (this.form.controls.extraProperties || { controls: {} }) as FormGroup;\n }\n\n constructor(\n public readonly cdRef: ChangeDetectorRef,\n public readonly track: TrackByService,\n private container: ControlContainer,\n private extensions: ExtensionsService,\n @Inject(EXTENSIONS_IDENTIFIER) private identifier: string,\n ) {}\n}\n","<ng-container *ngIf=\"form\">\n <ng-container *abpPropData=\"let data; fromList: propList; withRecord: record\">\n <ng-container *ngFor=\"let prop of propList; let first = first; trackBy: track.by('name')\">\n <ng-container *ngIf=\"prop.visible(data)\">\n <ng-container\n [formGroupName]=\"extraPropertiesKey\"\n *ngIf=\"extraProperties.controls[prop.name]; else tempDefault\"\n >\n <abp-extensible-form-prop [prop]=\"prop\" [data]=\"data\"></abp-extensible-form-prop>\n </ng-container>\n\n <ng-template #tempDefault>\n <abp-extensible-form-prop\n *ngIf=\"form.get(prop.name)\"\n [prop]=\"prop\"\n [data]=\"data\"\n [first]=\"first\"\n ></abp-extensible-form-prop>\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>\n"]}
@@ -1,16 +1,22 @@
1
- import { ConfigStateService, getShortDateFormat, getShortDateShortTimeFormat, getShortTimeFormat, PermissionService, } from '@abp/ng.core';
1
+ import { ConfigStateService, getShortDateFormat, getShortDateShortTimeFormat, getShortTimeFormat, ListService, PermissionService, } from '@abp/ng.core';
2
2
  import { formatDate } from '@angular/common';
3
- import { ChangeDetectionStrategy, Component, Inject, Injector, Input, LOCALE_ID, } from '@angular/core';
3
+ import { ChangeDetectionStrategy, Component, Inject, Injector, Input, LOCALE_ID, TemplateRef, } from '@angular/core';
4
4
  import { map } from 'rxjs/operators';
5
5
  import { ExtensionsService } from '../../services/extensions.service';
6
- import { EXTENSIONS_IDENTIFIER } from '../../tokens/extensions.token';
6
+ import { EXTENSIONS_IDENTIFIER, PROP_DATA_STREAM } from '../../tokens/extensions.token';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@abp/ng.core";
9
+ import * as i2 from "@swimlane/ngx-datatable";
10
+ import * as i3 from "../grid-actions/grid-actions.component";
11
+ import * as i4 from "@abp/ng.theme.shared";
12
+ import * as i5 from "@angular/common";
7
13
  const DEFAULT_ACTIONS_COLUMN_WIDTH = 150;
8
14
  export class ExtensibleTableComponent {
9
15
  constructor(locale, config, injector) {
10
16
  this.locale = locale;
11
17
  this.config = config;
18
+ this.injector = injector;
12
19
  this.trackByFn = (_, item) => item.name;
13
- // tslint:disable-next-line
14
20
  this.getInjected = injector.get.bind(injector);
15
21
  const extensions = injector.get(ExtensionsService);
16
22
  const name = injector.get(EXTENSIONS_IDENTIFIER);
@@ -47,6 +53,12 @@ export class ExtensibleTableComponent {
47
53
  ? '<div class="text-center text-success"><i class="fa fa-check"></i></div>'
48
54
  : '<div class="text-center text-danger"><i class="fa fa-times"></i></div>';
49
55
  }
56
+ getEnum(rowValue, list) {
57
+ if (!list)
58
+ return rowValue;
59
+ const { key } = list.find(({ value }) => value === rowValue);
60
+ return key;
61
+ }
50
62
  getContent(prop, data) {
51
63
  return prop.valueResolver(data).pipe(map(value => {
52
64
  switch (prop.type) {
@@ -58,6 +70,8 @@ export class ExtensibleTableComponent {
58
70
  return this.getDate(value, getShortTimeFormat(this.config));
59
71
  case "dateTime" /* DateTime */:
60
72
  return this.getDate(value, getShortDateShortTimeFormat(this.config));
73
+ case "enum" /* Enum */:
74
+ return this.getEnum(value, prop.enumList);
61
75
  default:
62
76
  return value;
63
77
  // More types can be handled in the future
@@ -70,34 +84,51 @@ export class ExtensibleTableComponent {
70
84
  this.data = data.currentValue.map((record, index) => {
71
85
  this.propList.forEach(prop => {
72
86
  const propData = { getInjected: this.getInjected, record, index };
73
- record[`_${prop.value.name}`] = {
87
+ const value = this.getContent(prop.value, propData);
88
+ const propKey = `_${prop.value.name}`;
89
+ record[propKey] = {
74
90
  visible: prop.value.visible(propData),
75
- value: this.getContent(prop.value, propData),
91
+ value,
76
92
  };
93
+ if (prop.value.component) {
94
+ const injector = Injector.create([
95
+ {
96
+ provide: PROP_DATA_STREAM,
97
+ useValue: value,
98
+ },
99
+ ], this.injector);
100
+ record[propKey].injector = injector;
101
+ record[propKey].component = prop.value.component;
102
+ }
77
103
  });
78
104
  return record;
79
105
  });
80
106
  }
81
107
  }
82
- ExtensibleTableComponent.decorators = [
83
- { type: Component, args: [{
84
- exportAs: 'abpExtensibleTable',
85
- selector: 'abp-extensible-table',
86
- template: "<ngx-datatable default [rows]=\"data\" [count]=\"recordsTotal\" [list]=\"list\">\n <ngx-datatable-column\n *ngIf=\"actionsTemplate || (actionList.length && hasAtLeastOnePermittedAction)\"\n [name]=\"actionsText | abpLocalization\"\n [maxWidth]=\"columnWidths[0]\"\n [width]=\"columnWidths[0]\"\n [sortable]=\"false\"\n >\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\n <ng-container\n *ngTemplateOutlet=\"actionsTemplate || gridActions; context: { $implicit: row, index: i }\"\n ></ng-container>\n <ng-template #gridActions>\n <abp-grid-actions [index]=\"i\" [record]=\"row\" text=\"AbpUi::Actions\"></abp-grid-actions>\n </ng-template>\n </ng-template>\n </ngx-datatable-column>\n\n <ng-container *ngFor=\"let prop of propList; let i = index; trackBy: trackByFn\">\n <ngx-datatable-column\n [width]=\"columnWidths[i + 1] || 200\"\n [name]=\"prop.displayName | abpLocalization\"\n [prop]=\"prop.name\"\n [sortable]=\"prop.sortable\"\n >\n <ng-template let-row=\"row\" let-i=\"index\" ngx-datatable-cell-template>\n <ng-container *abpPermission=\"prop.permission\">\n <div\n *ngIf=\"row['_' + prop.name]?.visible\"\n [innerHTML]=\"row['_' + prop.name]?.value | async\"\n (click)=\"\n prop.action && prop.action({ getInjected: getInjected, record: row, index: i })\n \"\n [class.pointer]=\"prop.action\"\n ></div>\n </ng-container>\n </ng-template>\n </ngx-datatable-column>\n </ng-container>\n</ngx-datatable>\n",
87
- changeDetection: ChangeDetectionStrategy.OnPush
88
- },] }
89
- ];
90
- ExtensibleTableComponent.ctorParameters = () => [
91
- { type: String, decorators: [{ type: Inject, args: [LOCALE_ID,] }] },
92
- { type: ConfigStateService },
93
- { type: Injector }
94
- ];
95
- ExtensibleTableComponent.propDecorators = {
96
- actionsText: [{ type: Input }],
97
- data: [{ type: Input }],
98
- list: [{ type: Input }],
99
- recordsTotal: [{ type: Input }],
100
- actionsColumnWidth: [{ type: Input }],
101
- actionsTemplate: [{ type: Input }]
102
- };
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvZXh0ZW5zaW9ucy9zcmMvbGliL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS10YWJsZS9leHRlbnNpYmxlLXRhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQiwyQkFBMkIsRUFDM0Isa0JBQWtCLEVBQ2xCLGlCQUFpQixHQUNsQixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBQ0wsU0FBUyxHQVFWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlyQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV0RSxNQUFNLDRCQUE0QixHQUFHLEdBQUcsQ0FBQztBQVF6QyxNQUFNLE9BQU8sd0JBQXdCO0lBOEJuQyxZQUM2QixNQUFjLEVBQ2pDLE1BQTBCLEVBQ2xDLFFBQWtCO1FBRlMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNqQyxXQUFNLEdBQU4sTUFBTSxDQUFvQjtRQU4zQixjQUFTLEdBQW1DLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQVMxRSwyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbkQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7YUFDcEQsT0FBeUMsQ0FBQztRQUU3QyxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsNEJBQTRCO1lBQy9CLGlCQUFpQixDQUFDLG1CQUFtQixDQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FDakYsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLGVBQWUsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUEvQ0QsSUFDSSxXQUFXLENBQUMsS0FBYTtRQUMzQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxXQUFXOztRQUNiLGFBQU8sSUFBSSxDQUFDLFlBQVksbUNBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBS0QsSUFBYSxrQkFBa0IsQ0FBQyxLQUFhO1FBQzNDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFvQ08sZUFBZSxDQUFDLGFBQXFCO1FBQzNDLE1BQU0sTUFBTSxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFO1lBQ3hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQW9CLEdBQUcsTUFBTSxDQUFDO0lBQ3RDLENBQUM7SUFFTyxPQUFPLENBQUMsS0FBVyxFQUFFLE1BQWM7UUFDekMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzdELENBQUM7SUFFTyxPQUFPLENBQUMsS0FBYztRQUM1QixPQUFPLEtBQUs7WUFDVixDQUFDLENBQUMseUVBQXlFO1lBQzNFLENBQUMsQ0FBQyx3RUFBd0UsQ0FBQztJQUMvRSxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQW1CLEVBQUUsSUFBYztRQUM1QyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUNsQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDVixRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ2pCO29CQUNFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDN0I7b0JBQ0UsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDOUQ7b0JBQ0UsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDOUQ7b0JBQ0UsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSwyQkFBMkIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDdkU7b0JBQ0UsT0FBTyxLQUFLLENBQUM7Z0JBQ2YsMENBQTBDO2FBQzNDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXLENBQUMsRUFBRSxJQUFJLEVBQWlCO1FBQ2pDLElBQUksRUFBQyxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsWUFBWSxDQUFBO1lBQUUsT0FBTztRQUVoQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ2xELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUMzQixNQUFNLFFBQVEsR0FBRyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVMsQ0FBQztnQkFDekUsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHO29CQUM5QixPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO29CQUNyQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQztpQkFDN0MsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7WUE3R0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLHNuREFBZ0Q7Z0JBQ2hELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEOzs7eUNBZ0NJLE1BQU0sU0FBQyxTQUFTO1lBckVuQixrQkFBa0I7WUFXbEIsUUFBUTs7OzBCQTZCUCxLQUFLO21CQVFMLEtBQUs7bUJBQ0wsS0FBSzsyQkFDTCxLQUFLO2lDQUNMLEtBQUs7OEJBR0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIExpc3RTZXJ2aWNlLFxuICBDb25maWdTdGF0ZVNlcnZpY2UsXG4gIGdldFNob3J0RGF0ZUZvcm1hdCxcbiAgZ2V0U2hvcnREYXRlU2hvcnRUaW1lRm9ybWF0LFxuICBnZXRTaG9ydFRpbWVGb3JtYXQsXG4gIFBlcm1pc3Npb25TZXJ2aWNlLFxufSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgTE9DQUxFX0lELFxuICBUZW1wbGF0ZVJlZixcbiAgVHJhY2tCeUZ1bmN0aW9uLFxuICBUeXBlLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5qZWN0RmxhZ3MsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIE9uQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBlUHJvcFR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9wcm9wcy5lbnVtJztcbmltcG9ydCB7IEVudGl0eVByb3AsIEVudGl0eVByb3BMaXN0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS1wcm9wcyc7XG5pbXBvcnQgeyBQcm9wRGF0YSB9IGZyb20gJy4uLy4uL21vZGVscy9wcm9wcyc7XG5pbXBvcnQgeyBFeHRlbnNpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V4dGVuc2lvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBFWFRFTlNJT05TX0lERU5USUZJRVIgfSBmcm9tICcuLi8uLi90b2tlbnMvZXh0ZW5zaW9ucy50b2tlbic7XG5pbXBvcnQgeyBFbnRpdHlBY3Rpb25MaXN0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS1hY3Rpb25zJztcbmNvbnN0IERFRkFVTFRfQUNUSU9OU19DT0xVTU5fV0lEVEggPSAxNTA7XG5cbkBDb21wb25lbnQoe1xuICBleHBvcnRBczogJ2FicEV4dGVuc2libGVUYWJsZScsXG4gIHNlbGVjdG9yOiAnYWJwLWV4dGVuc2libGUtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBFeHRlbnNpYmxlVGFibGVDb21wb25lbnQ8UiA9IGFueT4gaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBwcm90ZWN0ZWQgX2FjdGlvbnNUZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIHNldCBhY3Rpb25zVGV4dCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fYWN0aW9uc1RleHQgPSB2YWx1ZTtcbiAgfVxuICBnZXQgYWN0aW9uc1RleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9uc1RleHQgPz8gKHRoaXMuYWN0aW9uTGlzdC5sZW5ndGggPiAxID8gJ0FicFVpOjpBY3Rpb25zJyA6ICcnKTtcbiAgfVxuXG4gIEBJbnB1dCgpIGRhdGE6IFJbXTtcbiAgQElucHV0KCkgbGlzdDogTGlzdFNlcnZpY2U7XG4gIEBJbnB1dCgpIHJlY29yZHNUb3RhbDogbnVtYmVyO1xuICBASW5wdXQoKSBzZXQgYWN0aW9uc0NvbHVtbldpZHRoKHdpZHRoOiBudW1iZXIpIHtcbiAgICB0aGlzLnNldENvbHVtbldpZHRocyh3aWR0aCA/IE51bWJlcih3aWR0aCkgOiB1bmRlZmluZWQpO1xuICB9XG4gIEBJbnB1dCgpIGFjdGlvbnNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBnZXRJbmplY3RlZDogPFQ+KHRva2VuOiBUeXBlPFQ+IHwgSW5qZWN0aW9uVG9rZW48VD4sIG5vdEZvdW5kVmFsdWU/OiBULCBmbGFncz86IEluamVjdEZsYWdzKSA9PiBUO1xuXG4gIHJlYWRvbmx5IGNvbHVtbldpZHRoczogbnVtYmVyW107XG5cbiAgcmVhZG9ubHkgcHJvcExpc3Q6IEVudGl0eVByb3BMaXN0PFI+O1xuXG4gIHJlYWRvbmx5IGFjdGlvbkxpc3Q6IEVudGl0eUFjdGlvbkxpc3Q8Uj47XG5cbiAgcmVhZG9ubHkgdHJhY2tCeUZuOiBUcmFja0J5RnVuY3Rpb248RW50aXR5UHJvcDxSPj4gPSAoXywgaXRlbSkgPT4gaXRlbS5uYW1lO1xuXG4gIGhhc0F0TGVhc3RPbmVQZXJtaXR0ZWRBY3Rpb246IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChMT0NBTEVfSUQpIHByaXZhdGUgbG9jYWxlOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZ1N0YXRlU2VydmljZSxcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICkge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxuICAgIHRoaXMuZ2V0SW5qZWN0ZWQgPSBpbmplY3Rvci5nZXQuYmluZChpbmplY3Rvcik7XG4gICAgY29uc3QgZXh0ZW5zaW9ucyA9IGluamVjdG9yLmdldChFeHRlbnNpb25zU2VydmljZSk7XG4gICAgY29uc3QgbmFtZSA9IGluamVjdG9yLmdldChFWFRFTlNJT05TX0lERU5USUZJRVIpO1xuICAgIHRoaXMucHJvcExpc3QgPSBleHRlbnNpb25zLmVudGl0eVByb3BzLmdldChuYW1lKS5wcm9wcztcbiAgICB0aGlzLmFjdGlvbkxpc3QgPSBleHRlbnNpb25zWydlbnRpdHlBY3Rpb25zJ10uZ2V0KG5hbWUpXG4gICAgICAuYWN0aW9ucyBhcyB1bmtub3duIGFzIEVudGl0eUFjdGlvbkxpc3Q8Uj47XG5cbiAgICBjb25zdCBwZXJtaXNzaW9uU2VydmljZSA9IGluamVjdG9yLmdldChQZXJtaXNzaW9uU2VydmljZSk7XG4gICAgdGhpcy5oYXNBdExlYXN0T25lUGVybWl0dGVkQWN0aW9uID1cbiAgICAgIHBlcm1pc3Npb25TZXJ2aWNlLmZpbHRlckl0ZW1zQnlQb2xpY3koXG4gICAgICAgIHRoaXMuYWN0aW9uTGlzdC50b0FycmF5KCkubWFwKGFjdGlvbiA9PiAoeyByZXF1aXJlZFBvbGljeTogYWN0aW9uLnBlcm1pc3Npb24gfSkpLFxuICAgICAgKS5sZW5ndGggPiAwO1xuICAgIHRoaXMuc2V0Q29sdW1uV2lkdGhzKERFRkFVTFRfQUNUSU9OU19DT0xVTU5fV0lEVEgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb2x1bW5XaWR0aHMoYWN0aW9uc0NvbHVtbjogbnVtYmVyKSB7XG4gICAgY29uc3Qgd2lkdGhzID0gW2FjdGlvbnNDb2x1bW5dO1xuICAgIHRoaXMucHJvcExpc3QuZm9yRWFjaCgoeyB2YWx1ZTogcHJvcCB9KSA9PiB7XG4gICAgICB3aWR0aHMucHVzaChwcm9wLmNvbHVtbldpZHRoKTtcbiAgICB9KTtcbiAgICAodGhpcy5jb2x1bW5XaWR0aHMgYXMgYW55KSA9IHdpZHRocztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGF0ZSh2YWx1ZTogRGF0ZSwgZm9ybWF0OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdmFsdWUgPyBmb3JtYXREYXRlKHZhbHVlLCBmb3JtYXQsIHRoaXMubG9jYWxlKSA6ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJY29uKHZhbHVlOiBib29sZWFuKSB7XG4gICAgcmV0dXJuIHZhbHVlXG4gICAgICA/ICc8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgdGV4dC1zdWNjZXNzXCI+PGkgY2xhc3M9XCJmYSBmYS1jaGVja1wiPjwvaT48L2Rpdj4nXG4gICAgICA6ICc8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgdGV4dC1kYW5nZXJcIj48aSBjbGFzcz1cImZhIGZhLXRpbWVzXCI+PC9pPjwvZGl2Pic7XG4gIH1cblxuICBnZXRDb250ZW50KHByb3A6IEVudGl0eVByb3A8Uj4sIGRhdGE6IFByb3BEYXRhKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gcHJvcC52YWx1ZVJlc29sdmVyKGRhdGEpLnBpcGUoXG4gICAgICBtYXAodmFsdWUgPT4ge1xuICAgICAgICBzd2l0Y2ggKHByb3AudHlwZSkge1xuICAgICAgICAgIGNhc2UgZVByb3BUeXBlLkJvb2xlYW46XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRJY29uKHZhbHVlKTtcbiAgICAgICAgICBjYXNlIGVQcm9wVHlwZS5EYXRlOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZSh2YWx1ZSwgZ2V0U2hvcnREYXRlRm9ybWF0KHRoaXMuY29uZmlnKSk7XG4gICAgICAgICAgY2FzZSBlUHJvcFR5cGUuVGltZTpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERhdGUodmFsdWUsIGdldFNob3J0VGltZUZvcm1hdCh0aGlzLmNvbmZpZykpO1xuICAgICAgICAgIGNhc2UgZVByb3BUeXBlLkRhdGVUaW1lOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZSh2YWx1ZSwgZ2V0U2hvcnREYXRlU2hvcnRUaW1lRm9ybWF0KHRoaXMuY29uZmlnKSk7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAvLyBNb3JlIHR5cGVzIGNhbiBiZSBoYW5kbGVkIGluIHRoZSBmdXR1cmVcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKHsgZGF0YSB9OiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKCFkYXRhPy5jdXJyZW50VmFsdWUpIHJldHVybjtcblxuICAgIHRoaXMuZGF0YSA9IGRhdGEuY3VycmVudFZhbHVlLm1hcCgocmVjb3JkLCBpbmRleCkgPT4ge1xuICAgICAgdGhpcy5wcm9wTGlzdC5mb3JFYWNoKHByb3AgPT4ge1xuICAgICAgICBjb25zdCBwcm9wRGF0YSA9IHsgZ2V0SW5qZWN0ZWQ6IHRoaXMuZ2V0SW5qZWN0ZWQsIHJlY29yZCwgaW5kZXggfSBhcyBhbnk7XG4gICAgICAgIHJlY29yZFtgXyR7cHJvcC52YWx1ZS5uYW1lfWBdID0ge1xuICAgICAgICAgIHZpc2libGU6IHByb3AudmFsdWUudmlzaWJsZShwcm9wRGF0YSksXG4gICAgICAgICAgdmFsdWU6IHRoaXMuZ2V0Q29udGVudChwcm9wLnZhbHVlLCBwcm9wRGF0YSksXG4gICAgICAgIH07XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHJlY29yZDtcbiAgICB9KTtcbiAgfVxufVxuIl19
108
+ ExtensibleTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ExtensibleTableComponent, deps: [{ token: LOCALE_ID }, { token: i1.ConfigStateService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
109
+ ExtensibleTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: ExtensibleTableComponent, selector: "abp-extensible-table", inputs: { actionsText: "actionsText", data: "data", list: "list", recordsTotal: "recordsTotal", actionsColumnWidth: "actionsColumnWidth", actionsTemplate: "actionsTemplate" }, exportAs: ["abpExtensibleTable"], usesOnChanges: true, ngImport: i0, template: "<ngx-datatable default [rows]=\"data\" [count]=\"recordsTotal\" [list]=\"list\">\n <ngx-datatable-column\n *ngIf=\"actionsTemplate || (actionList.length && hasAtLeastOnePermittedAction)\"\n [name]=\"actionsText | abpLocalization\"\n [maxWidth]=\"columnWidths[0]\"\n [width]=\"columnWidths[0]\"\n [sortable]=\"false\"\n >\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\n <ng-container\n *ngTemplateOutlet=\"actionsTemplate || gridActions; context: { $implicit: row, index: i }\"\n ></ng-container>\n <ng-template #gridActions>\n <abp-grid-actions [index]=\"i\" [record]=\"row\" text=\"AbpUi::Actions\"></abp-grid-actions>\n </ng-template>\n </ng-template>\n </ngx-datatable-column>\n\n <ng-container *ngFor=\"let prop of propList; let i = index; trackBy: trackByFn\">\n <ngx-datatable-column\n [width]=\"columnWidths[i + 1] || 200\"\n [name]=\"prop.displayName | abpLocalization\"\n [prop]=\"prop.name\"\n [sortable]=\"prop.sortable\"\n >\n <ng-template let-row=\"row\" let-i=\"index\" ngx-datatable-cell-template>\n <ng-container *abpPermission=\"prop.permission\">\n <ng-container *ngIf=\"row['_' + prop.name]?.visible\">\n <div\n *ngIf=\"!row['_' + prop.name].component; else component\"\n [innerHTML]=\"row['_' + prop.name]?.value | async\"\n (click)=\"\n prop.action && prop.action({ getInjected: getInjected, record: row, index: i })\n \"\n [class.pointer]=\"prop.action\"\n ></div>\n </ng-container>\n <ng-template #component>\n <ng-container\n *ngComponentOutlet=\"\n row['_' + prop.name].component;\n injector: row['_' + prop.name].injector\n \"\n ></ng-container>\n </ng-template>\n </ng-container>\n </ng-template>\n </ngx-datatable-column>\n </ng-container>\n</ngx-datatable>\n", components: [{ type: i2.DatatableComponent, selector: "ngx-datatable", inputs: ["selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "loadingIndicator", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "groupExpansionDefault", "selectAllRowsOnPage", "virtualization", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity", "rows", "groupedRows", "groupRowsBy", "columns", "limit", "count", "offset", "targetMarkerTemplate", "selectionType", "rowClass", "selectCheck", "displayCheck", "trackByProp", "treeFromRelation", "treeToRelation"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { type: i3.GridActionsComponent, selector: "abp-grid-actions", inputs: ["icon", "index", "text"], exportAs: ["abpGridActions"] }], directives: [{ type: i4.NgxDatatableDefaultDirective, selector: "ngx-datatable[default]", inputs: ["class"], exportAs: ["ngxDatatableDefault"] }, { type: i4.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { type: i2.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i5.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModuleFactory"] }], pipes: { "abpLocalization": i1.LocalizationPipe, "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ExtensibleTableComponent, decorators: [{
111
+ type: Component,
112
+ args: [{
113
+ exportAs: 'abpExtensibleTable',
114
+ selector: 'abp-extensible-table',
115
+ templateUrl: './extensible-table.component.html',
116
+ changeDetection: ChangeDetectionStrategy.OnPush,
117
+ }]
118
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
119
+ type: Inject,
120
+ args: [LOCALE_ID]
121
+ }] }, { type: i1.ConfigStateService }, { type: i0.Injector }]; }, propDecorators: { actionsText: [{
122
+ type: Input
123
+ }], data: [{
124
+ type: Input
125
+ }], list: [{
126
+ type: Input
127
+ }], recordsTotal: [{
128
+ type: Input
129
+ }], actionsColumnWidth: [{
130
+ type: Input
131
+ }], actionsTemplate: [{
132
+ type: Input
133
+ }] } });
134
+ //# sourceMappingURL=extensible-table.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensible-table.component.js","sourceRoot":"","sources":["../../../../../../../../packages/theme-shared/extensions/src/lib/components/extensible-table/extensible-table.component.ts","../../../../../../../../packages/theme-shared/extensions/src/lib/components/extensible-table/extensible-table.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n ABP,\n ConfigStateService,\n getShortDateFormat,\n getShortDateShortTimeFormat,\n getShortTimeFormat,\n ListService,\n PermissionService,\n} from '@abp/ng.core';\nimport { formatDate } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Inject,\n InjectFlags,\n InjectionToken,\n Injector,\n Input,\n LOCALE_ID,\n OnChanges,\n SimpleChanges,\n TemplateRef,\n TrackByFunction,\n Type,\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ePropType } from '../../enums/props.enum';\nimport { EntityActionList } from '../../models/entity-actions';\nimport { EntityProp, EntityPropList } from '../../models/entity-props';\nimport { PropData } from '../../models/props';\nimport { ExtensionsService } from '../../services/extensions.service';\nimport { EXTENSIONS_IDENTIFIER, PROP_DATA_STREAM } from '../../tokens/extensions.token';\n\nconst DEFAULT_ACTIONS_COLUMN_WIDTH = 150;\n\n@Component({\n exportAs: 'abpExtensibleTable',\n selector: 'abp-extensible-table',\n templateUrl: './extensible-table.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ExtensibleTableComponent<R = any> implements OnChanges {\n protected _actionsText: string;\n @Input()\n set actionsText(value: string) {\n this._actionsText = value;\n }\n get actionsText(): string {\n return this._actionsText ?? (this.actionList.length > 1 ? 'AbpUi::Actions' : '');\n }\n\n @Input() data: R[];\n @Input() list: ListService;\n @Input() recordsTotal: number;\n @Input() set actionsColumnWidth(width: number) {\n this.setColumnWidths(width ? Number(width) : undefined);\n }\n @Input() actionsTemplate: TemplateRef<any>;\n\n getInjected: <T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags) => T;\n\n hasAtLeastOnePermittedAction: boolean;\n\n readonly columnWidths: number[];\n\n readonly propList: EntityPropList<R>;\n\n readonly actionList: EntityActionList<R>;\n\n readonly trackByFn: TrackByFunction<EntityProp<R>> = (_, item) => item.name;\n\n constructor(\n @Inject(LOCALE_ID) private locale: string,\n private config: ConfigStateService,\n private injector: Injector,\n ) {\n this.getInjected = injector.get.bind(injector);\n const extensions = injector.get(ExtensionsService);\n const name = injector.get(EXTENSIONS_IDENTIFIER);\n this.propList = extensions.entityProps.get(name).props;\n this.actionList = extensions['entityActions'].get(name)\n .actions as unknown as EntityActionList<R>;\n\n const permissionService = injector.get(PermissionService);\n this.hasAtLeastOnePermittedAction =\n permissionService.filterItemsByPolicy(\n this.actionList.toArray().map(action => ({ requiredPolicy: action.permission })),\n ).length > 0;\n this.setColumnWidths(DEFAULT_ACTIONS_COLUMN_WIDTH);\n }\n\n private setColumnWidths(actionsColumn: number) {\n const widths = [actionsColumn];\n this.propList.forEach(({ value: prop }) => {\n widths.push(prop.columnWidth);\n });\n (this.columnWidths as any) = widths;\n }\n\n private getDate(value: Date, format: string) {\n return value ? formatDate(value, format, this.locale) : '';\n }\n\n private getIcon(value: boolean) {\n return value\n ? '<div class=\"text-center text-success\"><i class=\"fa fa-check\"></i></div>'\n : '<div class=\"text-center text-danger\"><i class=\"fa fa-times\"></i></div>';\n }\n\n private getEnum(rowValue: any, list: Array<ABP.Option<any>>) {\n if (!list) return rowValue;\n const { key } = list.find(({ value }) => value === rowValue);\n return key;\n }\n\n getContent(prop: EntityProp<R>, data: PropData): Observable<string> {\n return prop.valueResolver(data).pipe(\n map(value => {\n switch (prop.type) {\n case ePropType.Boolean:\n return this.getIcon(value);\n case ePropType.Date:\n return this.getDate(value, getShortDateFormat(this.config));\n case ePropType.Time:\n return this.getDate(value, getShortTimeFormat(this.config));\n case ePropType.DateTime:\n return this.getDate(value, getShortDateShortTimeFormat(this.config));\n case ePropType.Enum:\n return this.getEnum(value, prop.enumList);\n default:\n return value;\n // More types can be handled in the future\n }\n }),\n );\n }\n\n ngOnChanges({ data }: SimpleChanges) {\n if (!data?.currentValue) return;\n\n this.data = data.currentValue.map((record, index) => {\n this.propList.forEach(prop => {\n const propData = { getInjected: this.getInjected, record, index } as any;\n const value = this.getContent(prop.value, propData);\n\n const propKey = `_${prop.value.name}`;\n record[propKey] = {\n visible: prop.value.visible(propData),\n value,\n };\n if (prop.value.component) {\n const injector = Injector.create(\n [\n {\n provide: PROP_DATA_STREAM,\n useValue: value,\n },\n ],\n this.injector,\n );\n record[propKey].injector = injector;\n record[propKey].component = prop.value.component;\n }\n });\n\n return record;\n });\n }\n}\n","<ngx-datatable default [rows]=\"data\" [count]=\"recordsTotal\" [list]=\"list\">\n <ngx-datatable-column\n *ngIf=\"actionsTemplate || (actionList.length && hasAtLeastOnePermittedAction)\"\n [name]=\"actionsText | abpLocalization\"\n [maxWidth]=\"columnWidths[0]\"\n [width]=\"columnWidths[0]\"\n [sortable]=\"false\"\n >\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\n <ng-container\n *ngTemplateOutlet=\"actionsTemplate || gridActions; context: { $implicit: row, index: i }\"\n ></ng-container>\n <ng-template #gridActions>\n <abp-grid-actions [index]=\"i\" [record]=\"row\" text=\"AbpUi::Actions\"></abp-grid-actions>\n </ng-template>\n </ng-template>\n </ngx-datatable-column>\n\n <ng-container *ngFor=\"let prop of propList; let i = index; trackBy: trackByFn\">\n <ngx-datatable-column\n [width]=\"columnWidths[i + 1] || 200\"\n [name]=\"prop.displayName | abpLocalization\"\n [prop]=\"prop.name\"\n [sortable]=\"prop.sortable\"\n >\n <ng-template let-row=\"row\" let-i=\"index\" ngx-datatable-cell-template>\n <ng-container *abpPermission=\"prop.permission\">\n <ng-container *ngIf=\"row['_' + prop.name]?.visible\">\n <div\n *ngIf=\"!row['_' + prop.name].component; else component\"\n [innerHTML]=\"row['_' + prop.name]?.value | async\"\n (click)=\"\n prop.action && prop.action({ getInjected: getInjected, record: row, index: i })\n \"\n [class.pointer]=\"prop.action\"\n ></div>\n </ng-container>\n <ng-template #component>\n <ng-container\n *ngComponentOutlet=\"\n row['_' + prop.name].component;\n injector: row['_' + prop.name].injector\n \"\n ></ng-container>\n </ng-template>\n </ng-container>\n </ng-template>\n </ngx-datatable-column>\n </ng-container>\n</ngx-datatable>\n"]}
@@ -1,6 +1,11 @@
1
1
  import { ChangeDetectionStrategy, Component, Injector, Input, } from '@angular/core';
2
2
  import { EXTENSIONS_ACTION_TYPE } from '../../tokens/extensions.token';
3
3
  import { AbstractActionsComponent } from '../abstract-actions/abstract-actions.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@ng-bootstrap/ng-bootstrap";
7
+ import * as i3 from "@abp/ng.core";
8
+ import * as i4 from "@abp/ng.theme.shared";
4
9
  export class GridActionsComponent extends AbstractActionsComponent {
5
10
  constructor(injector) {
6
11
  super(injector);
@@ -9,26 +14,32 @@ export class GridActionsComponent extends AbstractActionsComponent {
9
14
  this.trackByFn = (_, item) => item.text;
10
15
  }
11
16
  }
12
- GridActionsComponent.decorators = [
13
- { type: Component, args: [{
14
- exportAs: 'abpGridActions',
15
- selector: 'abp-grid-actions',
16
- template: "<div *ngIf=\"actionList.length > 1\" ngbDropdown container=\"body\" class=\"d-inline-block\">\n <button\n class=\"btn btn-primary btn-sm dropdown-toggle\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n ngbDropdownToggle\n >\n <i [ngClass]=\"icon\" [class.mr-1]=\"icon\"></i>{{ text | abpLocalization }}\n </button>\n <div ngbDropdownMenu>\n <ng-container\n *ngFor=\"let action of actionList; trackBy: trackByFn\"\n [ngTemplateOutlet]=\"btnItem\"\n [ngTemplateOutletContext]=\"{ $implicit: action }\"\n >\n </ng-container>\n </div>\n</div>\n\n<ng-container\n *ngIf=\"actionList.length === 1\"\n [ngTemplateOutlet]=\"btnItem\"\n [ngTemplateOutletContext]=\"{ $implicit: actionList.get(0).value }\"\n></ng-container>\n\n<ng-template #btnItem let-action>\n <ng-container *ngIf=\"action.visible(data)\">\n <button\n ngbDropdownItem\n *abpPermission=\"action.permission\"\n (click)=\"action.action(data)\"\n type=\"button\"\n class=\"{{ actionList.length === 1 ? 'btn btn-primary' : '' }}\"\n [class.text-center]=\"actionList.length === 1\"\n >\n <i [ngClass]=\"action.icon\" [class.mr-1]=\"action.icon\"></i>\n <span *ngIf=\"action.icon; else ellipsis\">{{ action.text | abpLocalization }}</span>\n <ng-template #ellipsis>\n <div abpEllipsis>{{ action.text | abpLocalization }}</div>\n </ng-template>\n </button>\n </ng-container>\n</ng-template>\n",
17
- providers: [
18
- {
19
- provide: EXTENSIONS_ACTION_TYPE,
20
- useValue: 'entityActions',
21
- },
22
- ],
23
- changeDetection: ChangeDetectionStrategy.OnPush
24
- },] }
25
- ];
26
- GridActionsComponent.ctorParameters = () => [
27
- { type: Injector }
28
- ];
29
- GridActionsComponent.propDecorators = {
30
- icon: [{ type: Input }],
31
- index: [{ type: Input }],
32
- text: [{ type: Input }]
33
- };
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1hY3Rpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9leHRlbnNpb25zL3NyYy9saWIvY29tcG9uZW50cy9ncmlkLWFjdGlvbnMvZ3JpZC1hY3Rpb25zLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBYzFGLE1BQU0sT0FBTyxvQkFBOEIsU0FBUSx3QkFBNkM7SUFTOUYsWUFBWSxRQUFrQjtRQUM1QixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFUVCxTQUFJLEdBQUcsV0FBVyxDQUFDO1FBSW5CLFNBQUksR0FBRyxFQUFFLENBQUM7UUFFVixjQUFTLEdBQXFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUk5RSxDQUFDOzs7WUF2QkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLHE4Q0FBNEM7Z0JBQzVDLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsc0JBQXNCO3dCQUMvQixRQUFRLEVBQUUsZUFBZTtxQkFDMUI7aUJBQ0Y7Z0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7OztZQW5CQyxRQUFROzs7bUJBcUJQLEtBQUs7b0JBRUwsS0FBSzttQkFFTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBUcmFja0J5RnVuY3Rpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW50aXR5QWN0aW9uLCBFbnRpdHlBY3Rpb25MaXN0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS1hY3Rpb25zJztcbmltcG9ydCB7IEVYVEVOU0lPTlNfQUNUSU9OX1RZUEUgfSBmcm9tICcuLi8uLi90b2tlbnMvZXh0ZW5zaW9ucy50b2tlbic7XG5pbXBvcnQgeyBBYnN0cmFjdEFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi9hYnN0cmFjdC1hY3Rpb25zL2Fic3RyYWN0LWFjdGlvbnMuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIGV4cG9ydEFzOiAnYWJwR3JpZEFjdGlvbnMnLFxuICBzZWxlY3RvcjogJ2FicC1ncmlkLWFjdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1hY3Rpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRVhURU5TSU9OU19BQ1RJT05fVFlQRSxcbiAgICAgIHVzZVZhbHVlOiAnZW50aXR5QWN0aW9ucycsXG4gICAgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEdyaWRBY3Rpb25zQ29tcG9uZW50PFIgPSBhbnk+IGV4dGVuZHMgQWJzdHJhY3RBY3Rpb25zQ29tcG9uZW50PEVudGl0eUFjdGlvbkxpc3Q8Uj4+IHtcbiAgQElucHV0KCkgaWNvbiA9ICdmYSBmYS1jb2cnO1xuXG4gIEBJbnB1dCgpIHJlYWRvbmx5IGluZGV4OiBudW1iZXI7XG5cbiAgQElucHV0KCkgdGV4dCA9ICcnO1xuXG4gIHJlYWRvbmx5IHRyYWNrQnlGbjogVHJhY2tCeUZ1bmN0aW9uPEVudGl0eUFjdGlvbjxSPj4gPSAoXywgaXRlbSkgPT4gaXRlbS50ZXh0O1xuXG4gIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIHN1cGVyKGluamVjdG9yKTtcbiAgfVxufVxuIl19
17
+ GridActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: GridActionsComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
18
+ GridActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: GridActionsComponent, selector: "abp-grid-actions", inputs: { icon: "icon", index: "index", text: "text" }, providers: [
19
+ {
20
+ provide: EXTENSIONS_ACTION_TYPE,
21
+ useValue: 'entityActions',
22
+ },
23
+ ], exportAs: ["abpGridActions"], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"actionList.length > 1\" ngbDropdown container=\"body\" class=\"d-inline-block\">\n <button\n class=\"btn btn-primary btn-sm dropdown-toggle\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n ngbDropdownToggle\n >\n <i [ngClass]=\"icon\" [class.mr-1]=\"icon\"></i>{{ text | abpLocalization }}\n </button>\n <div ngbDropdownMenu>\n <ng-container\n *ngFor=\"let action of actionList; trackBy: trackByFn\"\n [ngTemplateOutlet]=\"btnItem\"\n [ngTemplateOutletContext]=\"{ $implicit: action }\"\n >\n </ng-container>\n </div>\n</div>\n\n<ng-container\n *ngIf=\"actionList.length === 1\"\n [ngTemplateOutlet]=\"btnItem\"\n [ngTemplateOutletContext]=\"{ $implicit: actionList.get(0).value }\"\n></ng-container>\n\n<ng-template #btnItem let-action>\n <ng-container *ngIf=\"action.visible(data)\">\n <button\n ngbDropdownItem\n *abpPermission=\"action.permission\"\n (click)=\"action.action(data)\"\n type=\"button\"\n class=\"{{ actionList.length === 1 ? 'btn btn-primary' : '' }}\"\n [class.text-center]=\"actionList.length === 1\"\n >\n <i [ngClass]=\"action.icon\" [class.mr-1]=\"action.icon\"></i>\n <span *ngIf=\"action.icon; else ellipsis\">{{ action.text | abpLocalization }}</span>\n <ng-template #ellipsis>\n <div abpEllipsis>{{ action.text | abpLocalization }}</div>\n </ng-template>\n </button>\n </ng-container>\n</ng-template>\n", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgbDropdown, selector: "[ngbDropdown]", inputs: ["open", "placement", "container", "autoClose", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i2.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i2.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { type: i4.EllipsisDirective, selector: "[abpEllipsis]", inputs: ["abpEllipsis", "title", "abpEllipsisEnabled"] }], pipes: { "abpLocalization": i3.LocalizationPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: GridActionsComponent, decorators: [{
25
+ type: Component,
26
+ args: [{
27
+ exportAs: 'abpGridActions',
28
+ selector: 'abp-grid-actions',
29
+ templateUrl: './grid-actions.component.html',
30
+ providers: [
31
+ {
32
+ provide: EXTENSIONS_ACTION_TYPE,
33
+ useValue: 'entityActions',
34
+ },
35
+ ],
36
+ changeDetection: ChangeDetectionStrategy.OnPush,
37
+ }]
38
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { icon: [{
39
+ type: Input
40
+ }], index: [{
41
+ type: Input
42
+ }], text: [{
43
+ type: Input
44
+ }] } });
45
+ //# sourceMappingURL=grid-actions.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-actions.component.js","sourceRoot":"","sources":["../../../../../../../../packages/theme-shared/extensions/src/lib/components/grid-actions/grid-actions.component.ts","../../../../../../../../packages/theme-shared/extensions/src/lib/components/grid-actions/grid-actions.component.html"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,SAAS,EACT,QAAQ,EACR,KAAK,GAEN,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;;;;;;AAc1F,MAAM,OAAO,oBAA8B,SAAQ,wBAA6C;IAS9F,YAAY,QAAkB;QAC5B,KAAK,CAAC,QAAQ,CAAC,CAAC;QATT,SAAI,GAAG,WAAW,CAAC;QAInB,SAAI,GAAG,EAAE,CAAC;QAEV,cAAS,GAAqC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;IAI9E,CAAC;;iHAXU,oBAAoB;qGAApB,oBAAoB,mGARpB;QACT;YACE,OAAO,EAAE,sBAAsB;YAC/B,QAAQ,EAAE,eAAe;SAC1B;KACF,+ECpBH,27CA2CA;2FDpBa,oBAAoB;kBAZhC,SAAS;mBAAC;oBACT,QAAQ,EAAE,gBAAgB;oBAC1B,QAAQ,EAAE,kBAAkB;oBAC5B,WAAW,EAAE,+BAA+B;oBAC5C,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,sBAAsB;4BAC/B,QAAQ,EAAE,eAAe;yBAC1B;qBACF;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD;+FAEU,IAAI;sBAAZ,KAAK;gBAEY,KAAK;sBAAtB,KAAK;gBAEG,IAAI;sBAAZ,KAAK","sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Injector,\n Input,\n TrackByFunction,\n} from '@angular/core';\nimport { EntityAction, EntityActionList } from '../../models/entity-actions';\nimport { EXTENSIONS_ACTION_TYPE } from '../../tokens/extensions.token';\nimport { AbstractActionsComponent } from '../abstract-actions/abstract-actions.component';\n\n@Component({\n exportAs: 'abpGridActions',\n selector: 'abp-grid-actions',\n templateUrl: './grid-actions.component.html',\n providers: [\n {\n provide: EXTENSIONS_ACTION_TYPE,\n useValue: 'entityActions',\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GridActionsComponent<R = any> extends AbstractActionsComponent<EntityActionList<R>> {\n @Input() icon = 'fa fa-cog';\n\n @Input() readonly index: number;\n\n @Input() text = '';\n\n readonly trackByFn: TrackByFunction<EntityAction<R>> = (_, item) => item.text;\n\n constructor(injector: Injector) {\n super(injector);\n }\n}\n","<div *ngIf=\"actionList.length > 1\" ngbDropdown container=\"body\" class=\"d-inline-block\">\n <button\n class=\"btn btn-primary btn-sm dropdown-toggle\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n ngbDropdownToggle\n >\n <i [ngClass]=\"icon\" [class.mr-1]=\"icon\"></i>{{ text | abpLocalization }}\n </button>\n <div ngbDropdownMenu>\n <ng-container\n *ngFor=\"let action of actionList; trackBy: trackByFn\"\n [ngTemplateOutlet]=\"btnItem\"\n [ngTemplateOutletContext]=\"{ $implicit: action }\"\n >\n </ng-container>\n </div>\n</div>\n\n<ng-container\n *ngIf=\"actionList.length === 1\"\n [ngTemplateOutlet]=\"btnItem\"\n [ngTemplateOutletContext]=\"{ $implicit: actionList.get(0).value }\"\n></ng-container>\n\n<ng-template #btnItem let-action>\n <ng-container *ngIf=\"action.visible(data)\">\n <button\n ngbDropdownItem\n *abpPermission=\"action.permission\"\n (click)=\"action.action(data)\"\n type=\"button\"\n class=\"{{ actionList.length === 1 ? 'btn btn-primary' : '' }}\"\n [class.text-center]=\"actionList.length === 1\"\n >\n <i [ngClass]=\"action.icon\" [class.mr-1]=\"action.icon\"></i>\n <span *ngIf=\"action.icon; else ellipsis\">{{ action.text | abpLocalization }}</span>\n <ng-template #ellipsis>\n <div abpEllipsis>{{ action.text | abpLocalization }}</div>\n </ng-template>\n </button>\n </ng-container>\n</ng-template>\n"]}
@@ -1,6 +1,9 @@
1
1
  import { ChangeDetectionStrategy, Component, Injector, } from '@angular/core';
2
2
  import { EXTENSIONS_ACTION_CALLBACK, EXTENSIONS_ACTION_DATA, EXTENSIONS_ACTION_TYPE, } from '../../tokens/extensions.token';
3
3
  import { AbstractActionsComponent } from '../abstract-actions/abstract-actions.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@abp/ng.core";
4
7
  export class PageToolbarComponent extends AbstractActionsComponent {
5
8
  constructor(injector) {
6
9
  super(injector);
@@ -18,21 +21,26 @@ export class PageToolbarComponent extends AbstractActionsComponent {
18
21
  return { get };
19
22
  }
20
23
  }
21
- PageToolbarComponent.decorators = [
22
- { type: Component, args: [{
23
- exportAs: 'abpPageToolbar',
24
- selector: 'abp-page-toolbar',
25
- template: "<div class=\"row justify-content-end mx-n1\" id=\"AbpContentToolbar\">\n <div class=\"col-auto px-1 pt-0 pt-md-2\" *ngFor=\"let action of actionList; trackBy: trackByFn\">\n <ng-container *ngIf=\"action.visible(data)\">\n <ng-container *abpPermission=\"action.permission\">\n <ng-container *ngIf=\"action.component as component; else button\">\n <ng-container\n *ngComponentOutlet=\"component; injector: createInjector(action)\"\n ></ng-container>\n </ng-container>\n\n <ng-template #button>\n <button (click)=\"action.action(data)\" type=\"button\" class=\"btn btn-primary btn-sm\">\n <i [ngClass]=\"action.icon\" [class.mr-1]=\"action.icon\"></i>\n {{ action.text | abpLocalization }}\n </button>\n </ng-template>\n </ng-container>\n </ng-container>\n </div>\n</div>\n",
26
- providers: [
27
- {
28
- provide: EXTENSIONS_ACTION_TYPE,
29
- useValue: 'toolbarActions',
30
- },
31
- ],
32
- changeDetection: ChangeDetectionStrategy.OnPush
33
- },] }
34
- ];
35
- PageToolbarComponent.ctorParameters = () => [
36
- { type: Injector }
37
- ];
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9leHRlbnNpb25zL3NyYy9saWIvY29tcG9uZW50cy9wYWdlLXRvb2xiYXIvcGFnZS10b29sYmFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFHVCxRQUFRLEdBR1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLDBCQUEwQixFQUMxQixzQkFBc0IsRUFDdEIsc0JBQXNCLEdBQ3ZCLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFjMUYsTUFBTSxPQUFPLG9CQUE4QixTQUFRLHdCQUE4QztJQUkvRixZQUE2QixRQUFrQjtRQUM3QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFEVyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBSHRDLGNBQVMsR0FBeUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FDckUsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDO0lBSWhDLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBMkI7UUFDeEMsTUFBTSxHQUFHLEdBQUcsQ0FBSSxLQUFrQyxFQUFFLGFBQWlCLEVBQUUsS0FBbUIsRUFBRSxFQUFFO1lBQzVGLE9BQU8sS0FBSyxLQUFLLHNCQUFzQjtnQkFDckMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJO2dCQUNYLENBQUMsQ0FBQyxLQUFLLEtBQUssMEJBQTBCO29CQUN0QyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7b0JBQzNDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEUsQ0FBQyxDQUFDO1FBRUYsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLENBQUM7OztZQTlCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsUUFBUSxFQUFFLGtCQUFrQjtnQkFDNUIsaTRCQUE0QztnQkFDNUMsU0FBUyxFQUFFO29CQUNUO3dCQUNFLE9BQU8sRUFBRSxzQkFBc0I7d0JBQy9CLFFBQVEsRUFBRSxnQkFBZ0I7cUJBQzNCO2lCQUNGO2dCQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEOzs7WUF2QkMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEluamVjdEZsYWdzLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5qZWN0b3IsXG4gIFRyYWNrQnlGdW5jdGlvbixcbiAgVHlwZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUb29sYmFyQWN0aW9uTGlzdCwgVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vZGVscy90b29sYmFyLWFjdGlvbnMnO1xuaW1wb3J0IHtcbiAgRVhURU5TSU9OU19BQ1RJT05fQ0FMTEJBQ0ssXG4gIEVYVEVOU0lPTlNfQUNUSU9OX0RBVEEsXG4gIEVYVEVOU0lPTlNfQUNUSU9OX1RZUEUsXG59IGZyb20gJy4uLy4uL3Rva2Vucy9leHRlbnNpb25zLnRva2VuJztcbmltcG9ydCB7IEFic3RyYWN0QWN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4uL2Fic3RyYWN0LWFjdGlvbnMvYWJzdHJhY3QtYWN0aW9ucy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgZXhwb3J0QXM6ICdhYnBQYWdlVG9vbGJhcicsXG4gIHNlbGVjdG9yOiAnYWJwLXBhZ2UtdG9vbGJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdlLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBFWFRFTlNJT05TX0FDVElPTl9UWVBFLFxuICAgICAgdXNlVmFsdWU6ICd0b29sYmFyQWN0aW9ucycsXG4gICAgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VUb29sYmFyQ29tcG9uZW50PFIgPSBhbnk+IGV4dGVuZHMgQWJzdHJhY3RBY3Rpb25zQ29tcG9uZW50PFRvb2xiYXJBY3Rpb25MaXN0PFI+PiB7XG4gIHJlYWRvbmx5IHRyYWNrQnlGbjogVHJhY2tCeUZ1bmN0aW9uPFRvb2xiYXJDb21wb25lbnQ8Uj4+ID0gKF8sIGl0ZW0pID0+XG4gICAgaXRlbS5hY3Rpb24gfHwgaXRlbS5jb21wb25lbnQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gIH1cblxuICBjcmVhdGVJbmplY3RvcihhY3Rpb246IFRvb2xiYXJDb21wb25lbnQ8Uj4pOiBJbmplY3RvciB7XG4gICAgY29uc3QgZ2V0ID0gPFQ+KHRva2VuOiBUeXBlPFQ+IHwgSW5qZWN0aW9uVG9rZW48VD4sIG5vdEZvdW5kVmFsdWU/OiBULCBmbGFncz86IEluamVjdEZsYWdzKSA9PiB7XG4gICAgICByZXR1cm4gdG9rZW4gPT09IEVYVEVOU0lPTlNfQUNUSU9OX0RBVEFcbiAgICAgICAgPyB0aGlzLmRhdGFcbiAgICAgICAgOiB0b2tlbiA9PT0gRVhURU5TSU9OU19BQ1RJT05fQ0FMTEJBQ0tcbiAgICAgICAgPyAoZGF0YSA9IHRoaXMuZGF0YSkgPT4gYWN0aW9uLmFjdGlvbihkYXRhKVxuICAgICAgICA6IHRoaXMuZ2V0SW5qZWN0ZWQuY2FsbCh0aGlzLmluamVjdG9yLCB0b2tlbiwgbm90Rm91bmRWYWx1ZSwgZmxhZ3MpO1xuICAgIH07XG5cbiAgICByZXR1cm4geyBnZXQgfTtcbiAgfVxufVxuIl19
24
+ PageToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: PageToolbarComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
25
+ PageToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: PageToolbarComponent, selector: "abp-page-toolbar", providers: [
26
+ {
27
+ provide: EXTENSIONS_ACTION_TYPE,
28
+ useValue: 'toolbarActions',
29
+ },
30
+ ], exportAs: ["abpPageToolbar"], usesInheritance: true, ngImport: i0, template: "<div class=\"row justify-content-end mx-n1\" id=\"AbpContentToolbar\">\n <div class=\"col-auto px-1 pt-0 pt-md-2\" *ngFor=\"let action of actionList; trackBy: trackByFn\">\n <ng-container *ngIf=\"action.visible(data)\">\n <ng-container *abpPermission=\"action.permission\">\n <ng-container *ngIf=\"action.component as component; else button\">\n <ng-container\n *ngComponentOutlet=\"component; injector: createInjector(action)\"\n ></ng-container>\n </ng-container>\n\n <ng-template #button>\n <button (click)=\"action.action(data)\" type=\"button\" class=\"btn btn-primary btn-sm\">\n <i [ngClass]=\"action.icon\" [class.mr-1]=\"action.icon\"></i>\n {{ action.text | abpLocalization }}\n </button>\n </ng-template>\n </ng-container>\n </ng-container>\n </div>\n</div>\n", directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModuleFactory"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "abpLocalization": i2.LocalizationPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: PageToolbarComponent, decorators: [{
32
+ type: Component,
33
+ args: [{
34
+ exportAs: 'abpPageToolbar',
35
+ selector: 'abp-page-toolbar',
36
+ templateUrl: './page-toolbar.component.html',
37
+ providers: [
38
+ {
39
+ provide: EXTENSIONS_ACTION_TYPE,
40
+ useValue: 'toolbarActions',
41
+ },
42
+ ],
43
+ changeDetection: ChangeDetectionStrategy.OnPush,
44
+ }]
45
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
46
+ //# sourceMappingURL=page-toolbar.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-toolbar.component.js","sourceRoot":"","sources":["../../../../../../../../packages/theme-shared/extensions/src/lib/components/page-toolbar/page-toolbar.component.ts","../../../../../../../../packages/theme-shared/extensions/src/lib/components/page-toolbar/page-toolbar.component.html"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,SAAS,EAGT,QAAQ,GAGT,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;;;;AAc1F,MAAM,OAAO,oBAA8B,SAAQ,wBAA8C;IAI/F,YAA6B,QAAkB;QAC7C,KAAK,CAAC,QAAQ,CAAC,CAAC;QADW,aAAQ,GAAR,QAAQ,CAAU;QAHtC,cAAS,GAAyC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CACrE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC;IAIhC,CAAC;IAED,cAAc,CAAC,MAA2B;QACxC,MAAM,GAAG,GAAG,CAAI,KAAkC,EAAE,aAAiB,EAAE,KAAmB,EAAE,EAAE;YAC5F,OAAO,KAAK,KAAK,sBAAsB;gBACrC,CAAC,CAAC,IAAI,CAAC,IAAI;gBACX,CAAC,CAAC,KAAK,KAAK,0BAA0B;oBACtC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBAC3C,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QACxE,CAAC,CAAC;QAEF,OAAO,EAAE,GAAG,EAAE,CAAC;IACjB,CAAC;;iHAlBU,oBAAoB;qGAApB,oBAAoB,2CARpB;QACT;YACE,OAAO,EAAE,sBAAsB;YAC/B,QAAQ,EAAE,gBAAgB;SAC3B;KACF,+EC1BH,u3BAoBA;2FDSa,oBAAoB;kBAZhC,SAAS;mBAAC;oBACT,QAAQ,EAAE,gBAAgB;oBAC1B,QAAQ,EAAE,kBAAkB;oBAC5B,WAAW,EAAE,+BAA+B;oBAC5C,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,sBAAsB;4BAC/B,QAAQ,EAAE,gBAAgB;yBAC3B;qBACF;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD","sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n InjectFlags,\n InjectionToken,\n Injector,\n TrackByFunction,\n Type,\n} from '@angular/core';\nimport { ToolbarActionList, ToolbarComponent } from '../../models/toolbar-actions';\nimport {\n EXTENSIONS_ACTION_CALLBACK,\n EXTENSIONS_ACTION_DATA,\n EXTENSIONS_ACTION_TYPE,\n} from '../../tokens/extensions.token';\nimport { AbstractActionsComponent } from '../abstract-actions/abstract-actions.component';\n\n@Component({\n exportAs: 'abpPageToolbar',\n selector: 'abp-page-toolbar',\n templateUrl: './page-toolbar.component.html',\n providers: [\n {\n provide: EXTENSIONS_ACTION_TYPE,\n useValue: 'toolbarActions',\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PageToolbarComponent<R = any> extends AbstractActionsComponent<ToolbarActionList<R>> {\n readonly trackByFn: TrackByFunction<ToolbarComponent<R>> = (_, item) =>\n item.action || item.component;\n\n constructor(private readonly injector: Injector) {\n super(injector);\n }\n\n createInjector(action: ToolbarComponent<R>): Injector {\n const get = <T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags) => {\n return token === EXTENSIONS_ACTION_DATA\n ? this.data\n : token === EXTENSIONS_ACTION_CALLBACK\n ? (data = this.data) => action.action(data)\n : this.getInjected.call(this.injector, token, notFoundValue, flags);\n };\n\n return { get };\n }\n}\n","<div class=\"row justify-content-end mx-n1\" id=\"AbpContentToolbar\">\n <div class=\"col-auto px-1 pt-0 pt-md-2\" *ngFor=\"let action of actionList; trackBy: trackByFn\">\n <ng-container *ngIf=\"action.visible(data)\">\n <ng-container *abpPermission=\"action.permission\">\n <ng-container *ngIf=\"action.component as component; else button\">\n <ng-container\n *ngComponentOutlet=\"component; injector: createInjector(action)\"\n ></ng-container>\n </ng-container>\n\n <ng-template #button>\n <button (click)=\"action.action(data)\" type=\"button\" class=\"btn btn-primary btn-sm\">\n <i [ngClass]=\"action.icon\" [class.mr-1]=\"action.icon\"></i>\n {{ action.text | abpLocalization }}\n </button>\n </ng-template>\n </ng-container>\n </ng-container>\n </div>\n</div>\n"]}
@@ -1,2 +1,2 @@
1
1
  export const EXTRA_PROPERTIES_KEY = 'extraProperties';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmEtcHJvcGVydGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9leHRlbnNpb25zL3NyYy9saWIvY29uc3RhbnRzL2V4dHJhLXByb3BlcnRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgRVhUUkFfUFJPUEVSVElFU19LRVkgPSAnZXh0cmFQcm9wZXJ0aWVzJztcbiJdfQ==
2
+ //# sourceMappingURL=extra-properties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extra-properties.js","sourceRoot":"","sources":["../../../../../../../packages/theme-shared/extensions/src/lib/constants/extra-properties.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC","sourcesContent":["export const EXTRA_PROPERTIES_KEY = 'extraProperties';\n"]}
@@ -1,5 +1,7 @@
1
1
  import { Directive, Host, Input } from '@angular/core';
2
2
  import { NgControl } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/forms";
3
5
  export class DisabledDirective {
4
6
  constructor(ngControl) {
5
7
  this.ngControl = ngControl;
@@ -11,15 +13,16 @@ export class DisabledDirective {
11
13
  }
12
14
  }
13
15
  }
14
- DisabledDirective.decorators = [
15
- { type: Directive, args: [{
16
- selector: '[abpDisabled]',
17
- },] }
18
- ];
19
- DisabledDirective.ctorParameters = () => [
20
- { type: NgControl, decorators: [{ type: Host }] }
21
- ];
22
- DisabledDirective.propDecorators = {
23
- abpDisabled: [{ type: Input }]
24
- };
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZWQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtc2hhcmVkL2V4dGVuc2lvbnMvc3JjL2xpYi9kaXJlY3RpdmVzL2Rpc2FibGVkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUszQyxNQUFNLE9BQU8saUJBQWlCO0lBSTVCLFlBQTRCLFNBQW9CO1FBQXBCLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFBRyxDQUFDO0lBRXBELGlFQUFpRTtJQUNqRSxXQUFXLENBQUMsRUFBRSxXQUFXLEVBQWlCO1FBQ3hDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLElBQUksV0FBVyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztTQUMzRTtJQUNILENBQUM7OztZQWRGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZUFBZTthQUMxQjs7O1lBSlEsU0FBUyx1QkFTSCxJQUFJOzs7MEJBSGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3QsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FicERpc2FibGVkXScsXG59KVxuZXhwb3J0IGNsYXNzIERpc2FibGVkRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KClcbiAgYWJwRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoQEhvc3QoKSBwcml2YXRlIG5nQ29udHJvbDogTmdDb250cm9sKSB7fVxuXG4gIC8vIFJlbGF0ZWQgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzM1MzMwXG4gIG5nT25DaGFuZ2VzKHsgYWJwRGlzYWJsZWQgfTogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICh0aGlzLm5nQ29udHJvbC5jb250cm9sICYmIGFicERpc2FibGVkKSB7XG4gICAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sW2FicERpc2FibGVkLmN1cnJlbnRWYWx1ZSA/ICdkaXNhYmxlJyA6ICdlbmFibGUnXSgpO1xuICAgIH1cbiAgfVxufVxuIl19
16
+ DisabledDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: DisabledDirective, deps: [{ token: i1.NgControl, host: true }], target: i0.ɵɵFactoryTarget.Directive });
17
+ DisabledDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.6", type: DisabledDirective, selector: "[abpDisabled]", inputs: { abpDisabled: "abpDisabled" }, usesOnChanges: true, ngImport: i0 });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: DisabledDirective, decorators: [{
19
+ type: Directive,
20
+ args: [{
21
+ selector: '[abpDisabled]',
22
+ }]
23
+ }], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
24
+ type: Host
25
+ }] }]; }, propDecorators: { abpDisabled: [{
26
+ type: Input
27
+ }] } });
28
+ //# sourceMappingURL=disabled.directive.js.map