@acorex/platform 19.4.14 → 20.0.0-next.0

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 (807) hide show
  1. package/auth/index.d.ts +300 -13
  2. package/common/index.d.ts +1478 -16
  3. package/core/index.d.ts +1303 -8
  4. package/domain/index.d.ts +79 -2
  5. package/fesm2022/acorex-platform-auth.mjs +25 -19
  6. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-common.mjs +113 -110
  8. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-core.mjs +180 -59
  10. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-domain.mjs +59 -18
  12. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-builder.mjs +48 -41
  14. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-layout-components.mjs +412 -111
  16. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-layout-designer.mjs +90 -91
  18. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-layout-entity.mjs +153 -120
  20. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-filters.mjs +3 -3
  22. package/fesm2022/acorex-platform-layout-filters.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-layout-views.mjs +108 -210
  24. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  25. package/fesm2022/acorex-platform-native.mjs +7 -7
  26. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  27. package/fesm2022/acorex-platform-runtime.mjs +422 -108
  28. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  29. package/fesm2022/acorex-platform-themes-default-create-entity-view.component-BxYe1IlE.mjs +22 -0
  30. package/fesm2022/acorex-platform-themes-default-create-entity-view.component-BxYe1IlE.mjs.map +1 -0
  31. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-DKihQPlU.mjs +112 -0
  32. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-DKihQPlU.mjs.map +1 -0
  33. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-b5e_ccLv.mjs → acorex-platform-themes-default-entity-master-list-view.component-PKLs3XdV.mjs} +41 -24
  34. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-PKLs3XdV.mjs.map +1 -0
  35. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DwDxUQfZ.mjs +105 -0
  36. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DwDxUQfZ.mjs.map +1 -0
  37. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-Dbf3kR4Z.mjs → acorex-platform-themes-default-entity-master-single-view.component-IcmkHgp5.mjs} +18 -13
  38. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-IcmkHgp5.mjs.map +1 -0
  39. package/fesm2022/{acorex-platform-themes-default-error-401.component-CAfQVBOI.mjs → acorex-platform-themes-default-error-401.component-8QfQ3hNo.mjs} +4 -4
  40. package/fesm2022/acorex-platform-themes-default-error-401.component-8QfQ3hNo.mjs.map +1 -0
  41. package/fesm2022/{acorex-platform-themes-default-error-404.component-DQ4nWPip.mjs → acorex-platform-themes-default-error-404.component-D9npA9_W.mjs} +4 -4
  42. package/fesm2022/acorex-platform-themes-default-error-404.component-D9npA9_W.mjs.map +1 -0
  43. package/fesm2022/acorex-platform-themes-default-error-offline.component-BQpVnLzt.mjs +19 -0
  44. package/fesm2022/acorex-platform-themes-default-error-offline.component-BQpVnLzt.mjs.map +1 -0
  45. package/fesm2022/acorex-platform-themes-default.mjs +76 -54
  46. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  47. package/fesm2022/acorex-platform-themes-shared-settings.provider-CXiRmniv.mjs.map +1 -1
  48. package/fesm2022/acorex-platform-themes-shared.mjs +102 -107
  49. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  50. package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-rFIoj-24.mjs → acorex-platform-widgets-button-widget-designer.component-BIZkWv8q.mjs} +7 -8
  51. package/fesm2022/acorex-platform-widgets-button-widget-designer.component-BIZkWv8q.mjs.map +1 -0
  52. package/fesm2022/{acorex-platform-widgets-checkbox-widget-column.component-Bq8dCQJb.mjs → acorex-platform-widgets-checkbox-widget-column.component-MjSzOXIJ.mjs} +7 -8
  53. package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-MjSzOXIJ.mjs.map +1 -0
  54. package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-Bld65JIi.mjs → acorex-platform-widgets-checkbox-widget-designer.component-5kuroU6r.mjs} +6 -7
  55. package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-5kuroU6r.mjs.map +1 -0
  56. package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-CAGwyk9s.mjs → acorex-platform-widgets-checkbox-widget-view.component-BgrIeNW0.mjs} +7 -8
  57. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-BgrIeNW0.mjs.map +1 -0
  58. package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-B6N5rPk5.mjs → acorex-platform-widgets-color-box-widget-designer.component-BTxAgvMQ.mjs} +7 -8
  59. package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-BTxAgvMQ.mjs.map +1 -0
  60. package/fesm2022/{acorex-platform-widgets-contact-widget-filter.component-Bg9CUMnD.mjs → acorex-platform-widgets-contact-widget-filter.component-DCUfKMJ6.mjs} +5 -6
  61. package/fesm2022/acorex-platform-widgets-contact-widget-filter.component-DCUfKMJ6.mjs.map +1 -0
  62. package/fesm2022/{acorex-platform-widgets-file-list-popup.component-TNxbcVav.mjs → acorex-platform-widgets-file-list-popup.component-yqqPJMg2.mjs} +7 -7
  63. package/fesm2022/acorex-platform-widgets-file-list-popup.component-yqqPJMg2.mjs.map +1 -0
  64. package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-DuKrIkHh.mjs → acorex-platform-widgets-page-widget-designer.component-tITe8tiu.mjs} +6 -8
  65. package/fesm2022/acorex-platform-widgets-page-widget-designer.component-tITe8tiu.mjs.map +1 -0
  66. package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-CtZlLmEp.mjs → acorex-platform-widgets-rich-text-popup.component-Bk20MsqK.mjs} +7 -7
  67. package/fesm2022/acorex-platform-widgets-rich-text-popup.component-Bk20MsqK.mjs.map +1 -0
  68. package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-Dg0d9DbZ.mjs → acorex-platform-widgets-tabular-data-edit-popup.component-2srL34Aq.mjs} +7 -7
  69. package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-2srL34Aq.mjs.map +1 -0
  70. package/fesm2022/{acorex-platform-widgets-tabular-data-view-popup.component-CB1YeddQ.mjs → acorex-platform-widgets-tabular-data-view-popup.component-D9654sA3.mjs} +7 -7
  71. package/fesm2022/acorex-platform-widgets-tabular-data-view-popup.component-D9654sA3.mjs.map +1 -0
  72. package/fesm2022/{acorex-platform-widgets-text-block-widget-designer.component-CXNsxV-t.mjs → acorex-platform-widgets-text-block-widget-designer.component-C1VgsL1j.mjs} +6 -7
  73. package/fesm2022/acorex-platform-widgets-text-block-widget-designer.component-C1VgsL1j.mjs.map +1 -0
  74. package/fesm2022/acorex-platform-widgets.mjs +1370 -1309
  75. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  76. package/fesm2022/acorex-platform-workflow.mjs +29 -100
  77. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  78. package/fesm2022/acorex-platform.mjs.map +1 -1
  79. package/index.d.ts +2 -2
  80. package/layout/builder/index.d.ts +682 -1
  81. package/layout/components/index.d.ts +436 -4
  82. package/layout/designer/index.d.ts +460 -4
  83. package/layout/entity/index.d.ts +769 -1
  84. package/layout/filters/index.d.ts +34 -1
  85. package/layout/views/index.d.ts +487 -3
  86. package/native/index.d.ts +35 -2
  87. package/package.json +1 -1
  88. package/runtime/index.d.ts +279 -17
  89. package/themes/default/index.d.ts +483 -3
  90. package/themes/shared/index.d.ts +204 -6
  91. package/widgets/index.d.ts +2138 -4
  92. package/workflow/index.d.ts +168 -7
  93. package/auth/lib/application/application.loader.d.ts +0 -8
  94. package/auth/lib/application/application.types.d.ts +0 -10
  95. package/auth/lib/auth-registry.service.d.ts +0 -12
  96. package/auth/lib/auth.guard.d.ts +0 -2
  97. package/auth/lib/auth.module.d.ts +0 -21
  98. package/auth/lib/auth.strategy.d.ts +0 -47
  99. package/auth/lib/errors.types.d.ts +0 -16
  100. package/auth/lib/feature/feature.directive.d.ts +0 -15
  101. package/auth/lib/feature/feature.guard.d.ts +0 -2
  102. package/auth/lib/feature/feature.loader.d.ts +0 -8
  103. package/auth/lib/feature/feature.types.d.ts +0 -6
  104. package/auth/lib/feature/index.d.ts +0 -4
  105. package/auth/lib/permission/index.d.ts +0 -6
  106. package/auth/lib/permission/permission-definition.builder.d.ts +0 -24
  107. package/auth/lib/permission/permission-definition.service.d.ts +0 -20
  108. package/auth/lib/permission/permission.directive.d.ts +0 -15
  109. package/auth/lib/permission/permission.guard.d.ts +0 -2
  110. package/auth/lib/permission/permission.loader.d.ts +0 -8
  111. package/auth/lib/permission/permission.types.d.ts +0 -13
  112. package/auth/lib/session.service.d.ts +0 -59
  113. package/auth/lib/session.types.d.ts +0 -24
  114. package/auth/lib/tenant/tenant.loader.d.ts +0 -8
  115. package/auth/lib/tenant/tenant.types.d.ts +0 -8
  116. package/auth/lib/user/user.types.d.ts +0 -6
  117. package/common/lib/app/app-version.provider.d.ts +0 -10
  118. package/common/lib/app/application.types.d.ts +0 -323
  119. package/common/lib/app/index.d.ts +0 -4
  120. package/common/lib/app/operators.d.ts +0 -23
  121. package/common/lib/common.module.d.ts +0 -24
  122. package/common/lib/configs/app.config.d.ts +0 -27
  123. package/common/lib/configs/config.types.d.ts +0 -5
  124. package/common/lib/data/data-provider.types.d.ts +0 -16
  125. package/common/lib/data/filter-middleware.service.d.ts +0 -28
  126. package/common/lib/data/index.d.ts +0 -3
  127. package/common/lib/data/operators.service.d.ts +0 -14
  128. package/common/lib/errors/error-handler-registry.service.d.ts +0 -12
  129. package/common/lib/errors/error-handler.types.d.ts +0 -3
  130. package/common/lib/errors/global-error-handler.d.ts +0 -11
  131. package/common/lib/errors/index.d.ts +0 -3
  132. package/common/lib/file-storage/file-storage.service.d.ts +0 -13
  133. package/common/lib/file-storage/file-storage.types.d.ts +0 -160
  134. package/common/lib/file-storage/index.d.ts +0 -2
  135. package/common/lib/file-type/file-type.provider.d.ts +0 -14
  136. package/common/lib/file-type/file-type.types.d.ts +0 -56
  137. package/common/lib/file-type/index.d.ts +0 -2
  138. package/common/lib/filters/filters.service.d.ts +0 -8
  139. package/common/lib/filters/filters.types.d.ts +0 -24
  140. package/common/lib/filters/index.d.ts +0 -2
  141. package/common/lib/home-page/home-page-settings.key.d.ts +0 -3
  142. package/common/lib/home-page/home-page-settings.provider.d.ts +0 -13
  143. package/common/lib/home-page/home-page.module.d.ts +0 -6
  144. package/common/lib/home-page/home-page.routes.d.ts +0 -2
  145. package/common/lib/home-page/home-page.service.d.ts +0 -30
  146. package/common/lib/home-page/home-page.types.d.ts +0 -9
  147. package/common/lib/home-page/index.d.ts +0 -4
  148. package/common/lib/layout/grid-layout/grid-layout.directive.d.ts +0 -15
  149. package/common/lib/layout/grid-layout/grid-layout.types.d.ts +0 -18
  150. package/common/lib/layout/grid-layout/index.d.ts +0 -2
  151. package/common/lib/layout/index.d.ts +0 -5
  152. package/common/lib/layout/logo/index.d.ts +0 -1
  153. package/common/lib/layout/logo/logo.component.d.ts +0 -12
  154. package/common/lib/layout/menu/badge-helper.d.ts +0 -7
  155. package/common/lib/layout/menu/index.d.ts +0 -6
  156. package/common/lib/layout/menu/menu.provider.d.ts +0 -22
  157. package/common/lib/layout/menu/menu.service.d.ts +0 -18
  158. package/common/lib/layout/menu/menu.types.d.ts +0 -28
  159. package/common/lib/layout/menu/search-definition.provider.d.ts +0 -4
  160. package/common/lib/layout/menu/search.provider.d.ts +0 -20
  161. package/common/lib/layout/sticky.directive.d.ts +0 -29
  162. package/common/lib/layout/theme/components/slots/footer-text-slot.component.d.ts +0 -6
  163. package/common/lib/layout/theme/components/slots/index.d.ts +0 -2
  164. package/common/lib/layout/theme/components/slots/navbar-slot.component.d.ts +0 -8
  165. package/common/lib/search/index.d.ts +0 -5
  166. package/common/lib/search/search-definition.builder.d.ts +0 -25
  167. package/common/lib/search/search-definition.provider.d.ts +0 -19
  168. package/common/lib/search/search.provider.d.ts +0 -8
  169. package/common/lib/search/search.service.d.ts +0 -13
  170. package/common/lib/search/search.types.d.ts +0 -69
  171. package/common/lib/settings/index.d.ts +0 -5
  172. package/common/lib/settings/setting-definition.service.d.ts +0 -29
  173. package/common/lib/settings/setting.builder.d.ts +0 -47
  174. package/common/lib/settings/settings.provider.d.ts +0 -3
  175. package/common/lib/settings/settings.service.d.ts +0 -41
  176. package/common/lib/settings/settings.types.d.ts +0 -55
  177. package/common/lib/utils/clipboard-service.d.ts +0 -7
  178. package/common/lib/utils/export-popup.d.ts +0 -20
  179. package/common/lib/utils/export.service.d.ts +0 -21
  180. package/common/lib/utils/filter-cleaner.d.ts +0 -2
  181. package/common/lib/utils/index.d.ts +0 -5
  182. package/common/lib/utils/regional-util.service.d.ts +0 -15
  183. package/common/lib/utils/regional.types.d.ts +0 -45
  184. package/common/lib/workflows/common.workflow.d.ts +0 -53
  185. package/common/lib/workflows/error-handler.d.ts +0 -8
  186. package/common/lib/workflows/index.d.ts +0 -3
  187. package/common/lib/workflows/navigate.workflow.d.ts +0 -13
  188. package/core/lib/context/context-store.service.d.ts +0 -37
  189. package/core/lib/data/data-generator.d.ts +0 -27
  190. package/core/lib/data/datasource-definition-provider.service.d.ts +0 -36
  191. package/core/lib/data/index.d.ts +0 -3
  192. package/core/lib/data/value-transformer.d.ts +0 -6
  193. package/core/lib/directives/content-checker.directive.d.ts +0 -10
  194. package/core/lib/directives/dbl-click.directive.d.ts +0 -11
  195. package/core/lib/directives/element-data.directive.d.ts +0 -20
  196. package/core/lib/directives/grid-layout.directive.d.ts +0 -15
  197. package/core/lib/directives/index.d.ts +0 -4
  198. package/core/lib/event-service/event.service.d.ts +0 -43
  199. package/core/lib/event-service/index.d.ts +0 -1
  200. package/core/lib/expression-evaluator/expression-evaluator-scope-provider.service.d.ts +0 -23
  201. package/core/lib/expression-evaluator/expression-evaluator.service.d.ts +0 -16
  202. package/core/lib/expression-evaluator/index.d.ts +0 -2
  203. package/core/lib/startup/app-startup.service.d.ts +0 -11
  204. package/core/lib/startup/app-startup.types.d.ts +0 -6
  205. package/core/lib/startup/index.d.ts +0 -2
  206. package/core/lib/types/actions.types.d.ts +0 -282
  207. package/core/lib/types/core.types.d.ts +0 -32
  208. package/core/lib/types/data.types.d.ts +0 -16
  209. package/core/lib/types/element.types.d.ts +0 -6
  210. package/core/lib/types/file.types.d.ts +0 -12
  211. package/core/lib/types/index.d.ts +0 -10
  212. package/core/lib/types/interactive.types.d.ts +0 -67
  213. package/core/lib/types/layout.types.d.ts +0 -27
  214. package/core/lib/types/logo.types.d.ts +0 -15
  215. package/core/lib/types/scope.types.d.ts +0 -10
  216. package/core/lib/types/validation.types.d.ts +0 -36
  217. package/core/lib/utils/countdown-timer.d.ts +0 -14
  218. package/core/lib/utils/data-conditioner.d.ts +0 -5
  219. package/core/lib/utils/highlighter.d.ts +0 -43
  220. package/core/lib/utils/index.d.ts +0 -4
  221. package/core/lib/utils/object-util.d.ts +0 -5
  222. package/domain/lib/domain.module.d.ts +0 -8
  223. package/domain/lib/provide-entity-crud-commands.d.ts +0 -4
  224. package/fesm2022/acorex-platform-themes-default-create-entity-view.component-BHR0N-5J.mjs +0 -22
  225. package/fesm2022/acorex-platform-themes-default-create-entity-view.component-BHR0N-5J.mjs.map +0 -1
  226. package/fesm2022/acorex-platform-themes-default-details-view.component-DXwO-Euo.mjs +0 -106
  227. package/fesm2022/acorex-platform-themes-default-details-view.component-DXwO-Euo.mjs.map +0 -1
  228. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-pLcvobi-.mjs +0 -112
  229. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-pLcvobi-.mjs.map +0 -1
  230. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-b5e_ccLv.mjs.map +0 -1
  231. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-CcCAFGwA.mjs +0 -96
  232. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-CcCAFGwA.mjs.map +0 -1
  233. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Dbf3kR4Z.mjs.map +0 -1
  234. package/fesm2022/acorex-platform-themes-default-error-401.component-CAfQVBOI.mjs.map +0 -1
  235. package/fesm2022/acorex-platform-themes-default-error-404.component-DQ4nWPip.mjs.map +0 -1
  236. package/fesm2022/acorex-platform-themes-default-error-offline.component-DHFRZS-7.mjs +0 -19
  237. package/fesm2022/acorex-platform-themes-default-error-offline.component-DHFRZS-7.mjs.map +0 -1
  238. package/fesm2022/acorex-platform-widgets-button-widget-designer.component-rFIoj-24.mjs.map +0 -1
  239. package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-Bq8dCQJb.mjs.map +0 -1
  240. package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-Bld65JIi.mjs.map +0 -1
  241. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-CAGwyk9s.mjs.map +0 -1
  242. package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-B6N5rPk5.mjs.map +0 -1
  243. package/fesm2022/acorex-platform-widgets-contact-widget-filter.component-Bg9CUMnD.mjs.map +0 -1
  244. package/fesm2022/acorex-platform-widgets-file-list-popup.component-TNxbcVav.mjs.map +0 -1
  245. package/fesm2022/acorex-platform-widgets-page-widget-designer.component-DuKrIkHh.mjs.map +0 -1
  246. package/fesm2022/acorex-platform-widgets-rich-text-popup.component-CtZlLmEp.mjs.map +0 -1
  247. package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-Dg0d9DbZ.mjs.map +0 -1
  248. package/fesm2022/acorex-platform-widgets-tabular-data-view-popup.component-CB1YeddQ.mjs.map +0 -1
  249. package/fesm2022/acorex-platform-widgets-text-block-widget-designer.component-CXNsxV-t.mjs.map +0 -1
  250. package/layout/builder/lib/builder/builder.module.d.ts +0 -24
  251. package/layout/builder/lib/builder/builder.service.d.ts +0 -38
  252. package/layout/builder/lib/builder/context-store.service.d.ts +0 -34
  253. package/layout/builder/lib/builder/datasource-provider.service.d.ts +0 -26
  254. package/layout/builder/lib/builder/index.d.ts +0 -16
  255. package/layout/builder/lib/builder/metadata/index.d.ts +0 -1
  256. package/layout/builder/lib/builder/metadata/metadata.types.d.ts +0 -7
  257. package/layout/builder/lib/builder/widget-base.component.d.ts +0 -114
  258. package/layout/builder/lib/builder/widget-catalog.d.ts +0 -3
  259. package/layout/builder/lib/builder/widget-categories.d.ts +0 -10
  260. package/layout/builder/lib/builder/widget-column-renderer.d.ts +0 -38
  261. package/layout/builder/lib/builder/widget-container.component.d.ts +0 -41
  262. package/layout/builder/lib/builder/widget-group.types.d.ts +0 -10
  263. package/layout/builder/lib/builder/widget-map.d.ts +0 -84
  264. package/layout/builder/lib/builder/widget-placeholder.component.d.ts +0 -5
  265. package/layout/builder/lib/builder/widget-registery.service.d.ts +0 -16
  266. package/layout/builder/lib/builder/widget-renderer.directive.d.ts +0 -89
  267. package/layout/builder/lib/builder/widget-status.types.d.ts +0 -16
  268. package/layout/builder/lib/builder/widget.types.d.ts +0 -149
  269. package/layout/components/lib/badge/badge.directive.d.ts +0 -14
  270. package/layout/components/lib/badge/index.d.ts +0 -3
  271. package/layout/components/lib/badge/task-badge.service.d.ts +0 -11
  272. package/layout/components/lib/badge/task-badge.type.d.ts +0 -6
  273. package/layout/components/lib/blocks/index.d.ts +0 -9
  274. package/layout/components/lib/blocks/layout-actions.component.d.ts +0 -20
  275. package/layout/components/lib/blocks/layout-blocks.component.d.ts +0 -8
  276. package/layout/components/lib/blocks/layout-container.component.d.ts +0 -13
  277. package/layout/components/lib/blocks/layout-footer.component.d.ts +0 -5
  278. package/layout/components/lib/blocks/layout-header.component.d.ts +0 -16
  279. package/layout/components/lib/blocks/layout-list.component.d.ts +0 -13
  280. package/layout/components/lib/blocks/layout-section.component.d.ts +0 -5
  281. package/layout/components/lib/blocks/layout-side.component.d.ts +0 -9
  282. package/layout/components/lib/blocks/layout-tool-bar.component.d.ts +0 -5
  283. package/layout/components/lib/component-slot/component-slot-registery.service.d.ts +0 -9
  284. package/layout/components/lib/component-slot/component-slot.directive.d.ts +0 -46
  285. package/layout/components/lib/component-slot/component-slot.module.d.ts +0 -15
  286. package/layout/components/lib/component-slot/component-slot.types.d.ts +0 -23
  287. package/layout/components/lib/component-slot/index.d.ts +0 -4
  288. package/layout/components/lib/user-avatar/index.d.ts +0 -4
  289. package/layout/components/lib/user-avatar/user-avatar.component.d.ts +0 -38
  290. package/layout/components/lib/user-avatar/user-avatar.provider.d.ts +0 -3
  291. package/layout/components/lib/user-avatar/user-avatar.service.d.ts +0 -42
  292. package/layout/components/lib/user-avatar/user-avatar.types.d.ts +0 -13
  293. package/layout/designer/lib/designer/components/add-widget-button/add-widget-button.component.d.ts +0 -9
  294. package/layout/designer/lib/designer/components/add-widget-button/add-widget-line-button.component.d.ts +0 -8
  295. package/layout/designer/lib/designer/components/add-widget-button/add-widget-mini-button.component.d.ts +0 -11
  296. package/layout/designer/lib/designer/components/add-widget-button/index.d.ts +0 -3
  297. package/layout/designer/lib/designer/components/board/board.component.d.ts +0 -27
  298. package/layout/designer/lib/designer/components/breadcrumbs/breadcrumbs.component.d.ts +0 -11
  299. package/layout/designer/lib/designer/components/drawers/data-sources/data-sources.component.d.ts +0 -17
  300. package/layout/designer/lib/designer/components/drawers/history/history.component.d.ts +0 -7
  301. package/layout/designer/lib/designer/components/drawers/outline/outline.component.d.ts +0 -18
  302. package/layout/designer/lib/designer/components/drawers/pages/pages.component.d.ts +0 -7
  303. package/layout/designer/lib/designer/components/grid-drawer/grid-drawer.component.d.ts +0 -19
  304. package/layout/designer/lib/designer/components/header-menu/header-menu.component.d.ts +0 -8
  305. package/layout/designer/lib/designer/components/size-mode/view-size-toolbar.component.d.ts +0 -6
  306. package/layout/designer/lib/designer/components/widget-picker/widget-picker.component.d.ts +0 -33
  307. package/layout/designer/lib/designer/components/widget-picker/widget-picker.service.d.ts +0 -12
  308. package/layout/designer/lib/designer/designer.component.d.ts +0 -15
  309. package/layout/designer/lib/designer/index.d.ts +0 -10
  310. package/layout/designer/lib/designer/shared/command.d.ts +0 -70
  311. package/layout/designer/lib/designer/shared/designer-connector.service.d.ts +0 -12
  312. package/layout/designer/lib/designer/shared/designer.service.d.ts +0 -145
  313. package/layout/designer/lib/designer/shared/designer.types.d.ts +0 -50
  314. package/layout/designer/lib/designer/shared/drawer-content/drawer-content.component.d.ts +0 -8
  315. package/layout/designer/lib/designer/shared/generic-commands.types.d.ts +0 -10
  316. package/layout/designer/lib/designer/shared/widget-designer-renderer.directive.d.ts +0 -42
  317. package/layout/designer/lib/preview/preview-frame.component.d.ts +0 -8
  318. package/layout/designer/lib/preview/preview-viewer.component.d.ts +0 -25
  319. package/layout/designer/lib/preview/preview.component.d.ts +0 -23
  320. package/layout/designer/lib/property-viewer/widget-property-viewer.component.d.ts +0 -57
  321. package/layout/entity/lib/entity-data-seeder.d.ts +0 -12
  322. package/layout/entity/lib/entity-detail-list.viewmodel.d.ts +0 -40
  323. package/layout/entity/lib/entity-master-create.viewmodel.d.ts +0 -59
  324. package/layout/entity/lib/entity-master-list.viewmodel.d.ts +0 -107
  325. package/layout/entity/lib/entity-master-single.viewmodel.d.ts +0 -70
  326. package/layout/entity/lib/entity-master-update.viewmodel.d.ts +0 -39
  327. package/layout/entity/lib/entity-middleware/entity-middleware.d.ts +0 -12
  328. package/layout/entity/lib/entity-middleware/entity-modifier.context.d.ts +0 -3
  329. package/layout/entity/lib/entity-middleware/entity-modifier.types.d.ts +0 -107
  330. package/layout/entity/lib/entity-middleware/entity-provider.d.ts +0 -3
  331. package/layout/entity/lib/entity-middleware/index.d.ts +0 -4
  332. package/layout/entity/lib/entity-registery.service.d.ts +0 -51
  333. package/layout/entity/lib/entity-storage-service.d.ts +0 -54
  334. package/layout/entity/lib/entity.config.d.ts +0 -28
  335. package/layout/entity/lib/entity.module.d.ts +0 -12
  336. package/layout/entity/lib/entity.service.d.ts +0 -7
  337. package/layout/entity/lib/entity.types.d.ts +0 -21
  338. package/layout/entity/lib/entity.viewmodel.d.ts +0 -32
  339. package/layout/entity/lib/index.d.ts +0 -15
  340. package/layout/entity/lib/search-definition-command.provider.d.ts +0 -4
  341. package/layout/entity/lib/search-definition.provider.d.ts +0 -6
  342. package/layout/entity/lib/widgets/lookup-widget/index.d.ts +0 -4
  343. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-column.component.d.ts +0 -10
  344. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +0 -48
  345. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.d.ts +0 -24
  346. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.d.ts +0 -33
  347. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.d.ts +0 -22
  348. package/layout/entity/lib/widgets/lookup-widget/lookup-widget.config.d.ts +0 -9
  349. package/layout/entity/lib/widgets/tagable-box/index.d.ts +0 -6
  350. package/layout/entity/lib/widgets/tagable-box/tagable-box-widget-column.component.d.ts +0 -11
  351. package/layout/entity/lib/widgets/tagable-box/tagable-box-widget-edit.component.d.ts +0 -19
  352. package/layout/entity/lib/widgets/tagable-box/tagable-box-widget-filter.component.d.ts +0 -6
  353. package/layout/entity/lib/widgets/tagable-box/tagable-box-widget-print.component.d.ts +0 -11
  354. package/layout/entity/lib/widgets/tagable-box/tagable-box-widget-view.component.d.ts +0 -11
  355. package/layout/entity/lib/widgets/tagable-box/tagable-box-widget.config.d.ts +0 -7
  356. package/layout/entity/lib/widgets/widget-selector/index.d.ts +0 -3
  357. package/layout/entity/lib/widgets/widget-selector/widget-selector-widget-edit.component.d.ts +0 -23
  358. package/layout/entity/lib/widgets/widget-selector/widget-selector-widget-view.component.d.ts +0 -6
  359. package/layout/entity/lib/widgets/widget-selector/widget-selector-widget.config.d.ts +0 -7
  360. package/layout/entity/lib/workflows/create-entity.workflow.d.ts +0 -32
  361. package/layout/entity/lib/workflows/delete-entity.workflow.d.ts +0 -31
  362. package/layout/entity/lib/workflows/index.d.ts +0 -6
  363. package/layout/entity/lib/workflows/modify-entity.workflow.d.ts +0 -20
  364. package/layout/entity/lib/workflows/modify-section.workflow.d.ts +0 -32
  365. package/layout/entity/lib/workflows/show-details.workflow.d.ts +0 -10
  366. package/layout/entity/lib/workflows/show-file-uploader-popup.workflow.d.ts +0 -10
  367. package/layout/entity/lib/workflows/show-list.workflow.d.ts +0 -10
  368. package/layout/filters/lib/filters.viewmodel.d.ts +0 -31
  369. package/layout/views/lib/layouts/index.d.ts +0 -2
  370. package/layout/views/lib/layouts/page/index.d.ts +0 -3
  371. package/layout/views/lib/layouts/page/page-layout-base.component.d.ts +0 -113
  372. package/layout/views/lib/layouts/page/page-layout.base.d.ts +0 -22
  373. package/layout/views/lib/layouts/page/page-layout.component.d.ts +0 -84
  374. package/layout/views/lib/layouts/popup/index.d.ts +0 -3
  375. package/layout/views/lib/layouts/popup/popup-layout-base.component.d.ts +0 -98
  376. package/layout/views/lib/layouts/popup/popup-layout.base.d.ts +0 -14
  377. package/layout/views/lib/layouts/popup/popup-layout.component.d.ts +0 -76
  378. package/layout/views/lib/shared/index.d.ts +0 -1
  379. package/layout/views/lib/shared/layout.types.d.ts +0 -7
  380. package/layout/views/lib/views/details-view/details-view-route.resolver.d.ts +0 -3
  381. package/layout/views/lib/views/details-view/details-view.adapter.d.ts +0 -13
  382. package/layout/views/lib/views/details-view/details-view.viewmodel.d.ts +0 -30
  383. package/layout/views/lib/views/details-view/index.d.ts +0 -3
  384. package/layout/views/lib/views/details-view/sample.d.ts +0 -2
  385. package/layout/views/lib/views/index.d.ts +0 -1
  386. package/native/lib/native.module.d.ts +0 -6
  387. package/native/lib/native.service.d.ts +0 -26
  388. package/runtime/lib/commands/command.extension.token.d.ts +0 -7
  389. package/runtime/lib/commands/command.interface.d.ts +0 -3
  390. package/runtime/lib/commands/command.middleware.d.ts +0 -2
  391. package/runtime/lib/commands/command.registry.d.ts +0 -16
  392. package/runtime/lib/commands/provide-command-middleware.d.ts +0 -9
  393. package/runtime/lib/commands/provide-command-setups.d.ts +0 -9
  394. package/runtime/lib/policy/policy-middleware-provider.d.ts +0 -9
  395. package/runtime/lib/policy/policy.directive.d.ts +0 -9
  396. package/runtime/lib/policy/policy.extension.token.d.ts +0 -7
  397. package/runtime/lib/policy/policy.interface.d.ts +0 -17
  398. package/runtime/lib/policy/policy.middleware.d.ts +0 -3
  399. package/runtime/lib/policy/policy.registry.d.ts +0 -19
  400. package/runtime/lib/policy/policy.service.d.ts +0 -8
  401. package/runtime/lib/policy/policy.types.d.ts +0 -7
  402. package/runtime/lib/queries/provide-query-middleware.d.ts +0 -9
  403. package/runtime/lib/queries/provide-query-setups.d.ts +0 -9
  404. package/runtime/lib/queries/query.extension.token.d.ts +0 -7
  405. package/runtime/lib/queries/query.interface.d.ts +0 -3
  406. package/runtime/lib/queries/query.middleware.d.ts +0 -2
  407. package/runtime/lib/queries/query.registry.d.ts +0 -15
  408. package/runtime/lib/runtime.module.d.ts +0 -12
  409. package/themes/default/lib/default.module.d.ts +0 -8
  410. package/themes/default/lib/entity-reuse.strategy.d.ts +0 -8
  411. package/themes/default/lib/layouts/details-view/details-view.component.d.ts +0 -45
  412. package/themes/default/lib/layouts/entity-layouts/entity-category/entity-category.component.d.ts +0 -29
  413. package/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.d.ts +0 -90
  414. package/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.d.ts +0 -20
  415. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +0 -102
  416. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.d.ts +0 -16
  417. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.d.ts +0 -13
  418. package/themes/default/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.d.ts +0 -19
  419. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +0 -108
  420. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/overview/entity-single-overview.component.d.ts +0 -11
  421. package/themes/default/lib/layouts/entity-layouts/entity-master-toolbar-view/entity-master-toolbar-view.component.d.ts +0 -69
  422. package/themes/default/lib/layouts/entity-layouts/entity-master-toolbar-view/filters/entity-filter-toolbar.component.d.ts +0 -49
  423. package/themes/default/lib/layouts/entity-layouts/entity-master-toolbar-view/views/create-view/create-entity-view.component.d.ts +0 -6
  424. package/themes/default/lib/layouts/entity-layouts/entity-master-toolbar-view/views/entity-view-toolbar.component.d.ts +0 -20
  425. package/themes/default/lib/layouts/entity-layouts/index.d.ts +0 -1
  426. package/themes/default/lib/layouts/root-layout/components/footer/footer.component.d.ts +0 -5
  427. package/themes/default/lib/layouts/root-layout/components/header/header.component.d.ts +0 -83
  428. package/themes/default/lib/layouts/root-layout/components/horizontal-menu/horizontal-menu.component.d.ts +0 -93
  429. package/themes/default/lib/layouts/root-layout/components/side-menu/side-menu.component.d.ts +0 -34
  430. package/themes/default/lib/layouts/root-layout/horizontal/horizontal-layout.component.d.ts +0 -85
  431. package/themes/default/lib/layouts/root-layout/index.d.ts +0 -6
  432. package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +0 -90
  433. package/themes/default/lib/layouts/root-layout/vertical/vertical-layout.component.d.ts +0 -87
  434. package/themes/default/lib/pages/errors/error-401/error-401.component.d.ts +0 -10
  435. package/themes/default/lib/pages/errors/error-404/error-404.component.d.ts +0 -8
  436. package/themes/default/lib/pages/errors/error-offline/error-offline.component.d.ts +0 -9
  437. package/themes/shared/lib/palette.provider.d.ts +0 -9
  438. package/themes/shared/lib/settings.keys.d.ts +0 -12
  439. package/themes/shared/lib/settings.provider.d.ts +0 -8
  440. package/themes/shared/lib/shared.module.d.ts +0 -11
  441. package/themes/shared/lib/slots/theme-slot.component.d.ts +0 -67
  442. package/themes/shared/lib/theme.service.d.ts +0 -61
  443. package/themes/shared/lib/theme.types.d.ts +0 -38
  444. package/themes/shared/lib/widgets/font-size-chooser/font-size-chooser-widget.component.d.ts +0 -10
  445. package/themes/shared/lib/widgets/font-size-chooser/font-size-chooser-widget.config.d.ts +0 -7
  446. package/themes/shared/lib/widgets/font-size-chooser/index.d.ts +0 -2
  447. package/themes/shared/lib/widgets/font-style-chooser/font-style-chooser-widget.component.d.ts +0 -15
  448. package/themes/shared/lib/widgets/font-style-chooser/font-style-chooser-widget.config.d.ts +0 -7
  449. package/themes/shared/lib/widgets/font-style-chooser/index.d.ts +0 -2
  450. package/themes/shared/lib/widgets/menu-orientation-chooser/index.d.ts +0 -2
  451. package/themes/shared/lib/widgets/menu-orientation-chooser/menu-orientation-chooser-widget.component.d.ts +0 -15
  452. package/themes/shared/lib/widgets/menu-orientation-chooser/menu-orientation-chooser-widget.config.d.ts +0 -7
  453. package/themes/shared/lib/widgets/theme-mode-chooser/index.d.ts +0 -2
  454. package/themes/shared/lib/widgets/theme-mode-chooser/theme-mode-chooser-widget.component.d.ts +0 -16
  455. package/themes/shared/lib/widgets/theme-mode-chooser/theme-mode-chooser-widget.config.d.ts +0 -7
  456. package/themes/shared/lib/widgets/theme-palette-chooser/index.d.ts +0 -2
  457. package/themes/shared/lib/widgets/theme-palette-chooser/theme-palette-chooser-widget.component.d.ts +0 -13
  458. package/themes/shared/lib/widgets/theme-palette-chooser/theme-palette-chooser-widget.config.d.ts +0 -7
  459. package/widgets/lib/properties/data-source.props.d.ts +0 -5
  460. package/widgets/lib/properties/editors.props.d.ts +0 -33
  461. package/widgets/lib/properties/general.props.d.ts +0 -7
  462. package/widgets/lib/properties/groups.d.ts +0 -8
  463. package/widgets/lib/properties/index.d.ts +0 -7
  464. package/widgets/lib/properties/layout.props.d.ts +0 -20
  465. package/widgets/lib/properties/table-column.props.d.ts +0 -3
  466. package/widgets/lib/properties/validation.props.d.ts +0 -10
  467. package/widgets/lib/shared/multi-language-component/popup/select-language.popup.d.ts +0 -23
  468. package/widgets/lib/widgets/actions/button/button-widget-designer.component.d.ts +0 -16
  469. package/widgets/lib/widgets/actions/button/button-widget-view.component.d.ts +0 -17
  470. package/widgets/lib/widgets/actions/button/button-widget.config.d.ts +0 -7
  471. package/widgets/lib/widgets/actions/button/index.d.ts +0 -2
  472. package/widgets/lib/widgets/advance/avatar/avatar-widget-column.component.d.ts +0 -6
  473. package/widgets/lib/widgets/advance/avatar/avatar-widget-designer.component.d.ts +0 -6
  474. package/widgets/lib/widgets/advance/avatar/avatar-widget-edit.component.d.ts +0 -18
  475. package/widgets/lib/widgets/advance/avatar/avatar-widget-print.component.d.ts +0 -6
  476. package/widgets/lib/widgets/advance/avatar/avatar-widget-view.component.d.ts +0 -6
  477. package/widgets/lib/widgets/advance/avatar/avatar-widget.config.d.ts +0 -7
  478. package/widgets/lib/widgets/advance/avatar/index.d.ts +0 -6
  479. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-column.component.d.ts +0 -6
  480. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-designer.component.d.ts +0 -7
  481. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-edit.component.d.ts +0 -8
  482. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-filter.component.d.ts +0 -6
  483. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-print.component.d.ts +0 -6
  484. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-view.component.d.ts +0 -7
  485. package/widgets/lib/widgets/advance/cron-job/cron-job-widget.config.d.ts +0 -7
  486. package/widgets/lib/widgets/advance/cron-job/index.d.ts +0 -7
  487. package/widgets/lib/widgets/advance/file-uploader/file-list/file-list.component.d.ts +0 -23
  488. package/widgets/lib/widgets/advance/file-uploader/file-list-popup/file-list-popup.component.d.ts +0 -17
  489. package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget-column.component.d.ts +0 -10
  490. package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget-edit.component.d.ts +0 -17
  491. package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget-print.component.d.ts +0 -6
  492. package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget-view.component.d.ts +0 -9
  493. package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget.config.d.ts +0 -7
  494. package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget.service.d.ts +0 -14
  495. package/widgets/lib/widgets/advance/file-uploader/index.d.ts +0 -6
  496. package/widgets/lib/widgets/advance/gallery/gallery-widget-edit.component.d.ts +0 -13
  497. package/widgets/lib/widgets/advance/gallery/gallery-widget-print.component.d.ts +0 -6
  498. package/widgets/lib/widgets/advance/gallery/gallery-widget-types.d.ts +0 -10
  499. package/widgets/lib/widgets/advance/gallery/gallery-widget-view.component.d.ts +0 -15
  500. package/widgets/lib/widgets/advance/gallery/gallery-widget.config.d.ts +0 -7
  501. package/widgets/lib/widgets/advance/gallery/index.d.ts +0 -4
  502. package/widgets/lib/widgets/advance/map/index.d.ts +0 -3
  503. package/widgets/lib/widgets/advance/map/map-box-widget-edit.component.d.ts +0 -25
  504. package/widgets/lib/widgets/advance/map/map-box-widget-view.component.d.ts +0 -13
  505. package/widgets/lib/widgets/advance/map/map-box-widget.config.d.ts +0 -7
  506. package/widgets/lib/widgets/advance/qrcode/index.d.ts +0 -2
  507. package/widgets/lib/widgets/advance/qrcode/qrcode-widget-view.component.d.ts +0 -13
  508. package/widgets/lib/widgets/advance/qrcode/qrcode-widget.config.d.ts +0 -7
  509. package/widgets/lib/widgets/advance/signature/index.d.ts +0 -6
  510. package/widgets/lib/widgets/advance/signature/signature-pad-widget-column.component.d.ts +0 -6
  511. package/widgets/lib/widgets/advance/signature/signature-pad-widget-edit.component.d.ts +0 -24
  512. package/widgets/lib/widgets/advance/signature/signature-pad-widget-filter.component.d.ts +0 -6
  513. package/widgets/lib/widgets/advance/signature/signature-pad-widget-print.component.d.ts +0 -6
  514. package/widgets/lib/widgets/advance/signature/signature-pad-widget-view.component.d.ts +0 -8
  515. package/widgets/lib/widgets/advance/signature/signature-pad-widget.config.d.ts +0 -7
  516. package/widgets/lib/widgets/editors/checkbox/checkbox-widget-column.component.d.ts +0 -9
  517. package/widgets/lib/widgets/editors/checkbox/checkbox-widget-designer.component.d.ts +0 -10
  518. package/widgets/lib/widgets/editors/checkbox/checkbox-widget-edit.component.d.ts +0 -9
  519. package/widgets/lib/widgets/editors/checkbox/checkbox-widget-view.component.d.ts +0 -12
  520. package/widgets/lib/widgets/editors/checkbox/checkbox-widget.config.d.ts +0 -12
  521. package/widgets/lib/widgets/editors/checkbox/index.d.ts +0 -2
  522. package/widgets/lib/widgets/editors/color/color-box-widget-column.component.d.ts +0 -9
  523. package/widgets/lib/widgets/editors/color/color-box-widget-designer.component.d.ts +0 -11
  524. package/widgets/lib/widgets/editors/color/color-box-widget-edit.component.d.ts +0 -11
  525. package/widgets/lib/widgets/editors/color/color-box-widget-filter.component.d.ts +0 -6
  526. package/widgets/lib/widgets/editors/color/color-box-widget-print.component.d.ts +0 -6
  527. package/widgets/lib/widgets/editors/color/color-box-widget-view.component.d.ts +0 -9
  528. package/widgets/lib/widgets/editors/color/color-box-widget.config.d.ts +0 -14
  529. package/widgets/lib/widgets/editors/color/index.d.ts +0 -6
  530. package/widgets/lib/widgets/editors/contact/contact-widget-column.component.d.ts +0 -10
  531. package/widgets/lib/widgets/editors/contact/contact-widget-edit.component.d.ts +0 -34
  532. package/widgets/lib/widgets/editors/contact/contact-widget-filter.component.d.ts +0 -6
  533. package/widgets/lib/widgets/editors/contact/contact-widget-print.component.d.ts +0 -6
  534. package/widgets/lib/widgets/editors/contact/contact-widget-view.component.d.ts +0 -19
  535. package/widgets/lib/widgets/editors/contact/contact-widget.config.d.ts +0 -16
  536. package/widgets/lib/widgets/editors/contact/contact.type.d.ts +0 -5
  537. package/widgets/lib/widgets/editors/contact/index.d.ts +0 -5
  538. package/widgets/lib/widgets/editors/contact/popup-component.d.ts +0 -10
  539. package/widgets/lib/widgets/editors/date-time/date-time-box-widget-column.component.d.ts +0 -15
  540. package/widgets/lib/widgets/editors/date-time/date-time-box-widget-edit.component.d.ts +0 -22
  541. package/widgets/lib/widgets/editors/date-time/date-time-box-widget-filter.component.d.ts +0 -6
  542. package/widgets/lib/widgets/editors/date-time/date-time-box-widget-print.component.d.ts +0 -6
  543. package/widgets/lib/widgets/editors/date-time/date-time-box-widget-view.component.d.ts +0 -12
  544. package/widgets/lib/widgets/editors/date-time/date-time-box-widget.config.d.ts +0 -15
  545. package/widgets/lib/widgets/editors/date-time/index.d.ts +0 -6
  546. package/widgets/lib/widgets/editors/email/email-box-widget-column.component.d.ts +0 -16
  547. package/widgets/lib/widgets/editors/email/email-box-widget-edit.component.d.ts +0 -29
  548. package/widgets/lib/widgets/editors/email/email-box-widget-filter.component.d.ts +0 -6
  549. package/widgets/lib/widgets/editors/email/email-box-widget-print.component.d.ts +0 -6
  550. package/widgets/lib/widgets/editors/email/email-box-widget-view.component.d.ts +0 -12
  551. package/widgets/lib/widgets/editors/email/email-box-widget.config.d.ts +0 -14
  552. package/widgets/lib/widgets/editors/email/index.d.ts +0 -6
  553. package/widgets/lib/widgets/editors/large-text/index.d.ts +0 -6
  554. package/widgets/lib/widgets/editors/large-text/large-text-widget-column.component.d.ts +0 -6
  555. package/widgets/lib/widgets/editors/large-text/large-text-widget-edit.component.d.ts +0 -23
  556. package/widgets/lib/widgets/editors/large-text/large-text-widget-filter.component.d.ts +0 -6
  557. package/widgets/lib/widgets/editors/large-text/large-text-widget-print.component.d.ts +0 -6
  558. package/widgets/lib/widgets/editors/large-text/large-text-widget-view.component.d.ts +0 -6
  559. package/widgets/lib/widgets/editors/large-text/large-text-widget.config.d.ts +0 -12
  560. package/widgets/lib/widgets/editors/link/index.d.ts +0 -6
  561. package/widgets/lib/widgets/editors/link/link-widget-column.component.d.ts +0 -6
  562. package/widgets/lib/widgets/editors/link/link-widget-edit.component.d.ts +0 -35
  563. package/widgets/lib/widgets/editors/link/link-widget-filter.component.d.ts +0 -6
  564. package/widgets/lib/widgets/editors/link/link-widget-print.component.d.ts +0 -6
  565. package/widgets/lib/widgets/editors/link/link-widget-view.component.d.ts +0 -13
  566. package/widgets/lib/widgets/editors/link/link-widget.config.d.ts +0 -13
  567. package/widgets/lib/widgets/editors/meta-data/index.d.ts +0 -6
  568. package/widgets/lib/widgets/editors/meta-data/meta-data-widget-column.component.d.ts +0 -6
  569. package/widgets/lib/widgets/editors/meta-data/meta-data-widget-edit.component.d.ts +0 -13
  570. package/widgets/lib/widgets/editors/meta-data/meta-data-widget-filter.component.d.ts +0 -6
  571. package/widgets/lib/widgets/editors/meta-data/meta-data-widget-print.component.d.ts +0 -6
  572. package/widgets/lib/widgets/editors/meta-data/meta-data-widget-view.component.d.ts +0 -8
  573. package/widgets/lib/widgets/editors/meta-data/meta-data-widget.config.d.ts +0 -9
  574. package/widgets/lib/widgets/editors/number/index.d.ts +0 -6
  575. package/widgets/lib/widgets/editors/number/number-box-widget-column.component.d.ts +0 -8
  576. package/widgets/lib/widgets/editors/number/number-box-widget-edit.component.d.ts +0 -21
  577. package/widgets/lib/widgets/editors/number/number-box-widget-filter.component.d.ts +0 -6
  578. package/widgets/lib/widgets/editors/number/number-box-widget-print.component.d.ts +0 -6
  579. package/widgets/lib/widgets/editors/number/number-box-widget-view.component.d.ts +0 -12
  580. package/widgets/lib/widgets/editors/number/number-box-widget.config.d.ts +0 -17
  581. package/widgets/lib/widgets/editors/number-unit/index.d.ts +0 -6
  582. package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget-column.component.d.ts +0 -9
  583. package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget-edit.component.d.ts +0 -24
  584. package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget-filter.component.d.ts +0 -6
  585. package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget-print.component.d.ts +0 -6
  586. package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget-view.component.d.ts +0 -12
  587. package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget.config.d.ts +0 -17
  588. package/widgets/lib/widgets/editors/password/index.d.ts +0 -6
  589. package/widgets/lib/widgets/editors/password/password-box-widget-column.component.d.ts +0 -10
  590. package/widgets/lib/widgets/editors/password/password-box-widget-edit.component.d.ts +0 -9
  591. package/widgets/lib/widgets/editors/password/password-box-widget-filter.component.d.ts +0 -6
  592. package/widgets/lib/widgets/editors/password/password-box-widget-print.component.d.ts +0 -6
  593. package/widgets/lib/widgets/editors/password/password-box-widget-view.component.d.ts +0 -14
  594. package/widgets/lib/widgets/editors/password/password-box-widget.config.d.ts +0 -14
  595. package/widgets/lib/widgets/editors/phone/index.d.ts +0 -6
  596. package/widgets/lib/widgets/editors/phone/phone-box-widget-column.component.d.ts +0 -16
  597. package/widgets/lib/widgets/editors/phone/phone-box-widget-edit.component.d.ts +0 -26
  598. package/widgets/lib/widgets/editors/phone/phone-box-widget-filter.component.d.ts +0 -6
  599. package/widgets/lib/widgets/editors/phone/phone-box-widget-print.component.d.ts +0 -6
  600. package/widgets/lib/widgets/editors/phone/phone-box-widget-view.component.d.ts +0 -12
  601. package/widgets/lib/widgets/editors/phone/phone-box-widget.config.d.ts +0 -11
  602. package/widgets/lib/widgets/editors/rich-text/index.d.ts +0 -6
  603. package/widgets/lib/widgets/editors/rich-text/rich-text-popup.component.d.ts +0 -9
  604. package/widgets/lib/widgets/editors/rich-text/rich-text-widget-column.component.d.ts +0 -9
  605. package/widgets/lib/widgets/editors/rich-text/rich-text-widget-edit.component.d.ts +0 -26
  606. package/widgets/lib/widgets/editors/rich-text/rich-text-widget-filter.component.d.ts +0 -6
  607. package/widgets/lib/widgets/editors/rich-text/rich-text-widget-print.component.d.ts +0 -6
  608. package/widgets/lib/widgets/editors/rich-text/rich-text-widget-view.component.d.ts +0 -9
  609. package/widgets/lib/widgets/editors/rich-text/rich-text-widget.config.d.ts +0 -12
  610. package/widgets/lib/widgets/editors/select/index.d.ts +0 -6
  611. package/widgets/lib/widgets/editors/select/select-box-widget-column.component.d.ts +0 -10
  612. package/widgets/lib/widgets/editors/select/select-box-widget-edit.component.d.ts +0 -27
  613. package/widgets/lib/widgets/editors/select/select-box-widget-filter.component.d.ts +0 -6
  614. package/widgets/lib/widgets/editors/select/select-box-widget-print.component.d.ts +0 -6
  615. package/widgets/lib/widgets/editors/select/select-box-widget-view.component.d.ts +0 -12
  616. package/widgets/lib/widgets/editors/select/select-box-widget.config.d.ts +0 -18
  617. package/widgets/lib/widgets/editors/selection-list/index.d.ts +0 -7
  618. package/widgets/lib/widgets/editors/selection-list/selection-list-widget-column.component.d.ts +0 -14
  619. package/widgets/lib/widgets/editors/selection-list/selection-list-widget-designer.component.d.ts +0 -15
  620. package/widgets/lib/widgets/editors/selection-list/selection-list-widget-edit.component.d.ts +0 -15
  621. package/widgets/lib/widgets/editors/selection-list/selection-list-widget-filter.component.d.ts +0 -6
  622. package/widgets/lib/widgets/editors/selection-list/selection-list-widget-print.component.d.ts +0 -6
  623. package/widgets/lib/widgets/editors/selection-list/selection-list-widget-view.component.d.ts +0 -11
  624. package/widgets/lib/widgets/editors/selection-list/selection-list-widget.config.d.ts +0 -15
  625. package/widgets/lib/widgets/editors/tabular-data/index.d.ts +0 -6
  626. package/widgets/lib/widgets/editors/tabular-data/table-widget.config.d.ts +0 -14
  627. package/widgets/lib/widgets/editors/tabular-data/tabular-data-column.component.d.ts +0 -6
  628. package/widgets/lib/widgets/editors/tabular-data/tabular-data-edit-popup.component.d.ts +0 -26
  629. package/widgets/lib/widgets/editors/tabular-data/tabular-data-filter.component.d.ts +0 -6
  630. package/widgets/lib/widgets/editors/tabular-data/tabular-data-view-popup.component.d.ts +0 -12
  631. package/widgets/lib/widgets/editors/tabular-data/tabular-data-widget-edit.component.d.ts +0 -12
  632. package/widgets/lib/widgets/editors/tabular-data/tabular-data-widget-print.component.d.ts +0 -6
  633. package/widgets/lib/widgets/editors/tabular-data/tabular-data-widget-view.component.d.ts +0 -11
  634. package/widgets/lib/widgets/editors/tabular-data/tabular-widget.types.d.ts +0 -9
  635. package/widgets/lib/widgets/editors/template-box/index.d.ts +0 -6
  636. package/widgets/lib/widgets/editors/template-box/template-box-widget-column.component.d.ts +0 -10
  637. package/widgets/lib/widgets/editors/template-box/template-box-widget-edit.component.d.ts +0 -29
  638. package/widgets/lib/widgets/editors/template-box/template-box-widget-filter.component.d.ts +0 -6
  639. package/widgets/lib/widgets/editors/template-box/template-box-widget-print.component.d.ts +0 -10
  640. package/widgets/lib/widgets/editors/template-box/template-box-widget-view.component.d.ts +0 -11
  641. package/widgets/lib/widgets/editors/template-box/template-box-widget.config.d.ts +0 -12
  642. package/widgets/lib/widgets/editors/text/index.d.ts +0 -6
  643. package/widgets/lib/widgets/editors/text/text-box-widget-column.component.d.ts +0 -6
  644. package/widgets/lib/widgets/editors/text/text-box-widget-edit.component.d.ts +0 -27
  645. package/widgets/lib/widgets/editors/text/text-box-widget-filter.component.d.ts +0 -6
  646. package/widgets/lib/widgets/editors/text/text-box-widget-print.component.d.ts +0 -6
  647. package/widgets/lib/widgets/editors/text/text-box-widget-view.component.d.ts +0 -8
  648. package/widgets/lib/widgets/editors/text/text-box-widget.config.d.ts +0 -15
  649. package/widgets/lib/widgets/editors/time-duration/index.d.ts +0 -6
  650. package/widgets/lib/widgets/editors/time-duration/time-duration-widget-column.component.d.ts +0 -15
  651. package/widgets/lib/widgets/editors/time-duration/time-duration-widget-edit.component.d.ts +0 -12
  652. package/widgets/lib/widgets/editors/time-duration/time-duration-widget-filter.component.d.ts +0 -6
  653. package/widgets/lib/widgets/editors/time-duration/time-duration-widget-print.component.d.ts +0 -6
  654. package/widgets/lib/widgets/editors/time-duration/time-duration-widget-view.component.d.ts +0 -13
  655. package/widgets/lib/widgets/editors/time-duration/time-duration-widget.config.d.ts +0 -11
  656. package/widgets/lib/widgets/editors/toggle/index.d.ts +0 -6
  657. package/widgets/lib/widgets/editors/toggle/toggle-widget-column.component.d.ts +0 -9
  658. package/widgets/lib/widgets/editors/toggle/toggle-widget-edit.component.d.ts +0 -12
  659. package/widgets/lib/widgets/editors/toggle/toggle-widget-filter.component.d.ts +0 -6
  660. package/widgets/lib/widgets/editors/toggle/toggle-widget-print.component.d.ts +0 -6
  661. package/widgets/lib/widgets/editors/toggle/toggle-widget-view.component.d.ts +0 -9
  662. package/widgets/lib/widgets/editors/toggle/toggle-widget.config.d.ts +0 -14
  663. package/widgets/lib/widgets/filters/boolean-filter/boolean-filter-widget-edit.component.d.ts +0 -20
  664. package/widgets/lib/widgets/filters/boolean-filter/boolean-filter-widget.config.d.ts +0 -7
  665. package/widgets/lib/widgets/filters/boolean-filter/index.d.ts +0 -2
  666. package/widgets/lib/widgets/filters/date-time-filter/date-time-filter-widget-edit.component.d.ts +0 -19
  667. package/widgets/lib/widgets/filters/date-time-filter/date-time-filter-widget.config.d.ts +0 -7
  668. package/widgets/lib/widgets/filters/date-time-filter/index.d.ts +0 -2
  669. package/widgets/lib/widgets/filters/number-filter/index.d.ts +0 -2
  670. package/widgets/lib/widgets/filters/number-filter/number-filter-widget-edit.component.d.ts +0 -13
  671. package/widgets/lib/widgets/filters/number-filter/number-filter-widget.config.d.ts +0 -7
  672. package/widgets/lib/widgets/filters/operations/operations.component.d.ts +0 -9
  673. package/widgets/lib/widgets/filters/select-filter/index.d.ts +0 -2
  674. package/widgets/lib/widgets/filters/select-filter/select-filter-widget-edit.component.d.ts +0 -15
  675. package/widgets/lib/widgets/filters/select-filter/select-filter-widget.config.d.ts +0 -7
  676. package/widgets/lib/widgets/filters/string-filter/index.d.ts +0 -2
  677. package/widgets/lib/widgets/filters/string-filter/string-filter-widget-edit.component.d.ts +0 -13
  678. package/widgets/lib/widgets/filters/string-filter/string-filter-widget.config.d.ts +0 -7
  679. package/widgets/lib/widgets/index.d.ts +0 -44
  680. package/widgets/lib/widgets/layout/advanced-grid/advanced-grid-widget-designer.component.d.ts +0 -27
  681. package/widgets/lib/widgets/layout/advanced-grid/advanced-grid-widget-view.component.d.ts +0 -20
  682. package/widgets/lib/widgets/layout/advanced-grid/advanced-grid-widget.config.d.ts +0 -9
  683. package/widgets/lib/widgets/layout/advanced-grid/index.d.ts +0 -3
  684. package/widgets/lib/widgets/layout/advanced-grid-item/advanced-grid-item-widget-designer.component.d.ts +0 -11
  685. package/widgets/lib/widgets/layout/advanced-grid-item/advanced-grid-item-widget-print.component.d.ts +0 -6
  686. package/widgets/lib/widgets/layout/advanced-grid-item/advanced-grid-item-widget-view.component.d.ts +0 -15
  687. package/widgets/lib/widgets/layout/advanced-grid-item/advanced-grid-item-widget.config.d.ts +0 -9
  688. package/widgets/lib/widgets/layout/advanced-grid-item/index.d.ts +0 -4
  689. package/widgets/lib/widgets/layout/block/block-widget-designer.component.d.ts +0 -10
  690. package/widgets/lib/widgets/layout/block/block-widget-view.component.d.ts +0 -10
  691. package/widgets/lib/widgets/layout/block/block-widget.config.d.ts +0 -23
  692. package/widgets/lib/widgets/layout/block/index.d.ts +0 -3
  693. package/widgets/lib/widgets/layout/document/document-widget.config.d.ts +0 -9
  694. package/widgets/lib/widgets/layout/flex/flex-widget-designer.component.d.ts +0 -10
  695. package/widgets/lib/widgets/layout/flex/flex-widget-view.component.d.ts +0 -10
  696. package/widgets/lib/widgets/layout/flex/flex-widget.config.d.ts +0 -28
  697. package/widgets/lib/widgets/layout/flex/index.d.ts +0 -3
  698. package/widgets/lib/widgets/layout/form-field/form-field-widget-designer.component.d.ts +0 -8
  699. package/widgets/lib/widgets/layout/form-field/form-field-widget-view.component.d.ts +0 -8
  700. package/widgets/lib/widgets/layout/form-field/form-field-widget.config.d.ts +0 -10
  701. package/widgets/lib/widgets/layout/form-field/index.d.ts +0 -3
  702. package/widgets/lib/widgets/layout/grid/grid-widget-designer.component.d.ts +0 -23
  703. package/widgets/lib/widgets/layout/grid/grid-widget-view.component.d.ts +0 -14
  704. package/widgets/lib/widgets/layout/grid/grid-widget.config.d.ts +0 -10
  705. package/widgets/lib/widgets/layout/grid/index.d.ts +0 -3
  706. package/widgets/lib/widgets/layout/grid-item/grid-item-widget-designer.component.d.ts +0 -15
  707. package/widgets/lib/widgets/layout/grid-item/grid-item-widget-print.component.d.ts +0 -6
  708. package/widgets/lib/widgets/layout/grid-item/grid-item-widget-view.component.d.ts +0 -15
  709. package/widgets/lib/widgets/layout/grid-item/grid-item-widget.config.d.ts +0 -25
  710. package/widgets/lib/widgets/layout/grid-item/index.d.ts +0 -4
  711. package/widgets/lib/widgets/layout/grid-row/grid-row-widget-designer.component.d.ts +0 -15
  712. package/widgets/lib/widgets/layout/grid-row/grid-row-widget-print.component.d.ts +0 -6
  713. package/widgets/lib/widgets/layout/grid-row/grid-row-widget-view.component.d.ts +0 -9
  714. package/widgets/lib/widgets/layout/grid-row/grid-row-widget.config.d.ts +0 -11
  715. package/widgets/lib/widgets/layout/grid-row/index.d.ts +0 -4
  716. package/widgets/lib/widgets/layout/page/index.d.ts +0 -2
  717. package/widgets/lib/widgets/layout/page/page-widget-designer.component.d.ts +0 -20
  718. package/widgets/lib/widgets/layout/page/page-widget-view.component.d.ts +0 -8
  719. package/widgets/lib/widgets/layout/page/page-widget.config.d.ts +0 -14
  720. package/widgets/lib/widgets/layout/panel/index.d.ts +0 -3
  721. package/widgets/lib/widgets/layout/panel/panel-widget-designer.component.d.ts +0 -15
  722. package/widgets/lib/widgets/layout/panel/panel-widget-view.component.d.ts +0 -15
  723. package/widgets/lib/widgets/layout/panel/panel-widget.config.d.ts +0 -7
  724. package/widgets/lib/widgets/layout/repeater/index.d.ts +0 -5
  725. package/widgets/lib/widgets/layout/repeater/repeater-widget-designer.component.d.ts +0 -9
  726. package/widgets/lib/widgets/layout/repeater/repeater-widget-edit.component.d.ts +0 -15
  727. package/widgets/lib/widgets/layout/repeater/repeater-widget-print.component.d.ts +0 -6
  728. package/widgets/lib/widgets/layout/repeater/repeater-widget-view.component.d.ts +0 -9
  729. package/widgets/lib/widgets/layout/repeater/repeater-widget.config.d.ts +0 -12
  730. package/widgets/lib/widgets/layout/tabset/index.d.ts +0 -3
  731. package/widgets/lib/widgets/layout/tabset/tabset-widget-designer.component.d.ts +0 -6
  732. package/widgets/lib/widgets/layout/tabset/tabset-widget-view.component.d.ts +0 -19
  733. package/widgets/lib/widgets/layout/tabset/tabset-widget.config.d.ts +0 -2
  734. package/widgets/lib/widgets/layout/tabset/tabset-widget.types.d.ts +0 -2
  735. package/widgets/lib/widgets/layout/tabset-item/index.d.ts +0 -3
  736. package/widgets/lib/widgets/layout/tabset-item/tabset-item-widget-designer.component.d.ts +0 -6
  737. package/widgets/lib/widgets/layout/tabset-item/tabset-item-widget-view.component.d.ts +0 -10
  738. package/widgets/lib/widgets/layout/tabset-item/tabset-item-widget.config.d.ts +0 -2
  739. package/widgets/lib/widgets/layout/text-block/index.d.ts +0 -2
  740. package/widgets/lib/widgets/layout/text-block/text-block-widget-designer.component.d.ts +0 -11
  741. package/widgets/lib/widgets/layout/text-block/text-block-widget-view.component.d.ts +0 -10
  742. package/widgets/lib/widgets/layout/text-block/text-block-widget.config.d.ts +0 -10
  743. package/widgets/lib/widgets/property-editors/advanced-grid-options/advanced-grid-options-widget-editor.component.d.ts +0 -32
  744. package/widgets/lib/widgets/property-editors/advanced-grid-options/advanced-grid-options-widget.config.d.ts +0 -7
  745. package/widgets/lib/widgets/property-editors/advanced-grid-options/advanced-grid-options-widget.type.d.ts +0 -6
  746. package/widgets/lib/widgets/property-editors/advanced-grid-options/index.d.ts +0 -2
  747. package/widgets/lib/widgets/property-editors/border/border-widget-editor.component.d.ts +0 -34
  748. package/widgets/lib/widgets/property-editors/border/border-widget.config.d.ts +0 -7
  749. package/widgets/lib/widgets/property-editors/border/index.d.ts +0 -2
  750. package/widgets/lib/widgets/property-editors/direction/direction-widget-editor.component.d.ts +0 -13
  751. package/widgets/lib/widgets/property-editors/direction/direction-widget.config.d.ts +0 -7
  752. package/widgets/lib/widgets/property-editors/direction/index.d.ts +0 -2
  753. package/widgets/lib/widgets/property-editors/flex-options/flex-options-widget-editor.component.d.ts +0 -43
  754. package/widgets/lib/widgets/property-editors/flex-options/flex-options-widget.config.d.ts +0 -7
  755. package/widgets/lib/widgets/property-editors/flex-options/flex-options-widget.type.d.ts +0 -12
  756. package/widgets/lib/widgets/property-editors/flex-options/index.d.ts +0 -3
  757. package/widgets/lib/widgets/property-editors/grid-options/grid-options-widget-editor.component.d.ts +0 -50
  758. package/widgets/lib/widgets/property-editors/grid-options/grid-options-widget.config.d.ts +0 -7
  759. package/widgets/lib/widgets/property-editors/grid-options/grid-options-widget.type.d.ts +0 -21
  760. package/widgets/lib/widgets/property-editors/grid-options/index.d.ts +0 -3
  761. package/widgets/lib/widgets/property-editors/property-editor-helper.d.ts +0 -98
  762. package/widgets/lib/widgets/property-editors/property-editor.type.d.ts +0 -40
  763. package/widgets/lib/widgets/property-editors/spacing/index.d.ts +0 -2
  764. package/widgets/lib/widgets/property-editors/spacing/spacing-widget-editor.component.d.ts +0 -26
  765. package/widgets/lib/widgets/property-editors/spacing/spacing-widget.config.d.ts +0 -7
  766. package/widgets/lib/widgets/validations/base-validation/base-validation.component.d.ts +0 -13
  767. package/widgets/lib/widgets/validations/base-validation/base-validation.d.ts +0 -9
  768. package/widgets/lib/widgets/validations/between-validation/between-validation-widget-edit.component.d.ts +0 -19
  769. package/widgets/lib/widgets/validations/between-validation/between-validation-widget.config.d.ts +0 -7
  770. package/widgets/lib/widgets/validations/between-validation/index.d.ts +0 -2
  771. package/widgets/lib/widgets/validations/callback-validation/callback-validation-widget-edit.component.d.ts +0 -17
  772. package/widgets/lib/widgets/validations/callback-validation/callback-validation-widget.config.d.ts +0 -7
  773. package/widgets/lib/widgets/validations/callback-validation/index.d.ts +0 -2
  774. package/widgets/lib/widgets/validations/equal-validation/equal-validation-widget-edit.component.d.ts +0 -17
  775. package/widgets/lib/widgets/validations/equal-validation/equal-validation-widget.config.d.ts +0 -7
  776. package/widgets/lib/widgets/validations/equal-validation/index.d.ts +0 -2
  777. package/widgets/lib/widgets/validations/greater-than-validation/greater-than-validation-widget-edit.component.d.ts +0 -18
  778. package/widgets/lib/widgets/validations/greater-than-validation/greater-than-validation-widget.config.d.ts +0 -7
  779. package/widgets/lib/widgets/validations/greater-than-validation/index.d.ts +0 -2
  780. package/widgets/lib/widgets/validations/less-than-validation/index.d.ts +0 -2
  781. package/widgets/lib/widgets/validations/less-than-validation/less-than-validation-widget-edit.component.d.ts +0 -18
  782. package/widgets/lib/widgets/validations/less-than-validation/less-than-validation-widget.config.d.ts +0 -7
  783. package/widgets/lib/widgets/validations/max-length-validation/index.d.ts +0 -2
  784. package/widgets/lib/widgets/validations/max-length-validation/max-length-validation-widget-edit.component.d.ts +0 -17
  785. package/widgets/lib/widgets/validations/max-length-validation/max-length-validation-widget.config.d.ts +0 -7
  786. package/widgets/lib/widgets/validations/min-length-validation/index.d.ts +0 -2
  787. package/widgets/lib/widgets/validations/min-length-validation/min-length-validation-widget-edit.component.d.ts +0 -17
  788. package/widgets/lib/widgets/validations/min-length-validation/min-length-validation-widget.config.d.ts +0 -7
  789. package/widgets/lib/widgets/validations/regular-expression-validation/index.d.ts +0 -2
  790. package/widgets/lib/widgets/validations/regular-expression-validation/regular-expression-validation-widget-edit.component.d.ts +0 -17
  791. package/widgets/lib/widgets/validations/regular-expression-validation/regular-expression-validation-widget.config.d.ts +0 -7
  792. package/widgets/lib/widgets/validations/required-validation/index.d.ts +0 -2
  793. package/widgets/lib/widgets/validations/required-validation/required-validation-widget-edit.component.d.ts +0 -15
  794. package/widgets/lib/widgets/validations/required-validation/required-validation-widget.config.d.ts +0 -7
  795. package/widgets/lib/widgets.config.d.ts +0 -7
  796. package/widgets/lib/widgets.module.d.ts +0 -7
  797. package/workflow/lib/actions/decide.action.d.ts +0 -7
  798. package/workflow/lib/actions/start-workflow.action.d.ts +0 -10
  799. package/workflow/lib/errors.types.d.ts +0 -4
  800. package/workflow/lib/slots/workflow-action-bar/workflow-action-bar.component.d.ts +0 -37
  801. package/workflow/lib/task-board.types.d.ts +0 -21
  802. package/workflow/lib/workflow-evaluator-scope.provider.d.ts +0 -4
  803. package/workflow/lib/workflow-event-dispatcher.service.d.ts +0 -10
  804. package/workflow/lib/workflow-registery.service.d.ts +0 -21
  805. package/workflow/lib/workflow.module.d.ts +0 -26
  806. package/workflow/lib/workflow.service.d.ts +0 -25
  807. package/workflow/lib/workflow.types.d.ts +0 -64
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-layout-entity.mjs","sources":["../../../../libs/platform/layout/entity/src/lib/entity-data-seeder.ts","../../../../libs/platform/layout/entity/src/lib/entity.config.ts","../../../../libs/platform/layout/entity/src/lib/entity.viewmodel.ts","../../../../libs/platform/layout/entity/src/lib/entity-detail-list.viewmodel.ts","../../../../libs/platform/layout/entity/src/lib/entity-middleware/entity-modifier.context.ts","../../../../libs/platform/layout/entity/src/lib/entity-middleware/entity-provider.ts","../../../../libs/platform/layout/entity/src/lib/entity-middleware/entity-middleware.ts","../../../../libs/platform/layout/entity/src/lib/entity-registery.service.ts","../../../../libs/platform/layout/entity/src/lib/entity-master-create.viewmodel.ts","../../../../libs/platform/layout/entity/src/lib/entity-master-list.viewmodel.ts","../../../../libs/platform/layout/entity/src/lib/workflows/delete-entity.workflow.ts","../../../../libs/platform/layout/entity/src/lib/entity-master-update.viewmodel.ts","../../../../libs/platform/layout/entity/src/lib/workflows/modify-section.workflow.ts","../../../../libs/platform/layout/entity/src/lib/entity-master-single.viewmodel.ts","../../../../libs/platform/layout/entity/src/lib/entity-storage-service.ts","../../../../libs/platform/layout/entity/src/lib/search-definition-command.provider.ts","../../../../libs/platform/layout/entity/src/lib/search-definition.provider.ts","../../../../libs/platform/layout/entity/src/lib/widgets/lookup-widget/lookup-widget-view.component.ts","../../../../libs/platform/layout/entity/src/lib/widgets/lookup-widget/lookup-widget-selector.component.ts","../../../../libs/platform/layout/entity/src/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.ts","../../../../libs/platform/layout/entity/src/lib/widgets/lookup-widget/lookup-widget-edit.component.ts","../../../../libs/platform/layout/entity/src/lib/widgets/lookup-widget/lookup-widget-column.component.ts","../../../../libs/platform/layout/entity/src/lib/widgets/lookup-widget/lookup-widget.config.ts","../../../../libs/platform/layout/entity/src/lib/widgets/tagable-box/tagable-box-widget-column.component.ts","../../../../libs/platform/layout/entity/src/lib/widgets/tagable-box/tagable-box-widget-edit.component.ts","../../../../libs/platform/layout/entity/src/lib/widgets/tagable-box/tagable-box-widget-filter.component.ts","../../../../libs/platform/layout/entity/src/lib/widgets/tagable-box/tagable-box-widget-print.component.ts","../../../../libs/platform/layout/entity/src/lib/widgets/tagable-box/tagable-box-widget-view.component.ts","../../../../libs/platform/layout/entity/src/lib/widgets/tagable-box/tagable-box-widget.config.ts","../../../../libs/platform/layout/entity/src/lib/widgets/widget-selector/widget-selector-widget-edit.component.ts","../../../../libs/platform/layout/entity/src/lib/widgets/widget-selector/widget-selector-widget-view.component.ts","../../../../libs/platform/layout/entity/src/lib/widgets/widget-selector/widget-selector-widget.config.ts","../../../../libs/platform/layout/entity/src/lib/workflows/create-entity.workflow.ts","../../../../libs/platform/layout/entity/src/lib/workflows/modify-entity.workflow.ts","../../../../libs/platform/layout/entity/src/lib/workflows/show-details.workflow.ts","../../../../libs/platform/layout/entity/src/lib/workflows/show-file-uploader-popup.workflow.ts","../../../../libs/platform/layout/entity/src/lib/workflows/show-list.workflow.ts","../../../../libs/platform/layout/entity/src/lib/entity.module.ts","../../../../libs/platform/layout/entity/src/lib/entity.service.ts","../../../../libs/platform/layout/entity/src/acorex-platform-layout-entity.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\nimport { castArray } from 'lodash-es';\n\nexport interface AXPDataSeeder {\n seed(): Promise<void>;\n}\n\nexport const AXP_DATA_SEEDER_TOKEN = new InjectionToken<AXPDataSeeder[]>('AXP_DATA_SEEDER_TOKEN');\n\n@Injectable({ providedIn: 'root' })\nexport class AXPDataSeederService {\n private loaders = inject(AXP_DATA_SEEDER_TOKEN, { optional: true });\n\n async seed(): Promise<void> {\n for (const loader of castArray(this.loaders)) {\n await loader?.seed();\n }\n }\n}\n","import { AXPEntity } from '@acorex/platform/common';\nimport { inject, Injectable, InjectionToken, Type } from '@angular/core';\n\nexport interface AXPEntityConfigs {\n viewers: {\n root: () => Type<any> | Promise<Type<any>>;\n detail: {\n list: () => Type<any> | Promise<Type<any>>;\n };\n master: {\n single: () => Type<any> | Promise<Type<any>>;\n create: () => Type<any> | Promise<Type<any>>;\n modify: () => Type<any> | Promise<Type<any>>;\n list: () => Type<any> | Promise<Type<any>>;\n };\n };\n}\n\nexport const AXP_ENTITY_CONFIG_TOKEN = new InjectionToken<AXPEntityConfigs>('AXP_ENTITY_CONFIG_TOKEN');\n\n\n\nexport interface AXPEntityDefinitionLoader {\n get(moduleName: string, entityName: string): Promise<AXPEntity | null>;\n}\n\nexport const AXP_ENTITY_DEFINITION_LOADER = new InjectionToken<AXPEntityDefinitionLoader>(\n 'AXP_ENTITY_DEFINITION_PROVIDER'\n);\n\n@Injectable({ providedIn: 'root' })\nexport class AXPEntityResolver {\n private providers = inject(AXP_ENTITY_DEFINITION_LOADER);\n\n async get(moduleName: string, entityName: string): Promise<AXPEntity | null> {\n if (Array.isArray(this.providers)) {\n for (const loader of this.providers) {\n const entity = await loader.get(moduleName, entityName);\n if (entity) {\n return entity;\n }\n }\n } else {\n return await this.providers.get(moduleName, entityName);\n }\n return null;\n }\n}\n","import { AXStyleColorType } from '@acorex/cdk/common';\nimport {\n AXPEntity,\n AXPEntityAction,\n AXPEntityCommandScope,\n AXPEntityProperty,\n AXPEntityTableColumn,\n resolveActionLook,\n} from '@acorex/platform/common';\nimport { AXPMetaData } from '@acorex/platform/core';\nimport { AXPWidgetColumnNode } from '@acorex/platform/layout/builder';\nimport { computed } from '@angular/core';\n\nexport class AXPEntityCommandTriggerViewModel {\n priority: 'primary' | 'secondary';\n color: AXStyleColorType;\n icon: string;\n title: string;\n name: string;\n key?: string;\n separated: boolean;\n scope: AXPEntityCommandScope;\n disabled: boolean | string;\n hidden: boolean | string;\n options: any;\n metadata?: AXPMetaData;\n default?: boolean;\n\n constructor(entity: AXPEntity, action: AXPEntityAction) {\n this.name = `${typeof action.command === 'string' ? action.command : action.command.name}&${action.name}`;\n this.options = typeof action.command === 'object' ? action.command.options : undefined;\n this.metadata = typeof action.command === 'object' ? action.command.metadata : undefined;\n const resolvedLook = resolveActionLook(action);\n this.priority = action.priority;\n this.title = action.title;\n this.separated = action.separated ?? false;\n this.color = action.color ?? resolvedLook.color;\n this.icon = action.icon ?? resolvedLook.icon;\n this.hidden = action.hidden ?? false;\n this.disabled = action.disabled ?? false;\n this.default = action.default ?? false;\n this.scope = action.scope;\n }\n}\n\nexport class AXPEntityListViewColumnViewModel {\n constructor(\n private property: AXPEntityProperty,\n private column: AXPEntityTableColumn,\n ) {}\n\n name = this.property.name;\n title = this.column.title ?? this.property.title;\n visible = this.column?.options?.visible ?? true;\n dir = this.column.sort?.dir;\n sortEnabled = this.property.options?.sort?.enabled;\n width: '';\n\n node = computed<AXPWidgetColumnNode>(() => {\n const widget = this.property.schema.interface!;\n return {\n path: this.column.options?.dataPath ?? this.name,\n type: widget.type,\n options: { ...widget?.options, ...this.column?.options },\n } as AXPWidgetColumnNode;\n });\n}\n","import { AXDataSource, AXDataSourceFilterOption, AXDataSourceOperator } from '@acorex/cdk/common';\nimport { AXFormatService } from '@acorex/core/format';\nimport {\n AXPEntity,\n AXPEntityCommandScope,\n AXPFilterOperatorMiddlewareService,\n AXPRelatedEntity,\n getEntityInfo,\n} from '@acorex/platform/common';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { Injector, computed, signal } from '@angular/core';\nimport { get } from 'lodash-es';\nimport { AXPEntityResolver } from './entity.config';\nimport { AXPEntityCommandTriggerViewModel, AXPEntityListViewColumnViewModel } from './entity.viewmodel';\nimport { AXPExpressionEvaluatorScope, AXPExpressionEvaluatorService } from '@acorex/platform/core';\n\nexport class AXPEntityDetailListViewModel {\n private detailEntity = signal<AXPEntity | null>(null);\n private formatService = this.injector.get(AXFormatService);\n private workflow = this.injector.get(AXPWorkflowService);\n private filterOperatorMiddleware = this.injector.get(AXPFilterOperatorMiddlewareService);\n private expressionEvaluator = this.injector.get(AXPExpressionEvaluatorService);\n\n dataSource = new AXDataSource({\n byKey: (key) => {\n const func = this.detailEntity()?.queries.byKey.execute as Function;\n return func();\n },\n load: (e) => {\n const func = this.detailEntity()?.queries.list?.execute as Function;\n return func(e);\n },\n pageSize: 5,\n key: 'id',\n });\n\n public parentKey = computed(() => {\n return this.detailEntity()?.parentKey;\n });\n\n constructor(\n private injector: Injector,\n private detailEntityConfig: AXPRelatedEntity,\n private parent: { entity: AXPEntity; data: any },\n ) {\n this.initialize();\n }\n\n async initialize() {\n const entityResolver = this.injector.get(AXPEntityResolver);\n const [moduleName, entityName] = this.detailEntityConfig.entity.split('.');\n const entity = await entityResolver.get(moduleName, entityName);\n if (!entity) {\n throw Error(`Invalid enitity name: ${this.detailEntityConfig.entity}`);\n }\n this.detailEntity.set(entity);\n this.applyFilterAndSort();\n }\n\n public selectedItems = signal<any[]>([]);\n\n public hasSelectedItems = computed<boolean>(() => {\n return this.selectedItems().length > 0;\n });\n\n public clearSelection(): void {\n this.selectedItems.set([]);\n }\n\n //****************** Title ******************//\n public title = computed<string>(() => {\n return (\n this.detailEntityConfig.title ??\n this.detailEntity()?.interfaces?.detail?.list?.title! ??\n this.detailEntity()?.formats.plural!\n );\n });\n\n //****************** Visibility ******************//\n public hidden = computed<Promise<boolean>>(async () => {\n if (typeof this.detailEntityConfig.hidden == 'string') {\n const scope: AXPExpressionEvaluatorScope = {\n context: {\n eval: (path: string) => {\n return get(this.parent.data, path);\n },\n },\n };\n return await this.expressionEvaluator.evaluate(this.detailEntityConfig.hidden, scope);\n } else {\n return this.detailEntityConfig.hidden ?? false;\n }\n });\n\n //****************** Inline filter ******************//\n public inlineFiltersPlaceholders = computed<string[]>(() => {\n //return this.entityDef.properties.filter(p => p.options?.filter?.inline?.enabled).map(c => c.title);\n return [];\n });\n\n public hasInlineFilters = computed<boolean>(() => {\n return this.inlineFiltersPlaceholders().length > 0;\n });\n\n //****************** Actions ******************//\n private allActions = computed<AXPEntityCommandTriggerViewModel[]>(() => {\n const list = this.detailEntity()?.interfaces?.master?.list?.actions ?? [];\n const detailEntityActionList = this.detailEntityConfig.actions ?? [];\n\n const mergedActions = list.map((tr) => {\n const commandName = typeof tr.command === 'string' ? tr.command : tr.command.name;\n const overrideAction = detailEntityActionList.find((action) => {\n const actionCommandName = typeof action.command === 'string' ? action.command : action.command.name;\n return actionCommandName === commandName && action.name === tr.name;\n });\n return new AXPEntityCommandTriggerViewModel(this.detailEntity()!, overrideAction ?? tr);\n });\n\n return mergedActions;\n });\n\n public selectedScopeActionsCount = computed<number>(() => {\n return this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Selected).length;\n });\n\n public primaryActions = computed<AXPEntityCommandTriggerViewModel[]>(() => {\n return this.allActions().filter(\n (a) =>\n a.priority == 'primary' &&\n ((a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||\n (a.scope == AXPEntityCommandScope.TypeLevel && !this.hasSelectedItems())),\n );\n });\n\n public secondaryActions = computed<AXPEntityCommandTriggerViewModel[]>(() => {\n return this.allActions().filter(\n (a) =>\n a.priority == 'secondary' &&\n ((a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||\n (a.scope == AXPEntityCommandScope.TypeLevel && !this.hasSelectedItems())),\n );\n });\n public primaryRowActions = computed<AXPEntityCommandTriggerViewModel[]>(() =>\n this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Individual && a.priority === 'primary'),\n );\n\n public secondaryRowActions = computed<AXPEntityCommandTriggerViewModel[]>(() =>\n this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Individual && a.priority === 'secondary'),\n );\n\n //****************** Filter ******************//\n\n private inlineFilters: AXDataSourceFilterOption = {\n field: null as any,\n logic: 'or',\n operator: null as any,\n filters: [],\n };\n\n applyInlineFilter(value: string) {\n // const props = this.entityDef.properties.filter(c => c.options?.filter?.inline?.enabled);\n // this.inlineFilters.filters = [];\n // if (value) {\n // props.forEach(p => {\n // this.inlineFilters.filters?.push({\n // field: p.name,\n // operator: {\n // type: 'contains'\n // },\n // value\n // })\n // })\n // }\n this.applyFilterAndSort();\n }\n\n applyFilterAndSort() {\n this.dataSource.clearFilter();\n //\n //this.dataSource.sort(...this.detailEntity.().map(s => ({ dir: s.dir, field: s.name } as AXDataSourceSortOption)));\n //\n\n const parentFilters: AXDataSourceFilterOption[] =\n this.detailEntityConfig.conditions?.map((c) => {\n return {\n field: c.name,\n operator: c.operator as unknown as AXDataSourceOperator,\n value: this.parent.data?.id,\n } as AXDataSourceFilterOption;\n }) ?? [];\n const parentFilterWrapper: AXDataSourceFilterOption = {\n field: null as any,\n logic: 'and',\n operator: null as any,\n filters: parentFilters,\n };\n //\n const inline = this.inlineFilters.filters?.length ?? 0;\n const parent = parentFilterWrapper.filters?.length ?? 0;\n //\n if (inline) {\n this.dataSource.filter(this.filterOperatorMiddleware.transformFilter(this.inlineFilters));\n } else if (!inline && parent) {\n this.dataSource.filter(this.filterOperatorMiddleware.transformFilter(parentFilterWrapper));\n } else if (inline && parent) {\n this.dataSource.filter(\n this.filterOperatorMiddleware.transformFilter({\n field: null as any,\n logic: 'and',\n operator: null as any,\n filters: [this.inlineFilters, parentFilterWrapper],\n }),\n );\n }\n //\n this.dataSource.refresh();\n }\n\n //****************** Columns ******************//\n\n columns = computed(() => {\n if (this.detailEntity()) {\n const detailColumns = this.detailEntityConfig.columns ?? [];\n const columns = this.detailEntity()?.columns?.map((c) => c.name) ?? [];\n const props =\n this.detailEntity()?.properties.filter(\n (p) => p.schema.hidden != true && (detailColumns?.length == 0 || detailColumns?.includes(p.name)),\n ) ?? [];\n const displayColumns = props.filter((p) => columns.some((c) => c == p.name));\n return displayColumns.map((p) => {\n return new AXPEntityListViewColumnViewModel(p, this.detailEntity()?.columns?.find((c) => c.name == p.name)!);\n });\n }\n return [];\n });\n\n //****************** Commands ******************//\n public async executeCommand(commandName: string, data: any = null) {\n const action = this.allActions().find((c) => {\n const isSelectedScope = this.selectedItems().length\n ? c.scope == AXPEntityCommandScope.Selected\n : c.scope == AXPEntityCommandScope.Individual;\n return c.name == commandName && (isSelectedScope || c.scope == AXPEntityCommandScope.TypeLevel);\n });\n\n if (!action) return;\n\n const actionData = action.options?.process?.data;\n const initialData = actionData ? { ...data, ...(await this.evaluateExpressions(actionData)) } : data;\n\n await this.workflow.execute(commandName.split('&')[0], {\n entity: getEntityInfo(this.detailEntity()!).source,\n data: action.scope == AXPEntityCommandScope.Selected ? this.selectedItems() : initialData,\n entityInfo: {\n name: this.detailEntity()?.name,\n module: this.detailEntity()?.module,\n title: this.detailEntity()?.title,\n parentKey: this.detailEntity()?.parentKey,\n source: this.detailEntity()?.source,\n },\n options: action.options,\n });\n }\n\n private evaluateExpressions = async (actionData: { [key: string]: string }) => {\n const parentData = this.parent.data;\n const scope: AXPExpressionEvaluatorScope = {\n context: {\n eval: (path: string) => {\n return get(parentData, path);\n },\n },\n };\n\n return await this.expressionEvaluator.evaluate(actionData, scope);\n };\n}\n","import { AXPEntity } from '@acorex/platform/common';\nimport { AXPEntityModifierContext } from './entity-modifier.types';\n\nexport function createModifierContext(entity: AXPEntity): AXPEntityModifierContext {\n const ctx: AXPEntityModifierContext = {\n entity,\n\n title: {\n get: () => entity.title,\n set: (newTitle) => {\n entity.title = newTitle;\n return ctx;\n },\n },\n\n module: {\n get: () => entity.module,\n set: (newValue) => {\n entity.module = newValue;\n return ctx;\n },\n },\n\n name: {\n get: () => entity.name,\n set: (newValue) => {\n entity.name = newValue;\n return ctx;\n },\n },\n\n source: {\n get: () => entity.source,\n set: (newValue) => {\n entity.source = newValue;\n return ctx;\n },\n },\n\n parentKey: {\n get: () => entity.parentKey,\n set: (newValue) => {\n entity.parentKey = newValue;\n return ctx;\n },\n },\n\n category: {\n get: () => entity.category,\n update: (updater) => {\n entity.category = updater(entity.category);\n return ctx;\n },\n },\n\n properties: {\n list: () => entity.properties,\n add: (...props) => {\n entity.properties.push(...props);\n return ctx;\n },\n remove: (predicate) => {\n entity.properties = entity.properties.filter((p) => !predicate(p));\n return ctx;\n },\n find: (name) => ({\n get: () => entity.properties.find((p) => p.name === name),\n update: (updater) => {\n const index = entity.properties.findIndex((p) => p.name === name);\n if (index !== -1) entity.properties[index] = updater(entity.properties[index]);\n return ctx;\n },\n }),\n },\n\n columns: {\n list: () => entity.columns,\n add: (...cols) => {\n entity.columns ??= [];\n entity.columns.push(...cols);\n return ctx;\n },\n remove: (predicate) => {\n if (entity.columns) entity.columns = entity.columns.filter((c) => !predicate(c));\n return ctx;\n },\n find: (name) => ({\n get: () => entity.columns?.find((c) => c.name === name),\n update: (updater) => {\n const index = entity.columns?.findIndex((c) => c.name === name);\n if (index !== undefined && index !== -1 && entity.columns)\n entity.columns[index] = updater(entity.columns[index]);\n return ctx;\n },\n }),\n },\n\n formats: {\n get: () => entity.formats,\n update: (updater) => {\n entity.formats = updater(entity.formats);\n return ctx;\n },\n },\n\n relatedEntities: {\n list: () => entity.relatedEntities,\n add: (...items) => {\n entity.relatedEntities ??= [];\n entity.relatedEntities.push(...items);\n return ctx;\n },\n remove: (predicate) => {\n if (entity.relatedEntities) entity.relatedEntities = entity.relatedEntities.filter((r) => !predicate(r));\n return ctx;\n },\n },\n\n groups: {\n list: () => entity.groups,\n add: (...items) => {\n entity.groups ??= [];\n entity.groups.push(...items);\n return ctx;\n },\n remove: (predicate) => {\n if (entity.groups) entity.groups = entity.groups.filter((g) => !predicate(g));\n return ctx;\n },\n },\n\n commands: {\n get: () => entity.commands,\n update: (updater) => {\n entity.commands = updater(entity.commands);\n return ctx;\n },\n },\n\n queries: {\n get: () => entity.queries,\n update: (updater) => {\n entity.queries = updater(entity.queries);\n return ctx;\n },\n },\n\n validations: {\n get: () => entity.validations,\n update: (updater) => {\n entity.validations = updater(entity.validations);\n return ctx;\n },\n },\n\n interfaces: {\n get: () => entity.interfaces,\n update: (updater) => {\n entity.interfaces = updater(entity.interfaces);\n return ctx;\n },\n\n master: {\n get: () => entity.interfaces?.master,\n update: (updater) => {\n entity.interfaces ??= {};\n entity.interfaces.master = updater(entity.interfaces.master);\n return ctx;\n },\n\n create: {\n get: () => entity.interfaces?.master?.create,\n update: (updater) => {\n entity.interfaces ??= {};\n entity.interfaces.master ??= {};\n entity.interfaces.master.create = updater(entity.interfaces.master.create);\n return ctx;\n },\n },\n modify: {\n get: () => entity.interfaces?.master?.create,\n update: (updater) => {\n entity.interfaces ??= {};\n entity.interfaces.master ??= {};\n entity.interfaces.master.update = updater(entity.interfaces.master.update);\n return ctx;\n },\n },\n single: {\n get: () => entity.interfaces?.master?.single,\n update: (updater) => {\n entity.interfaces ??= {};\n entity.interfaces.master ??= {};\n entity.interfaces.master.single = updater(entity.interfaces.master.single);\n return ctx;\n },\n },\n },\n\n detail: {\n get: () => entity.interfaces?.detail,\n update: (updater) => {\n entity.interfaces ??= {};\n entity.interfaces.detail = updater(entity.interfaces.detail);\n return ctx;\n },\n\n list: {\n get: () => entity.interfaces?.detail?.list,\n update: (updater) => {\n entity.interfaces ??= {};\n entity.interfaces.detail ??= {};\n entity.interfaces.detail.list = updater(entity.interfaces.detail.list);\n return ctx;\n },\n },\n },\n },\n\n toEntity: () => entity,\n };\n\n return ctx;\n}\n","import { InjectionToken } from '@angular/core';\nimport { AXPEntityModifierProvider } from './entity-modifier.types';\n\nexport const AXP_ENTITY_MODIFIER = new InjectionToken<AXPEntityModifierProvider[]>('AXP_ENTITY_MODIFIER');\n","import { AXPEntity } from '@acorex/platform/common';\nimport { inject, Injectable } from '@angular/core';\n\nimport { createModifierContext } from './entity-modifier.context';\nimport { AXPEntityModifier } from './entity-modifier.types';\nimport { AXP_ENTITY_MODIFIER } from './entity-provider';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPEntityMiddleware {\n private modifiers = new Map<string, AXPEntityModifier>();\n protected providedModifiers = inject(AXP_ENTITY_MODIFIER, { optional: true }) || [];\n\n constructor() {\n for (const { entityName, modifier } of this.providedModifiers) {\n this.register(entityName, modifier);\n }\n }\n\n register(entityName: string, modifier: AXPEntityModifier): void {\n this.modifiers.set(entityName, modifier);\n }\n\n process(entity: AXPEntity): AXPEntity {\n const modifier = this.modifiers.get(entity.name);\n if (!modifier) return entity;\n const context = createModifierContext(entity);\n modifier(context);\n return context.toEntity();\n }\n}\n","import { AXPEntity } from '@acorex/platform/common';\nimport { inject, Injectable } from '@angular/core';\n// import { AXPEntityMiddleware } from './entity-middleware';\nimport { AXPEntityMiddleware } from './entity-middleware/entity-middleware';\nimport { AXP_ENTITY_DEFINITION_LOADER, AXPEntityDefinitionLoader, AXPEntityResolver } from './entity.config';\n\nexport interface AXPEntityPreloadEntity {\n module: string;\n entity: string;\n}\n\nexport interface AXPEntityDefinitionPreloader {\n preload(): AXPEntityPreloadEntity[];\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPEntityDefinitionRegistryService {\n private providers = inject(AXP_ENTITY_DEFINITION_LOADER);\n private resolver = inject(AXPEntityResolver);\n private middleware = inject(AXPEntityMiddleware);\n\n async preload() {\n const providers = Array.isArray(this.providers)\n ? this.providers\n : ([this.providers] as AXPEntityDefinitionLoader[]);\n const promises: Promise<AXPEntity | null>[] = [];\n\n providers.forEach((provider) => {\n const items = typeof provider.preload == 'function' ? provider.preload() : [];\n items.forEach((item: AXPEntityPreloadEntity) => {\n promises.push(this.resolver.get(item.module, item.entity));\n });\n });\n\n const entities = await Promise.all(promises);\n entities.forEach((entity) => {\n if (entity != null) this.register(this.middleware.process(entity));\n });\n }\n\n // Stores AXPEntityConfig objects, keyed by a combination of module and entity name.\n private entities = new Map<string, AXPEntity>();\n\n // Entity resolver service for dynamically loading entity configurations.\n private entityResolver = inject(AXPEntityResolver); // Assuming AXPEntityLoader is the correct type\n\n /**\n * Registers a new entity configuration. Entities are identified uniquely by a combination\n * of their module and name.\n *\n * @param config The configuration object of the entity to be registered.\n */\n register(config: AXPEntity): void {\n const key = this.createEntityKey(config.module, config.name);\n this.entities.set(key, config);\n }\n\n /**\n * Returns an array of all registered entity configurations.\n *\n * @returns An array of AXPEntity objects.\n */\n getAll(): AXPEntity[] {\n return Array.from(this.entities.values());\n }\n\n /**\n * Resolves an entity configuration based on module and entity name. If the configuration\n * is not already registered, attempts to load it dynamically. Throws an error if the\n * entity cannot be found or loaded.\n *\n * @param moduleName The module name of the entity.\n * @param entityName The name of the entity.\n * @returns A promise resolving to the entity configuration.\n * @throws Error if the entity configuration cannot be resolved.\n */\n async resolve(moduleName: string, entityName: string): Promise<AXPEntity> {\n const key = this.createEntityKey(moduleName, entityName);\n let config = this.entities.get(key) ?? null;\n\n if (!config) {\n try {\n config = await this.entityResolver.get(moduleName, entityName);\n if (config) {\n const processedConfig = this.middleware.process(config);\n this.register(processedConfig);\n return processedConfig;\n }\n } catch (error) {\n throw error; // Rethrow to allow error handling by caller\n }\n\n if (!config) {\n throw new Error(`Invalid entity name: ${key}`);\n }\n }\n return config;\n }\n\n /**\n * Creates a unique key for an entity based on its module and name.\n *\n * @param moduleName The module name of the entity.\n * @param entityName The name of the entity.\n * @returns The unique key for the entity.\n */\n private createEntityKey(moduleName: string, entityName: string): string {\n return `${moduleName}.${entityName}`;\n }\n}\n","import {\n AXPEntity,\n AXPEntityProperty,\n AXPEntityPropertyCreateView,\n AXPEntitySectionView,\n AXPGridLayoutOptions,\n getEntityInfo,\n} from '@acorex/platform/common';\nimport { AXPExpressionEvaluatorScope, AXPExpressionEvaluatorService } from '@acorex/platform/core';\nimport { AXPLayoutBuilderService, AXPPageStatus, AXPWidgetNode } from '@acorex/platform/layout/builder';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { Injectable, Injector, computed, inject, signal } from '@angular/core';\nimport { cloneDeep, get, isNil, merge, set } from 'lodash-es';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\n\nexport class AXPEntityCreateViewSectionViewModel {\n constructor(private entity: AXPEntity, private section: AXPEntitySectionView) {}\n\n group = this.entity.groups?.find((c) => c.id == this.section.id)!;\n name = signal(this.group.id);\n\n title = computed<string>(() => {\n return this.group.title ?? this.group.id;\n });\n\n description = computed<string | null | undefined>(() => {\n return this.group.description;\n });\n\n layout = computed<AXPGridLayoutOptions>(() => {\n const source = cloneDeep(this.section.layout ?? {}) as object;\n set(source, 'positions.default.colSpan', 12);\n return source as AXPGridLayoutOptions;\n });\n\n elements = computed(() => {\n const { interfaces, properties } = this.entity;\n const createProps = interfaces?.master?.create?.properties ?? [];\n const createPropNames = new Set(createProps.map(({ name }) => name));\n\n const filteredProperties = properties.filter(\n ({ groupId, schema, name }) => groupId === this.group.id && !schema.hidden && createPropNames.has(name)\n );\n\n return filteredProperties.map((property) => {\n const createProp = createProps.find(({ name }) => name === property.name);\n return new AXPEntityCreateViewElementViewModel(this.entity, this, property, createProp!);\n });\n });\n}\n\nexport class AXPEntityCreateViewElementViewModel {\n constructor(\n private entity: AXPEntity,\n private section: AXPEntityCreateViewSectionViewModel,\n private property: AXPEntityProperty,\n private createProp: AXPEntityPropertyCreateView\n ) {}\n\n name = signal(this.property.name);\n title = signal(this.property.title);\n description = signal(this.property.description);\n\n editable = computed<boolean>(() => {\n return !(this.property.schema.readonly ?? false);\n });\n\n isRequired = computed<boolean>(() => {\n return this.property.validations?.some((c) => c.rule == 'required') || false;\n });\n\n layout = computed<AXPGridLayoutOptions>(() => {\n const source = cloneDeep(this.createProp.layout ?? {}) as object;\n set(source, 'positions.default.colSpan', 12);\n return source as AXPGridLayoutOptions;\n });\n\n node = computed<AXPWidgetNode>(() => {\n const schema = this.property.schema!;\n const widget = schema.interface!;\n return {\n type: widget.type,\n mode: this.editable() ? 'edit' : 'view',\n path: this.name(),\n name: this.name(),\n children: widget.children,\n formula: widget.formula,\n triggers: widget.triggers,\n valueTransforms: widget.valueTransforms,\n options: merge(schema.interface?.options, {\n validations: this.property.validations?.map((c) => ({ rule: c.rule, message: c.message, options: c.options })),\n }),\n } as AXPWidgetNode;\n });\n}\n\nexport class AXPEntityMasterCreateViewModel {\n private entityDef = cloneDeep(this.config)!;\n\n private workflow = this.injector.get(AXPWorkflowService);\n private expressionEvaluator = this.injector.get(AXPExpressionEvaluatorService);\n\n public builder: AXPLayoutBuilderService;\n\n constructor(\n private readonly injector: Injector,\n private readonly config: AXPEntity,\n private readonly initialData: any = {},\n private readonly commandOptions: any\n ) {\n if (!initialData) initialData = {};\n\n const scope: AXPExpressionEvaluatorScope = {\n context: {\n eval: (path: string) => {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(get(initialData, path));\n });\n });\n },\n },\n };\n\n const processDefault = async (value: any) => {\n if (typeof value == 'function') {\n return value();\n } else if (typeof value == 'string' && value.startsWith('{{')) {\n return await this.expressionEvaluator.evaluate(value, scope);\n }\n return value;\n };\n\n this.config.properties\n .filter((c) => !isNil(c.schema.defaultValue))\n .forEach(async (p) => {\n const value = await processDefault(p.schema.defaultValue);\n set(initialData, p.name, value);\n });\n //\n this.context.set(initialData);\n this.options.set(commandOptions);\n //\n const { redirect = true, canCreateNewOne = true } = commandOptions?.['process'] ?? {};\n this.canCreateNewOne.set(canCreateNewOne);\n this.redirect.set(redirect);\n }\n\n public context = signal<any>(this.initialData ?? {});\n public options = signal<any>(this.commandOptions ?? {});\n\n public isInProgress = signal<boolean>(false);\n public canCreateNewOne = signal<boolean>(true);\n public redirect = signal<boolean>(true);\n\n public sections = computed<AXPEntityCreateViewSectionViewModel[]>(() => {\n const { interfaces, properties } = this.entityDef;\n const createProps = interfaces?.master?.create?.properties?.map(({ name }) => name) ?? [];\n\n const visibleProperties = properties.filter(\n ({ groupId, schema, name }) => groupId && !schema.hidden && createProps.includes(name)\n );\n\n const sections =\n interfaces?.master?.create?.sections?.filter(({ id }) =>\n visibleProperties.some(({ groupId }) => groupId === id)\n ) ?? [];\n\n return sections.map((section) => new AXPEntityCreateViewSectionViewModel(this.entityDef, section));\n });\n\n public async save(): Promise<any | void> {\n try {\n this.isInProgress.set(true);\n this.builder.setStatus(AXPPageStatus.Submitting);\n const exec = this.entityDef.commands?.create?.execute as Function;\n const result = await exec(this.context());\n this.context.update((c) => ({ ...c, ...result }));\n return new Promise((resolve) => {\n setTimeout(() => {\n this.builder.setStatus(AXPPageStatus.Submitted);\n resolve(result);\n });\n });\n } catch (error: any) {\n this.builder.setStatus(AXPPageStatus.Error);\n return Promise.reject(error);\n } finally {\n this.isInProgress.set(false);\n }\n }\n\n public async createNewOne() {\n await this.workflow.execute('create-entity', {\n entity: getEntityInfo(this.entityDef).source,\n options: this.options(),\n data: this.initialData,\n // entityInfo\n });\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXPEntityCreateViewModelFactory {\n private entityService = inject(AXPEntityDefinitionRegistryService);\n private layout = inject(AXPLayoutThemeService);\n private injector = inject(Injector);\n\n public async create(\n moduleName: string,\n entityName: string,\n initialData: any = null,\n options: { canCreateNewOne: boolean; redirect: boolean } = { canCreateNewOne: true, redirect: true }\n ): Promise<AXPEntityMasterCreateViewModel> {\n this.layout.setNavigationLoading(true);\n const config = await this.entityService.resolve(moduleName, entityName);\n this.layout.setNavigationLoading(false);\n return new AXPEntityMasterCreateViewModel(this.injector, config, initialData, options);\n }\n}\n","import { AXDataSource, AXDataSourceFilterOption, AXDataSourceSortOption } from '@acorex/cdk/common';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport {\n AXPEntity,\n AXPEntityCommandScope,\n AXPEntityProperty,\n AXPFilterDefinition,\n AXPFilterOperatorMiddlewareService,\n AXPFilterQuery,\n AXPQueryView,\n AXPRefreshEvent,\n AXPSettingService,\n getEntityInfo,\n} from '@acorex/platform/common';\nimport {\n AXPBreadcrumbItem,\n AXPContextStore,\n AXPExecuteCommand,\n AXPExpressionEvaluatorScope,\n AXPExpressionEvaluatorService,\n AXPPlatformScope,\n} from '@acorex/platform/core';\nimport { AXPWidgetRegistryService, AXPWidgetTypesMap } from '@acorex/platform/layout/builder';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXPWorkflowService, ofType } from '@acorex/platform/workflow';\nimport { Injectable, EnvironmentInjector, computed, inject, signal, Injector } from '@angular/core';\nimport { ActivatedRouteSnapshot, ResolveFn, RouterStateSnapshot } from '@angular/router';\nimport { cloneDeep, get, set } from 'lodash-es';\nimport { Subject, takeUntil } from 'rxjs';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\nimport { AXPEntityCommandTriggerViewModel, AXPEntityListViewColumnViewModel } from './entity.viewmodel';\n\nexport interface AXPEntityMasterListViewSortPropViewModel {\n name: string;\n title: string;\n dir?: string;\n}\n\nexport class AXPEntityMasterListViewQueryViewModel {\n constructor(\n private entity: AXPEntity,\n private section: AXPEntityMasterListViewModel,\n private view: AXPQueryView,\n ) { }\n\n name = this.view.name;\n title = this.view.title;\n sorts = this.view.sorts;\n columns = this.view.columns;\n conditions = this.view.conditions;\n indexCol = this.view.indexCol;\n pageSize = this.view.pageSize;\n}\n\nexport class AXPEntityMasterListViewModel {\n readonly entityDef = cloneDeep(this.config)!;\n private readonly _viewDef = cloneDeep(this.entityDef.interfaces?.master?.list)!;\n private readonly formatService = this.injector.get(AXFormatService);\n private readonly session = this.injector.get(AXPSessionService);\n private readonly workflow = this.injector.get(AXPWorkflowService);\n private readonly settings = this.injector.get(AXPSettingService);\n private readonly widgetResolver = this.injector.get(AXPWidgetRegistryService);\n private readonly expressionEvaluator = this.injector.get(AXPExpressionEvaluatorService);\n\n private readonly filterOperatorMiddleware = this.injector.get(AXPFilterOperatorMiddlewareService);\n\n private settingEntityKey = `${this.config.module}:${this.config.name}`;\n private readonly destroyed = new Subject<void>();\n\n public events$: Subject<{ action: string; meta?: any }> = new Subject();\n\n //****************** Views ******************//\n\n views = computed(() => {\n const views = this.entityDef.interfaces?.master?.list?.views ?? [];\n\n return views.map((v) => {\n return new AXPEntityMasterListViewQueryViewModel(this.entityDef, this, v);\n });\n });\n\n view = signal<AXPEntityMasterListViewQueryViewModel>(this.views()[0]);\n\n async setView(viewName: string | null = null) {\n const entitySetting = await this.settings.get(this.settingEntityKey);\n const selectedViewName = entitySetting?.list?.currentView;\n if (viewName != this.view().name) {\n this.view.set(this.views().find((c) => c.name == (viewName || selectedViewName)) ?? this.views()[0]);\n\n this.applyViewSorts();\n this.applyViewColumns();\n this.applyViewFilters();\n // this.applyFilterAndSort();\n this.applySettings();\n }\n }\n\n dataSource = new AXDataSource({\n byKey: (key) => {\n const func = this.entityDef.queries.byKey.execute as Function;\n return func();\n },\n load: (e) => {\n const func = this.entityDef.queries.list?.execute as Function;\n return func(e);\n },\n pageSize: this.view().pageSize || 10,\n key: 'id',\n });\n\n constructor(\n private injector: Injector,\n private config: AXPEntity,\n ) {\n this.workflow.events$\n .pipe(ofType(AXPRefreshEvent))\n .pipe(takeUntil(this.destroyed))\n .subscribe((event) => {\n if (event.payload.entity == getEntityInfo(this.entityDef).source) {\n this.selectedItems.set([]);\n this.events$.next({ action: 'refresh', meta: event.payload.meta });\n }\n });\n this.sortedFields.set(this.sortableFields());\n }\n\n public async applySettings() {\n this.saveSettings('view');\n\n const listViewSetting = await this.settings.get(this.settingEntityKey);\n if (listViewSetting) {\n const columns = listViewSetting.list.views[this.view().name].columns;\n const pageSize = listViewSetting.list.views[this.view().name].pageSize;\n const columnVisibilityMap = new Map(columns.map((col: any) => [col.name, col.visible]));\n const columnWidthsMap = new Map(columns.map((col: any) => [col.name, col.width]));\n\n // if (pageSize) {\n // this.dataSource.setPageSize(pageSize);\n // }\n\n this.columns.update((prev) =>\n prev\n .map((c: any) => {\n return { ...c, width: columnWidthsMap.get(c.name), visible: columnVisibilityMap.get(c.name) ?? c.visible };\n }) // Update visibility\n .sort(\n (a, b) =>\n columns.findIndex((col: any) => col.name === a.name) -\n columns.findIndex((col: any) => col.name === b.name),\n ),\n );\n }\n }\n\n public async saveSettings(changesType: 'columnSizes' | 'columnOrders' | 'view' | 'pageSize', data?: any) {\n const updateSettings = (updateFn: (prev: any) => any) => {\n this.settings.scope(AXPPlatformScope.User).update(this.settingEntityKey, updateFn);\n };\n\n switch (changesType) {\n case 'columnSizes':\n updateSettings((prev) => {\n const field = data.dataField.split('-')[1];\n const newSettings = { ...prev };\n\n set(\n newSettings,\n `list.views.${this.view().name}.columns`,\n prev?.list?.views?.[this.view().name]?.columns?.map((c: any) => ({\n ...c,\n width: c.name === field ? data.width : c.width,\n })),\n );\n\n return newSettings;\n });\n break;\n case 'columnOrders':\n updateSettings((prev) => {\n const newSettings = { ...prev };\n\n set(\n newSettings,\n `list.views.${this.view().name}.columns`,\n data.map((c: any) => ({\n name: c.name,\n visible: c.visible,\n width: c.width,\n })),\n );\n\n return newSettings;\n });\n break;\n case 'view':\n updateSettings((prev) => ({\n ...prev,\n list: {\n ...prev?.list,\n currentView: this.view().name,\n },\n }));\n break;\n\n case 'pageSize':\n updateSettings((prev) => ({\n ...prev,\n list: {\n ...prev?.list,\n views: {\n ...prev?.list?.views,\n [this.view().name]: {\n ...prev?.list?.views?.[this.view().name],\n pageSize: data,\n },\n },\n },\n }));\n break;\n\n default:\n break;\n }\n }\n\n public selectedItems = signal<any[]>([]);\n\n public parentKey = computed(() => {\n return this.entityDef.parentKey;\n });\n\n public hasSelectedItems = computed<boolean>(() => {\n return this.selectedItems().length > 0;\n });\n\n public clearSelection(): void {\n this.selectedItems.set([]);\n }\n\n //****************** Title ******************//\n public title = computed<string>(() => {\n return this._viewDef.title ?? this.entityDef.formats.plural!;\n });\n //****************** Description ******************//\n public description = computed<string | null>(() => {\n return this._viewDef.description ?? null;\n });\n\n //****************** Inline filter ******************//\n public inlineFiltersPlaceholders = computed<string[]>(() => {\n return this.entityDef.properties.filter((p) => p.options?.filter?.inline?.enabled).map((c) => c.title ?? c.name);\n });\n\n public hasInlineFilters = computed<boolean>(() => {\n return this.inlineFiltersPlaceholders().length > 0;\n });\n\n //****************** Beardcrumbs ******************//\n public beardcrumbs = computed<AXPBreadcrumbItem[]>(() => {\n return [\n {\n title: this.title(),\n },\n ];\n });\n\n //****************** Actions ******************//\n private allActions = computed<AXPEntityCommandTriggerViewModel[]>(() => {\n const list = this.entityDef.interfaces?.master?.list?.actions ?? [];\n return list.map((tr) => new AXPEntityCommandTriggerViewModel(this.entityDef, tr)) ?? [];\n });\n\n public async getPrimaryActions(): Promise<AXPEntityCommandTriggerViewModel[]> {\n const scope: AXPExpressionEvaluatorScope = {};\n const actions = await Promise.all(\n this.allActions()\n .filter((a) => a.priority == 'primary' &&\n ((a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||\n (a.scope == AXPEntityCommandScope.TypeLevel && !this.hasSelectedItems())))\n .map(async (a) => {\n const isHidden = await this.expressionEvaluator.evaluate(a.hidden, scope);\n if (isHidden) return null;\n const disabled = await this.expressionEvaluator.evaluate(a.disabled, scope);\n return { ...a, disabled };\n }),\n );\n return actions as AXPEntityCommandTriggerViewModel[];\n }\n\n public async getSecondaryActions(): Promise<AXPEntityCommandTriggerViewModel[]> {\n const scope: AXPExpressionEvaluatorScope = {};\n const actions = await Promise.all(\n this.allActions()\n .filter((a) => a.priority == 'secondary' &&\n ((a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||\n (a.scope == AXPEntityCommandScope.TypeLevel && !this.hasSelectedItems())))\n .map(async (a) => {\n const isHidden = await this.expressionEvaluator.evaluate(a.hidden, scope);\n if (isHidden) return null;\n const disabled = await this.expressionEvaluator.evaluate(a.disabled, scope);\n return { ...a, disabled };\n }),\n );\n return actions as AXPEntityCommandTriggerViewModel[];\n }\n\n\n public selectedScopeActionsCount = computed<number>(() => {\n return this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Selected).length;\n });\n\n public primaryRowActions = computed<AXPEntityCommandTriggerViewModel[]>(() =>\n this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Individual && a.priority === 'primary'),\n );\n\n\n\n public async secondaryRowActions(rowData: any): Promise<AXPEntityCommandTriggerViewModel[]> {\n const scope: AXPExpressionEvaluatorScope = {\n context: {\n eval: (path: string) => get(rowData, path),\n },\n };\n\n const actions = await Promise.all(\n this.allActions()\n .filter((a) => a.scope === AXPEntityCommandScope.Individual && a.priority === 'secondary')\n .map(async (a) => {\n const isHidden = await this.expressionEvaluator.evaluate(a.hidden, scope);\n if (isHidden) return null;\n const disabled = await this.expressionEvaluator.evaluate(a.disabled, scope);\n return { ...a, disabled };\n }),\n );\n\n return actions.filter(Boolean) as AXPEntityCommandTriggerViewModel[];\n }\n\n //****************** Filter ******************//\n\n filterQueries = signal<AXPFilterQuery[]>([]);\n\n get properties(): AXPEntityProperty[] {\n return this.entityDef.properties;\n }\n\n get filtersDef(): AXPFilterDefinition[] {\n const props = this.entityDef.properties.filter(\n (c) => c.options?.filter?.advance?.enabled || c.options?.filter?.inline?.enabled,\n );\n return props.map((e) => {\n const widgetConfig = this.widgetResolver.resolve(\n e.schema.interface?.type as AXPWidgetTypesMap[keyof AXPWidgetTypesMap],\n );\n\n const type = (e.options?.filter?.advance?.widgetType ||\n widgetConfig?.defaultFilterWidgetName ||\n e.schema.interface?.type) as AXPWidgetTypesMap[keyof AXPWidgetTypesMap];\n return {\n title: e.title,\n field: e.name,\n operator: {\n type: 'contains',\n },\n widget: { ...e.schema.interface, path: e.name, type },\n filters: [],\n isParametric: false,\n icon: widgetConfig?.icon,\n filterType: {\n advance: e.options?.filter?.advance?.enabled ?? false,\n inline: e.options?.filter?.inline?.enabled ?? false,\n },\n };\n });\n }\n\n // const viewFilters = this.view().conditions.map((f) => ({\n // field: f.name,\n // operator: f.operator,\n // value: f.value,\n // }));\n async applyViewFilters() {\n const viewFilters = this.view().conditions.map((f) => ({\n field: f.name,\n operator: f.operator,\n value: f.value,\n }));\n this.filterQueries.update((prev) => ({ ...prev, filters: viewFilters as AXPFilterQuery[] }));\n }\n\n resetFilters() {\n this.applyViewFilters();\n }\n\n async applyFilterAndSort() {\n this.dataSource.clearFilter();\n this.dataSource.sort(\n ...this.sortedFields()\n .filter((sf) => sf.dir)\n .map((s) => ({ dir: s.dir, field: s.name }) as AXDataSourceSortOption),\n );\n\n this.dataSource.filter(\n this.filterOperatorMiddleware.transformFilter({\n field: null as any,\n logic: 'and',\n operator: null as any,\n filters: this.filterQueries() as AXDataSourceFilterOption[],\n }),\n );\n this.dataSource.refresh();\n }\n\n //****************** Columns ******************//\n\n private allAvailableColumns = (): AXPEntityListViewColumnViewModel[] => {\n const { columns = [], properties } = this.entityDef;\n const visibleProperties = properties.filter(({ schema }) => !schema?.hidden);\n const visiblePropNames = new Set(visibleProperties.map(({ name }) => name));\n return columns\n .filter(({ name }) => visiblePropNames.has(name))\n .map((column) => {\n const property = visibleProperties.find(({ name }) => name === column.name);\n return new AXPEntityListViewColumnViewModel(property!, column);\n });\n };\n\n visibleColumnCount = () => {\n return this.columns().filter((c) => c.visible == true).length;\n };\n\n columns = signal<AXPEntityListViewColumnViewModel[]>([]);\n\n resetColumns() {\n this.applyViewColumns();\n }\n\n async onColumnsChanged(columns: AXPEntityListViewColumnViewModel[]) {\n this.saveSettings('columnOrders', columns);\n }\n\n applyViewColumns() {\n const cols = this.view().columns;\n const cloned = this.allAvailableColumns().map((c) => {\n const column = this.entityDef.columns?.find((cc) => cc.name == c.name);\n const prop = this.entityDef.properties.find((p) => p.name == c.name);\n const col = new AXPEntityListViewColumnViewModel(prop!, column!);\n col.visible = !cols.some((c) => c == col.name) && col.visible != false;\n return col;\n });\n this.columns.set(cloned);\n }\n\n //****************** Sort ******************//\n\n sortableFields = () => {\n const props = this.entityDef.properties.filter((c) => c.options?.sort?.enabled);\n return props.map((e) => {\n return {\n name: e.name,\n title: e.title,\n dir: undefined,\n };\n });\n };\n\n sortableFieldsCount = () => {\n return this.entityDef.properties.filter((c) => c.options?.sort?.enabled).length ?? 0;\n };\n\n canSort = () => {\n return this.sortableFieldsCount() > 0;\n };\n\n canAddMoreSort = () => {\n return this.sortedCount() < this.sortableFieldsCount();\n };\n\n sortedCount = () => {\n return this.sortedFields().filter((i) => i.dir).length;\n };\n\n sortedFields = signal<AXPEntityMasterListViewSortPropViewModel[]>([]);\n\n resetSorts() {\n this.applyViewSorts();\n }\n\n applySorts() {\n this.applyFilterAndSort();\n }\n\n addSort(): void {\n const prop = this.sortableFields().find((c) => !this.sortedFields().some((s) => s.name == c.name));\n if (prop) {\n this.sortedFields.set([...this.sortedFields(), ...[prop]]);\n }\n }\n\n removeSort(name: string): void {\n this.sortedFields.set(this.sortedFields().filter((c) => c.name != name));\n }\n\n applyViewSorts() {\n const viewSorts = this.view().sorts;\n\n this.sortedFields.update((prev) => {\n const viewSortsMap = new Map(viewSorts.map((vs) => [vs.name, vs]));\n return prev.map((sf) => {\n const updatedSort = viewSortsMap.get(sf.name);\n if (updatedSort) {\n return { ...updatedSort, title: sf.title };\n }\n return sf;\n });\n });\n }\n\n //****************** Commands ******************//\n public async executeCommand(commandName: string, data: any = null) {\n const action = this.allActions().find((c) => {\n return (\n c.name == commandName &&\n ((this.selectedItems().length\n ? c.scope == AXPEntityCommandScope.Selected\n : c.scope == AXPEntityCommandScope.Individual) ||\n c.scope == AXPEntityCommandScope.TypeLevel)\n );\n });\n const command = commandName.split('&')[0];\n const options = await this.evaluateExpressions(action?.options,data);\n await this.workflow.execute(command, {\n entity: getEntityInfo(this.entityDef).source,\n entityInfo: {\n name: this.entityDef.name,\n module: this.entityDef.module,\n title: this.entityDef.title,\n parentKey: this.entityDef.parentKey,\n source: this.entityDef.source,\n },\n data: action?.scope == AXPEntityCommandScope.Selected ? this.selectedItems() : data,\n options: options,\n metadata: action?.metadata,\n });\n }\n\n private evaluateExpressions = async (options: { [key: string]: string },data:any) => {\n\n \n const scope: AXPExpressionEvaluatorScope = {\n context: {\n eval: (path: string) => {\n return get(data, path);\n },\n },\n };\n\n return await this.expressionEvaluator.evaluate(options, scope);\n };\n\n async execute(command: AXPExecuteCommand): Promise<void> {\n switch (command?.name) {\n case 'navigate':\n await this.workflow.execute('navigate', {\n options: {\n path: command.options?.['path'],\n },\n });\n break;\n default:\n this.executeCommand(command.name);\n break;\n }\n }\n\n //\n destroy() {\n this.destroyed.next();\n this.destroyed.complete();\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXPEntityListViewModelFactory {\n private entityService = inject(AXPEntityDefinitionRegistryService);\n private layout = inject(AXPLayoutThemeService);\n private injector = inject(Injector);\n\n public async create(moduleName: string, entityName: string): Promise<AXPEntityMasterListViewModel> {\n this.layout.setNavigationLoading(true);\n const config = await this.entityService.resolve(moduleName, entityName);\n this.layout.setNavigationLoading(false);\n return new AXPEntityMasterListViewModel(this.injector, config);\n }\n}\n\nexport const AXPEntityListViewModelResolver: ResolveFn<Promise<AXPEntityMasterListViewModel>> = (\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot,\n service: AXPEntityListViewModelFactory = inject(AXPEntityListViewModelFactory),\n): Promise<AXPEntityMasterListViewModel> => {\n const moduleName = route.parent?.paramMap.get('module') as string;\n const entityName = route.paramMap.get('entity') as string;\n //\n return service.create(moduleName, entityName);\n};\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPEntity, AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\n\nexport const AXPEntityDeletedEvent = createWorkFlowEvent<{ entity: string; ids: string[]; meta?: any }>(\n '[Entity] Deleted'\n);\n\nexport interface AXPEntityDeleteOptions {\n source: string;\n ids: string[];\n}\n\n@Injectable()\nexport class AXPEntityPerformDeleteAction extends AXPWorkflowAction {\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\n private dialogService = inject(AXDialogService);\n private loadingDialog = inject(AXLoadingDialogService);\n private translationService = inject(AXTranslationService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const moduleEntity = context.getVariable('entity');\n const data = context.getVariable<any>('data');\n const meta = context.getVariable<any>('meta');\n\n const options = context.getVariable<any>('options');\n const process = options?.['process'];\n\n const showResult = process?.showResult ?? true;\n\n const entities: AXPEntityDeleteOptions[] = [];\n if (moduleEntity != null) {\n const ids = Array.isArray(data) ? data.map((c) => c.id) : [data.id];\n entities.push({\n source: moduleEntity,\n ids: ids,\n });\n } else {\n const listEntities = context.getVariable('entities');\n entities.push(...listEntities);\n }\n\n const entityDefinitions: { [key: string]: AXPEntity } = {};\n let deletedCount = 0;\n context.setVariable('deleteSuccessful', false);\n for await (const entity of entities) {\n const [moduleName, entityName] = entity.source.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n if (entityDefinition.parentKey && data[entityDefinition.parentKey]) {\n context.setVariable('meta', { ...meta, refreshTargetId: data[entityDefinition.parentKey] });\n }\n entityDefinitions[entity.source] = entityDefinition;\n }\n\n // Compute consolidated ids from all entities\n const idLength = entities.reduce((acc: number, curr) => acc + curr.ids.length, 0);\n const dialog = this.loadingDialog.show({\n title: await this.translationService.translateAsync('workflow.deleting'),\n mode: 'determinate',\n status: 'Deleting...',\n progressValue: 0,\n text: `0/${idLength}`,\n buttons: [\n {\n text: await this.translationService.translateAsync('cancel'),\n color: 'danger',\n onClick: () => {\n dialog.close();\n },\n },\n ],\n });\n\n let allPromises: any[] = [];\n for (const entity of entities) {\n const entityDefinition = entityDefinitions[entity.source];\n if (entityDefinition.commands?.delete != null) {\n const deleteExec = entityDefinition.commands?.delete?.execute as Function;\n const entityPromises = (entity.ids as any[])\n .map((id, i) => {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(deleteExec(id));\n }, i * 200);\n });\n })\n .map((p) =>\n p?.then(\n (value) => {\n deletedCount++;\n dialog.setProgressText(`${deletedCount}/${idLength}`);\n dialog.setProgressValue((deletedCount / idLength) * 100);\n return { status: 'fulfilled', value };\n },\n (reason) => ({ status: 'rejected', reason })\n )\n );\n\n allPromises = allPromises.concat(entityPromises);\n } else {\n throw new Error(\n `The delete operation cannot be performed on ${entityDefinition.title}. This action might be restricted or not applicable for the selected item.`\n );\n }\n }\n\n const results = await Promise.all(allPromises);\n const successfulPromises = results.filter((result: any) => result?.status === 'fulfilled').length;\n const failedPromises = results.filter((result: any) => result?.status === 'rejected').length;\n setTimeout(() => {\n dialog.close();\n }, 300);\n\n // Store the last entity for use in event dispatching\n const lastEntity = entities[entities.length - 1];\n\n // Handle different scenarios for alerts\n if (successfulPromises > 0 && failedPromises === 0) {\n // All items deleted successfully\n if (showResult) {\n await this.dialogService.alert(\n await this.translationService.translateAsync('workflow.success-delete-title'),\n await this.translationService.translateAsync('workflow.success-delete-body', {\n params: { item: successfulPromises },\n }), //TODO test translation\n 'success'\n );\n }\n // Dispatch actions\n this.dispatch(AXPEntityDeletedEvent({ entity: lastEntity.source, ids: lastEntity.ids, meta: meta }));\n this.dispatch(AXPRefreshEvent({ entity: lastEntity.source, meta: context.getVariable<any>('meta') }));\n } else if (successfulPromises > 0 && failedPromises > 0) {\n // Some items deleted successfully, some failed\n if (showResult) {\n await this.dialogService.alert(\n await this.translationService.translateAsync('workflow.success-partial-delete-title'),\n await this.translationService.translateAsync('workflow.partial-delete-body', {\n params: { success: successfulPromises, fail: failedPromises },\n }),\n 'warning'\n );\n }\n // Dispatch actions\n this.dispatch(AXPEntityDeletedEvent({ entity: lastEntity.source, ids: lastEntity.ids, meta: meta }));\n } else if (successfulPromises === 0 && failedPromises > 0) {\n // No items deleted, all failed\n if (showResult) {\n await this.dialogService.alert(\n await this.translationService.translateAsync('workflow.fail-delete-title'),\n await this.translationService.translateAsync('workflow.fail-delete-body', {\n params: { item: failedPromises },\n }),\n 'danger'\n );\n }\n } else {\n // No items to delete (no successful or failed promises)\n if (showResult) {\n await this.dialogService.alert(\n await this.translationService.translateAsync('workflow.no-need'),\n await this.translationService.translateAsync('workflow.no-item'),\n 'primary'\n );\n }\n }\n }\n}\n\nexport const AXPDeleteEntityWorkflow: AXPWorkflow = {\n startStepId: 'confirm-delete',\n steps: {\n 'confirm-delete': {\n action: 'show-prompt-dialog',\n input: {\n title: 'workflow.warning',\n message: `workflow.confirm-delete`,\n type: 'danger',\n },\n nextSteps: [\n {\n conditions: [\n {\n type: 'AND',\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\n },\n ],\n nextStepId: 'perform-delete',\n },\n ],\n },\n 'perform-delete': {\n action: 'entity-perform-delete',\n },\n },\n};\n","import { AXPEntity, AXPEntityProperty, AXPGridLayoutOptions } from '@acorex/platform/common';\nimport { AXPLayoutBuilderService, AXPPageStatus, AXPWidgetNode } from '@acorex/platform/layout/builder';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { computed, inject, Injectable, Injector, signal } from '@angular/core';\nimport { cloneDeep, merge, set } from 'lodash-es';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\n\nexport class AXPEntityMasterUpdateElementViewModel {\n constructor(\n private entity: AXPEntity,\n private property: AXPEntityProperty,\n ) {}\n\n name = signal(this.property.name);\n title = signal(this.property.title);\n description = signal(this.property.description);\n\n editable = computed<boolean>(() => {\n return !(this.property.schema.readonly ?? false);\n });\n\n isRequired = computed<boolean>(() => {\n return this.property.validations?.some((c) => c.rule == 'required') || false;\n });\n\n layout = computed<AXPGridLayoutOptions>(() => {\n const updateProp = this.entity.interfaces?.master?.update?.properties?.find((c) => c.name == this.property.name);\n const source = cloneDeep(updateProp?.layout ?? {}) as object;\n set(source, 'positions.default.colSpan', 12);\n return source as AXPGridLayoutOptions;\n });\n\n node = computed<AXPWidgetNode>(() => {\n const schema = this.property.schema!;\n const widget = schema.interface!;\n return {\n type: widget.type,\n mode: this.editable() ? 'edit' : 'view',\n path: this.name(),\n name: this.name(),\n children: widget.children,\n formula: widget.formula,\n triggers: widget.triggers,\n valueTransforms: widget.valueTransforms,\n options: merge(schema.interface?.options, {\n validations: this.property.validations?.map((c) => ({ rule: c.rule, message: c.message, options: c.options })),\n }),\n } as AXPWidgetNode;\n });\n}\n\nexport class AXPEntityMasterUpdateViewModel {\n private entityDef = cloneDeep(this.config)!;\n private workflow = this.injector.get(AXPWorkflowService);\n\n public builder: AXPLayoutBuilderService;\n\n constructor(\n private injector: Injector,\n private config: AXPEntity,\n private entityData: any,\n private props: string[],\n ) {}\n\n public isInProgress = signal<boolean>(false);\n\n public context = signal<any>(cloneDeep(this.entityData));\n\n elements = computed(() => {\n const props = this.entityDef.properties.filter((c) => this.props.includes(c.name) && c.schema.hidden != true);\n return props.map((e) => {\n return new AXPEntityMasterUpdateElementViewModel(this.entityDef, e);\n });\n });\n\n public async save(): Promise<any> {\n this.isInProgress.set(true);\n this.builder.setStatus(AXPPageStatus.Submitting);\n try {\n const com = this.entityDef.commands?.update;\n if (com) {\n const exec = com.execute as Function;\n const result = await exec(this.context());\n this.builder.setStatus(AXPPageStatus.Submitted);\n return result;\n }\n } catch (error: any) {\n this.builder.setStatus(AXPPageStatus.Error);\n return Promise.reject(error);\n } finally {\n this.isInProgress.set(false);\n }\n }\n\n public reset() {\n this.context.set(cloneDeep(this.entityData));\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXPEntityMasterUpdateViewModelFactory {\n private entityService = inject(AXPEntityDefinitionRegistryService);\n private layout = inject(AXPLayoutThemeService);\n private injector = inject(Injector);\n\n public async create(\n moduleName: string,\n entityName: string,\n id: string,\n props: string[],\n ): Promise<AXPEntityMasterUpdateViewModel> {\n const config = await this.entityService.resolve(moduleName, entityName);\n this.layout.setNavigationLoading(true);\n if (config.queries.byKey) {\n const func = config.queries.byKey.execute as Function;\n const data = await func(id);\n this.layout.setNavigationLoading(false);\n return new AXPEntityMasterUpdateViewModel(this.injector, config, data, props);\n }\n this.layout.setNavigationLoading(false);\n return Promise.reject('cannot fetch ');\n }\n}\n","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { AXPEntityMasterUpdateViewModelFactory } from '../entity-master-update.viewmodel';\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\nimport { AXP_ENTITY_CONFIG_TOKEN } from '../entity.config';\n\nexport const AXPEntityModifyEvent = createWorkFlowEvent<{ entity: string; values: any }>('[Entity] Modified');\n\n@Injectable()\nexport class AXPEntityModifySectionPopupAction extends AXPWorkflowAction {\n private popupService = inject(AXPopupService);\n private platform = inject(AXPlatform);\n private translateService = inject(AXTranslationService);\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\n private config = inject(AXP_ENTITY_CONFIG_TOKEN);\n private factory = inject(AXPEntityMasterUpdateViewModelFactory);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const [moduleName, entityName] = context.getVariable<string>('entity').split('.');\n const { properties, id, title } = context.getVariable('data');\n const entityRef = await this.entityRegistery.resolve(moduleName, entityName);\n const vm = await this.factory.create(moduleName, entityName, id, properties);\n\n const options = context.getVariable<any>('options');\n const decoration = options?.['decoration'];\n const headerTitle = decoration?.header?.title;\n\n const com = await this.config.viewers.master.modify();\n const popup = await this.popupService.open(com, {\n title: headerTitle\n ? headerTitle\n : title ??\n `${this.translateService.translateSync('entity.modify')} ${this.translateService.translateSync(\n entityRef.formats.individual\n )}`,\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',\n data: {\n vm,\n properties,\n entity: entityRef,\n },\n });\n context.setOutput('result', false);\n if (popup.data?.result == true) {\n context.setOutput('result', true);\n context.setVariable('data', cloneDeep(popup.data.context));\n }\n }\n}\n\n@Injectable()\nexport class AXPEntityModifyConfirmedAction extends AXPWorkflowAction {\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const updatedData = context.getVariable('data');\n this.dispatch(AXPEntityModifyEvent({ entity: context.getVariable<string>('entity'), values: updatedData }));\n\n const gridItemParentKey = context.getVariable('parentKey');\n\n this.dispatch(\n AXPRefreshEvent({\n entity: context.getVariable<string>('entity'),\n meta: {\n refreshTargetId: updatedData[gridItemParentKey],\n },\n })\n );\n }\n}\n\nexport const AXPModifyEntitySectionWorkflow: AXPWorkflow = {\n startStepId: 'modifyPopup',\n steps: {\n modifyPopup: {\n id: 'modifyPopup',\n action: 'AXPEntityModifySectionPopupAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\n nextStepId: 'successToast',\n },\n ],\n },\n successToast: {\n id: 'successToast',\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-modified-title',\n content: 'workflow.entity-modified-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'modifyConfirmed',\n },\n ],\n },\n modifyConfirmed: {\n id: 'modifyConfirmed',\n action: 'AXPEntityModifyConfirmedAction',\n },\n },\n};\n","import { AXFormatService } from '@acorex/core/format';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport {\n AXPEntity,\n AXPEntityCommandScope,\n AXPEntityPropertyView,\n AXPEntitySectionView,\n AXPGridLayoutOptions,\n getEntityInfo,\n} from '@acorex/platform/common';\nimport { AXPBreadcrumbItem, AXPExecuteCommand } from '@acorex/platform/core';\nimport { AXPWidgetNode } from '@acorex/platform/layout/builder';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXPWorkflowService, ofType } from '@acorex/platform/workflow';\nimport { Injectable, Injector, computed, inject, signal } from '@angular/core';\nimport { ActivatedRouteSnapshot, ResolveFn, RouterStateSnapshot } from '@angular/router';\nimport { cloneDeep, merge, set } from 'lodash-es';\nimport { Subject, takeUntil } from 'rxjs';\nimport { AXPEntityDetailListViewModel } from './entity-detail-list.viewmodel';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\nimport { AXPEntityCommandTriggerViewModel } from './entity.viewmodel';\nimport { AXPEntityDeletedEvent } from './workflows/delete-entity.workflow';\nimport { AXPEntityModifyEvent } from './workflows/modify-section.workflow';\n\nexport class AXPEntityMasterSingleViewGroupViewModel {\n constructor(private entity: AXPEntity, private section: AXPEntitySectionView) { }\n\n group = this.entity.groups?.find((c) => c.id == this.section.id)!;\n name = signal(this.group.id);\n isLoading = signal(false);\n\n title = computed<string>(() => {\n return this.group.title ?? this.group.id;\n });\n\n description = computed<string | null | undefined>(() => {\n return this.group.description;\n });\n\n layout = computed<AXPGridLayoutOptions>(() => {\n const source = cloneDeep(this.section.layout ?? {}) as object;\n set(source, 'positions.default.colSpan', 12);\n return source as AXPGridLayoutOptions;\n });\n\n props = computed(() => {\n const { properties, interfaces } = this.entity;\n const groupProperties = properties\n .filter(({ groupId, schema }) => groupId === this.group.id && !schema.hidden)\n .map(({ name }) => name);\n\n const viewProperties =\n interfaces?.master?.single?.properties?.filter(({ name }) => groupProperties.includes(name)) ?? [];\n\n return viewProperties.map((prop) => new AXPEntityMasterSingleElementViewModel(this.entity, this, prop));\n });\n\n editableProps = computed(() => {\n const { properties, interfaces } = this.entity;\n const editablePropertyNames = interfaces?.master?.update?.properties?.map(({ name }) => name) ?? [];\n\n const filteredProperties = properties.filter(\n ({ groupId, schema, name }) => groupId === this.group.id && !schema.hidden && editablePropertyNames.includes(name)\n );\n\n return filteredProperties.map((prop) => new AXPEntityMasterSingleElementViewModel(this.entity, this, prop));\n });\n\n editable = computed(() => {\n return this.editableProps().length > 0;\n });\n}\n\nexport class AXPEntityMasterSingleElementViewModel {\n constructor(\n private entity: AXPEntity,\n private section: AXPEntityMasterSingleViewGroupViewModel,\n private propertyView: AXPEntityPropertyView\n ) { }\n\n private property = this.entity.properties.find((c) => c.name == this.propertyView.name)!;\n name = signal(this.property.name);\n path = signal(this.propertyView.dataPath ?? this.property.name);\n title = signal(this.property.title);\n showLabel = signal(this.propertyView.layout?.label?.visible != false);\n description = signal(this.property.description);\n\n layout = computed<AXPGridLayoutOptions>(() => {\n const viewProp = this.entity.interfaces?.master?.single?.properties?.find((c) => c.name == this.property.name);\n const source = cloneDeep(viewProp?.layout ?? {}) as object;\n set(source, 'positions.default.colSpan', 12);\n return source as AXPGridLayoutOptions;\n });\n\n node = computed<AXPWidgetNode>(() => {\n const schema = this.property.schema!;\n const widget = schema.interface!;\n return {\n type: widget.type,\n mode: 'view',\n path: this.path(),\n children: widget.children,\n formula: widget.formula,\n valueTransforms: widget.valueTransforms,\n options: merge(schema.interface?.options),\n } as AXPWidgetNode;\n });\n}\n\nexport class AXPEntityMasterSingleViewModel {\n private readonly entityDef = cloneDeep(this.config)!;\n private readonly _viewDef = cloneDeep(this.entityDef.interfaces?.master?.single)!;\n private readonly session = this.injector.get(AXPSessionService);\n private readonly formatService = this.injector.get(AXFormatService);\n private readonly workflow = this.injector.get(AXPWorkflowService);\n private readonly destroyed = new Subject<void>();\n private translateService = this.injector.get(AXTranslationService);\n\n constructor(private injector: Injector, private config: AXPEntity, private entityData: any) {\n this.workflow.events$\n .pipe(ofType(AXPEntityDeletedEvent))\n .pipe(takeUntil(this.destroyed))\n .subscribe((event) => {\n if (\n event.payload.entity == getEntityInfo(this.entityDef).source &&\n event.payload.ids.includes(this.context().id)\n ) {\n this.workflow.execute('show-list-view', {\n entity: getEntityInfo(this.entityDef).source,\n });\n }\n });\n this.workflow.events$\n .pipe(ofType(AXPEntityModifyEvent))\n .pipe(takeUntil(this.destroyed))\n .subscribe(async (event) => {\n if (\n event.payload.entity == getEntityInfo(this.entityDef).source &&\n event.payload.values.id === this.context().id\n ) {\n this.context.set(event.payload.values);\n }\n });\n }\n\n public context = signal<any>(cloneDeep(this.entityData));\n\n private actions = computed<AXPEntityCommandTriggerViewModel[]>(() => {\n return (\n this.entityDef.interfaces?.master?.single?.actions?.map(\n (tr) => new AXPEntityCommandTriggerViewModel(this.entityDef, tr)\n ) ?? []\n );\n });\n\n public primaryActions = computed<AXPEntityCommandTriggerViewModel[]>(() => {\n return this.actions().filter((c) => c.priority == 'primary');\n });\n\n public secondaryActions = computed<AXPEntityCommandTriggerViewModel[]>(() => {\n return this.actions().filter((c) => c.priority == 'secondary');\n });\n\n public sections = computed<AXPEntityMasterSingleViewGroupViewModel[]>(() => {\n const { interfaces, properties } = this.entityDef;\n const viewProps = interfaces?.master?.single?.properties?.map(({ name }) => name) ?? [];\n\n const filteredProperties = properties.filter(\n ({ groupId, schema, name }) => groupId && !schema.hidden && viewProps.includes(name)\n );\n\n const groups =\n interfaces?.master?.single?.sections?.filter(({ id }) =>\n filteredProperties.some(({ groupId }) => groupId === id)\n ) ?? [];\n\n return groups.map((section) => new AXPEntityMasterSingleViewGroupViewModel(this.entityDef, section));\n });\n\n //****************** Title ******************//\n public title = computed<string>(() => {\n const suggestedProps = this.entityDef.properties.find((c) => ['title', 'name', 'code'].includes(c.name));\n let suggestedFormat = 'Item #{{id}}';\n if (suggestedProps) suggestedFormat = `{{${suggestedProps.name}}}`;\n return this.formatService.format(this._viewDef.title ?? suggestedFormat, 'string', this.context());\n });\n //****************** Description ******************//\n public description = computed<string | null>(() => {\n return this._viewDef.description\n ? this.formatService.format(this._viewDef.description, 'string', this.context())\n : null;\n });\n\n //****************** Beardcrumbs ******************//\n public beardcrumbs = computed<AXPBreadcrumbItem[]>(() => {\n return [\n {\n title: this.entityDef.formats.plural ?? this.entityDef.formats.individual,\n command: {\n name: 'navigate',\n options: {\n path: `/${this.session.application?.name}/m/${this.entityDef.module}/e/${this.entityDef.name}/list`,\n },\n },\n },\n {\n title: this.title(),\n },\n ];\n });\n\n public relatedEntities = computed<Promise<AXPEntityDetailListViewModel[]>>(async () => {\n const relatedEntities =\n this.entityDef.relatedEntities?.map(\n (re) => new AXPEntityDetailListViewModel(this.injector, re, { entity: this.entityDef, data: this.entityData })\n ) ?? [];\n\n const filteredEntities = await Promise.all(relatedEntities.map(async (re) => ((await re.hidden()) ? null : re)));\n\n return filteredEntities.filter((re) => re !== null) as AXPEntityDetailListViewModel[];\n });\n\n public async executeCommand(commandName: string, data: any = null) {\n //TODO: syntact for workflow\n switch (commandName) {\n case 'modify-entity-section': {\n this.workflow.execute('modify-entity-section', {\n entity: getEntityInfo(this.entityDef).source,\n data: {\n id: this.context().id,\n properties: (data as AXPEntityMasterSingleViewGroupViewModel).editableProps().map((m) => m.name()),\n },\n });\n break;\n }\n default: {\n const action = this.actions().find((c) => c.name == commandName);\n this.workflow.execute(commandName, {\n entity: getEntityInfo(this.entityDef).source,\n data: action?.scope == AXPEntityCommandScope.Individual ? this.context() : null,\n });\n }\n }\n }\n\n async execute(command: AXPExecuteCommand) {\n switch (command?.name) {\n case 'navigate':\n await this.workflow.execute('navigate', {\n options: {\n path: command.options?.['path'],\n },\n });\n break;\n default:\n this.executeCommand(command.name, command.options);\n break;\n }\n }\n //\n //\n destroy() {\n this.destroyed.next();\n this.destroyed.complete();\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXPEntityDetailViewModelFactory {\n private entityService = inject(AXPEntityDefinitionRegistryService);\n private layout = inject(AXPLayoutThemeService);\n private injector = inject(Injector);\n\n public async create(moduleName: string, entityName: string, id: string): Promise<AXPEntityMasterSingleViewModel> {\n const config = await this.entityService.resolve(moduleName, entityName);\n this.layout.setNavigationLoading(true);\n if (config.queries.byKey) {\n const func = config.queries.byKey.execute as Function;\n const data = await func(id);\n this.layout.setNavigationLoading(false);\n return new AXPEntityMasterSingleViewModel(this.injector, config, data);\n }\n this.layout.setNavigationLoading(false);\n return Promise.reject('cannot fetch ');\n }\n}\n\nexport const AXPEntityDetailViewModelResolver: ResolveFn<Promise<AXPEntityMasterSingleViewModel>> = (\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot,\n service: AXPEntityDetailViewModelFactory = inject(AXPEntityDetailViewModelFactory)\n): Promise<AXPEntityMasterSingleViewModel> => {\n const moduleName = route.parent?.paramMap.get('module') as string;\n const entityName = route.paramMap.get('entity') as string;\n const id = route.paramMap.get('id') as string;\n //\n return service.create(moduleName, entityName, id);\n};\n","import { inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\nimport { AXPPagedListResult, AXPQueryRequest } from '@acorex/platform/core';\nimport {\n AXPEntityCreateDto,\n AXPEntityDetailDto,\n AXPEntityListItemDto,\n AXPEntityModel,\n AXPEntityUpdateDto,\n} from './entity.types';\n\nexport abstract class AXPEntityStorageService<\n TKey,\n TDetailDto extends AXPEntityDetailDto<TKey> = AXPEntityModel<TKey>,\n TListItemDto extends AXPEntityListItemDto<TKey> = TDetailDto,\n TCreateDto extends AXPEntityCreateDto = TDetailDto,\n TUpdateDto extends AXPEntityUpdateDto<TKey> = TDetailDto,\n> {\n abstract get dbName(): string;\n\n abstract initial(entityName: string, collection: TCreateDto[]): Promise<TCreateDto[]>;\n\n abstract getOne(entityName: string, id: TKey): Promise<TDetailDto>;\n\n abstract updateOne(entityName: string, id: TKey, keyValues: Omit<Partial<TUpdateDto>, 'id'>): Promise<TDetailDto>;\n\n abstract deleteOne(entityName: string, id: TKey): Promise<void>;\n\n abstract insertOne(entityName: string, entity: TCreateDto): Promise<TKey>;\n\n abstract getAll(entityName: string): Promise<TListItemDto[]>;\n\n abstract query(entityName: string, request: AXPQueryRequest): Promise<AXPPagedListResult<TListItemDto>>;\n}\n\nexport abstract class AXPEntityDataProvider<\n TKey,\n TDetailDto extends AXPEntityDetailDto<TKey> = AXPEntityModel<TKey>,\n TListItemDto extends AXPEntityListItemDto<TKey> = TDetailDto,\n TCreateDto extends AXPEntityCreateDto = TDetailDto,\n TUpdateDto extends AXPEntityUpdateDto<TKey> = TDetailDto,\n> {\n abstract get entityName(): string;\n\n abstract initial(collection: TCreateDto[]): Promise<void>;\n\n abstract getOne(id: TKey): Promise<TDetailDto>;\n\n abstract getAll(): Promise<TListItemDto[]>;\n\n abstract updateOne(id: TKey, keyValues: Omit<Partial<TUpdateDto>, 'id'>): Promise<TDetailDto>;\n\n abstract deleteOne(id: TKey): Promise<void>;\n\n abstract insertOne(entity: TCreateDto): Promise<TKey>;\n\n abstract query(request: AXPQueryRequest): Promise<AXPPagedListResult<TListItemDto>>;\n}\n\nexport class AXPEntityDataProviderImpl<\n TKey,\n TDetailDto extends AXPEntityDetailDto<TKey> = AXPEntityModel<TKey>,\n TListItemDto extends AXPEntityListItemDto<TKey> = TDetailDto,\n TCreateDto extends AXPEntityCreateDto = TDetailDto,\n TUpdateDto extends AXPEntityUpdateDto<TKey> = TDetailDto,\n> implements AXPEntityDataProvider<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto>\n{\n constructor(\n private storageService: AXPEntityStorageService<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto>,\n public entityName: string,\n ) {}\n\n async initial(collection: TCreateDto[]): Promise<void> {\n await this.storageService.initial(this.entityName, collection);\n }\n\n getOne(id: TKey): Promise<TDetailDto> {\n return this.storageService.getOne(this.entityName, id);\n }\n\n getAll(): Promise<TListItemDto[]> {\n return this.storageService.getAll(this.entityName);\n }\n\n query(request: AXPQueryRequest): Promise<AXPPagedListResult<TListItemDto>> {\n return this.storageService.query(this.entityName, request);\n }\n\n updateOne(id: TKey, keyValues: Omit<Partial<TUpdateDto>, 'id'>): Promise<TDetailDto> {\n return this.storageService.updateOne(this.entityName, id, keyValues);\n }\n\n deleteOne(id: TKey): Promise<void> {\n return this.storageService.deleteOne(this.entityName, id);\n }\n\n insertOne(entity: TCreateDto): Promise<TKey> {\n return this.storageService.insertOne(this.entityName, entity);\n }\n}\n\nexport abstract class AXMEntityCrudService<\n TKey,\n TDetailDto extends AXPEntityDetailDto<TKey> = AXPEntityModel<TKey>,\n TListItemDto extends AXPEntityListItemDto<TKey> = TDetailDto,\n TCreateDto extends AXPEntityCreateDto = TDetailDto,\n TUpdateDto extends AXPEntityUpdateDto<TKey> = TDetailDto,\n> {\n abstract insertOne(request: TCreateDto): Promise<TKey>;\n\n abstract getOne(id: TKey): Promise<TDetailDto>;\n\n abstract deleteOne(id: TKey): Promise<void>;\n\n abstract updateOne(id: TKey, values: Omit<Partial<TUpdateDto>, 'id'>): Promise<TDetailDto>;\n\n abstract query(request: AXPQueryRequest): Promise<AXPPagedListResult<TListItemDto>>;\n}\n\nexport class AXMEntityCrudServiceImpl<\n TKey,\n TDetailDto extends AXPEntityDetailDto<TKey> = AXPEntityModel<TKey>,\n TListItemDto extends AXPEntityListItemDto<TKey> = TDetailDto,\n TCreateDto extends AXPEntityCreateDto = Omit<TDetailDto, 'id'>,\n TUpdateDto extends AXPEntityUpdateDto<TKey> = TDetailDto,\n> {\n private _storageService = inject(AXPEntityStorageService);\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\n private _entityDataProvider = new AXPEntityDataProviderImpl<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto>(\n this._storageService,\n this.entityName,\n );\n\n constructor(private entityName: string) {}\n\n async insertOne(request: TCreateDto): Promise<TKey> {\n return this._entityDataProvider.insertOne(request);\n }\n\n async getOne(id: TKey): Promise<TDetailDto> {\n return this._entityDataProvider.getOne(id);\n }\n\n async deleteOne(id: TKey): Promise<void> {\n return this._entityDataProvider.deleteOne(id);\n }\n\n async updateOne(id: TKey, values: Omit<Partial<TUpdateDto>, 'id'>): Promise<TDetailDto> {\n return this._entityDataProvider.updateOne(id, values);\n }\n\n async query(request: AXPQueryRequest = { skip: 0, take: 100 }): Promise<AXPPagedListResult<TListItemDto>> {\n const [moduleName, entityName] = this._entityDataProvider.entityName.split('.');\n const entityRef = await this.entityRegistery.resolve(moduleName, entityName);\n if (entityRef.parentKey) {\n if (!request.filter?.filters?.length && request.filter?.field !== entityRef.parentKey) {\n request.filter = {\n value: true,\n field: entityRef.parentKey,\n operator: {\n type: 'isEmpty',\n },\n };\n }\n }\n return this._entityDataProvider.query(request);\n }\n\n // get entityDataProvider() {\n // return this._entityDataProvider;\n // }\n\n get storageService() {\n return this._storageService;\n }\n}\n","import { AXPSearchDefinitionProvider, AXPSearchDefinitionProviderContext } from '@acorex/platform/common';\n\nexport class AXPEntityCommandSearchDefinitionProvider implements AXPSearchDefinitionProvider {\n async provide(context: AXPSearchDefinitionProviderContext): Promise<void> {\n context.addDefinition('command', 'Commands', 'command', 'fa-solid fa-command', 1, {\n format: {\n id: '{{id}}',\n },\n actions: [\n {\n name: 'open-entity',\n type: 'view',\n priority: 'primary',\n },\n ],\n });\n }\n}\n","import { AXPSearchDefinitionProvider, AXPSearchDefinitionProviderContext } from '@acorex/platform/common';\nimport { inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\n\nexport class AXPEntitySearchDefinitionProvider implements AXPSearchDefinitionProvider {\n entityRegister = inject(AXPEntityDefinitionRegistryService);\n\n async provide(context: AXPSearchDefinitionProviderContext): Promise<void> {\n console.log(this.entityRegister.getAll());\n\n this.entityRegister.getAll().forEach((entity) => {\n context.addDefinition(\n `Module.${entity.module}.${entity.name}`,\n entity.formats.searchResult?.description ?? entity.module,\n `Module.${entity.module}`,\n 'fa-solid fa-objects-column',\n 4,\n {\n actions: [\n {\n name: 'open-entity',\n type: 'view',\n priority: 'primary',\n },\n ],\n format: {\n title: entity.formats.searchResult?.title,\n description: (entity.formats.searchResult?.description ?? entity.module) + ' / ' + entity.title,\n id: '{{data.id}}',\n },\n }\n );\n });\n }\n}\n","import { AXLoadingModule } from '@acorex/components/loading';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXPEntity } from '@acorex/platform/common';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, HostBinding, inject, signal } from '@angular/core';\nimport { AXPEntityResolver } from '../../entity.config';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { castArray, isNil } from 'lodash-es';\n\n@Component({\n selector: 'axp-lookup-widget-view',\n template: `\n @if(loading())\n {\n <ax-loading></ax-loading>\n }\n @else{\n @for (item of displayItems(); track $index) {\n <ax-badge [look]=\"'twotone'\" [text]=\"item.text\" color=\"primary\"></ax-badge>\n }\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, AXLoadingModule, AXBadgeModule]\n})\nexport class AXPLookupWidgetViewComponent extends AXPValueWidgetComponent<any> {\n protected readonly formatService = inject(AXFormatService);\n protected readonly entityResolver = inject(AXPEntityResolver);\n\n\n protected entity = computed<string>(() => this.options()['entity'] as string);\n protected multiple = computed<boolean>(() => this.options()['multiple'] as boolean);\n protected valueField = computed<string>(() => (this.options()['valueField'] as string) ?? 'id');\n protected textField = computed<string>(() => (this.options()['textField'] as string) ?? 'title');\n\n protected displayField = computed<string>(() => {\n return this.textField() ?? this.entityDef()?.formats.lookup ?? this.entityDef()?.properties.find((c) => c.name != 'id')?.name ?? 'title';\n });\n\n protected loading = signal(false);\n private entityDef = signal<AXPEntity | null>(null);\n\n protected displayItems = signal<any[]>([]);\n\n\n private efEntity = effect(async () => {\n const [module, entity] = this.entity().split('.');\n this.entityDef.set(await this.entityResolver.get(module, entity));\n });\n\n private efDisplay = effect(async () => {\n const value = this.getValue();\n if (isNil(value)) {\n this.displayItems.set([]);\n }\n else {\n const items = castArray(value).map(async (item: any) => await this.extractItem(item));\n this.displayItems.set(await Promise.all(items));\n }\n })\n\n\n private async extractItem(item: any) {\n if (typeof item == 'object') {\n return {\n id: item[this.valueField()],\n text: this.formatService.format(this.displayField(), 'string', item),\n }\n }\n else {\n const def = this.entityDef();\n const byKey = def?.queries.byKey?.execute as Function;\n if (byKey) {\n this.loading.set(true);\n const fetchedItem = await byKey(item);\n this.loading.set(false);\n return {\n id: fetchedItem[this.valueField()],\n text: this.formatService.format(this.displayField(), 'string', fetchedItem),\n }\n }\n return {\n id: item,\n text: item\n }\n }\n }\n\n @HostBinding('class')\n private get __class(): string {\n const cls: any = {};\n cls[`ax-flex`] = true;\n cls[`ax-gap-1`] = true;\n return cls;\n }\n}\n","import { AXCommonModule, AXDataSourceFilterOption, AXValueChangedEvent } from '@acorex/cdk/common';\nimport {\n AXDataTableComponent,\n AXDataTableModule,\n AXDataTableRowClick,\n AXDataTableRowDbClick,\n} from '@acorex/components/data-table';\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, signal, viewChild } from '@angular/core';\n\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPLookupWidgetSelectorViewModel } from './lookup-widget-selector.viewmodel';\n@Component({\n template: `\n <div class=\"ax-p-4 ax-flex ax-flex-col ax-gap-4 ax-overflow-hidden\">\n @if (vm.hasInlineFilters()) {\n <div class=\"ax-w-full\">\n <ax-search-box\n [placeholder]=\"('widget.lookup.search' | translate | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n [value]=\"searchTerm\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n [axAutoFocus]=\"true\"\n ><ax-clear-button></ax-clear-button\n ></ax-search-box>\n </div>\n }\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-h-[50vh]\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm.dataSource\"\n [parentField]=\"vm.parentKey()\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowClick)=\"handleRowClick($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n >\n @if (vm.allowMultiple()) {\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n }\n @for (col of vm.columns(); track col.name) {\n @if (col.visible) {\n <axp-widget-column-renderer\n [expandHandler]=\"$index === 0 && vm.parentKey() ? true : false\"\n [caption]=\"col.title | translate | async\"\n [node]=\"col.node()\"\n ></axp-widget-column-renderer>\n }\n }\n </ax-data-table>\n </div>\n <ax-footer>\n <ax-suffix>\n <ax-button look=\"solid\" [text]=\"('close' | translate | async)!\" (onClick)=\"handleCloseClick()\"> </ax-button>\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [text]=\"('select' | translate | async)!\"\n (onClick)=\"handleSelectClick()\"\n [disabled]=\"allowSelect() === false\"\n >\n </ax-button>\n @if (!vm.canCreate()) {\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [text]=\"'Create-New' | translate | async\"\n (onClick)=\"handleCreateNewClick()\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-add\"></ax-icon>\n </ax-prefix>\n </ax-button>\n }\n </ax-suffix>\n </ax-footer>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n AXCommonModule,\n AXButtonModule,\n AXFormModule,\n AXDecoratorModule,\n AXDropdownButtonModule,\n AXDataTableModule,\n AXSearchBoxModule,\n AXPLayoutBuilderModule,\n AXTranslationModule,\n ],\n inputs: [],\n})\nexport class AXPLookupWidgetSelectorComponent extends AXBasePageComponent {\n protected vm: AXPLookupWidgetSelectorViewModel;\n protected searchTerm: string;\n protected filter: AXDataSourceFilterOption;\n\n protected grid = viewChild<AXDataTableComponent>('grid');\n\n protected initialSelectedItems: any[] = [];\n\n protected selectedItems = signal<any[]>([]);\n\n protected allowSelect = computed(() => this.selectedItems().length > 0);\n\n protected ngAfterViewInit() {\n if (this.initialSelectedItems.length > 0 && this.grid()) {\n this.grid()?.selectRows(...this.initialSelectedItems);\n }\n if (this.searchTerm) {\n this.vm.applyInlineFilter(this.searchTerm);\n } else {\n this.vm.applyFilterAndSort();\n }\n }\n\n protected handleRowDbClick(e: AXDataTableRowDbClick) {\n this.close({ items: [e.data] });\n }\n\n protected handleRowClick(e: AXDataTableRowClick) {\n if (this.vm.allowMultiple()) {\n this.selectedItems.set([...this.selectedItems(), e.data]);\n } else if (this.selectedItems().length > 0) {\n const selected = this.selectedItems().find((item) => item.id === e.data.id);\n if (selected) {\n this.selectedItems.set(this.selectedItems().filter((item) => item.id !== selected.id));\n } else {\n this.selectedItems.set([e.data]);\n }\n } else if (this.selectedItems().length === 0) {\n this.selectedItems.set([e.data]);\n } else {\n this.selectedItems.set([e.data]);\n }\n }\n\n protected async handleSelectedRowsChange(rows: unknown[]) {\n this.selectedItems.set(rows);\n }\n\n handleChangeSearchValue(e: AXValueChangedEvent) {\n if (e.isUserInteraction) {\n this.vm.applyInlineFilter(e.value);\n }\n }\n\n protected async handleCreateNewClick() {\n this.close();\n await this.vm.create();\n }\n\n protected handleCloseClick() {\n this.close();\n }\n\n protected handleSelectClick() {\n this.close({ items: this.selectedItems() });\n }\n}\n","import { AXDataSource, AXDataSourceCallbackResult, AXDataSourceFilterOption } from '@acorex/cdk/common';\nimport {\n AXPCleanNestedFilters,\n AXPEntity,\n AXPFilterOperatorMiddlewareService,\n getEntityInfo,\n} from '@acorex/platform/common';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { computed, Injector } from '@angular/core';\nimport { AXPEntityListViewColumnViewModel } from '../../entity.viewmodel';\n\nexport class AXPLookupWidgetSelectorViewModel {\n private workflow = this.injector.get(AXPWorkflowService);\n private filterOperatorMiddleware = this.injector.get(AXPFilterOperatorMiddlewareService);\n\n constructor(\n private injector: Injector,\n private entityDef: AXPEntity,\n private options: {\n parentFilters?: AXDataSourceFilterOption | null;\n customFilter?: AXDataSourceFilterOption | null;\n sortedFields?: { name: string; dir: 'asc' | 'desc' }[];\n allowMultiple?: boolean;\n } = {\n parentFilters: null,\n customFilter: null,\n sortedFields: [],\n },\n ) {}\n\n dataSource = new AXDataSource({\n byKey: (key) => {\n const func = this.entityDef.queries.byKey.execute as Function;\n return func();\n },\n load: (e) => {\n const func = this.entityDef.queries.list?.execute as Function;\n return func(e);\n },\n pageSize: 10,\n key: 'id',\n });\n\n public canCreate = computed(() => {\n return this.entityDef.commands?.create?.execute != null;\n });\n\n public parentKey = computed(() => {\n return this.entityDef.parentKey;\n });\n\n public allowMultiple = computed(() => {\n return this.options.allowMultiple ?? false;\n });\n\n public async create(): Promise<void> {\n await this.workflow.execute('create-entity', {\n entity: getEntityInfo(this.entityDef).source,\n });\n }\n\n public inlineFiltersPlaceholders = computed<string[]>(() => {\n return (\n this.entityDef?.properties.filter((p) => p.options?.filter?.inline?.enabled).map((c) => c.title ?? c.name) ?? []\n );\n });\n\n public hasInlineFilters = computed<boolean>(() => {\n return this.inlineFiltersPlaceholders().length > 0;\n });\n\n public columns = () => {\n const listColumns = this.entityDef.columns ?? [];\n const columns = listColumns?.map((c) => c.name) ?? [];\n const props = this.entityDef.properties.filter((p) => p.schema.hidden != true);\n const displayColumns = props.filter((p) => columns.some((c) => c == p.name));\n return displayColumns.map((p) => {\n return new AXPEntityListViewColumnViewModel(p, listColumns?.find((c) => c.name == p.name)!);\n });\n };\n\n private inlineFilters: AXDataSourceFilterOption = {\n field: null as any,\n logic: 'or',\n operator: null as any,\n filters: [],\n };\n\n private advanceFilters: AXDataSourceFilterOption = {\n field: null as any,\n logic: 'and',\n operator: null as any,\n filters: [],\n };\n\n applyInlineFilter(value: string, refresh: boolean = true) {\n const props = this.entityDef.properties.filter((c) => c.options?.filter?.inline?.enabled);\n this.inlineFilters.filters = [];\n if (value) {\n props.forEach((p) => {\n this.inlineFilters.filters?.push({\n field: p.name,\n operator: {\n type: 'contains',\n },\n value,\n });\n });\n }\n if (refresh) this.applyFilterAndSort();\n }\n\n applyFilterAndSort() {\n // this.dataSource.clearFilter();\n //\n //this.dataSource.sort(...this.sortedFields().map(s => ({ dir: s.dir, field: s.name } as AXDataSourceSortOption)));\n //\n\n // Check if inlineFilters or parentFilters have any filters\n const hasInlineFilters = (this.inlineFilters?.filters?.length ?? 0) > 0;\n const hasParentFilters = (this.options.parentFilters?.filters?.length ?? 0) > 0;\n\n // Construct the filters array based on the presence of filters\n const filters: AXDataSourceFilterOption[] = [];\n console.log(this.options.customFilter);\n if (this.options.customFilter) {\n const cleanedFilters = AXPCleanNestedFilters([this.options.customFilter]);\n if (cleanedFilters.length > 0) {\n filters.push(this.filterOperatorMiddleware.transformFilter(cleanedFilters[0]));\n }\n }\n if (hasInlineFilters) {\n filters.push(this.inlineFilters);\n }\n if (hasParentFilters && this.options.parentFilters) {\n filters.push(this.options.parentFilters);\n }\n\n // Apply the filters to the dataSource\n this.dataSource.filter({\n field: null as any,\n logic: 'and',\n operator: null as any,\n filters: filters,\n });\n\n // Refresh the dataSource\n this.dataSource.refresh();\n }\n\n async find(value: string): Promise<AXDataSourceCallbackResult<any>> {\n this.applyInlineFilter(value.trim(), false);\n const func = this.entityDef.queries.list?.execute as Function;\n return (await func({ filter: this.inlineFilters, take: 10 })) ?? [];\n }\n}\n","import { AXButtonModule } from '@acorex/components/button';\nimport {\n AXClickEvent,\n AXDataSourceFilterOption,\n AXFocusEvent,\n AXHtmlEvent,\n AXValueChangedEvent,\n} from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXTagBoxComponent, AXTagBoxModule } from '@acorex/components/tag-box';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { AXPEntity, AXPQueryFilter } from '@acorex/platform/common';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Injector,\n computed,\n effect,\n inject,\n signal,\n viewChild,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { castArray, get, isEmpty, isNil, set } from 'lodash-es';\nimport { AXPEntityResolver } from '../../entity.config';\nimport { AXPLookupWidgetSelectorComponent } from './lookup-widget-selector.component';\nimport { AXPLookupWidgetSelectorViewModel } from './lookup-widget-selector.viewmodel';\nimport { extractValue, setSmart } from '@acorex/platform/core';\n\n@Component({\n selector: 'axp-lookup-widget-edit',\n template: `\n <ax-tag-box\n [ngModel]=\"selectedItems()\"\n [textField]=\"textField()\"\n [valueField]=\"valueField()\"\n (onValueChanged)=\"handleValueChange($event)\"\n [placeholder]=\"placeholder() | translate | async\"\n [addOnEnter]=\"false\"\n [addOnComma]=\"false\"\n [disabled]=\"disabled()\"\n (onKeyUp)=\"handleKeyUp($event)\"\n (onBlur)=\"handleOnBlur($event)\"\n >\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validation.options?.message\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n @if (selectedItems().length > 1) {\n <ax-clear-button (click)=\"handleClearClick()\"></ax-clear-button>\n }\n\n <ax-suffix>\n <ax-button color=\"ghost\" look=\"blank\" [disabled]=\"isLoading() || disabled()\" (onClick)=\"handleOnClick($event)\">\n @if (isLoading()) {\n <ax-loading></ax-loading>\n } @else {\n <ax-icon icon=\"far fa-search\"> </ax-icon>\n }\n </ax-button>\n </ax-suffix>\n </ax-tag-box>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n FormsModule,\n //\n AXButtonModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXValidationModule,\n AXFormModule,\n AXTagBoxModule,\n AXTranslationModule,\n ],\n})\nexport class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent<any> {\n protected readonly injector = inject(Injector);\n protected readonly entityResolver = inject(AXPEntityResolver);\n protected readonly formatService = inject(AXFormatService);\n protected readonly popupService = inject(AXPopupService);\n\n private readonly translateService = inject(AXTranslationService);\n\n protected expose = computed<string | undefined | any[]>(() => this.options()['expose'] as string);\n protected entity = computed<string>(() => this.options()['entity'] as string);\n protected disabled = computed<string>(() => this.options()['disabled'] as string);\n protected customFilter = computed<AXDataSourceFilterOption>(\n () => this.options()['filter'] as AXDataSourceFilterOption,\n );\n\n protected multiple = computed(() => (this.options()['multiple'] ?? false) as boolean);\n\n protected textField = computed<string>(() => {\n return (\n this.entityDef()?.formats.lookup ?? this.entityDef()?.properties.find((c) => c.name != 'id')?.name ?? 'title'\n );\n });\n\n protected valueField = computed<string>(() => this.entityDef()?.properties.find((c) => c.name == 'id')?.name ?? 'id');\n\n protected conditions?: AXPQueryFilter[];\n\n protected filter: AXDataSourceFilterOption | null;\n\n private entityDef = signal<AXPEntity | null>(null);\n\n protected searchTerm = signal<string | null>(null);\n\n protected selectedItems = signal<any[]>([]);\n\n textbox = viewChild(AXTagBoxComponent);\n\n protected isLoading = signal(false);\n\n protected isOpen = signal(false);\n\n protected vm = signal<AXPLookupWidgetSelectorViewModel | null>(null);\n\n protected placeholder = computed(() => {\n return this.selectedItems().length\n ? ''\n : this.translateService.translateSync('widget.lookup.search') + this.vm()?.inlineFiltersPlaceholders().join(', ');\n });\n\n #efEntity = effect(async () => {\n const [module, entity] = this.entity().split('.');\n this.entityDef.set(await this.entityResolver.get(module, entity));\n this.vm.set(\n new AXPLookupWidgetSelectorViewModel(this.injector, this.entityDef()!, {\n parentFilters: this.filter,\n allowMultiple: this.multiple(),\n }),\n );\n });\n\n #efValue = effect(() => {\n if (this.getValue()) {\n this.findByValue();\n }\n });\n\n private async findByValue() {\n this.isLoading.set(true);\n const rawValue = this.getValue();\n const values = castArray(rawValue);\n const byKey = this.entityDef()?.queries.byKey?.execute as Function;\n if (byKey && values.length) {\n if (this.multiple()) {\n const items = await Promise.all(values.map((value) => byKey(extractValue(value, this.valueField()))));\n this.setItems(items);\n } else {\n const id = extractValue(values[0], this.valueField());\n const item = await byKey(id);\n this.setItems(item);\n }\n } else {\n this.setItems([]);\n }\n this.isLoading.set(false);\n }\n\n protected handleOnClick(e: AXClickEvent) {\n this.showSelector();\n }\n\n private showSelector() {\n this.isOpen.set(true);\n this.popupService\n .open(AXPLookupWidgetSelectorComponent, {\n title: `${this.translateService.translateSync('widget.lookup.search')} ${this.translateService.translateSync(\n this.entityDef()?.formats.plural ?? '',\n )}`,\n\n size: (this.vm()?.columns().length ?? 0) > 3 ? 'lg' : 'md',\n data: {\n vm: new AXPLookupWidgetSelectorViewModel(this.injector, this.entityDef()!, {\n customFilter: this.customFilter(),\n parentFilters: this.filter,\n allowMultiple: this.multiple(),\n }),\n searchTerm: this.searchTerm(),\n initialSelectedItems: this.selectedItems(),\n },\n })\n .then((e: any) => {\n this.isOpen.set(false);\n this.textbox()?.focus();\n if (e.data?.items) {\n this.setItems(e.data?.items);\n }\n });\n }\n\n protected handleValueChange(e: AXValueChangedEvent) {\n if (e.isUserInteraction) {\n if (isNil(e.value) || isEmpty(e.value)) {\n this.clear();\n } else {\n this.setValue(this.singleOrMultiple(e.value));\n }\n }\n }\n\n protected handleOnBlur(e: AXFocusEvent) {\n setTimeout(() => {\n if (!this.isOpen()) {\n this.clearInput();\n }\n }, 100);\n }\n\n protected async handleKeyUp(e: AXHtmlEvent) {\n const keyEvent = e.nativeEvent as KeyboardEvent;\n const value = this.textbox()?.inputValue()!;\n this.searchTerm.set(value);\n if ((keyEvent.code == 'Enter' || keyEvent.code == 'NumpadEnter') && value) {\n this.isLoading.set(true);\n const result = await this.vm()?.find(value);\n if (result?.total == 1) {\n this.setItems(result.items[0]);\n } else {\n this.showSelector();\n }\n this.isLoading.set(false);\n }\n if (keyEvent.code == 'ArrowDown') {\n this.showSelector();\n }\n }\n\n private setItems(items: any[]) {\n if (!items || items.length == 0) {\n this.selectedItems.set([]);\n return;\n }\n //\n items = castArray(items);\n this.clearInput();\n this.selectedItems.set(items);\n //\n const keys = items.map((item) => get(item, this.valueField()));\n //\n this.setValue(this.singleOrMultiple(keys));\n //\n // extract data from valueField and set context by expose path\n if (this.expose()) {\n const exposeValue = castArray(this.expose());\n const itemToExpose: any = {};\n //\n exposeValue.forEach((i) => {\n if (typeof i == 'string') {\n const values = items.map((item) => set({}, i as string, get(item, i)));\n //this.contextService.update(i, this.singleOrMultiple(values));\n setSmart(itemToExpose, i, this.singleOrMultiple(values));\n } else {\n // extract data from item by source path and set context by target path\n const values = this.multiple()\n ? items.map((item) => set({}, i.source, get(item, i.source)))\n : items.map((item) => get(item, i.source));\n setSmart(itemToExpose, i.target, this.singleOrMultiple(values));\n }\n });\n this.contextService.patch(itemToExpose);\n //this.contextService.update(i.target, this.singleOrMultiple(values));\n }\n }\n\n protected handleClearClick() {\n this.clear();\n }\n\n public clear() {\n this.setValue(null);\n this.clearInput();\n this.selectedItems.set([]);\n }\n\n public clearInput() {\n this.textbox()?.inputValue.set('');\n this.searchTerm.set('');\n }\n\n private singleOrMultiple(values: any[]): any | any[] {\n return this.multiple() ? values : values[0];\n }\n}\n","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXPColumnWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport { castArray } from 'lodash-es';\n@Component({\n template: `\n <div class=\"ax-flex ax-gap-1\">\n @for (item of displayItems(); track $index) {\n <ax-badge [text]=\"item[this.textField]\" color=\"primary\"></ax-badge>\n }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, AXBadgeModule],\n inputs: ['rawValue', 'rowData'],\n})\nexport class AXPLookupWidgetColumnComponent extends AXPColumnWidgetComponent<any> {\n protected valueField: string = this.options['valueField'] ?? 'id';\n protected textField: string = this.options['textField'] ?? 'title';\n\n protected displayItems = computed(() => castArray(this.rawValue).map((item: any) => this.extractItem(item)));\n\n private extractItem(item: any): any {\n return typeof item == 'object'\n ? {\n [this.valueField]: item?.[this.valueField],\n [this.textField]: item?.[this.textField],\n }\n : {\n [this.valueField]: item,\n [this.textField]: item,\n };\n }\n}\n","import { AXPExpression } from '@acorex/platform/core';\nimport { AXPWidgetConfig, AXPWidgetGroupEnum, AXPWidgetsCatalog } from '@acorex/platform/layout/builder';\nimport { AXP_ALLOW_MULTIPLE_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DATA_PROPERTY_GROUP, AXP_DISABLED_PROPERTY } from '@acorex/platform/widgets';\n\nexport const AXPLookupWidget: AXPWidgetConfig = {\n name: 'lookup-editor',\n title: 'Lookup',\n categories: [],\n groups: [AXPWidgetGroupEnum.EntityWidget],\n defaultFilterWidgetName: 'lookup-filter',\n type: 'editor',\n properties: [\n AXP_DISABLED_PROPERTY,\n AXP_DATA_PATH_PROPERTY,\n {\n name: 'expose',\n title: 'Expose',\n group: AXP_DATA_PROPERTY_GROUP,\n schema: {\n dataType: 'string',\n interface: {\n name: 'expose',\n path: 'options.expose',\n type: AXPWidgetsCatalog.select,\n },\n },\n visible: true,\n },\n {\n name: 'entity',\n title: 'Entity',\n group: AXP_DATA_PROPERTY_GROUP,\n schema: {\n dataType: 'string',\n interface: {\n name: 'entity',\n path: 'options.entity',\n type: AXPWidgetsCatalog.text,\n },\n },\n visible: true,\n },\n AXP_ALLOW_MULTIPLE_PROPERTY\n ],\n components: {\n view: {\n component: () => import('./lookup-widget-view.component').then((c) => c.AXPLookupWidgetViewComponent),\n },\n edit: {\n component: () => import('./lookup-widget-edit.component').then((c) => c.AXPLookupWidgetEditComponent),\n },\n column: {\n component: () => import('./lookup-widget-column.component').then((c) => c.AXPLookupWidgetColumnComponent),\n },\n designer: {\n component: () => import('./lookup-widget-edit.component').then((c) => c.AXPLookupWidgetEditComponent),\n },\n },\n};\n\n\nexport interface AXPLookupWidgetOptions {\n disabled?: boolean | AXPExpression;\n readonly?: boolean | AXPExpression;\n placeholder?: string;\n expose?: string | string[];\n} \n","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\n\n@Component({\n template: `\n <div class=\"ax-flex ax-gap-1 ax-flex-wrap\">\n @if (useSelectBox() && getData().length > 0) { @for (item of getData(); track $index) {\n <ax-badge [look]=\"'twotone'\" [text]=\"item[textField()]\" color=\"primary\"></ax-badge>\n } } @else { @if(multiple()) { @for (item of internalValue(); track $index) {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-inline-block\">{{ item }}</span>\n } } @else {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-inline-block\">{{ internalValue()[0] }}</span>\n } }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, AXBadgeModule],\n inputs: [],\n})\nexport class AXPTagableBoxWidgetColumnComponent extends AXPValueWidgetComponent<any> {\n protected internalValue = computed(() => (Array.isArray(this.getValue()) ? this.getValue() : [this.getValue()]));\n\n protected multiple = computed<boolean>(() => this.options()['multiple'] as boolean);\n\n // ویژگی‌های مرتبط با SelectBox\n protected useSelectBox = computed<boolean>(() => this.options()['useSelectBox'] as boolean);\n protected textField = computed<string>(() => (this.options()['textField'] as string) ?? 'title');\n\n // استخراج داده‌ها برای نمایش\n protected getData = computed(() => {\n if (!this.useSelectBox()) {\n return [];\n }\n\n const value = this.getValue();\n if (!value) {\n return [];\n }\n\n return Array.isArray(value) ? value : [value];\n });\n}\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDataSource, AXValueChangedEvent } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\n// import { AXTagBoxModule } from '@acorex/components/tag-box';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, computed, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXPEntityResolver } from '../../entity.config';\n\n@Component({\n selector: 'axp-tagable-box-widget',\n template: `\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n <!-- نمایش Select Box با دکمه اضافه کردن آیتم -->\n <ax-select-box\n class=\"ax-col-span-12\"\n [placeholder]=\"placeholder()\"\n [dataSource]=\"_dataSource\"\n [ngModel]=\"getValue()\"\n [valueField]=\"'name'\"\n [textField]=\"'title'\"\n [multiple]=\"true\"\n (onValueChanged)=\"handleSelectValueChange($event)\"\n >\n @if (allowSearch()) {\n <ax-search-box><ax-clear-button></ax-clear-button></ax-search-box>\n }\n @if (hasClearButton()) {\n <ax-clear-button></ax-clear-button>\n }\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validation.options?.message\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-select-box>\n <ax-button\n [text]=\"'افزودن آیتم جدید'\"\n look=\"twotone\"\n [disabled]=\"disabled()\"\n (onClick)=\"addItem()\"\n class=\"ax-col-start-8 md:ax-col-start-9 2xl:ax-col-start-10 ax-col-end-13\"\n >\n <ax-prefix>\n <ax-icon class=\"fa-solid fa-add\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n AXTextBoxModule,\n FormsModule,\n AXFormModule,\n AXDecoratorModule,\n AXValidationModule,\n AXButtonModule,\n // AXTagBoxModule,\n AXSelectBoxModule,\n AXSearchBoxModule,\n ],\n inputs: [],\n})\nexport class AXPTagableBoxWidgetEditComponent extends AXPValueWidgetComponent<any> {\n protected entityResolver = inject(AXPEntityResolver);\n\n protected hasClearButton = computed<boolean>(() => this.options()['hasClearButton'] as boolean);\n protected disabled = computed<boolean>(() => this.options()['disabled'] as boolean);\n protected placeholder = computed<string>(() => this.options()['placeholder'] as string);\n\n // پارامترهای SelectBox\n protected moduleName = computed<string>(() => this.options()['module'] as string);\n protected entityName = computed<string>(() => this.options()['entity'] as string);\n protected allowSearch = computed<boolean>(() => this.options()['allowSearch'] as boolean);\n\n // منبع داده برای SelectBox\n protected _dataSource: AXDataSource<any> = new AXDataSource({\n load: async (e: any) => {\n const entity = await this.entityResolver.get(this.moduleName(), this.entityName());\n const func = entity?.queries.list?.execute as Function;\n const result = await func(e);\n console.log(result);\n return {\n items: result?.items || [],\n total: result?.total || 0,\n };\n },\n pageSize: 10,\n });\n\n protected handleSelectValueChange(e: AXValueChangedEvent) {\n if (e.isUserInteraction) {\n this.setValue(e.value);\n }\n }\n\n protected addItem() {}\n\n @HostBinding('class')\n private get __class(): string {\n const cls: any = {};\n cls[`ax-block`] = true;\n cls[`ax-flex-1`] = true;\n return cls;\n }\n}\n","import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, FormsModule],\n inputs: [],\n})\nexport class AXPTagableBoxWidgetFilterComponent extends AXPValueWidgetComponent<any> { }\n","import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\n\n@Component({\n template: `\n <div>\n @if (useSelectBox() && getData().length > 0) { @for (item of getData(); track $index) {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-mr-2 ax-mb-2 ax-inline-block\">{{\n item[textField()]\n }}</span>\n } } @else { @if(multiple()) { @for (item of internalValue(); track $index) {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-mr-2 ax-mb-2 ax-inline-block\">{{ item }}</span>\n } } @else {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-mr-2 ax-mb-2 ax-inline-block\">{{\n internalValue()[0]\n }}</span>\n } }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n inputs: [],\n})\nexport class AXPTagableBoxWidgetPrintComponent extends AXPValueWidgetComponent<any> {\n protected internalValue = computed(() => (Array.isArray(this.getValue()) ? this.getValue() : [this.getValue()]));\n\n protected multiple = computed<boolean>(() => this.options()['multiple'] as boolean);\n\n // ویژگی‌های مرتبط با SelectBox\n protected useSelectBox = computed<boolean>(() => this.options()['useSelectBox'] as boolean);\n protected textField = computed<string>(() => (this.options()['textField'] as string) ?? 'title');\n\n // استخراج داده‌ها برای نمایش\n protected getData = computed(() => {\n if (!this.useSelectBox()) {\n return [];\n }\n\n const value = this.getValue();\n if (!value) {\n return [];\n }\n\n return Array.isArray(value) ? value : [value];\n });\n}\n","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\n\n@Component({\n selector: 'axp-tagable-box-widget',\n template: `\n @for (item of internalValue(); track $index) {\n <ax-badge [look]=\"'twotone'\" [text]=\"item\" color=\"primary\"></ax-badge>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, AXBadgeModule],\n inputs: [],\n})\nexport class AXPTagableBoxWidgetViewComponent extends AXPValueWidgetComponent<any> {\n protected internalValue = computed(() => (Array.isArray(this.getValue()) ? this.getValue() : [this.getValue()]));\n\n protected multiple = computed<boolean>(() => this.options()['multiple'] as boolean);\n\n // ویژگی‌های مرتبط با SelectBox\n protected useSelectBox = computed<boolean>(() => this.options()['useSelectBox'] as boolean);\n protected textField = computed<string>(() => (this.options()['textField'] as string) ?? 'title');\n\n // استخراج داده‌ها برای نمایش\n protected getData = computed(() => {\n if (!this.useSelectBox()) {\n return [];\n }\n\n const value = this.getValue();\n if (!value) {\n return [];\n }\n\n return Array.isArray(value) ? value : [value];\n });\n}\n","import { AXP_WIDGETS_EDITOR_CATEGORY, AXPWidgetConfig } from '@acorex/platform/layout/builder';\n\nimport { AXP_DATA_PATH_PROPERTY, AXP_NAME_PROPERTY } from '@acorex/platform/widgets';\n\nexport const AXPTagableBoxWidget: AXPWidgetConfig = {\n name: 'tagable-editor',\n title: 'Tagable Box',\n icon: 'fa-light fa-tags',\n description: 'Inputs text with tags',\n categories: AXP_WIDGETS_EDITOR_CATEGORY,\n type: 'editor',\n defaultFilterWidgetName: 'string-filter',\n properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY],\n components: {\n view: {\n component: () => import('./tagable-box-widget-view.component').then((c) => c.AXPTagableBoxWidgetViewComponent),\n },\n edit: {\n component: () => import('./tagable-box-widget-edit.component').then((c) => c.AXPTagableBoxWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./tagable-box-widget-filter.component').then((c) => c.AXPTagableBoxWidgetFilterComponent),\n },\n column: {\n component: () =>\n import('./tagable-box-widget-column.component').then((c) => c.AXPTagableBoxWidgetColumnComponent),\n },\n print: {\n component: () => import('./tagable-box-widget-print.component').then((c) => c.AXPTagableBoxWidgetPrintComponent),\n },\n designer: {\n component: () => import('./tagable-box-widget-edit.component').then((c) => c.AXPTagableBoxWidgetEditComponent),\n },\n },\n};\ndeclare module '@acorex/platform/layout/builder' {\n interface AXPWidgetTypesMap {\n tagable: 'tagable-editor';\n }\n}\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTextBoxComponent, AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { AXPValidationRule } from '@acorex/platform/core';\nimport {\n AXPValueWidgetComponent,\n AXPWidgetConfig,\n AXPWidgetNode,\n AXPWidgetRegistryService,\n AXPWidgetTypesMap,\n} from '@acorex/platform/layout/builder';\nimport { AXPWidgetPropertiesChangedEvent, AXPWidgetPropertyViewerComponent } from '@acorex/platform/layout/designer';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, signal, ViewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { sortBy } from 'lodash-es';\n\n@Component({\n template: `\n <ax-text-box [ngModel]=\"displayText()\" [placeholder]=\"placeholder()\" [readonly]=\"true\">\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validation.options?.message\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n <ax-suffix>\n <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"showSelector()\">\n <ax-icon icon=\"far fa-search\"> </ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-text-box>\n @if(selectedWidgetNode()){\n <axp-widget-property-viewer [widget]=\"selectedWidgetNode()!\" (onChanged)=\"handleChangeWidget($event)\">\n </axp-widget-property-viewer>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n FormsModule,\n AXSelectBoxModule,\n AXTextBoxModule,\n AXButtonModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXValidationModule,\n AXFormModule,\n AXPWidgetPropertyViewerComponent,\n ]\n})\nexport class AXPWidgetSelectorWidgetEditComponent extends AXPValueWidgetComponent<any> {\n private popupService = inject(AXPopupService);\n private widgetRegisteryService = inject(AXPWidgetRegistryService);\n\n @ViewChild(AXTextBoxComponent)\n textbox: AXTextBoxComponent;\n\n protected searchTerm = signal<string | null>(null);\n protected isOpen = signal(false);\n protected textField = signal<string>('');\n\n protected displayText = computed(() => this.getValue()?.title || '');\n protected selectedWidgetNode = signal<AXPWidgetNode | null>(null);\n protected selectedItem = signal<any | null>(null);\n\n protected placeholder = computed(() => this.options()['placeholder'] ?? '');\n protected loading = computed<boolean>(() => this.options()['loading'] ?? false);\n\n ngAfterViewInit(): void {\n if (this.getValue()) {\n this.selectedWidgetNode.set(this.getValue());\n }\n }\n\n async showSelector() {\n const com = await import('@acorex/platform/layout/designer').then((c) => c.AXPDesignerWidgetPickerComponent);\n const result = await this.popupService.open(com, {\n title: 'Widget Gallery',\n size: 'md',\n closeButton: true,\n data: {\n widgets: sortBy(\n this.widgetRegisteryService.all(),\n (c) => c.title\n ),\n },\n });\n if ((result.data?.widgets ?? []).length) {\n const selected = result.data?.widgets as AXPWidgetConfig[];\n const selectedNode = this.convertWidgetConfigToNode(selected[0]);\n this.selectedWidgetNode.set(selectedNode);\n }\n }\n\n protected convertWidgetConfigToNode(config: AXPWidgetConfig): AXPWidgetNode {\n return {\n type: config.name as (keyof AXPWidgetTypesMap),\n };\n }\n\n protected handleChangeWidget(e: AXPWidgetPropertiesChangedEvent) {\n const widget = this.widgetRegisteryService.resolve(e.values.type);\n this.setValue({ title: widget?.title, ...e.values });\n }\n}\n","import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n template: `{{ getValue()?.title }}`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule]\n})\nexport class AXPWidgetSelectorWidgetViewComponent extends AXPValueWidgetComponent<any> { }\n","import { AXP_WIDGETS_EDITOR_CATEGORY, AXPWidgetConfig } from '@acorex/platform/layout/builder';\nimport { AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY, AXP_NAME_PROPERTY } from '@acorex/platform/widgets';\n\nexport const AXPWidgetSelectorWidget: AXPWidgetConfig = {\n name: 'widget-selector',\n title: 'Widget Selector',\n categories: AXP_WIDGETS_EDITOR_CATEGORY,\n type: 'editor',\n icon: 'fa-light fa-square',\n properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],\n components: {\n view: {\n component: () =>\n import('./widget-selector-widget-view.component').then((c) => c.AXPWidgetSelectorWidgetViewComponent),\n },\n edit: {\n component: () =>\n import('./widget-selector-widget-edit.component').then((c) => c.AXPWidgetSelectorWidgetEditComponent),\n },\n },\n};\n\ndeclare module '@acorex/platform/layout/builder' {\n interface AXPWidgetTypesMap {\n widgetSelector: 'widget-selector';\n }\n}\n","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityCreateViewModelFactory } from '../entity-master-create.viewmodel';\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\nimport { AXP_ENTITY_CONFIG_TOKEN } from '../entity.config';\n\nexport const AXPEntityCreateEvent = createWorkFlowEvent<{ entity: string; meta?: any }>('[Entity] Created!');\n\n@Injectable()\nexport class AXPEntityCreatePopupAction extends AXPWorkflowAction {\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\n private popupService = inject(AXPopupService);\n private platform = inject(AXPlatform);\n private factory = inject(AXPEntityCreateViewModelFactory);\n private config = inject(AXP_ENTITY_CONFIG_TOKEN);\n private translateService = inject(AXTranslationService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const [module, entity] = context.getVariable<string>('entity').split('.');\n const data = context.getVariable<any>('data');\n const options = context.getVariable<any>('options');\n\n console.log('data', data);\n\n const process = options?.['process'];\n const decoration = options?.['decoration'];\n const layout = options?.['layout'];\n\n const headerTitle = decoration?.header?.title;\n\n const size = layout?.size;\n\n const entityRef = await this.entityRegistery.resolve(module, entity);\n const com = await this.config.viewers.master.create();\n\n if (entityRef.parentKey) {\n context.setVariable('parentKey', entityRef.parentKey);\n }\n\n const result = await this.popupService.open(com, {\n title: headerTitle\n ? headerTitle\n : `${await this.translateService.translateAsync('create-new')} ${await this.translateService.translateAsync(\n entityRef.formats.individual\n )}`,\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : size ? size : 'md',\n data: {\n vm: await this.factory.create(module, entity, data, options),\n entity,\n },\n });\n context.setOutput('result', false);\n if (result.data?.save) {\n context.setOutput('result', true);\n const prevData = context.getVariable('data');\n const prevMeta = context.getVariable('meta');\n\n context.setVariable('data', { ...prevData, ...result.data.item });\n if (entityRef.parentKey && result.data.item[entityRef.parentKey]) {\n context.setVariable('meta', { ...prevMeta, refreshTargetId: result.data.item[entityRef.parentKey] });\n }\n }\n }\n}\n@Injectable() //avoid DEPRECATED: DI is instantiating a token \"AXPEntityCreateSubmittedAction\" that inherits its @Injectable decorator but does not provide one itself. This will become an error in a future version of Angular. Please add @Injectable() to the \"AXPEntityCreateSubmittedAction\" class.\nexport class AXPEntityCreateSubmittedAction extends AXPWorkflowAction {\n async execute(context: AXPWorkflowContext): Promise<void> {\n this.dispatch(\n AXPEntityCreateEvent({ entity: context.getVariable<string>('entity'), meta: context.getVariable('meta') })\n );\n this.dispatch(\n AXPRefreshEvent({ entity: context.getVariable<string>('entity'), meta: context.getVariable('meta') })\n );\n }\n}\n\nexport const AXPCreateEntityWorkflow: AXPWorkflow = {\n startStepId: 'show-popup',\n steps: {\n 'show-popup': {\n action: 'AXPEntityCreatePopupAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\n nextStepId: 'show-toast',\n },\n ],\n },\n 'show-toast': {\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-created',\n content: 'workflow.entity-created-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'dispatch-event',\n },\n ],\n },\n 'dispatch-event': {\n action: 'AXPEntityCreateSubmittedAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getVariable(\"options\")?.process?.redirect != false' }],\n nextStepId: 'show-entity',\n },\n ],\n },\n 'show-entity': {\n action: 'AXPShowDetailViewAction',\n },\n },\n};\n","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { AXPEntityMasterUpdateViewModelFactory } from '../entity-master-update.viewmodel';\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\nimport { AXP_ENTITY_CONFIG_TOKEN } from '../entity.config';\n\n@Injectable()\nexport class AXPQuickEntityModifyPopupAction extends AXPWorkflowAction {\n private popupService = inject(AXPopupService);\n private platform = inject(AXPlatform);\n private translateService = inject(AXTranslationService);\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\n private config = inject(AXP_ENTITY_CONFIG_TOKEN);\n private factory = inject(AXPEntityMasterUpdateViewModelFactory);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const [moduleName, entityName] = context.getVariable<string>('entity').split('.');\n const data = context.getVariable('data');\n const entityRef = await this.entityRegistery.resolve(moduleName, entityName);\n const { parentKey } = entityRef;\n\n const { id } = data;\n const { interfaces, title } = entityRef;\n const properties = interfaces?.master?.update?.properties?.map((p) => p.name) || [];\n\n const vm = await this.factory.create(moduleName, entityName, id, properties);\n\n const options = context.getVariable<any>('options');\n const decoration = options?.['decoration'];\n const headerTitle = decoration?.header?.title;\n\n if (parentKey) {\n context.setVariable('parentKey', parentKey);\n }\n\n const com = await this.config.viewers.master.modify();\n const popup = await this.popupService.open(com, {\n title: headerTitle\n ? headerTitle\n : title ??\n `${this.translateService.translateSync('entity.modify')} ${this.translateService.translateSync(\n entityRef.formats.individual\n )}`,\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',\n data: {\n vm,\n properties,\n entity: entityRef,\n },\n });\n context.setOutput('result', false);\n if (popup.data?.result == true) {\n context.setOutput('result', true);\n context.setVariable('data', cloneDeep(popup.data.context));\n }\n }\n}\n\nexport const AXPQuickModifyEntityWorkflow: AXPWorkflow = {\n startStepId: 'modifyPopup',\n steps: {\n modifyPopup: {\n id: 'modifyPopup',\n action: 'AXPQuickEntityModifyPopupAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\n nextStepId: 'successToast',\n },\n ],\n },\n successToast: {\n id: 'successToast',\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-modified-title',\n content: 'workflow.entity-modified-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'modifyConfirmed',\n },\n ],\n },\n modifyConfirmed: {\n id: 'modifyConfirmed',\n action: 'AXPEntityModifyConfirmedAction',\n },\n },\n};\n\n\n\n@Injectable()\nexport class AXPEntityApplyUpdatesAction extends AXPWorkflowAction {\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n try {\n const [moduleName, entityName] = context.getVariable<string>('entity').split('.');\n const data = context.getVariable('data');\n const entityRef = await this.entityRegistery.resolve(moduleName, entityName);\n const exec = entityRef.commands?.update?.execute as Function;\n const result = await exec(data);\n context.setVariable('data', result);\n context.setOutput('result', true);\n } catch (error) {\n context.setOutput('result', false);\n context.setOutput('error', error);\n }\n }\n} ","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPWorkflowNavigateAction } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\n\n@Injectable()\nexport class AXPShowDetailViewAction extends AXPWorkflowAction {\n private navigation = inject(AXPWorkflowNavigateAction);\n private sessionService = inject(AXPSessionService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const [module, entity] = context.getVariable('entity').split(\".\");\n const { id } = context.getVariable('data');\n const newPayload = {\n commands: `/${this.sessionService.application?.name}/m/${module}/e/${entity}/${id}/view`,\n };\n context.setVariable('payload', newPayload);\n this.navigation.execute(context);\n }\n}\n\n\nexport const AXPShowDetailsViewWorkflow: AXPWorkflow = {\n startStepId: 'showDetailView',\n steps: {\n showDetailView: {\n action: 'AXPShowDetailViewAction',\n },\n },\n};\n","import { inject, Injectable } from '@angular/core';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext } from '@acorex/platform/workflow';\nimport { AXPFileListItem } from '@acorex/platform/core';\nimport { AXPFileUploaderWidgetService } from '@acorex/platform/widgets';\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\nimport { cloneDeep } from 'lodash-es';\n\n@Injectable()\nexport class AXPShowFileUploaderPopupAction extends AXPWorkflowAction {\n private fileUploaderWidgetService = inject(AXPFileUploaderWidgetService);\n private entityRegistryService = inject(AXPEntityDefinitionRegistryService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n\n // *********** get options ***********\n const key = context.getVariable<string>('options.key');\n const readOnly = context.getVariable<boolean>('options.readOnly');\n const multiple = context.getVariable<boolean>('options.multiple');\n const accept = context.getVariable<string>('options.accept');\n const maxFileSize = context.getVariable<number>('options.maxFileSize');\n const files = context.getVariable<AXPFileListItem[]>('options.files');\n \n // *********** show file list ***********\n const res = await this.fileUploaderWidgetService.showFileList({\n files: files,\n readOnly: readOnly,\n multiple: multiple,\n accept: accept,\n });\n if ((res?.length ?? 0) === 0) {\n context.setOutput('result', false);\n return;\n }\n\n // *********** save files to entity ***********\n const [module, entity] = context.getVariable<string>('entity').split('.');\n const entityDefinition = await this.entityRegistryService.resolve(module, entity);\n \n if (entityDefinition) {\n const updateExec = entityDefinition.commands?.update?.execute as Function;\n \n const entityData = await updateExec({\n id: context.getVariable<string>('options.id'),\n [key]: res,\n });\n context.setOutput('result', true);\n context.setVariable('data', cloneDeep(entityData));\n }\n }\n}\n\nexport const AXPShowFileUploaderPopupWorkflow: AXPWorkflow = {\n startStepId: 'show-popup',\n steps: {\n 'show-popup': {\n action: 'AXPShowFileUploaderPopupAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\n nextStepId: 'successToast',\n },\n ],\n },\n successToast: {\n id: 'successToast',\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-modified-title',\n content: 'workflow.entity-modified-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'modifyConfirmed',\n },\n ],\n },\n modifyConfirmed: {\n id: 'modifyConfirmed',\n action: 'AXPEntityModifyConfirmedAction',\n },\n },\n};\n","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPWorkflowNavigateAction } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\n\n\n@Injectable()\nexport class AXPShowListViewAction extends AXPWorkflowAction {\n private navigation = inject(AXPWorkflowNavigateAction);\n private sessionService = inject(AXPSessionService);\n async execute(context?: any): Promise<void> {\n const [moduleName, entityName] = context.getVariable('entity').split(\".\");\n const newPayload = {\n commands: `/${this.sessionService.application?.name}/m/${moduleName}/e/${entityName}/list`,\n };\n context.setVariable('payload', newPayload);\n this.navigation.execute(context);\n }\n}\n\nexport const AXPShowListViewWorkflow: AXPWorkflow = {\n startStepId: 'showListView',\n steps: {\n showListView: {\n id: 'showListView',\n action: 'AXPShowListViewAction',\n },\n },\n};\n","import { AXPAuthGuard } from '@acorex/platform/auth';\nimport { AXPToastAction, AXPWorkflowNavigateAction, AXP_SEARCH_DEFINITION_PROVIDER } from '@acorex/platform/common';\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\n\nimport { AXPAppStartUpService } from '@acorex/platform/core';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { Injector, NgModule, inject } from '@angular/core';\nimport { ROUTES, RouterModule, Routes } from '@angular/router';\nimport { AXPEntityListViewModelResolver } from './entity-master-list.viewmodel';\nimport { AXPEntityDetailViewModelResolver } from './entity-master-single.viewmodel';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\nimport { AXP_ENTITY_CONFIG_TOKEN } from './entity.config';\nimport { AXPEntityCommandSearchDefinitionProvider } from './search-definition-command.provider';\nimport { AXPEntitySearchDefinitionProvider } from './search-definition.provider';\nimport { AXPLookupWidget } from './widgets/lookup-widget';\nimport { AXPTagableBoxWidget } from './widgets/tagable-box';\nimport { AXPWidgetSelectorWidget } from './widgets/widget-selector';\nimport {\n AXPCreateEntityWorkflow,\n AXPEntityCreatePopupAction,\n AXPEntityCreateSubmittedAction,\n} from './workflows/create-entity.workflow';\nimport { AXPDeleteEntityWorkflow, AXPEntityPerformDeleteAction } from './workflows/delete-entity.workflow';\nimport {\n AXPEntityApplyUpdatesAction,\n AXPQuickEntityModifyPopupAction,\n AXPQuickModifyEntityWorkflow,\n} from './workflows/modify-entity.workflow';\nimport {\n AXPEntityModifyConfirmedAction,\n AXPEntityModifySectionPopupAction,\n AXPModifyEntitySectionWorkflow,\n} from './workflows/modify-section.workflow';\nimport { AXPShowDetailViewAction, AXPShowDetailsViewWorkflow } from './workflows/show-details.workflow';\nimport {\n AXPShowFileUploaderPopupAction,\n AXPShowFileUploaderPopupWorkflow,\n} from './workflows/show-file-uploader-popup.workflow';\nimport { AXPShowListViewAction, AXPShowListViewWorkflow } from './workflows/show-list.workflow';\n\nfunction routesFacory() {\n const config = inject(AXP_ENTITY_CONFIG_TOKEN);\n let routes: Routes = [];\n routes = [\n {\n path: ':app/m',\n loadComponent: () => {\n return config.viewers.root();\n },\n canActivate: [AXPAuthGuard],\n children: [\n {\n path: ':module',\n children: [\n {\n path: 'e/:entity/list',\n loadComponent: () => {\n return config.viewers.master.list();\n },\n resolve: {\n vm: AXPEntityListViewModelResolver,\n },\n data: { reuse: false },\n },\n {\n path: 'e/:entity/:id/view',\n resolve: { vm: AXPEntityDetailViewModelResolver },\n loadComponent: () => {\n return config.viewers.master.single();\n },\n data: { reuse: false },\n },\n {\n path: 'e/:entity/:id',\n redirectTo: 'e/:entity/:id/view',\n pathMatch: 'full',\n },\n {\n path: 'e/:entity',\n redirectTo: ':entity/list',\n pathMatch: 'full',\n },\n ],\n },\n ],\n },\n ];\n return routes;\n}\n\n@NgModule({\n imports: [\n RouterModule,\n AXPWorkflowModule.forChild({\n actions: {\n AXPEntityCreatePopupAction,\n AXPEntityPerformDeleteAction,\n AXPWorkflowNavigateAction,\n 'entity-perform-delete': AXPEntityPerformDeleteAction,\n AXPEntityModifySectionPopupAction,\n AXPQuickEntityModifyPopupAction,\n AXPEntityModifyConfirmedAction,\n AXPToastAction,\n AXPShowDetailViewAction,\n AXPEntityCreateSubmittedAction,\n AXPShowListViewAction,\n 'entity-apply-updates': AXPEntityApplyUpdatesAction,\n AXPShowFileUploaderPopupAction,\n },\n workflows: {\n 'create-entity': AXPCreateEntityWorkflow,\n 'delete-entity': AXPDeleteEntityWorkflow,\n 'modify-entity-section': AXPModifyEntitySectionWorkflow,\n 'quick-modify-entity': AXPQuickModifyEntityWorkflow,\n 'open-entity': AXPShowDetailsViewWorkflow,\n 'show-list-view': AXPShowListViewWorkflow,\n 'show-file-uploader-popup': AXPShowFileUploaderPopupWorkflow,\n },\n functions: {},\n }),\n AXPLayoutBuilderModule.forChild({\n widgets: [AXPLookupWidget, AXPWidgetSelectorWidget, AXPTagableBoxWidget],\n }),\n ],\n exports: [],\n declarations: [],\n providers: [\n // CUSTOMER_MODIFIER_PROVIDER,\n {\n provide: ROUTES,\n multi: true,\n useFactory: routesFacory,\n },\n {\n provide: AXP_SEARCH_DEFINITION_PROVIDER,\n useClass: AXPEntitySearchDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_DEFINITION_PROVIDER,\n useClass: AXPEntityCommandSearchDefinitionProvider,\n multi: true,\n },\n ],\n})\nexport class AXPEntityModule {\n constructor(appInitService: AXPAppStartUpService, injector: Injector) {\n const service = injector.get(AXPEntityDefinitionRegistryService);\n appInitService.registerTask({\n name: 'layout-theme',\n statusText: 'Preload entities ...',\n priority: 100,\n run: async () => {\n // load in background\n service.preload();\n },\n });\n }\n}\n","import { AXPSessionService } from '@acorex/platform/auth';\nimport { inject, Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPEntityService {\n private sessionService = inject(AXPSessionService);\n\n createPath(module: string, entity: string, path: string = 'list'): string {\n return `/${this.sessionService.application?.name}/m/${module}/e/${entity}/${path}`;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i5","i6","i7","i3","i4"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-layout-entity.mjs","sources":["../tmp-esm2022/layout/entity/lib/entity-data-seeder.js","../tmp-esm2022/layout/entity/lib/entity.config.js","../tmp-esm2022/layout/entity/lib/entity.viewmodel.js","../tmp-esm2022/layout/entity/lib/entity-detail-list.viewmodel.js","../tmp-esm2022/layout/entity/lib/entity-middleware/entity-modifier.context.js","../tmp-esm2022/layout/entity/lib/entity-middleware/entity-provider.js","../tmp-esm2022/layout/entity/lib/entity-middleware/entity-middleware.js","../tmp-esm2022/layout/entity/lib/entity-registery.service.js","../tmp-esm2022/layout/entity/lib/entity-master-create.viewmodel.js","../tmp-esm2022/layout/entity/lib/entity-master-list.viewmodel.js","../tmp-esm2022/layout/entity/lib/workflows/delete-entity.workflow.js","../tmp-esm2022/layout/entity/lib/entity-master-update.viewmodel.js","../tmp-esm2022/layout/entity/lib/workflows/modify-section.workflow.js","../tmp-esm2022/layout/entity/lib/entity-master-single.viewmodel.js","../tmp-esm2022/layout/entity/lib/entity-storage-service.js","../tmp-esm2022/layout/entity/lib/search-definition-command.provider.js","../tmp-esm2022/layout/entity/lib/search-definition.provider.js","../tmp-esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.js","../tmp-esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.js","../tmp-esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.js","../tmp-esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.js","../tmp-esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-column.component.js","../tmp-esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget.config.js","../tmp-esm2022/layout/entity/lib/widgets/tagable-box/tagable-box-widget-column.component.js","../tmp-esm2022/layout/entity/lib/widgets/tagable-box/tagable-box-widget-edit.component.js","../tmp-esm2022/layout/entity/lib/widgets/tagable-box/tagable-box-widget-filter.component.js","../tmp-esm2022/layout/entity/lib/widgets/tagable-box/tagable-box-widget-print.component.js","../tmp-esm2022/layout/entity/lib/widgets/tagable-box/tagable-box-widget-view.component.js","../tmp-esm2022/layout/entity/lib/widgets/tagable-box/tagable-box-widget.config.js","../tmp-esm2022/layout/entity/lib/widgets/widget-selector/widget-selector-widget-edit.component.js","../tmp-esm2022/layout/entity/lib/widgets/widget-selector/widget-selector-widget-view.component.js","../tmp-esm2022/layout/entity/lib/widgets/widget-selector/widget-selector-widget.config.js","../tmp-esm2022/layout/entity/lib/workflows/create-entity.workflow.js","../tmp-esm2022/layout/entity/lib/workflows/modify-entity.workflow.js","../tmp-esm2022/layout/entity/lib/workflows/show-details.workflow.js","../tmp-esm2022/layout/entity/lib/workflows/show-file-uploader-popup.workflow.js","../tmp-esm2022/layout/entity/lib/workflows/show-list.workflow.js","../tmp-esm2022/layout/entity/lib/entity.module.js","../tmp-esm2022/layout/entity/lib/entity.service.js","../tmp-esm2022/layout/entity/acorex-platform-layout-entity.js"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\nimport { castArray } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nexport const AXP_DATA_SEEDER_TOKEN = new InjectionToken('AXP_DATA_SEEDER_TOKEN');\nexport class AXPDataSeederService {\n constructor() {\n this.loaders = inject(AXP_DATA_SEEDER_TOKEN, { optional: true });\n }\n async seed() {\n for (const loader of castArray(this.loaders)) {\n await loader?.seed();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPDataSeederService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPDataSeederService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPDataSeederService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWRhdGEtc2VlZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LWRhdGEtc2VlZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQU10QyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FBa0IsdUJBQXVCLENBQUMsQ0FBQztBQUdsRyxNQUFNLE9BQU8sb0JBQW9CO0lBRGpDO1FBRVUsWUFBTyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBT3JFO0lBTEMsS0FBSyxDQUFDLElBQUk7UUFDUixLQUFLLE1BQU0sTUFBTSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3QyxNQUFNLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQzs4R0FQVSxvQkFBb0I7a0hBQXBCLG9CQUFvQixjQURQLE1BQU07OzJGQUNuQixvQkFBb0I7a0JBRGhDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2FzdEFycmF5IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBEYXRhU2VlZGVyIHtcbiAgc2VlZCgpOiBQcm9taXNlPHZvaWQ+O1xufVxuXG5leHBvcnQgY29uc3QgQVhQX0RBVEFfU0VFREVSX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPEFYUERhdGFTZWVkZXJbXT4oJ0FYUF9EQVRBX1NFRURFUl9UT0tFTicpO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUERhdGFTZWVkZXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBsb2FkZXJzID0gaW5qZWN0KEFYUF9EQVRBX1NFRURFUl9UT0tFTiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBhc3luYyBzZWVkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGZvciAoY29uc3QgbG9hZGVyIG9mIGNhc3RBcnJheSh0aGlzLmxvYWRlcnMpKSB7XG4gICAgICBhd2FpdCBsb2FkZXI/LnNlZWQoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport const AXP_ENTITY_CONFIG_TOKEN = new InjectionToken('AXP_ENTITY_CONFIG_TOKEN');\nexport const AXP_ENTITY_DEFINITION_LOADER = new InjectionToken('AXP_ENTITY_DEFINITION_PROVIDER');\nexport class AXPEntityResolver {\n constructor() {\n this.providers = inject(AXP_ENTITY_DEFINITION_LOADER);\n }\n async get(moduleName, entityName) {\n if (Array.isArray(this.providers)) {\n for (const loader of this.providers) {\n const entity = await loader.get(moduleName, entityName);\n if (entity) {\n return entity;\n }\n }\n }\n else {\n return await this.providers.get(moduleName, entityName);\n }\n return null;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityResolver, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityResolver, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityResolver, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFRLE1BQU0sZUFBZSxDQUFDOztBQWlCekUsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQW1CLHlCQUF5QixDQUFDLENBQUM7QUFRdkcsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxjQUFjLENBQzVELGdDQUFnQyxDQUNqQyxDQUFDO0FBR0YsTUFBTSxPQUFPLGlCQUFpQjtJQUQ5QjtRQUVVLGNBQVMsR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztLQWUxRDtJQWJDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBa0IsRUFBRSxVQUFrQjtRQUM5QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDbEMsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQ3hELElBQUksTUFBTSxFQUFFLENBQUM7b0JBQ1gsT0FBTyxNQUFNLENBQUM7Z0JBQ2hCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OEdBZlUsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FESixNQUFNOzsyRkFDbkIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUEVudGl0eSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBFbnRpdHlDb25maWdzIHtcbiAgdmlld2Vyczoge1xuICAgIHJvb3Q6ICgpID0+IFR5cGU8YW55PiB8IFByb21pc2U8VHlwZTxhbnk+PjtcbiAgICBkZXRhaWw6IHtcbiAgICAgIGxpc3Q6ICgpID0+IFR5cGU8YW55PiB8IFByb21pc2U8VHlwZTxhbnk+PjtcbiAgICB9O1xuICAgIG1hc3Rlcjoge1xuICAgICAgc2luZ2xlOiAoKSA9PiBUeXBlPGFueT4gfCBQcm9taXNlPFR5cGU8YW55Pj47XG4gICAgICBjcmVhdGU6ICgpID0+IFR5cGU8YW55PiB8IFByb21pc2U8VHlwZTxhbnk+PjtcbiAgICAgIG1vZGlmeTogKCkgPT4gVHlwZTxhbnk+IHwgUHJvbWlzZTxUeXBlPGFueT4+O1xuICAgICAgbGlzdDogKCkgPT4gVHlwZTxhbnk+IHwgUHJvbWlzZTxUeXBlPGFueT4+O1xuICAgIH07XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBBWFBfRU5USVRZX0NPTkZJR19UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBFbnRpdHlDb25maWdzPignQVhQX0VOVElUWV9DT05GSUdfVE9LRU4nKTtcblxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRW50aXR5RGVmaW5pdGlvbkxvYWRlciB7XG4gIGdldChtb2R1bGVOYW1lOiBzdHJpbmcsIGVudGl0eU5hbWU6IHN0cmluZyk6IFByb21pc2U8QVhQRW50aXR5IHwgbnVsbD47XG59XG5cbmV4cG9ydCBjb25zdCBBWFBfRU5USVRZX0RFRklOSVRJT05fTE9BREVSID0gbmV3IEluamVjdGlvblRva2VuPEFYUEVudGl0eURlZmluaXRpb25Mb2FkZXI+KFxuICAnQVhQX0VOVElUWV9ERUZJTklUSU9OX1BST1ZJREVSJ1xuKTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlSZXNvbHZlciB7XG4gIHByaXZhdGUgcHJvdmlkZXJzID0gaW5qZWN0KEFYUF9FTlRJVFlfREVGSU5JVElPTl9MT0FERVIpO1xuXG4gIGFzeW5jIGdldChtb2R1bGVOYW1lOiBzdHJpbmcsIGVudGl0eU5hbWU6IHN0cmluZyk6IFByb21pc2U8QVhQRW50aXR5IHwgbnVsbD4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMucHJvdmlkZXJzKSkge1xuICAgICAgZm9yIChjb25zdCBsb2FkZXIgb2YgdGhpcy5wcm92aWRlcnMpIHtcbiAgICAgICAgY29uc3QgZW50aXR5ID0gYXdhaXQgbG9hZGVyLmdldChtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcbiAgICAgICAgaWYgKGVudGl0eSkge1xuICAgICAgICAgIHJldHVybiBlbnRpdHk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvdmlkZXJzLmdldChtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdfQ==","import { resolveActionLook, } from '@acorex/platform/common';\nimport { computed } from '@angular/core';\nexport class AXPEntityCommandTriggerViewModel {\n constructor(entity, action) {\n this.name = `${typeof action.command === 'string' ? action.command : action.command.name}&${action.name}`;\n this.options = typeof action.command === 'object' ? action.command.options : undefined;\n this.metadata = typeof action.command === 'object' ? action.command.metadata : undefined;\n const resolvedLook = resolveActionLook(action);\n this.priority = action.priority;\n this.title = action.title;\n this.separated = action.separated ?? false;\n this.color = action.color ?? resolvedLook.color;\n this.icon = action.icon ?? resolvedLook.icon;\n this.hidden = action.hidden ?? false;\n this.disabled = action.disabled ?? false;\n this.default = action.default ?? false;\n this.scope = action.scope;\n }\n}\nexport class AXPEntityListViewColumnViewModel {\n constructor(property, column) {\n this.property = property;\n this.column = column;\n this.name = this.property.name;\n this.title = this.column.title ?? this.property.title;\n this.visible = this.column?.options?.visible ?? true;\n this.dir = this.column.sort?.dir;\n this.sortEnabled = this.property.options?.sort?.enabled;\n this.node = computed(() => {\n const widget = this.property.schema.interface;\n return {\n path: this.column.options?.dataPath ?? this.name,\n type: widget.type,\n options: { ...widget?.options, ...this.column?.options },\n };\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LnZpZXdtb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQU1MLGlCQUFpQixHQUNsQixNQUFNLHlCQUF5QixDQUFDO0FBR2pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsTUFBTSxPQUFPLGdDQUFnQztJQWUzQyxZQUFZLE1BQWlCLEVBQUUsTUFBdUI7UUFDcEQsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLE9BQU8sTUFBTSxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxRyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sTUFBTSxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDdkYsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLE1BQU0sQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3pGLE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQztRQUMzQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQztRQUNoRCxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQztRQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQztRQUN2QyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDNUIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGdDQUFnQztJQUMzQyxZQUNVLFFBQTJCLEVBQzNCLE1BQTRCO1FBRDVCLGFBQVEsR0FBUixRQUFRLENBQW1CO1FBQzNCLFdBQU0sR0FBTixNQUFNLENBQXNCO1FBR3RDLFNBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztRQUMxQixVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDakQsWUFBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUM7UUFDaEQsUUFBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztRQUM1QixnQkFBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUM7UUFHbkQsU0FBSSxHQUFHLFFBQVEsQ0FBc0IsR0FBRyxFQUFFO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVUsQ0FBQztZQUMvQyxPQUFPO2dCQUNMLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDLElBQUk7Z0JBQ2hELElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDakIsT0FBTyxFQUFFLEVBQUUsR0FBRyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUU7YUFDbEMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQWhCQSxDQUFDO0NBaUJMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhTdHlsZUNvbG9yVHlwZSB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQge1xuICBBWFBFbnRpdHksXG4gIEFYUEVudGl0eUFjdGlvbixcbiAgQVhQRW50aXR5Q29tbWFuZFNjb3BlLFxuICBBWFBFbnRpdHlQcm9wZXJ0eSxcbiAgQVhQRW50aXR5VGFibGVDb2x1bW4sXG4gIHJlc29sdmVBY3Rpb25Mb29rLFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBNZXRhRGF0YSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRDb2x1bW5Ob2RlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWwge1xuICBwcmlvcml0eTogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeSc7XG4gIGNvbG9yOiBBWFN0eWxlQ29sb3JUeXBlO1xuICBpY29uOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAga2V5Pzogc3RyaW5nO1xuICBzZXBhcmF0ZWQ6IGJvb2xlYW47XG4gIHNjb3BlOiBBWFBFbnRpdHlDb21tYW5kU2NvcGU7XG4gIGRpc2FibGVkOiBib29sZWFuIHwgc3RyaW5nO1xuICBoaWRkZW46IGJvb2xlYW4gfCBzdHJpbmc7XG4gIG9wdGlvbnM6IGFueTtcbiAgbWV0YWRhdGE/OiBBWFBNZXRhRGF0YTtcbiAgZGVmYXVsdD86IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoZW50aXR5OiBBWFBFbnRpdHksIGFjdGlvbjogQVhQRW50aXR5QWN0aW9uKSB7XG4gICAgdGhpcy5uYW1lID0gYCR7dHlwZW9mIGFjdGlvbi5jb21tYW5kID09PSAnc3RyaW5nJyA/IGFjdGlvbi5jb21tYW5kIDogYWN0aW9uLmNvbW1hbmQubmFtZX0mJHthY3Rpb24ubmFtZX1gO1xuICAgIHRoaXMub3B0aW9ucyA9IHR5cGVvZiBhY3Rpb24uY29tbWFuZCA9PT0gJ29iamVjdCcgPyBhY3Rpb24uY29tbWFuZC5vcHRpb25zIDogdW5kZWZpbmVkO1xuICAgIHRoaXMubWV0YWRhdGEgPSB0eXBlb2YgYWN0aW9uLmNvbW1hbmQgPT09ICdvYmplY3QnID8gYWN0aW9uLmNvbW1hbmQubWV0YWRhdGEgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcmVzb2x2ZWRMb29rID0gcmVzb2x2ZUFjdGlvbkxvb2soYWN0aW9uKTtcbiAgICB0aGlzLnByaW9yaXR5ID0gYWN0aW9uLnByaW9yaXR5O1xuICAgIHRoaXMudGl0bGUgPSBhY3Rpb24udGl0bGU7XG4gICAgdGhpcy5zZXBhcmF0ZWQgPSBhY3Rpb24uc2VwYXJhdGVkID8/IGZhbHNlO1xuICAgIHRoaXMuY29sb3IgPSBhY3Rpb24uY29sb3IgPz8gcmVzb2x2ZWRMb29rLmNvbG9yO1xuICAgIHRoaXMuaWNvbiA9IGFjdGlvbi5pY29uID8/IHJlc29sdmVkTG9vay5pY29uO1xuICAgIHRoaXMuaGlkZGVuID0gYWN0aW9uLmhpZGRlbiA/PyBmYWxzZTtcbiAgICB0aGlzLmRpc2FibGVkID0gYWN0aW9uLmRpc2FibGVkID8/IGZhbHNlO1xuICAgIHRoaXMuZGVmYXVsdCA9IGFjdGlvbi5kZWZhdWx0ID8/IGZhbHNlO1xuICAgIHRoaXMuc2NvcGUgPSBhY3Rpb24uc2NvcGU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwcm9wZXJ0eTogQVhQRW50aXR5UHJvcGVydHksXG4gICAgcHJpdmF0ZSBjb2x1bW46IEFYUEVudGl0eVRhYmxlQ29sdW1uLFxuICApIHt9XG5cbiAgbmFtZSA9IHRoaXMucHJvcGVydHkubmFtZTtcbiAgdGl0bGUgPSB0aGlzLmNvbHVtbi50aXRsZSA/PyB0aGlzLnByb3BlcnR5LnRpdGxlO1xuICB2aXNpYmxlID0gdGhpcy5jb2x1bW4/Lm9wdGlvbnM/LnZpc2libGUgPz8gdHJ1ZTtcbiAgZGlyID0gdGhpcy5jb2x1bW4uc29ydD8uZGlyO1xuICBzb3J0RW5hYmxlZCA9IHRoaXMucHJvcGVydHkub3B0aW9ucz8uc29ydD8uZW5hYmxlZDtcbiAgd2lkdGg6ICcnO1xuXG4gIG5vZGUgPSBjb21wdXRlZDxBWFBXaWRnZXRDb2x1bW5Ob2RlPigoKSA9PiB7XG4gICAgY29uc3Qgd2lkZ2V0ID0gdGhpcy5wcm9wZXJ0eS5zY2hlbWEuaW50ZXJmYWNlITtcbiAgICByZXR1cm4ge1xuICAgICAgcGF0aDogdGhpcy5jb2x1bW4ub3B0aW9ucz8uZGF0YVBhdGggPz8gdGhpcy5uYW1lLFxuICAgICAgdHlwZTogd2lkZ2V0LnR5cGUsXG4gICAgICBvcHRpb25zOiB7IC4uLndpZGdldD8ub3B0aW9ucywgLi4udGhpcy5jb2x1bW4/Lm9wdGlvbnMgfSxcbiAgICB9IGFzIEFYUFdpZGdldENvbHVtbk5vZGU7XG4gIH0pO1xufVxuIl19","import { AXDataSource } from '@acorex/cdk/common';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXPEntityCommandScope, AXPFilterOperatorMiddlewareService, getEntityInfo, } from '@acorex/platform/common';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { computed, signal } from '@angular/core';\nimport { get } from 'lodash-es';\nimport { AXPEntityResolver } from './entity.config';\nimport { AXPEntityCommandTriggerViewModel, AXPEntityListViewColumnViewModel } from './entity.viewmodel';\nimport { AXPExpressionEvaluatorService } from '@acorex/platform/core';\nexport class AXPEntityDetailListViewModel {\n constructor(injector, detailEntityConfig, parent) {\n this.injector = injector;\n this.detailEntityConfig = detailEntityConfig;\n this.parent = parent;\n this.detailEntity = signal(null);\n this.formatService = this.injector.get(AXFormatService);\n this.workflow = this.injector.get(AXPWorkflowService);\n this.filterOperatorMiddleware = this.injector.get(AXPFilterOperatorMiddlewareService);\n this.expressionEvaluator = this.injector.get(AXPExpressionEvaluatorService);\n this.dataSource = new AXDataSource({\n byKey: (key) => {\n const func = this.detailEntity()?.queries.byKey.execute;\n return func();\n },\n load: (e) => {\n const func = this.detailEntity()?.queries.list?.execute;\n return func(e);\n },\n pageSize: 5,\n key: 'id',\n });\n this.parentKey = computed(() => {\n return this.detailEntity()?.parentKey;\n });\n this.selectedItems = signal([]);\n this.hasSelectedItems = computed(() => {\n return this.selectedItems().length > 0;\n });\n //****************** Title ******************//\n this.title = computed(() => {\n return (this.detailEntityConfig.title ??\n this.detailEntity()?.interfaces?.detail?.list?.title ??\n this.detailEntity()?.formats.plural);\n });\n //****************** Visibility ******************//\n this.hidden = computed(async () => {\n if (typeof this.detailEntityConfig.hidden == 'string') {\n const scope = {\n context: {\n eval: (path) => {\n return get(this.parent.data, path);\n },\n },\n };\n return await this.expressionEvaluator.evaluate(this.detailEntityConfig.hidden, scope);\n }\n else {\n return this.detailEntityConfig.hidden ?? false;\n }\n });\n //****************** Inline filter ******************//\n this.inlineFiltersPlaceholders = computed(() => {\n //return this.entityDef.properties.filter(p => p.options?.filter?.inline?.enabled).map(c => c.title);\n return [];\n });\n this.hasInlineFilters = computed(() => {\n return this.inlineFiltersPlaceholders().length > 0;\n });\n //****************** Actions ******************//\n this.allActions = computed(() => {\n const list = this.detailEntity()?.interfaces?.master?.list?.actions ?? [];\n const detailEntityActionList = this.detailEntityConfig.actions ?? [];\n const mergedActions = list.map((tr) => {\n const commandName = typeof tr.command === 'string' ? tr.command : tr.command.name;\n const overrideAction = detailEntityActionList.find((action) => {\n const actionCommandName = typeof action.command === 'string' ? action.command : action.command.name;\n return actionCommandName === commandName && action.name === tr.name;\n });\n return new AXPEntityCommandTriggerViewModel(this.detailEntity(), overrideAction ?? tr);\n });\n return mergedActions;\n });\n this.selectedScopeActionsCount = computed(() => {\n return this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Selected).length;\n });\n this.primaryActions = computed(() => {\n return this.allActions().filter((a) => a.priority == 'primary' &&\n ((a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||\n (a.scope == AXPEntityCommandScope.TypeLevel && !this.hasSelectedItems())));\n });\n this.secondaryActions = computed(() => {\n return this.allActions().filter((a) => a.priority == 'secondary' &&\n ((a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||\n (a.scope == AXPEntityCommandScope.TypeLevel && !this.hasSelectedItems())));\n });\n this.primaryRowActions = computed(() => this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Individual && a.priority === 'primary'));\n this.secondaryRowActions = computed(() => this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Individual && a.priority === 'secondary'));\n //****************** Filter ******************//\n this.inlineFilters = {\n field: null,\n logic: 'or',\n operator: null,\n filters: [],\n };\n //****************** Columns ******************//\n this.columns = computed(() => {\n if (this.detailEntity()) {\n const detailColumns = this.detailEntityConfig.columns ?? [];\n const columns = this.detailEntity()?.columns?.map((c) => c.name) ?? [];\n const props = this.detailEntity()?.properties.filter((p) => p.schema.hidden != true && (detailColumns?.length == 0 || detailColumns?.includes(p.name))) ?? [];\n const displayColumns = props.filter((p) => columns.some((c) => c == p.name));\n return displayColumns.map((p) => {\n return new AXPEntityListViewColumnViewModel(p, this.detailEntity()?.columns?.find((c) => c.name == p.name));\n });\n }\n return [];\n });\n this.evaluateExpressions = async (actionData) => {\n const parentData = this.parent.data;\n const scope = {\n context: {\n eval: (path) => {\n return get(parentData, path);\n },\n },\n };\n return await this.expressionEvaluator.evaluate(actionData, scope);\n };\n this.initialize();\n }\n async initialize() {\n const entityResolver = this.injector.get(AXPEntityResolver);\n const [moduleName, entityName] = this.detailEntityConfig.entity.split('.');\n const entity = await entityResolver.get(moduleName, entityName);\n if (!entity) {\n throw Error(`Invalid enitity name: ${this.detailEntityConfig.entity}`);\n }\n this.detailEntity.set(entity);\n this.applyFilterAndSort();\n }\n clearSelection() {\n this.selectedItems.set([]);\n }\n applyInlineFilter(value) {\n // const props = this.entityDef.properties.filter(c => c.options?.filter?.inline?.enabled);\n // this.inlineFilters.filters = [];\n // if (value) {\n // props.forEach(p => {\n // this.inlineFilters.filters?.push({\n // field: p.name,\n // operator: {\n // type: 'contains'\n // },\n // value\n // })\n // })\n // }\n this.applyFilterAndSort();\n }\n applyFilterAndSort() {\n this.dataSource.clearFilter();\n //\n //this.dataSource.sort(...this.detailEntity.().map(s => ({ dir: s.dir, field: s.name } as AXDataSourceSortOption)));\n //\n const parentFilters = this.detailEntityConfig.conditions?.map((c) => {\n return {\n field: c.name,\n operator: c.operator,\n value: this.parent.data?.id,\n };\n }) ?? [];\n const parentFilterWrapper = {\n field: null,\n logic: 'and',\n operator: null,\n filters: parentFilters,\n };\n //\n const inline = this.inlineFilters.filters?.length ?? 0;\n const parent = parentFilterWrapper.filters?.length ?? 0;\n //\n if (inline) {\n this.dataSource.filter(this.filterOperatorMiddleware.transformFilter(this.inlineFilters));\n }\n else if (!inline && parent) {\n this.dataSource.filter(this.filterOperatorMiddleware.transformFilter(parentFilterWrapper));\n }\n else if (inline && parent) {\n this.dataSource.filter(this.filterOperatorMiddleware.transformFilter({\n field: null,\n logic: 'and',\n operator: null,\n filters: [this.inlineFilters, parentFilterWrapper],\n }));\n }\n //\n this.dataSource.refresh();\n }\n //****************** Commands ******************//\n async executeCommand(commandName, data = null) {\n const action = this.allActions().find((c) => {\n const isSelectedScope = this.selectedItems().length\n ? c.scope == AXPEntityCommandScope.Selected\n : c.scope == AXPEntityCommandScope.Individual;\n return c.name == commandName && (isSelectedScope || c.scope == AXPEntityCommandScope.TypeLevel);\n });\n if (!action)\n return;\n const actionData = action.options?.process?.data;\n const initialData = actionData ? { ...data, ...(await this.evaluateExpressions(actionData)) } : data;\n await this.workflow.execute(commandName.split('&')[0], {\n entity: getEntityInfo(this.detailEntity()).source,\n data: action.scope == AXPEntityCommandScope.Selected ? this.selectedItems() : initialData,\n entityInfo: {\n name: this.detailEntity()?.name,\n module: this.detailEntity()?.module,\n title: this.detailEntity()?.title,\n parentKey: this.detailEntity()?.parentKey,\n source: this.detailEntity()?.source,\n },\n options: action.options,\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWRldGFpbC1saXN0LnZpZXdtb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS1kZXRhaWwtbGlzdC52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBa0QsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUVMLHFCQUFxQixFQUNyQixrQ0FBa0MsRUFFbEMsYUFBYSxHQUNkLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFZLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RyxPQUFPLEVBQStCLDZCQUE2QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbkcsTUFBTSxPQUFPLDRCQUE0QjtJQXdCdkMsWUFDVSxRQUFrQixFQUNsQixrQkFBb0MsRUFDcEMsTUFBd0M7UUFGeEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQWtCO1FBQ3BDLFdBQU0sR0FBTixNQUFNLENBQWtDO1FBMUIxQyxpQkFBWSxHQUFHLE1BQU0sQ0FBbUIsSUFBSSxDQUFDLENBQUM7UUFDOUMsa0JBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNuRCxh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SyxJQUFJLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXO1lBQ3pGLFVBQVUsRUFBRTtnQkFDVixJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLElBQUk7Z0JBQy9CLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTTtnQkFDbkMsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxLQUFLO2dCQUNqQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLFNBQVM7Z0JBQ3pDLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTTthQUNwQztZQUNELE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztTQUN4QixDQUFDLENBQUM7SUFDTCxDQUFDO0NBY0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERhdGFTb3VyY2UsIEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbiwgQVhEYXRhU291cmNlT3BlcmF0b3IgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhGb3JtYXRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2Zvcm1hdCc7XG5pbXBvcnQge1xuICBBWFBFbnRpdHksXG4gIEFYUEVudGl0eUNvbW1hbmRTY29wZSxcbiAgQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZSxcbiAgQVhQUmVsYXRlZEVudGl0eSxcbiAgZ2V0RW50aXR5SW5mbyxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBJbmplY3RvciwgY29tcHV0ZWQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFYUEVudGl0eVJlc29sdmVyIH0gZnJvbSAnLi9lbnRpdHkuY29uZmlnJztcbmltcG9ydCB7IEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsLCBBWFBFbnRpdHlMaXN0Vmlld0NvbHVtblZpZXdNb2RlbCB9IGZyb20gJy4vZW50aXR5LnZpZXdtb2RlbCc7XG5pbXBvcnQgeyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUsIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eURldGFpbExpc3RWaWV3TW9kZWwge1xuICBwcml2YXRlIGRldGFpbEVudGl0eSA9IHNpZ25hbDxBWFBFbnRpdHkgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSBmb3JtYXRTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhGb3JtYXRTZXJ2aWNlKTtcbiAgcHJpdmF0ZSB3b3JrZmxvdyA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUFdvcmtmbG93U2VydmljZSk7XG4gIHByaXZhdGUgZmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZSk7XG4gIHByaXZhdGUgZXhwcmVzc2lvbkV2YWx1YXRvciA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTZXJ2aWNlKTtcblxuICBkYXRhU291cmNlID0gbmV3IEFYRGF0YVNvdXJjZSh7XG4gICAgYnlLZXk6IChrZXkpID0+IHtcbiAgICAgIGNvbnN0IGZ1bmMgPSB0aGlzLmRldGFpbEVudGl0eSgpPy5xdWVyaWVzLmJ5S2V5LmV4ZWN1dGUgYXMgRnVuY3Rpb247XG4gICAgICByZXR1cm4gZnVuYygpO1xuICAgIH0sXG4gICAgbG9hZDogKGUpID0+IHtcbiAgICAgIGNvbnN0IGZ1bmMgPSB0aGlzLmRldGFpbEVudGl0eSgpPy5xdWVyaWVzLmxpc3Q/LmV4ZWN1dGUgYXMgRnVuY3Rpb247XG4gICAgICByZXR1cm4gZnVuYyhlKTtcbiAgICB9LFxuICAgIHBhZ2VTaXplOiA1LFxuICAgIGtleTogJ2lkJyxcbiAgfSk7XG5cbiAgcHVibGljIHBhcmVudEtleSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5kZXRhaWxFbnRpdHkoKT8ucGFyZW50S2V5O1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGRldGFpbEVudGl0eUNvbmZpZzogQVhQUmVsYXRlZEVudGl0eSxcbiAgICBwcml2YXRlIHBhcmVudDogeyBlbnRpdHk6IEFYUEVudGl0eTsgZGF0YTogYW55IH0sXG4gICkge1xuICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuICB9XG5cbiAgYXN5bmMgaW5pdGlhbGl6ZSgpIHtcbiAgICBjb25zdCBlbnRpdHlSZXNvbHZlciA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUEVudGl0eVJlc29sdmVyKTtcbiAgICBjb25zdCBbbW9kdWxlTmFtZSwgZW50aXR5TmFtZV0gPSB0aGlzLmRldGFpbEVudGl0eUNvbmZpZy5lbnRpdHkuc3BsaXQoJy4nKTtcbiAgICBjb25zdCBlbnRpdHkgPSBhd2FpdCBlbnRpdHlSZXNvbHZlci5nZXQobW9kdWxlTmFtZSwgZW50aXR5TmFtZSk7XG4gICAgaWYgKCFlbnRpdHkpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGVuaXRpdHkgbmFtZTogJHt0aGlzLmRldGFpbEVudGl0eUNvbmZpZy5lbnRpdHl9YCk7XG4gICAgfVxuICAgIHRoaXMuZGV0YWlsRW50aXR5LnNldChlbnRpdHkpO1xuICAgIHRoaXMuYXBwbHlGaWx0ZXJBbmRTb3J0KCk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0ZWRJdGVtcyA9IHNpZ25hbDxhbnlbXT4oW10pO1xuXG4gIHB1YmxpYyBoYXNTZWxlY3RlZEl0ZW1zID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXMoKS5sZW5ndGggPiAwO1xuICB9KTtcblxuICBwdWJsaWMgY2xlYXJTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNldChbXSk7XG4gIH1cblxuICAvLyoqKioqKioqKioqKioqKioqKiBUaXRsZSAqKioqKioqKioqKioqKioqKiovL1xuICBwdWJsaWMgdGl0bGUgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5kZXRhaWxFbnRpdHlDb25maWcudGl0bGUgPz9cbiAgICAgIHRoaXMuZGV0YWlsRW50aXR5KCk/LmludGVyZmFjZXM/LmRldGFpbD8ubGlzdD8udGl0bGUhID8/XG4gICAgICB0aGlzLmRldGFpbEVudGl0eSgpPy5mb3JtYXRzLnBsdXJhbCFcbiAgICApO1xuICB9KTtcblxuICAvLyoqKioqKioqKioqKioqKioqKiBWaXNpYmlsaXR5ICoqKioqKioqKioqKioqKioqKi8vXG4gIHB1YmxpYyBoaWRkZW4gPSBjb21wdXRlZDxQcm9taXNlPGJvb2xlYW4+Pihhc3luYyAoKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmRldGFpbEVudGl0eUNvbmZpZy5oaWRkZW4gPT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IHNjb3BlOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgPSB7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICBldmFsOiAocGF0aDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0KHRoaXMucGFyZW50LmRhdGEsIHBhdGgpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvci5ldmFsdWF0ZSh0aGlzLmRldGFpbEVudGl0eUNvbmZpZy5oaWRkZW4sIHNjb3BlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZGV0YWlsRW50aXR5Q29uZmlnLmhpZGRlbiA/PyBmYWxzZTtcbiAgICB9XG4gIH0pO1xuXG4gIC8vKioqKioqKioqKioqKioqKioqIElubGluZSBmaWx0ZXIgKioqKioqKioqKioqKioqKioqLy9cbiAgcHVibGljIGlubGluZUZpbHRlcnNQbGFjZWhvbGRlcnMgPSBjb21wdXRlZDxzdHJpbmdbXT4oKCkgPT4ge1xuICAgIC8vcmV0dXJuIHRoaXMuZW50aXR5RGVmLnByb3BlcnRpZXMuZmlsdGVyKHAgPT4gcC5vcHRpb25zPy5maWx0ZXI/LmlubGluZT8uZW5hYmxlZCkubWFwKGMgPT4gYy50aXRsZSk7XG4gICAgcmV0dXJuIFtdO1xuICB9KTtcblxuICBwdWJsaWMgaGFzSW5saW5lRmlsdGVycyA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5pbmxpbmVGaWx0ZXJzUGxhY2Vob2xkZXJzKCkubGVuZ3RoID4gMDtcbiAgfSk7XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogQWN0aW9ucyAqKioqKioqKioqKioqKioqKiovL1xuICBwcml2YXRlIGFsbEFjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPigoKSA9PiB7XG4gICAgY29uc3QgbGlzdCA9IHRoaXMuZGV0YWlsRW50aXR5KCk/LmludGVyZmFjZXM/Lm1hc3Rlcj8ubGlzdD8uYWN0aW9ucyA/PyBbXTtcbiAgICBjb25zdCBkZXRhaWxFbnRpdHlBY3Rpb25MaXN0ID0gdGhpcy5kZXRhaWxFbnRpdHlDb25maWcuYWN0aW9ucyA/PyBbXTtcblxuICAgIGNvbnN0IG1lcmdlZEFjdGlvbnMgPSBsaXN0Lm1hcCgodHIpID0+IHtcbiAgICAgIGNvbnN0IGNvbW1hbmROYW1lID0gdHlwZW9mIHRyLmNvbW1hbmQgPT09ICdzdHJpbmcnID8gdHIuY29tbWFuZCA6IHRyLmNvbW1hbmQubmFtZTtcbiAgICAgIGNvbnN0IG92ZXJyaWRlQWN0aW9uID0gZGV0YWlsRW50aXR5QWN0aW9uTGlzdC5maW5kKChhY3Rpb24pID0+IHtcbiAgICAgICAgY29uc3QgYWN0aW9uQ29tbWFuZE5hbWUgPSB0eXBlb2YgYWN0aW9uLmNvbW1hbmQgPT09ICdzdHJpbmcnID8gYWN0aW9uLmNvbW1hbmQgOiBhY3Rpb24uY29tbWFuZC5uYW1lO1xuICAgICAgICByZXR1cm4gYWN0aW9uQ29tbWFuZE5hbWUgPT09IGNvbW1hbmROYW1lICYmIGFjdGlvbi5uYW1lID09PSB0ci5uYW1lO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gbmV3IEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsKHRoaXMuZGV0YWlsRW50aXR5KCkhLCBvdmVycmlkZUFjdGlvbiA/PyB0cik7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWVyZ2VkQWN0aW9ucztcbiAgfSk7XG5cbiAgcHVibGljIHNlbGVjdGVkU2NvcGVBY3Rpb25zQ291bnQgPSBjb21wdXRlZDxudW1iZXI+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5hbGxBY3Rpb25zKCkuZmlsdGVyKChhKSA9PiBhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZCkubGVuZ3RoO1xuICB9KTtcblxuICBwdWJsaWMgcHJpbWFyeUFjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYWxsQWN0aW9ucygpLmZpbHRlcihcbiAgICAgIChhKSA9PlxuICAgICAgICBhLnByaW9yaXR5ID09ICdwcmltYXJ5JyAmJlxuICAgICAgICAoKGEuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkICYmIHRoaXMuaGFzU2VsZWN0ZWRJdGVtcygpKSB8fFxuICAgICAgICAgIChhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5UeXBlTGV2ZWwgJiYgIXRoaXMuaGFzU2VsZWN0ZWRJdGVtcygpKSksXG4gICAgKTtcbiAgfSk7XG5cbiAgcHVibGljIHNlY29uZGFyeUFjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYWxsQWN0aW9ucygpLmZpbHRlcihcbiAgICAgIChhKSA9PlxuICAgICAgICBhLnByaW9yaXR5ID09ICdzZWNvbmRhcnknICYmXG4gICAgICAgICgoYS5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuU2VsZWN0ZWQgJiYgdGhpcy5oYXNTZWxlY3RlZEl0ZW1zKCkpIHx8XG4gICAgICAgICAgKGEuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlR5cGVMZXZlbCAmJiAhdGhpcy5oYXNTZWxlY3RlZEl0ZW1zKCkpKSxcbiAgICApO1xuICB9KTtcbiAgcHVibGljIHByaW1hcnlSb3dBY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4oKCkgPT5cbiAgICB0aGlzLmFsbEFjdGlvbnMoKS5maWx0ZXIoKGEpID0+IGEuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLkluZGl2aWR1YWwgJiYgYS5wcmlvcml0eSA9PT0gJ3ByaW1hcnknKSxcbiAgKTtcblxuICBwdWJsaWMgc2Vjb25kYXJ5Um93QWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+KCgpID0+XG4gICAgdGhpcy5hbGxBY3Rpb25zKCkuZmlsdGVyKChhKSA9PiBhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsICYmIGEucHJpb3JpdHkgPT09ICdzZWNvbmRhcnknKSxcbiAgKTtcblxuICAvLyoqKioqKioqKioqKioqKioqKiBGaWx0ZXIgKioqKioqKioqKioqKioqKioqLy9cblxuICBwcml2YXRlIGlubGluZUZpbHRlcnM6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbiA9IHtcbiAgICBmaWVsZDogbnVsbCBhcyBhbnksXG4gICAgbG9naWM6ICdvcicsXG4gICAgb3BlcmF0b3I6IG51bGwgYXMgYW55LFxuICAgIGZpbHRlcnM6IFtdLFxuICB9O1xuXG4gIGFwcGx5SW5saW5lRmlsdGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAvLyBjb25zdCBwcm9wcyA9IHRoaXMuZW50aXR5RGVmLnByb3BlcnRpZXMuZmlsdGVyKGMgPT4gYy5vcHRpb25zPy5maWx0ZXI/LmlubGluZT8uZW5hYmxlZCk7XG4gICAgLy8gdGhpcy5pbmxpbmVGaWx0ZXJzLmZpbHRlcnMgPSBbXTtcbiAgICAvLyBpZiAodmFsdWUpIHtcbiAgICAvLyAgICAgcHJvcHMuZm9yRWFjaChwID0+IHtcbiAgICAvLyAgICAgICAgIHRoaXMuaW5saW5lRmlsdGVycy5maWx0ZXJzPy5wdXNoKHtcbiAgICAvLyAgICAgICAgICAgICBmaWVsZDogcC5uYW1lLFxuICAgIC8vICAgICAgICAgICAgIG9wZXJhdG9yOiB7XG4gICAgLy8gICAgICAgICAgICAgICAgIHR5cGU6ICdjb250YWlucydcbiAgICAvLyAgICAgICAgICAgICB9LFxuICAgIC8vICAgICAgICAgICAgIHZhbHVlXG4gICAgLy8gICAgICAgICB9KVxuICAgIC8vICAgICB9KVxuICAgIC8vIH1cbiAgICB0aGlzLmFwcGx5RmlsdGVyQW5kU29ydCgpO1xuICB9XG5cbiAgYXBwbHlGaWx0ZXJBbmRTb3J0KCkge1xuICAgIHRoaXMuZGF0YVNvdXJjZS5jbGVhckZpbHRlcigpO1xuICAgIC8vXG4gICAgLy90aGlzLmRhdGFTb3VyY2Uuc29ydCguLi50aGlzLmRldGFpbEVudGl0eS4oKS5tYXAocyA9PiAoeyBkaXI6IHMuZGlyLCBmaWVsZDogcy5uYW1lIH0gYXMgQVhEYXRhU291cmNlU29ydE9wdGlvbikpKTtcbiAgICAvL1xuXG4gICAgY29uc3QgcGFyZW50RmlsdGVyczogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uW10gPVxuICAgICAgdGhpcy5kZXRhaWxFbnRpdHlDb25maWcuY29uZGl0aW9ucz8ubWFwKChjKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZmllbGQ6IGMubmFtZSxcbiAgICAgICAgICBvcGVyYXRvcjogYy5vcGVyYXRvciBhcyB1bmtub3duIGFzIEFYRGF0YVNvdXJjZU9wZXJhdG9yLFxuICAgICAgICAgIHZhbHVlOiB0aGlzLnBhcmVudC5kYXRhPy5pZCxcbiAgICAgICAgfSBhcyBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb247XG4gICAgICB9KSA/PyBbXTtcbiAgICBjb25zdCBwYXJlbnRGaWx0ZXJXcmFwcGVyOiBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24gPSB7XG4gICAgICBmaWVsZDogbnVsbCBhcyBhbnksXG4gICAgICBsb2dpYzogJ2FuZCcsXG4gICAgICBvcGVyYXRvcjogbnVsbCBhcyBhbnksXG4gICAgICBmaWx0ZXJzOiBwYXJlbnRGaWx0ZXJzLFxuICAgIH07XG4gICAgLy9cbiAgICBjb25zdCBpbmxpbmUgPSB0aGlzLmlubGluZUZpbHRlcnMuZmlsdGVycz8ubGVuZ3RoID8/IDA7XG4gICAgY29uc3QgcGFyZW50ID0gcGFyZW50RmlsdGVyV3JhcHBlci5maWx0ZXJzPy5sZW5ndGggPz8gMDtcbiAgICAvL1xuICAgIGlmIChpbmxpbmUpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5maWx0ZXIodGhpcy5maWx0ZXJPcGVyYXRvck1pZGRsZXdhcmUudHJhbnNmb3JtRmlsdGVyKHRoaXMuaW5saW5lRmlsdGVycykpO1xuICAgIH0gZWxzZSBpZiAoIWlubGluZSAmJiBwYXJlbnQpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5maWx0ZXIodGhpcy5maWx0ZXJPcGVyYXRvck1pZGRsZXdhcmUudHJhbnNmb3JtRmlsdGVyKHBhcmVudEZpbHRlcldyYXBwZXIpKTtcbiAgICB9IGVsc2UgaWYgKGlubGluZSAmJiBwYXJlbnQpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5maWx0ZXIoXG4gICAgICAgIHRoaXMuZmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlLnRyYW5zZm9ybUZpbHRlcih7XG4gICAgICAgICAgZmllbGQ6IG51bGwgYXMgYW55LFxuICAgICAgICAgIGxvZ2ljOiAnYW5kJyxcbiAgICAgICAgICBvcGVyYXRvcjogbnVsbCBhcyBhbnksXG4gICAgICAgICAgZmlsdGVyczogW3RoaXMuaW5saW5lRmlsdGVycywgcGFyZW50RmlsdGVyV3JhcHBlcl0sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gICAgLy9cbiAgICB0aGlzLmRhdGFTb3VyY2UucmVmcmVzaCgpO1xuICB9XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogQ29sdW1ucyAqKioqKioqKioqKioqKioqKiovL1xuXG4gIGNvbHVtbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuZGV0YWlsRW50aXR5KCkpIHtcbiAgICAgIGNvbnN0IGRldGFpbENvbHVtbnMgPSB0aGlzLmRldGFpbEVudGl0eUNvbmZpZy5jb2x1bW5zID8/IFtdO1xuICAgICAgY29uc3QgY29sdW1ucyA9IHRoaXMuZGV0YWlsRW50aXR5KCk/LmNvbHVtbnM/Lm1hcCgoYykgPT4gYy5uYW1lKSA/PyBbXTtcbiAgICAgIGNvbnN0IHByb3BzID1cbiAgICAgICAgdGhpcy5kZXRhaWxFbnRpdHkoKT8ucHJvcGVydGllcy5maWx0ZXIoXG4gICAgICAgICAgKHApID0+IHAuc2NoZW1hLmhpZGRlbiAhPSB0cnVlICYmIChkZXRhaWxDb2x1bW5zPy5sZW5ndGggPT0gMCB8fCBkZXRhaWxDb2x1bW5zPy5pbmNsdWRlcyhwLm5hbWUpKSxcbiAgICAgICAgKSA/PyBbXTtcbiAgICAgIGNvbnN0IGRpc3BsYXlDb2x1bW5zID0gcHJvcHMuZmlsdGVyKChwKSA9PiBjb2x1bW5zLnNvbWUoKGMpID0+IGMgPT0gcC5uYW1lKSk7XG4gICAgICByZXR1cm4gZGlzcGxheUNvbHVtbnMubWFwKChwKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgQVhQRW50aXR5TGlzdFZpZXdDb2x1bW5WaWV3TW9kZWwocCwgdGhpcy5kZXRhaWxFbnRpdHkoKT8uY29sdW1ucz8uZmluZCgoYykgPT4gYy5uYW1lID09IHAubmFtZSkhKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH0pO1xuXG4gIC8vKioqKioqKioqKioqKioqKioqICBDb21tYW5kcyAqKioqKioqKioqKioqKioqKiovL1xuICBwdWJsaWMgYXN5bmMgZXhlY3V0ZUNvbW1hbmQoY29tbWFuZE5hbWU6IHN0cmluZywgZGF0YTogYW55ID0gbnVsbCkge1xuICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuYWxsQWN0aW9ucygpLmZpbmQoKGMpID0+IHtcbiAgICAgIGNvbnN0IGlzU2VsZWN0ZWRTY29wZSA9IHRoaXMuc2VsZWN0ZWRJdGVtcygpLmxlbmd0aFxuICAgICAgICA/IGMuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkXG4gICAgICAgIDogYy5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbDtcbiAgICAgIHJldHVybiBjLm5hbWUgPT0gY29tbWFuZE5hbWUgJiYgKGlzU2VsZWN0ZWRTY29wZSB8fCBjLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5UeXBlTGV2ZWwpO1xuICAgIH0pO1xuXG4gICAgaWYgKCFhY3Rpb24pIHJldHVybjtcblxuICAgIGNvbnN0IGFjdGlvbkRhdGEgPSBhY3Rpb24ub3B0aW9ucz8ucHJvY2Vzcz8uZGF0YTtcbiAgICBjb25zdCBpbml0aWFsRGF0YSA9IGFjdGlvbkRhdGEgPyB7IC4uLmRhdGEsIC4uLihhd2FpdCB0aGlzLmV2YWx1YXRlRXhwcmVzc2lvbnMoYWN0aW9uRGF0YSkpIH0gOiBkYXRhO1xuXG4gICAgYXdhaXQgdGhpcy53b3JrZmxvdy5leGVjdXRlKGNvbW1hbmROYW1lLnNwbGl0KCcmJylbMF0sIHtcbiAgICAgIGVudGl0eTogZ2V0RW50aXR5SW5mbyh0aGlzLmRldGFpbEVudGl0eSgpISkuc291cmNlLFxuICAgICAgZGF0YTogYWN0aW9uLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZCA/IHRoaXMuc2VsZWN0ZWRJdGVtcygpIDogaW5pdGlhbERhdGEsXG4gICAgICBlbnRpdHlJbmZvOiB7XG4gICAgICAgIG5hbWU6IHRoaXMuZGV0YWlsRW50aXR5KCk/Lm5hbWUsXG4gICAgICAgIG1vZHVsZTogdGhpcy5kZXRhaWxFbnRpdHkoKT8ubW9kdWxlLFxuICAgICAgICB0aXRsZTogdGhpcy5kZXRhaWxFbnRpdHkoKT8udGl0bGUsXG4gICAgICAgIHBhcmVudEtleTogdGhpcy5kZXRhaWxFbnRpdHkoKT8ucGFyZW50S2V5LFxuICAgICAgICBzb3VyY2U6IHRoaXMuZGV0YWlsRW50aXR5KCk/LnNvdXJjZSxcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiBhY3Rpb24ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZXZhbHVhdGVFeHByZXNzaW9ucyA9IGFzeW5jIChhY3Rpb25EYXRhOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KSA9PiB7XG4gICAgY29uc3QgcGFyZW50RGF0YSA9IHRoaXMucGFyZW50LmRhdGE7XG4gICAgY29uc3Qgc2NvcGU6IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSA9IHtcbiAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgZXZhbDogKHBhdGg6IHN0cmluZykgPT4ge1xuICAgICAgICAgIHJldHVybiBnZXQocGFyZW50RGF0YSwgcGF0aCk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5leHByZXNzaW9uRXZhbHVhdG9yLmV2YWx1YXRlKGFjdGlvbkRhdGEsIHNjb3BlKTtcbiAgfTtcbn1cbiJdfQ==","export function createModifierContext(entity) {\n const ctx = {\n entity,\n title: {\n get: () => entity.title,\n set: (newTitle) => {\n entity.title = newTitle;\n return ctx;\n },\n },\n module: {\n get: () => entity.module,\n set: (newValue) => {\n entity.module = newValue;\n return ctx;\n },\n },\n name: {\n get: () => entity.name,\n set: (newValue) => {\n entity.name = newValue;\n return ctx;\n },\n },\n source: {\n get: () => entity.source,\n set: (newValue) => {\n entity.source = newValue;\n return ctx;\n },\n },\n parentKey: {\n get: () => entity.parentKey,\n set: (newValue) => {\n entity.parentKey = newValue;\n return ctx;\n },\n },\n category: {\n get: () => entity.category,\n update: (updater) => {\n entity.category = updater(entity.category);\n return ctx;\n },\n },\n properties: {\n list: () => entity.properties,\n add: (...props) => {\n entity.properties.push(...props);\n return ctx;\n },\n remove: (predicate) => {\n entity.properties = entity.properties.filter((p) => !predicate(p));\n return ctx;\n },\n find: (name) => ({\n get: () => entity.properties.find((p) => p.name === name),\n update: (updater) => {\n const index = entity.properties.findIndex((p) => p.name === name);\n if (index !== -1)\n entity.properties[index] = updater(entity.properties[index]);\n return ctx;\n },\n }),\n },\n columns: {\n list: () => entity.columns,\n add: (...cols) => {\n entity.columns ??= [];\n entity.columns.push(...cols);\n return ctx;\n },\n remove: (predicate) => {\n if (entity.columns)\n entity.columns = entity.columns.filter((c) => !predicate(c));\n return ctx;\n },\n find: (name) => ({\n get: () => entity.columns?.find((c) => c.name === name),\n update: (updater) => {\n const index = entity.columns?.findIndex((c) => c.name === name);\n if (index !== undefined && index !== -1 && entity.columns)\n entity.columns[index] = updater(entity.columns[index]);\n return ctx;\n },\n }),\n },\n formats: {\n get: () => entity.formats,\n update: (updater) => {\n entity.formats = updater(entity.formats);\n return ctx;\n },\n },\n relatedEntities: {\n list: () => entity.relatedEntities,\n add: (...items) => {\n entity.relatedEntities ??= [];\n entity.relatedEntities.push(...items);\n return ctx;\n },\n remove: (predicate) => {\n if (entity.relatedEntities)\n entity.relatedEntities = entity.relatedEntities.filter((r) => !predicate(r));\n return ctx;\n },\n },\n groups: {\n list: () => entity.groups,\n add: (...items) => {\n entity.groups ??= [];\n entity.groups.push(...items);\n return ctx;\n },\n remove: (predicate) => {\n if (entity.groups)\n entity.groups = entity.groups.filter((g) => !predicate(g));\n return ctx;\n },\n },\n commands: {\n get: () => entity.commands,\n update: (updater) => {\n entity.commands = updater(entity.commands);\n return ctx;\n },\n },\n queries: {\n get: () => entity.queries,\n update: (updater) => {\n entity.queries = updater(entity.queries);\n return ctx;\n },\n },\n validations: {\n get: () => entity.validations,\n update: (updater) => {\n entity.validations = updater(entity.validations);\n return ctx;\n },\n },\n interfaces: {\n get: () => entity.interfaces,\n update: (updater) => {\n entity.interfaces = updater(entity.interfaces);\n return ctx;\n },\n master: {\n get: () => entity.interfaces?.master,\n update: (updater) => {\n entity.interfaces ??= {};\n entity.interfaces.master = updater(entity.interfaces.master);\n return ctx;\n },\n create: {\n get: () => entity.interfaces?.master?.create,\n update: (updater) => {\n entity.interfaces ??= {};\n entity.interfaces.master ??= {};\n entity.interfaces.master.create = updater(entity.interfaces.master.create);\n return ctx;\n },\n },\n modify: {\n get: () => entity.interfaces?.master?.create,\n update: (updater) => {\n entity.interfaces ??= {};\n entity.interfaces.master ??= {};\n entity.interfaces.master.update = updater(entity.interfaces.master.update);\n return ctx;\n },\n },\n single: {\n get: () => entity.interfaces?.master?.single,\n update: (updater) => {\n entity.interfaces ??= {};\n entity.interfaces.master ??= {};\n entity.interfaces.master.single = updater(entity.interfaces.master.single);\n return ctx;\n },\n },\n },\n detail: {\n get: () => entity.interfaces?.detail,\n update: (updater) => {\n entity.interfaces ??= {};\n entity.interfaces.detail = updater(entity.interfaces.detail);\n return ctx;\n },\n list: {\n get: () => entity.interfaces?.detail?.list,\n update: (updater) => {\n entity.interfaces ??= {};\n entity.interfaces.detail ??= {};\n entity.interfaces.detail.list = updater(entity.interfaces.detail.list);\n return ctx;\n },\n },\n },\n },\n toEntity: () => entity,\n };\n return ctx;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1vZGlmaWVyLmNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi9lbnRpdHktbWlkZGxld2FyZS9lbnRpdHktbW9kaWZpZXIuY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLFVBQVUscUJBQXFCLENBQUMsTUFBaUI7SUFDckQsTUFBTSxHQUFHLEdBQTZCO1FBQ3BDLE1BQU07UUFFTixLQUFLLEVBQUU7WUFDTCxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDdkIsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2hCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO2dCQUN4QixPQUFPLEdBQUcsQ0FBQztZQUNiLENBQUM7U0FDRjtRQUVELE1BQU0sRUFBRTtZQUNOLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUN4QixHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDaEIsTUFBTSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7Z0JBQ3pCLE9BQU8sR0FBRyxDQUFDO1lBQ2IsQ0FBQztTQUNGO1FBRUQsSUFBSSxFQUFFO1lBQ0osR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJO1lBQ3RCLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNoQixNQUFNLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztnQkFDdkIsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDO1NBQ0Y7UUFFRCxNQUFNLEVBQUU7WUFDTixHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDeEIsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2hCLE1BQU0sQ0FBQyxNQUFN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Q04sR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsTUFBTTtnQkFDcEMsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUU7b0JBQ2xCLE1BQU0sQ0FBQyxVQUFVLEtBQUssRUFBRSxDQUFDO29CQUN6QixNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDN0QsT0FBTyxHQUFHLENBQUM7Z0JBQ2IsQ0FBQztnQkFFRCxJQUFJLEVBQUU7b0JBQ0osR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUk7b0JBQzFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFO3dCQUNsQixNQUFNLENBQUMsVUFBVSxLQUFLLEVBQUUsQ0FBQzt3QkFDekIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDO3dCQUNoQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUN2RSxPQUFPLEdBQUcsQ0FBQztvQkFDYixDQUFDO2lCQUNGO2FBQ0Y7U0FDRjtRQUVELFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNO0tBQ3ZCLENBQUM7SUFFRixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBFbnRpdHkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBFbnRpdHlNb2RpZmllckNvbnRleHQgfSBmcm9tICcuL2VudGl0eS1tb2RpZmllci50eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNb2RpZmllckNvbnRleHQoZW50aXR5OiBBWFBFbnRpdHkpOiBBWFBFbnRpdHlNb2RpZmllckNvbnRleHQge1xuICBjb25zdCBjdHg6IEFYUEVudGl0eU1vZGlmaWVyQ29udGV4dCA9IHtcbiAgICBlbnRpdHksXG5cbiAgICB0aXRsZToge1xuICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkudGl0bGUsXG4gICAgICBzZXQ6IChuZXdUaXRsZSkgPT4ge1xuICAgICAgICBlbnRpdHkudGl0bGUgPSBuZXdUaXRsZTtcbiAgICAgICAgcmV0dXJuIGN0eDtcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIG1vZHVsZToge1xuICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkubW9kdWxlLFxuICAgICAgc2V0OiAobmV3VmFsdWUpID0+IHtcbiAgICAgICAgZW50aXR5Lm1vZHVsZSA9IG5ld1ZhbHVlO1xuICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgfSxcbiAgICB9LFxuXG4gICAgbmFtZToge1xuICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkubmFtZSxcbiAgICAgIHNldDogKG5ld1ZhbHVlKSA9PiB7XG4gICAgICAgIGVudGl0eS5uYW1lID0gbmV3VmFsdWU7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBzb3VyY2U6IHtcbiAgICAgIGdldDogKCkgPT4gZW50aXR5LnNvdXJjZSxcbiAgICAgIHNldDogKG5ld1ZhbHVlKSA9PiB7XG4gICAgICAgIGVudGl0eS5zb3VyY2UgPSBuZXdWYWx1ZTtcbiAgICAgICAgcmV0dXJuIGN0eDtcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIHBhcmVudEtleToge1xuICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkucGFyZW50S2V5LFxuICAgICAgc2V0OiAobmV3VmFsdWUpID0+IHtcbiAgICAgICAgZW50aXR5LnBhcmVudEtleSA9IG5ld1ZhbHVlO1xuICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgfSxcbiAgICB9LFxuXG4gICAgY2F0ZWdvcnk6IHtcbiAgICAgIGdldDogKCkgPT4gZW50aXR5LmNhdGVnb3J5LFxuICAgICAgdXBkYXRlOiAodXBkYXRlcikgPT4ge1xuICAgICAgICBlbnRpdHkuY2F0ZWdvcnkgPSB1cGRhdGVyKGVudGl0eS5jYXRlZ29yeSk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBsaXN0OiAoKSA9PiBlbnRpdHkucHJvcGVydGllcyxcbiAgICAgIGFkZDogKC4uLnByb3BzKSA9PiB7XG4gICAgICAgIGVudGl0eS5wcm9wZXJ0aWVzLnB1c2goLi4ucHJvcHMpO1xuICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgfSxcbiAgICAgIHJlbW92ZTogKHByZWRpY2F0ZSkgPT4ge1xuICAgICAgICBlbnRpdHkucHJvcGVydGllcyA9IGVudGl0eS5wcm9wZXJ0aWVzLmZpbHRlcigocCkgPT4gIXByZWRpY2F0ZShwKSk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuICAgICAgZmluZDogKG5hbWUpID0+ICh7XG4gICAgICAgIGdldDogKCkgPT4gZW50aXR5LnByb3BlcnRpZXMuZmluZCgocCkgPT4gcC5uYW1lID09PSBuYW1lKSxcbiAgICAgICAgdXBkYXRlOiAodXBkYXRlcikgPT4ge1xuICAgICAgICAgIGNvbnN0IGluZGV4ID0gZW50aXR5LnByb3BlcnRpZXMuZmluZEluZGV4KChwKSA9PiBwLm5hbWUgPT09IG5hbWUpO1xuICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIGVudGl0eS5wcm9wZXJ0aWVzW2luZGV4XSA9IHVwZGF0ZXIoZW50aXR5LnByb3BlcnRpZXNbaW5kZXhdKTtcbiAgICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfSxcblxuICAgIGNvbHVtbnM6IHtcbiAgICAgIGxpc3Q6ICgpID0+IGVudGl0eS5jb2x1bW5zLFxuICAgICAgYWRkOiAoLi4uY29scykgPT4ge1xuICAgICAgICBlbnRpdHkuY29sdW1ucyA/Pz0gW107XG4gICAgICAgIGVudGl0eS5jb2x1bW5zLnB1c2goLi4uY29scyk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuICAgICAgcmVtb3ZlOiAocHJlZGljYXRlKSA9PiB7XG4gICAgICAgIGlmIChlbnRpdHkuY29sdW1ucykgZW50aXR5LmNvbHVtbnMgPSBlbnRpdHkuY29sdW1ucy5maWx0ZXIoKGMpID0+ICFwcmVkaWNhdGUoYykpO1xuICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgfSxcbiAgICAgIGZpbmQ6IChuYW1lKSA9PiAoe1xuICAgICAgICBnZXQ6ICgpID0+IGVudGl0eS5jb2x1bW5zPy5maW5kKChjKSA9PiBjLm5hbWUgPT09IG5hbWUpLFxuICAgICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSBlbnRpdHkuY29sdW1ucz8uZmluZEluZGV4KChjKSA9PiBjLm5hbWUgPT09IG5hbWUpO1xuICAgICAgICAgIGlmIChpbmRleCAhPT0gdW5kZWZpbmVkICYmIGluZGV4ICE9PSAtMSAmJiBlbnRpdHkuY29sdW1ucylcbiAgICAgICAgICAgIGVudGl0eS5jb2x1bW5zW2luZGV4XSA9IHVwZGF0ZXIoZW50aXR5LmNvbHVtbnNbaW5kZXhdKTtcbiAgICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfSxcblxuICAgIGZvcm1hdHM6IHtcbiAgICAgIGdldDogKCkgPT4gZW50aXR5LmZvcm1hdHMsXG4gICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgIGVudGl0eS5mb3JtYXRzID0gdXBkYXRlcihlbnRpdHkuZm9ybWF0cyk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICByZWxhdGVkRW50aXRpZXM6IHtcbiAgICAgIGxpc3Q6ICgpID0+IGVudGl0eS5yZWxhdGVkRW50aXRpZXMsXG4gICAgICBhZGQ6ICguLi5pdGVtcykgPT4ge1xuICAgICAgICBlbnRpdHkucmVsYXRlZEVudGl0aWVzID8/PSBbXTtcbiAgICAgICAgZW50aXR5LnJlbGF0ZWRFbnRpdGllcy5wdXNoKC4uLml0ZW1zKTtcbiAgICAgICAgcmV0dXJuIGN0eDtcbiAgICAgIH0sXG4gICAgICByZW1vdmU6IChwcmVkaWNhdGUpID0+IHtcbiAgICAgICAgaWYgKGVudGl0eS5yZWxhdGVkRW50aXRpZXMpIGVudGl0eS5yZWxhdGVkRW50aXRpZXMgPSBlbnRpdHkucmVsYXRlZEVudGl0aWVzLmZpbHRlcigocikgPT4gIXByZWRpY2F0ZShyKSk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBncm91cHM6IHtcbiAgICAgIGxpc3Q6ICgpID0+IGVudGl0eS5ncm91cHMsXG4gICAgICBhZGQ6ICguLi5pdGVtcykgPT4ge1xuICAgICAgICBlbnRpdHkuZ3JvdXBzID8/PSBbXTtcbiAgICAgICAgZW50aXR5Lmdyb3Vwcy5wdXNoKC4uLml0ZW1zKTtcbiAgICAgICAgcmV0dXJuIGN0eDtcbiAgICAgIH0sXG4gICAgICByZW1vdmU6IChwcmVkaWNhdGUpID0+IHtcbiAgICAgICAgaWYgKGVudGl0eS5ncm91cHMpIGVudGl0eS5ncm91cHMgPSBlbnRpdHkuZ3JvdXBzLmZpbHRlcigoZykgPT4gIXByZWRpY2F0ZShnKSk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBjb21tYW5kczoge1xuICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkuY29tbWFuZHMsXG4gICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgIGVudGl0eS5jb21tYW5kcyA9IHVwZGF0ZXIoZW50aXR5LmNvbW1hbmRzKTtcbiAgICAgICAgcmV0dXJuIGN0eDtcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIHF1ZXJpZXM6IHtcbiAgICAgIGdldDogKCkgPT4gZW50aXR5LnF1ZXJpZXMsXG4gICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgIGVudGl0eS5xdWVyaWVzID0gdXBkYXRlcihlbnRpdHkucXVlcmllcyk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICB2YWxpZGF0aW9uczoge1xuICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkudmFsaWRhdGlvbnMsXG4gICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgIGVudGl0eS52YWxpZGF0aW9ucyA9IHVwZGF0ZXIoZW50aXR5LnZhbGlkYXRpb25zKTtcbiAgICAgICAgcmV0dXJuIGN0eDtcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIGludGVyZmFjZXM6IHtcbiAgICAgIGdldDogKCkgPT4gZW50aXR5LmludGVyZmFjZXMsXG4gICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgIGVudGl0eS5pbnRlcmZhY2VzID0gdXBkYXRlcihlbnRpdHkuaW50ZXJmYWNlcyk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuXG4gICAgICBtYXN0ZXI6IHtcbiAgICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkuaW50ZXJmYWNlcz8ubWFzdGVyLFxuICAgICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgICAgZW50aXR5LmludGVyZmFjZXMgPz89IHt9O1xuICAgICAgICAgIGVudGl0eS5pbnRlcmZhY2VzLm1hc3RlciA9IHVwZGF0ZXIoZW50aXR5LmludGVyZmFjZXMubWFzdGVyKTtcbiAgICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgICB9LFxuXG4gICAgICAgIGNyZWF0ZToge1xuICAgICAgICAgIGdldDogKCkgPT4gZW50aXR5LmludGVyZmFjZXM/Lm1hc3Rlcj8uY3JlYXRlLFxuICAgICAgICAgIHVwZGF0ZTogKHVwZGF0ZXIpID0+IHtcbiAgICAgICAgICAgIGVudGl0eS5pbnRlcmZhY2VzID8/PSB7fTtcbiAgICAgICAgICAgIGVudGl0eS5pbnRlcmZhY2VzLm1hc3RlciA/Pz0ge307XG4gICAgICAgICAgICBlbnRpdHkuaW50ZXJmYWNlcy5tYXN0ZXIuY3JlYXRlID0gdXBkYXRlcihlbnRpdHkuaW50ZXJmYWNlcy5tYXN0ZXIuY3JlYXRlKTtcbiAgICAgICAgICAgIHJldHVybiBjdHg7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbW9kaWZ5OiB7XG4gICAgICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkuaW50ZXJmYWNlcz8ubWFzdGVyPy5jcmVhdGUsXG4gICAgICAgICAgdXBkYXRlOiAodXBkYXRlcikgPT4ge1xuICAgICAgICAgICAgZW50aXR5LmludGVyZmFjZXMgPz89IHt9O1xuICAgICAgICAgICAgZW50aXR5LmludGVyZmFjZXMubWFzdGVyID8/PSB7fTtcbiAgICAgICAgICAgIGVudGl0eS5pbnRlcmZhY2VzLm1hc3Rlci51cGRhdGUgPSB1cGRhdGVyKGVudGl0eS5pbnRlcmZhY2VzLm1hc3Rlci51cGRhdGUpO1xuICAgICAgICAgICAgcmV0dXJuIGN0eDtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBzaW5nbGU6IHtcbiAgICAgICAgICBnZXQ6ICgpID0+IGVudGl0eS5pbnRlcmZhY2VzPy5tYXN0ZXI/LnNpbmdsZSxcbiAgICAgICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgICAgICBlbnRpdHkuaW50ZXJmYWNlcyA/Pz0ge307XG4gICAgICAgICAgICBlbnRpdHkuaW50ZXJmYWNlcy5tYXN0ZXIgPz89IHt9O1xuICAgICAgICAgICAgZW50aXR5LmludGVyZmFjZXMubWFzdGVyLnNpbmdsZSA9IHVwZGF0ZXIoZW50aXR5LmludGVyZmFjZXMubWFzdGVyLnNpbmdsZSk7XG4gICAgICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuXG4gICAgICBkZXRhaWw6IHtcbiAgICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkuaW50ZXJmYWNlcz8uZGV0YWlsLFxuICAgICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgICAgZW50aXR5LmludGVyZmFjZXMgPz89IHt9O1xuICAgICAgICAgIGVudGl0eS5pbnRlcmZhY2VzLmRldGFpbCA9IHVwZGF0ZXIoZW50aXR5LmludGVyZmFjZXMuZGV0YWlsKTtcbiAgICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgICB9LFxuXG4gICAgICAgIGxpc3Q6IHtcbiAgICAgICAgICBnZXQ6ICgpID0+IGVudGl0eS5pbnRlcmZhY2VzPy5kZXRhaWw/Lmxpc3QsXG4gICAgICAgICAgdXBkYXRlOiAodXBkYXRlcikgPT4ge1xuICAgICAgICAgICAgZW50aXR5LmludGVyZmFjZXMgPz89IHt9O1xuICAgICAgICAgICAgZW50aXR5LmludGVyZmFjZXMuZGV0YWlsID8/PSB7fTtcbiAgICAgICAgICAgIGVudGl0eS5pbnRlcmZhY2VzLmRldGFpbC5saXN0ID0gdXBkYXRlcihlbnRpdHkuaW50ZXJmYWNlcy5kZXRhaWwubGlzdCk7XG4gICAgICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG5cbiAgICB0b0VudGl0eTogKCkgPT4gZW50aXR5LFxuICB9O1xuXG4gIHJldHVybiBjdHg7XG59XG4iXX0=","import { InjectionToken } from '@angular/core';\nexport const AXP_ENTITY_MODIFIER = new InjectionToken('AXP_ENTITY_MODIFIER');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1pZGRsZXdhcmUvZW50aXR5LXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQThCLHFCQUFxQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRW50aXR5TW9kaWZpZXJQcm92aWRlciB9IGZyb20gJy4vZW50aXR5LW1vZGlmaWVyLnR5cGVzJztcblxuZXhwb3J0IGNvbnN0IEFYUF9FTlRJVFlfTU9ESUZJRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQRW50aXR5TW9kaWZpZXJQcm92aWRlcltdPignQVhQX0VOVElUWV9NT0RJRklFUicpO1xuIl19","import { inject, Injectable } from '@angular/core';\nimport { createModifierContext } from './entity-modifier.context';\nimport { AXP_ENTITY_MODIFIER } from './entity-provider';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityMiddleware {\n constructor() {\n this.modifiers = new Map();\n this.providedModifiers = inject(AXP_ENTITY_MODIFIER, { optional: true }) || [];\n for (const { entityName, modifier } of this.providedModifiers) {\n this.register(entityName, modifier);\n }\n }\n register(entityName, modifier) {\n this.modifiers.set(entityName, modifier);\n }\n process(entity) {\n const modifier = this.modifiers.get(entity.name);\n if (!modifier)\n return entity;\n const context = createModifierContext(entity);\n modifier(context);\n return context.toEntity();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityMiddleware, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityMiddleware, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityMiddleware, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi9lbnRpdHktbWlkZGxld2FyZS9lbnRpdHktbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHeEQsTUFBTSxPQUFPLG1CQUFtQjtJQUk5QjtRQUhRLGNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBNkIsQ0FBQztRQUMvQyxzQkFBaUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFHbEYsS0FBSyxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzlELElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLFVBQWtCLEVBQUUsUUFBMkI7UUFDdEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxPQUFPLENBQUMsTUFBaUI7UUFDdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxNQUFNLENBQUM7UUFDN0IsTUFBTSxPQUFPLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xCLE9BQU8sT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7OEdBcEJVLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGNBRE4sTUFBTTs7MkZBQ25CLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBFbnRpdHkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgY3JlYXRlTW9kaWZpZXJDb250ZXh0IH0gZnJvbSAnLi9lbnRpdHktbW9kaWZpZXIuY29udGV4dCc7XG5pbXBvcnQgeyBBWFBFbnRpdHlNb2RpZmllciB9IGZyb20gJy4vZW50aXR5LW1vZGlmaWVyLnR5cGVzJztcbmltcG9ydCB7IEFYUF9FTlRJVFlfTU9ESUZJRVIgfSBmcm9tICcuL2VudGl0eS1wcm92aWRlcic7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWlkZGxld2FyZSB7XG4gIHByaXZhdGUgbW9kaWZpZXJzID0gbmV3IE1hcDxzdHJpbmcsIEFYUEVudGl0eU1vZGlmaWVyPigpO1xuICBwcm90ZWN0ZWQgcHJvdmlkZWRNb2RpZmllcnMgPSBpbmplY3QoQVhQX0VOVElUWV9NT0RJRklFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KSB8fCBbXTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBmb3IgKGNvbnN0IHsgZW50aXR5TmFtZSwgbW9kaWZpZXIgfSBvZiB0aGlzLnByb3ZpZGVkTW9kaWZpZXJzKSB7XG4gICAgICB0aGlzLnJlZ2lzdGVyKGVudGl0eU5hbWUsIG1vZGlmaWVyKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3RlcihlbnRpdHlOYW1lOiBzdHJpbmcsIG1vZGlmaWVyOiBBWFBFbnRpdHlNb2RpZmllcik6IHZvaWQge1xuICAgIHRoaXMubW9kaWZpZXJzLnNldChlbnRpdHlOYW1lLCBtb2RpZmllcik7XG4gIH1cblxuICBwcm9jZXNzKGVudGl0eTogQVhQRW50aXR5KTogQVhQRW50aXR5IHtcbiAgICBjb25zdCBtb2RpZmllciA9IHRoaXMubW9kaWZpZXJzLmdldChlbnRpdHkubmFtZSk7XG4gICAgaWYgKCFtb2RpZmllcikgcmV0dXJuIGVudGl0eTtcbiAgICBjb25zdCBjb250ZXh0ID0gY3JlYXRlTW9kaWZpZXJDb250ZXh0KGVudGl0eSk7XG4gICAgbW9kaWZpZXIoY29udGV4dCk7XG4gICAgcmV0dXJuIGNvbnRleHQudG9FbnRpdHkoKTtcbiAgfVxufVxuIl19","import { inject, Injectable } from '@angular/core';\n// import { AXPEntityMiddleware } from './entity-middleware';\nimport { AXPEntityMiddleware } from './entity-middleware/entity-middleware';\nimport { AXP_ENTITY_DEFINITION_LOADER, AXPEntityResolver } from './entity.config';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityDefinitionRegistryService {\n constructor() {\n this.providers = inject(AXP_ENTITY_DEFINITION_LOADER);\n this.resolver = inject(AXPEntityResolver);\n this.middleware = inject(AXPEntityMiddleware);\n // Stores AXPEntityConfig objects, keyed by a combination of module and entity name.\n this.entities = new Map();\n // Entity resolver service for dynamically loading entity configurations.\n this.entityResolver = inject(AXPEntityResolver); // Assuming AXPEntityLoader is the correct type\n }\n async preload() {\n const providers = Array.isArray(this.providers)\n ? this.providers\n : [this.providers];\n const promises = [];\n providers.forEach((provider) => {\n const items = typeof provider.preload == 'function' ? provider.preload() : [];\n items.forEach((item) => {\n promises.push(this.resolver.get(item.module, item.entity));\n });\n });\n const entities = await Promise.all(promises);\n entities.forEach((entity) => {\n if (entity != null)\n this.register(this.middleware.process(entity));\n });\n }\n /**\n * Registers a new entity configuration. Entities are identified uniquely by a combination\n * of their module and name.\n *\n * @param config The configuration object of the entity to be registered.\n */\n register(config) {\n const key = this.createEntityKey(config.module, config.name);\n this.entities.set(key, config);\n }\n /**\n * Returns an array of all registered entity configurations.\n *\n * @returns An array of AXPEntity objects.\n */\n getAll() {\n return Array.from(this.entities.values());\n }\n /**\n * Resolves an entity configuration based on module and entity name. If the configuration\n * is not already registered, attempts to load it dynamically. Throws an error if the\n * entity cannot be found or loaded.\n *\n * @param moduleName The module name of the entity.\n * @param entityName The name of the entity.\n * @returns A promise resolving to the entity configuration.\n * @throws Error if the entity configuration cannot be resolved.\n */\n async resolve(moduleName, entityName) {\n const key = this.createEntityKey(moduleName, entityName);\n let config = this.entities.get(key) ?? null;\n if (!config) {\n try {\n config = await this.entityResolver.get(moduleName, entityName);\n if (config) {\n const processedConfig = this.middleware.process(config);\n this.register(processedConfig);\n return processedConfig;\n }\n }\n catch (error) {\n throw error; // Rethrow to allow error handling by caller\n }\n if (!config) {\n throw new Error(`Invalid entity name: ${key}`);\n }\n }\n return config;\n }\n /**\n * Creates a unique key for an entity based on its module and name.\n *\n * @param moduleName The module name of the entity.\n * @param entityName The name of the entity.\n * @returns The unique key for the entity.\n */\n createEntityKey(moduleName, entityName) {\n return `${moduleName}.${entityName}`;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityDefinitionRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityDefinitionRegistryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityDefinitionRegistryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELDZEQUE2RDtBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsNEJBQTRCLEVBQTZCLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBYzdHLE1BQU0sT0FBTyxrQ0FBa0M7SUFIL0M7UUFJVSxjQUFTLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDakQsYUFBUSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JDLGVBQVUsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQXFCakQsb0ZBQW9GO1FBQzVFLGFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBcUIsQ0FBQztRQUVoRCx5RUFBeUU7UUFDakUsbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLCtDQUErQztLQWlFcEc7SUF4RkMsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDN0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQ2hCLENBQUMsQ0FBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQWlDLENBQUM7UUFDdEQsTUFBTSxRQUFRLEdBQWdDLEVBQUUsQ0FBQztRQUVqRCxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDN0IsTUFBTSxLQUFLLEdBQUcsT0FBTyxRQUFRLENBQUMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDOUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQTRCLEVBQUUsRUFBRTtnQkFDN0MsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzdELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQzFCLElBQUksTUFBTSxJQUFJLElBQUk7Z0JBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQVFEOzs7OztPQUtHO0lBQ0gsUUFBUSxDQUFDLE1BQWlCO1FBQ3hCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTTtRQUNKLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBa0IsRUFBRSxVQUFrQjtRQUNsRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN6RCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUM7UUFFNUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDO2dCQUNILE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDL0QsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDWCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDeEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDL0IsT0FBTyxlQUFlLENBQUM7Z0JBQ3pCLENBQUM7WUFDSCxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixNQUFNLEtBQUssQ0FBQyxDQUFDLDRDQUE0QztZQUMzRCxDQUFDO1lBRUQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDakQsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssZUFBZSxDQUFDLFVBQWtCLEVBQUUsVUFBa0I7UUFDNUQsT0FBTyxHQUFHLFVBQVUsSUFBSSxVQUFVLEVBQUUsQ0FBQztJQUN2QyxDQUFDOzhHQTVGVSxrQ0FBa0M7a0hBQWxDLGtDQUFrQyxjQUZqQyxNQUFNOzsyRkFFUCxrQ0FBa0M7a0JBSDlDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQRW50aXR5IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vLyBpbXBvcnQgeyBBWFBFbnRpdHlNaWRkbGV3YXJlIH0gZnJvbSAnLi9lbnRpdHktbWlkZGxld2FyZSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlNaWRkbGV3YXJlIH0gZnJvbSAnLi9lbnRpdHktbWlkZGxld2FyZS9lbnRpdHktbWlkZGxld2FyZSc7XG5pbXBvcnQgeyBBWFBfRU5USVRZX0RFRklOSVRJT05fTE9BREVSLCBBWFBFbnRpdHlEZWZpbml0aW9uTG9hZGVyLCBBWFBFbnRpdHlSZXNvbHZlciB9IGZyb20gJy4vZW50aXR5LmNvbmZpZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRW50aXR5UHJlbG9hZEVudGl0eSB7XG4gIG1vZHVsZTogc3RyaW5nO1xuICBlbnRpdHk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBFbnRpdHlEZWZpbml0aW9uUHJlbG9hZGVyIHtcbiAgcHJlbG9hZCgpOiBBWFBFbnRpdHlQcmVsb2FkRW50aXR5W107XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBwcm92aWRlcnMgPSBpbmplY3QoQVhQX0VOVElUWV9ERUZJTklUSU9OX0xPQURFUik7XG4gIHByaXZhdGUgcmVzb2x2ZXIgPSBpbmplY3QoQVhQRW50aXR5UmVzb2x2ZXIpO1xuICBwcml2YXRlIG1pZGRsZXdhcmUgPSBpbmplY3QoQVhQRW50aXR5TWlkZGxld2FyZSk7XG5cbiAgYXN5bmMgcHJlbG9hZCgpIHtcbiAgICBjb25zdCBwcm92aWRlcnMgPSBBcnJheS5pc0FycmF5KHRoaXMucHJvdmlkZXJzKVxuICAgICAgPyB0aGlzLnByb3ZpZGVyc1xuICAgICAgOiAoW3RoaXMucHJvdmlkZXJzXSBhcyBBWFBFbnRpdHlEZWZpbml0aW9uTG9hZGVyW10pO1xuICAgIGNvbnN0IHByb21pc2VzOiBQcm9taXNlPEFYUEVudGl0eSB8IG51bGw+W10gPSBbXTtcblxuICAgIHByb3ZpZGVycy5mb3JFYWNoKChwcm92aWRlcikgPT4ge1xuICAgICAgY29uc3QgaXRlbXMgPSB0eXBlb2YgcHJvdmlkZXIucHJlbG9hZCA9PSAnZnVuY3Rpb24nID8gcHJvdmlkZXIucHJlbG9hZCgpIDogW107XG4gICAgICBpdGVtcy5mb3JFYWNoKChpdGVtOiBBWFBFbnRpdHlQcmVsb2FkRW50aXR5KSA9PiB7XG4gICAgICAgIHByb21pc2VzLnB1c2godGhpcy5yZXNvbHZlci5nZXQoaXRlbS5tb2R1bGUsIGl0ZW0uZW50aXR5KSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGVudGl0aWVzID0gYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICAgIGVudGl0aWVzLmZvckVhY2goKGVudGl0eSkgPT4ge1xuICAgICAgaWYgKGVudGl0eSAhPSBudWxsKSB0aGlzLnJlZ2lzdGVyKHRoaXMubWlkZGxld2FyZS5wcm9jZXNzKGVudGl0eSkpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gU3RvcmVzIEFYUEVudGl0eUNvbmZpZyBvYmplY3RzLCBrZXllZCBieSBhIGNvbWJpbmF0aW9uIG9mIG1vZHVsZSBhbmQgZW50aXR5IG5hbWUuXG4gIHByaXZhdGUgZW50aXRpZXMgPSBuZXcgTWFwPHN0cmluZywgQVhQRW50aXR5PigpO1xuXG4gIC8vIEVudGl0eSByZXNvbHZlciBzZXJ2aWNlIGZvciBkeW5hbWljYWxseSBsb2FkaW5nIGVudGl0eSBjb25maWd1cmF0aW9ucy5cbiAgcHJpdmF0ZSBlbnRpdHlSZXNvbHZlciA9IGluamVjdChBWFBFbnRpdHlSZXNvbHZlcik7IC8vIEFzc3VtaW5nIEFYUEVudGl0eUxvYWRlciBpcyB0aGUgY29ycmVjdCB0eXBlXG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIG5ldyBlbnRpdHkgY29uZmlndXJhdGlvbi4gRW50aXRpZXMgYXJlIGlkZW50aWZpZWQgdW5pcXVlbHkgYnkgYSBjb21iaW5hdGlvblxuICAgKiBvZiB0aGVpciBtb2R1bGUgYW5kIG5hbWUuXG4gICAqXG4gICAqIEBwYXJhbSBjb25maWcgVGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IG9mIHRoZSBlbnRpdHkgdG8gYmUgcmVnaXN0ZXJlZC5cbiAgICovXG4gIHJlZ2lzdGVyKGNvbmZpZzogQVhQRW50aXR5KTogdm9pZCB7XG4gICAgY29uc3Qga2V5ID0gdGhpcy5jcmVhdGVFbnRpdHlLZXkoY29uZmlnLm1vZHVsZSwgY29uZmlnLm5hbWUpO1xuICAgIHRoaXMuZW50aXRpZXMuc2V0KGtleSwgY29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIGFsbCByZWdpc3RlcmVkIGVudGl0eSBjb25maWd1cmF0aW9ucy5cbiAgICpcbiAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgQVhQRW50aXR5IG9iamVjdHMuXG4gICAqL1xuICBnZXRBbGwoKTogQVhQRW50aXR5W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZW50aXRpZXMudmFsdWVzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIGFuIGVudGl0eSBjb25maWd1cmF0aW9uIGJhc2VkIG9uIG1vZHVsZSBhbmQgZW50aXR5IG5hbWUuIElmIHRoZSBjb25maWd1cmF0aW9uXG4gICAqIGlzIG5vdCBhbHJlYWR5IHJlZ2lzdGVyZWQsIGF0dGVtcHRzIHRvIGxvYWQgaXQgZHluYW1pY2FsbHkuIFRocm93cyBhbiBlcnJvciBpZiB0aGVcbiAgICogZW50aXR5IGNhbm5vdCBiZSBmb3VuZCBvciBsb2FkZWQuXG4gICAqXG4gICAqIEBwYXJhbSBtb2R1bGVOYW1lIFRoZSBtb2R1bGUgbmFtZSBvZiB0aGUgZW50aXR5LlxuICAgKiBAcGFyYW0gZW50aXR5TmFtZSBUaGUgbmFtZSBvZiB0aGUgZW50aXR5LlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBlbnRpdHkgY29uZmlndXJhdGlvbi5cbiAgICogQHRocm93cyBFcnJvciBpZiB0aGUgZW50aXR5IGNvbmZpZ3VyYXRpb24gY2Fubm90IGJlIHJlc29sdmVkLlxuICAgKi9cbiAgYXN5bmMgcmVzb2x2ZShtb2R1bGVOYW1lOiBzdHJpbmcsIGVudGl0eU5hbWU6IHN0cmluZyk6IFByb21pc2U8QVhQRW50aXR5PiB7XG4gICAgY29uc3Qga2V5ID0gdGhpcy5jcmVhdGVFbnRpdHlLZXkobW9kdWxlTmFtZSwgZW50aXR5TmFtZSk7XG4gICAgbGV0IGNvbmZpZyA9IHRoaXMuZW50aXRpZXMuZ2V0KGtleSkgPz8gbnVsbDtcblxuICAgIGlmICghY29uZmlnKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25maWcgPSBhd2FpdCB0aGlzLmVudGl0eVJlc29sdmVyLmdldChtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcbiAgICAgICAgaWYgKGNvbmZpZykge1xuICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZENvbmZpZyA9IHRoaXMubWlkZGxld2FyZS5wcm9jZXNzKGNvbmZpZyk7XG4gICAgICAgICAgdGhpcy5yZWdpc3Rlcihwcm9jZXNzZWRDb25maWcpO1xuICAgICAgICAgIHJldHVybiBwcm9jZXNzZWRDb25maWc7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRocm93IGVycm9yOyAvLyBSZXRocm93IHRvIGFsbG93IGVycm9yIGhhbmRsaW5nIGJ5IGNhbGxlclxuICAgICAgfVxuXG4gICAgICBpZiAoIWNvbmZpZykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZW50aXR5IG5hbWU6ICR7a2V5fWApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSB1bmlxdWUga2V5IGZvciBhbiBlbnRpdHkgYmFzZWQgb24gaXRzIG1vZHVsZSBhbmQgbmFtZS5cbiAgICpcbiAgICogQHBhcmFtIG1vZHVsZU5hbWUgVGhlIG1vZHVsZSBuYW1lIG9mIHRoZSBlbnRpdHkuXG4gICAqIEBwYXJhbSBlbnRpdHlOYW1lIFRoZSBuYW1lIG9mIHRoZSBlbnRpdHkuXG4gICAqIEByZXR1cm5zIFRoZSB1bmlxdWUga2V5IGZvciB0aGUgZW50aXR5LlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVFbnRpdHlLZXkobW9kdWxlTmFtZTogc3RyaW5nLCBlbnRpdHlOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHttb2R1bGVOYW1lfS4ke2VudGl0eU5hbWV9YDtcbiAgfVxufVxuIl19","import { getEntityInfo, } from '@acorex/platform/common';\nimport { AXPExpressionEvaluatorService } from '@acorex/platform/core';\nimport { AXPPageStatus } from '@acorex/platform/layout/builder';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { Injectable, Injector, computed, inject, signal } from '@angular/core';\nimport { cloneDeep, get, isNil, merge, set } from 'lodash-es';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityCreateViewSectionViewModel {\n constructor(entity, section) {\n this.entity = entity;\n this.section = section;\n this.group = this.entity.groups?.find((c) => c.id == this.section.id);\n this.name = signal(this.group.id);\n this.title = computed(() => {\n return this.group.title ?? this.group.id;\n });\n this.description = computed(() => {\n return this.group.description;\n });\n this.layout = computed(() => {\n const source = cloneDeep(this.section.layout ?? {});\n set(source, 'positions.default.colSpan', 12);\n return source;\n });\n this.elements = computed(() => {\n const { interfaces, properties } = this.entity;\n const createProps = interfaces?.master?.create?.properties ?? [];\n const createPropNames = new Set(createProps.map(({ name }) => name));\n const filteredProperties = properties.filter(({ groupId, schema, name }) => groupId === this.group.id && !schema.hidden && createPropNames.has(name));\n return filteredProperties.map((property) => {\n const createProp = createProps.find(({ name }) => name === property.name);\n return new AXPEntityCreateViewElementViewModel(this.entity, this, property, createProp);\n });\n });\n }\n}\nexport class AXPEntityCreateViewElementViewModel {\n constructor(entity, section, property, createProp) {\n this.entity = entity;\n this.section = section;\n this.property = property;\n this.createProp = createProp;\n this.name = signal(this.property.name);\n this.title = signal(this.property.title);\n this.description = signal(this.property.description);\n this.editable = computed(() => {\n return !(this.property.schema.readonly ?? false);\n });\n this.isRequired = computed(() => {\n return this.property.validations?.some((c) => c.rule == 'required') || false;\n });\n this.layout = computed(() => {\n const source = cloneDeep(this.createProp.layout ?? {});\n set(source, 'positions.default.colSpan', 12);\n return source;\n });\n this.node = computed(() => {\n const schema = this.property.schema;\n const widget = schema.interface;\n return {\n type: widget.type,\n mode: this.editable() ? 'edit' : 'view',\n path: this.name(),\n name: this.name(),\n children: widget.children,\n formula: widget.formula,\n triggers: widget.triggers,\n valueTransforms: widget.valueTransforms,\n options: merge(schema.interface?.options, {\n validations: this.property.validations?.map((c) => ({ rule: c.rule, message: c.message, options: c.options })),\n }),\n };\n });\n }\n}\nexport class AXPEntityMasterCreateViewModel {\n constructor(injector, config, initialData = {}, commandOptions) {\n this.injector = injector;\n this.config = config;\n this.initialData = initialData;\n this.commandOptions = commandOptions;\n this.entityDef = cloneDeep(this.config);\n this.workflow = this.injector.get(AXPWorkflowService);\n this.expressionEvaluator = this.injector.get(AXPExpressionEvaluatorService);\n this.context = signal(this.initialData ?? {});\n this.options = signal(this.commandOptions ?? {});\n this.isInProgress = signal(false);\n this.canCreateNewOne = signal(true);\n this.redirect = signal(true);\n this.sections = computed(() => {\n const { interfaces, properties } = this.entityDef;\n const createProps = interfaces?.master?.create?.properties?.map(({ name }) => name) ?? [];\n const visibleProperties = properties.filter(({ groupId, schema, name }) => groupId && !schema.hidden && createProps.includes(name));\n const sections = interfaces?.master?.create?.sections?.filter(({ id }) => visibleProperties.some(({ groupId }) => groupId === id)) ?? [];\n return sections.map((section) => new AXPEntityCreateViewSectionViewModel(this.entityDef, section));\n });\n if (!initialData)\n initialData = {};\n const scope = {\n context: {\n eval: (path) => {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(get(initialData, path));\n });\n });\n },\n },\n };\n const processDefault = async (value) => {\n if (typeof value == 'function') {\n return value();\n }\n else if (typeof value == 'string' && value.startsWith('{{')) {\n return await this.expressionEvaluator.evaluate(value, scope);\n }\n return value;\n };\n this.config.properties\n .filter((c) => !isNil(c.schema.defaultValue))\n .forEach(async (p) => {\n const value = await processDefault(p.schema.defaultValue);\n set(initialData, p.name, value);\n });\n //\n this.context.set(initialData);\n this.options.set(commandOptions);\n //\n const { redirect = true, canCreateNewOne = true } = commandOptions?.['process'] ?? {};\n this.canCreateNewOne.set(canCreateNewOne);\n this.redirect.set(redirect);\n }\n async save() {\n try {\n this.isInProgress.set(true);\n this.builder.setStatus(AXPPageStatus.Submitting);\n const exec = this.entityDef.commands?.create?.execute;\n const result = await exec(this.context());\n this.context.update((c) => ({ ...c, ...result }));\n return new Promise((resolve) => {\n setTimeout(() => {\n this.builder.setStatus(AXPPageStatus.Submitted);\n resolve(result);\n });\n });\n }\n catch (error) {\n this.builder.setStatus(AXPPageStatus.Error);\n return Promise.reject(error);\n }\n finally {\n this.isInProgress.set(false);\n }\n }\n async createNewOne() {\n await this.workflow.execute('create-entity', {\n entity: getEntityInfo(this.entityDef).source,\n options: this.options(),\n data: this.initialData,\n // entityInfo\n });\n }\n}\nexport class AXPEntityCreateViewModelFactory {\n constructor() {\n this.entityService = inject(AXPEntityDefinitionRegistryService);\n this.layout = inject(AXPLayoutThemeService);\n this.injector = inject(Injector);\n }\n async create(moduleName, entityName, initialData = null, options = { canCreateNewOne: true, redirect: true }) {\n this.layout.setNavigationLoading(true);\n const config = await this.entityService.resolve(moduleName, entityName);\n this.layout.setNavigationLoading(false);\n return new AXPEntityMasterCreateViewModel(this.injector, config, initialData, options);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityCreateViewModelFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityCreateViewModelFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityCreateViewModelFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1jcmVhdGUudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1hc3Rlci1jcmVhdGUudmlld21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFNTCxhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQStCLDZCQUE2QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkcsT0FBTyxFQUEyQixhQUFhLEVBQWlCLE1BQU0saUNBQWlDLENBQUM7QUFDeEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBRWhGLE1BQU0sT0FBTyxtQ0FBbUM7SUFDOUMsWUFBb0IsTUFBaUIsRUFBVSxPQUE2QjtRQUF4RCxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFFNUUsVUFBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBRSxDQUFDO1FBQ2xFLFNBQUksR0FBRyxNQUFNLENBQUMsSUFB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L0IsK0JBQStCLGNBRGxCLE1BQU07OzJGQUNuQiwrQkFBK0I7a0JBRDNDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhQRW50aXR5LFxuICBBWFBFbnRpdHlQcm9wZXJ0eSxcbiAgQVhQRW50aXR5UHJvcGVydHlDcmVhdGVWaWV3LFxuICBBWFBFbnRpdHlTZWN0aW9uVmlldyxcbiAgQVhQR3JpZExheW91dE9wdGlvbnMsXG4gIGdldEVudGl0eUluZm8sXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSwgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UsIEFYUFBhZ2VTdGF0dXMsIEFYUFdpZGdldE5vZGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IEFYUExheW91dFRoZW1lU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vdGhlbWVzL3NoYXJlZCc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgZ2V0LCBpc05pbCwgbWVyZ2UsIHNldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi9lbnRpdHktcmVnaXN0ZXJ5LnNlcnZpY2UnO1xuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5Q3JlYXRlVmlld1NlY3Rpb25WaWV3TW9kZWwge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVudGl0eTogQVhQRW50aXR5LCBwcml2YXRlIHNlY3Rpb246IEFYUEVudGl0eVNlY3Rpb25WaWV3KSB7fVxuXG4gIGdyb3VwID0gdGhpcy5lbnRpdHkuZ3JvdXBzPy5maW5kKChjKSA9PiBjLmlkID09IHRoaXMuc2VjdGlvbi5pZCkhO1xuICBuYW1lID0gc2lnbmFsKHRoaXMuZ3JvdXAuaWQpO1xuXG4gIHRpdGxlID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZ3JvdXAudGl0bGUgPz8gdGhpcy5ncm91cC5pZDtcbiAgfSk7XG5cbiAgZGVzY3JpcHRpb24gPSBjb21wdXRlZDxzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZ3JvdXAuZGVzY3JpcHRpb247XG4gIH0pO1xuXG4gIGxheW91dCA9IGNvbXB1dGVkPEFYUEdyaWRMYXlvdXRPcHRpb25zPigoKSA9PiB7XG4gICAgY29uc3Qgc291cmNlID0gY2xvbmVEZWVwKHRoaXMuc2VjdGlvbi5sYXlvdXQgPz8ge30pIGFzIG9iamVjdDtcbiAgICBzZXQoc291cmNlLCAncG9zaXRpb25zLmRlZmF1bHQuY29sU3BhbicsIDEyKTtcbiAgICByZXR1cm4gc291cmNlIGFzIEFYUEdyaWRMYXlvdXRPcHRpb25zO1xuICB9KTtcblxuICBlbGVtZW50cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB7IGludGVyZmFjZXMsIHByb3BlcnRpZXMgfSA9IHRoaXMuZW50aXR5O1xuICAgIGNvbnN0IGNyZWF0ZVByb3BzID0gaW50ZXJmYWNlcz8ubWFzdGVyPy5jcmVhdGU/LnByb3BlcnRpZXMgPz8gW107XG4gICAgY29uc3QgY3JlYXRlUHJvcE5hbWVzID0gbmV3IFNldChjcmVhdGVQcm9wcy5tYXAoKHsgbmFtZSB9KSA9PiBuYW1lKSk7XG5cbiAgICBjb25zdCBmaWx0ZXJlZFByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLmZpbHRlcihcbiAgICAgICh7IGdyb3VwSWQsIHNjaGVtYSwgbmFtZSB9KSA9PiBncm91cElkID09PSB0aGlzLmdyb3VwLmlkICYmICFzY2hlbWEuaGlkZGVuICYmIGNyZWF0ZVByb3BOYW1lcy5oYXMobmFtZSlcbiAgICApO1xuXG4gICAgcmV0dXJuIGZpbHRlcmVkUHJvcGVydGllcy5tYXAoKHByb3BlcnR5KSA9PiB7XG4gICAgICBjb25zdCBjcmVhdGVQcm9wID0gY3JlYXRlUHJvcHMuZmluZCgoeyBuYW1lIH0pID0+IG5hbWUgPT09IHByb3BlcnR5Lm5hbWUpO1xuICAgICAgcmV0dXJuIG5ldyBBWFBFbnRpdHlDcmVhdGVWaWV3RWxlbWVudFZpZXdNb2RlbCh0aGlzLmVudGl0eSwgdGhpcywgcHJvcGVydHksIGNyZWF0ZVByb3AhKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlDcmVhdGVWaWV3RWxlbWVudFZpZXdNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZW50aXR5OiBBWFBFbnRpdHksXG4gICAgcHJpdmF0ZSBzZWN0aW9uOiBBWFBFbnRpdHlDcmVhdGVWaWV3U2VjdGlvblZpZXdNb2RlbCxcbiAgICBwcml2YXRlIHByb3BlcnR5OiBBWFBFbnRpdHlQcm9wZXJ0eSxcbiAgICBwcml2YXRlIGNyZWF0ZVByb3A6IEFYUEVudGl0eVByb3BlcnR5Q3JlYXRlVmlld1xuICApIHt9XG5cbiAgbmFtZSA9IHNpZ25hbCh0aGlzLnByb3BlcnR5Lm5hbWUpO1xuICB0aXRsZSA9IHNpZ25hbCh0aGlzLnByb3BlcnR5LnRpdGxlKTtcbiAgZGVzY3JpcHRpb24gPSBzaWduYWwodGhpcy5wcm9wZXJ0eS5kZXNjcmlwdGlvbik7XG5cbiAgZWRpdGFibGUgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgcmV0dXJuICEodGhpcy5wcm9wZXJ0eS5zY2hlbWEucmVhZG9ubHkgPz8gZmFsc2UpO1xuICB9KTtcblxuICBpc1JlcXVpcmVkID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnByb3BlcnR5LnZhbGlkYXRpb25zPy5zb21lKChjKSA9PiBjLnJ1bGUgPT0gJ3JlcXVpcmVkJykgfHwgZmFsc2U7XG4gIH0pO1xuXG4gIGxheW91dCA9IGNvbXB1dGVkPEFYUEdyaWRMYXlvdXRPcHRpb25zPigoKSA9PiB7XG4gICAgY29uc3Qgc291cmNlID0gY2xvbmVEZWVwKHRoaXMuY3JlYXRlUHJvcC5sYXlvdXQgPz8ge30pIGFzIG9iamVjdDtcbiAgICBzZXQoc291cmNlLCAncG9zaXRpb25zLmRlZmF1bHQuY29sU3BhbicsIDEyKTtcbiAgICByZXR1cm4gc291cmNlIGFzIEFYUEdyaWRMYXlvdXRPcHRpb25zO1xuICB9KTtcblxuICBub2RlID0gY29tcHV0ZWQ8QVhQV2lkZ2V0Tm9kZT4oKCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IHRoaXMucHJvcGVydHkuc2NoZW1hITtcbiAgICBjb25zdCB3aWRnZXQgPSBzY2hlbWEuaW50ZXJmYWNlITtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogd2lkZ2V0LnR5cGUsXG4gICAgICBtb2RlOiB0aGlzLmVkaXRhYmxlKCkgPyAnZWRpdCcgOiAndmlldycsXG4gICAgICBwYXRoOiB0aGlzLm5hbWUoKSxcbiAgICAgIG5hbWU6IHRoaXMubmFtZSgpLFxuICAgICAgY2hpbGRyZW46IHdpZGdldC5jaGlsZHJlbixcbiAgICAgIGZvcm11bGE6IHdpZGdldC5mb3JtdWxhLFxuICAgICAgdHJpZ2dlcnM6IHdpZGdldC50cmlnZ2VycyxcbiAgICAgIHZhbHVlVHJhbnNmb3Jtczogd2lkZ2V0LnZhbHVlVHJhbnNmb3JtcyxcbiAgICAgIG9wdGlvbnM6IG1lcmdlKHNjaGVtYS5pbnRlcmZhY2U/Lm9wdGlvbnMsIHtcbiAgICAgICAgdmFsaWRhdGlvbnM6IHRoaXMucHJvcGVydHkudmFsaWRhdGlvbnM/Lm1hcCgoYykgPT4gKHsgcnVsZTogYy5ydWxlLCBtZXNzYWdlOiBjLm1lc3NhZ2UsIG9wdGlvbnM6IGMub3B0aW9ucyB9KSksXG4gICAgICB9KSxcbiAgICB9IGFzIEFYUFdpZGdldE5vZGU7XG4gIH0pO1xufVxuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyQ3JlYXRlVmlld01vZGVsIHtcbiAgcHJpdmF0ZSBlbnRpdHlEZWYgPSBjbG9uZURlZXAodGhpcy5jb25maWcpITtcblxuICBwcml2YXRlIHdvcmtmbG93ID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQV29ya2Zsb3dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBleHByZXNzaW9uRXZhbHVhdG9yID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNlcnZpY2UpO1xuXG4gIHB1YmxpYyBidWlsZGVyOiBBWFBMYXlvdXRCdWlsZGVyU2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogQVhQRW50aXR5LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5pdGlhbERhdGE6IGFueSA9IHt9LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tbWFuZE9wdGlvbnM6IGFueVxuICApIHtcbiAgICBpZiAoIWluaXRpYWxEYXRhKSBpbml0aWFsRGF0YSA9IHt9O1xuXG4gICAgY29uc3Qgc2NvcGU6IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSA9IHtcbiAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgZXZhbDogKHBhdGg6IHN0cmluZykgPT4ge1xuICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHJlc29sdmUoZ2V0KGluaXRpYWxEYXRhLCBwYXRoKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IHByb2Nlc3NEZWZhdWx0ID0gYXN5bmMgKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gdmFsdWUoKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnICYmIHZhbHVlLnN0YXJ0c1dpdGgoJ3t7JykpIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvci5ldmFsdWF0ZSh2YWx1ZSwgc2NvcGUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH07XG5cbiAgICB0aGlzLmNvbmZpZy5wcm9wZXJ0aWVzXG4gICAgICAuZmlsdGVyKChjKSA9PiAhaXNOaWwoYy5zY2hlbWEuZGVmYXVsdFZhbHVlKSlcbiAgICAgIC5mb3JFYWNoKGFzeW5jIChwKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gYXdhaXQgcHJvY2Vzc0RlZmF1bHQocC5zY2hlbWEuZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgc2V0KGluaXRpYWxEYXRhLCBwLm5hbWUsIHZhbHVlKTtcbiAgICAgIH0pO1xuICAgIC8vXG4gICAgdGhpcy5jb250ZXh0LnNldChpbml0aWFsRGF0YSk7XG4gICAgdGhpcy5vcHRpb25zLnNldChjb21tYW5kT3B0aW9ucyk7XG4gICAgLy9cbiAgICBjb25zdCB7IHJlZGlyZWN0ID0gdHJ1ZSwgY2FuQ3JlYXRlTmV3T25lID0gdHJ1ZSB9ID0gY29tbWFuZE9wdGlvbnM/LlsncHJvY2VzcyddID8/IHt9O1xuICAgIHRoaXMuY2FuQ3JlYXRlTmV3T25lLnNldChjYW5DcmVhdGVOZXdPbmUpO1xuICAgIHRoaXMucmVkaXJlY3Quc2V0KHJlZGlyZWN0KTtcbiAgfVxuXG4gIHB1YmxpYyBjb250ZXh0ID0gc2lnbmFsPGFueT4odGhpcy5pbml0aWFsRGF0YSA/PyB7fSk7XG4gIHB1YmxpYyBvcHRpb25zID0gc2lnbmFsPGFueT4odGhpcy5jb21tYW5kT3B0aW9ucyA/PyB7fSk7XG5cbiAgcHVibGljIGlzSW5Qcm9ncmVzcyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyBjYW5DcmVhdGVOZXdPbmUgPSBzaWduYWw8Ym9vbGVhbj4odHJ1ZSk7XG4gIHB1YmxpYyByZWRpcmVjdCA9IHNpZ25hbDxib29sZWFuPih0cnVlKTtcblxuICBwdWJsaWMgc2VjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDcmVhdGVWaWV3U2VjdGlvblZpZXdNb2RlbFtdPigoKSA9PiB7XG4gICAgY29uc3QgeyBpbnRlcmZhY2VzLCBwcm9wZXJ0aWVzIH0gPSB0aGlzLmVudGl0eURlZjtcbiAgICBjb25zdCBjcmVhdGVQcm9wcyA9IGludGVyZmFjZXM/Lm1hc3Rlcj8uY3JlYXRlPy5wcm9wZXJ0aWVzPy5tYXAoKHsgbmFtZSB9KSA9PiBuYW1lKSA/PyBbXTtcblxuICAgIGNvbnN0IHZpc2libGVQcm9wZXJ0aWVzID0gcHJvcGVydGllcy5maWx0ZXIoXG4gICAgICAoeyBncm91cElkLCBzY2hlbWEsIG5hbWUgfSkgPT4gZ3JvdXBJZCAmJiAhc2NoZW1hLmhpZGRlbiAmJiBjcmVhdGVQcm9wcy5pbmNsdWRlcyhuYW1lKVxuICAgICk7XG5cbiAgICBjb25zdCBzZWN0aW9ucyA9XG4gICAgICBpbnRlcmZhY2VzPy5tYXN0ZXI/LmNyZWF0ZT8uc2VjdGlvbnM/LmZpbHRlcigoeyBpZCB9KSA9PlxuICAgICAgICB2aXNpYmxlUHJvcGVydGllcy5zb21lKCh7IGdyb3VwSWQgfSkgPT4gZ3JvdXBJZCA9PT0gaWQpXG4gICAgICApID8/IFtdO1xuXG4gICAgcmV0dXJuIHNlY3Rpb25zLm1hcCgoc2VjdGlvbikgPT4gbmV3IEFYUEVudGl0eUNyZWF0ZVZpZXdTZWN0aW9uVmlld01vZGVsKHRoaXMuZW50aXR5RGVmLCBzZWN0aW9uKSk7XG4gIH0pO1xuXG4gIHB1YmxpYyBhc3luYyBzYXZlKCk6IFByb21pc2U8YW55IHwgdm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmlzSW5Qcm9ncmVzcy5zZXQodHJ1ZSk7XG4gICAgICB0aGlzLmJ1aWxkZXIuc2V0U3RhdHVzKEFYUFBhZ2VTdGF0dXMuU3VibWl0dGluZyk7XG4gICAgICBjb25zdCBleGVjID0gdGhpcy5lbnRpdHlEZWYuY29tbWFuZHM/LmNyZWF0ZT8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGV4ZWModGhpcy5jb250ZXh0KCkpO1xuICAgICAgdGhpcy5jb250ZXh0LnVwZGF0ZSgoYykgPT4gKHsgLi4uYywgLi4ucmVzdWx0IH0pKTtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLmJ1aWxkZXIuc2V0U3RhdHVzKEFYUFBhZ2VTdGF0dXMuU3VibWl0dGVkKTtcbiAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgdGhpcy5idWlsZGVyLnNldFN0YXR1cyhBWFBQYWdlU3RhdHVzLkVycm9yKTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuaXNJblByb2dyZXNzLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGNyZWF0ZU5ld09uZSgpIHtcbiAgICBhd2FpdCB0aGlzLndvcmtmbG93LmV4ZWN1dGUoJ2NyZWF0ZS1lbnRpdHknLCB7XG4gICAgICBlbnRpdHk6IGdldEVudGl0eUluZm8odGhpcy5lbnRpdHlEZWYpLnNvdXJjZSxcbiAgICAgIG9wdGlvbnM6IHRoaXMub3B0aW9ucygpLFxuICAgICAgZGF0YTogdGhpcy5pbml0aWFsRGF0YSxcbiAgICAgIC8vIGVudGl0eUluZm9cbiAgICB9KTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUNyZWF0ZVZpZXdNb2RlbEZhY3Rvcnkge1xuICBwcml2YXRlIGVudGl0eVNlcnZpY2UgPSBpbmplY3QoQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSk7XG4gIHByaXZhdGUgbGF5b3V0ID0gaW5qZWN0KEFYUExheW91dFRoZW1lU2VydmljZSk7XG4gIHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gIHB1YmxpYyBhc3luYyBjcmVhdGUoXG4gICAgbW9kdWxlTmFtZTogc3RyaW5nLFxuICAgIGVudGl0eU5hbWU6IHN0cmluZyxcbiAgICBpbml0aWFsRGF0YTogYW55ID0gbnVsbCxcbiAgICBvcHRpb25zOiB7IGNhbkNyZWF0ZU5ld09uZTogYm9vbGVhbjsgcmVkaXJlY3Q6IGJvb2xlYW4gfSA9IHsgY2FuQ3JlYXRlTmV3T25lOiB0cnVlLCByZWRpcmVjdDogdHJ1ZSB9XG4gICk6IFByb21pc2U8QVhQRW50aXR5TWFzdGVyQ3JlYXRlVmlld01vZGVsPiB7XG4gICAgdGhpcy5sYXlvdXQuc2V0TmF2aWdhdGlvbkxvYWRpbmcodHJ1ZSk7XG4gICAgY29uc3QgY29uZmlnID0gYXdhaXQgdGhpcy5lbnRpdHlTZXJ2aWNlLnJlc29sdmUobW9kdWxlTmFtZSwgZW50aXR5TmFtZSk7XG4gICAgdGhpcy5sYXlvdXQuc2V0TmF2aWdhdGlvbkxvYWRpbmcoZmFsc2UpO1xuICAgIHJldHVybiBuZXcgQVhQRW50aXR5TWFzdGVyQ3JlYXRlVmlld01vZGVsKHRoaXMuaW5qZWN0b3IsIGNvbmZpZywgaW5pdGlhbERhdGEsIG9wdGlvbnMpO1xuICB9XG59XG4iXX0=","import { AXDataSource } from '@acorex/cdk/common';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPEntityCommandScope, AXPFilterOperatorMiddlewareService, AXPRefreshEvent, AXPSettingService, getEntityInfo, } from '@acorex/platform/common';\nimport { AXPExpressionEvaluatorService, AXPPlatformScope, } from '@acorex/platform/core';\nimport { AXPWidgetRegistryService } from '@acorex/platform/layout/builder';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXPWorkflowService, ofType } from '@acorex/platform/workflow';\nimport { Injectable, computed, inject, signal, Injector } from '@angular/core';\nimport { cloneDeep, get, set } from 'lodash-es';\nimport { Subject, takeUntil } from 'rxjs';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\nimport { AXPEntityCommandTriggerViewModel, AXPEntityListViewColumnViewModel } from './entity.viewmodel';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityMasterListViewQueryViewModel {\n constructor(entity, section, view) {\n this.entity = entity;\n this.section = section;\n this.view = view;\n this.name = this.view.name;\n this.title = this.view.title;\n this.sorts = this.view.sorts;\n this.columns = this.view.columns;\n this.conditions = this.view.conditions;\n this.indexCol = this.view.indexCol;\n this.pageSize = this.view.pageSize;\n }\n}\nexport class AXPEntityMasterListViewModel {\n async setView(viewName = null) {\n const entitySetting = await this.settings.get(this.settingEntityKey);\n const selectedViewName = entitySetting?.list?.currentView;\n if (viewName != this.view().name) {\n this.view.set(this.views().find((c) => c.name == (viewName || selectedViewName)) ?? this.views()[0]);\n this.applyViewSorts();\n this.applyViewColumns();\n this.applyViewFilters();\n // this.applyFilterAndSort();\n this.applySettings();\n }\n }\n constructor(injector, config) {\n this.injector = injector;\n this.config = config;\n this.entityDef = cloneDeep(this.config);\n this._viewDef = cloneDeep(this.entityDef.interfaces?.master?.list);\n this.formatService = this.injector.get(AXFormatService);\n this.session = this.injector.get(AXPSessionService);\n this.workflow = this.injector.get(AXPWorkflowService);\n this.settings = this.injector.get(AXPSettingService);\n this.widgetResolver = this.injector.get(AXPWidgetRegistryService);\n this.expressionEvaluator = this.injector.get(AXPExpressionEvaluatorService);\n this.filterOperatorMiddleware = this.injector.get(AXPFilterOperatorMiddlewareService);\n this.settingEntityKey = `${this.config.module}:${this.config.name}`;\n this.destroyed = new Subject();\n this.events$ = new Subject();\n //****************** Views ******************//\n this.views = computed(() => {\n const views = this.entityDef.interfaces?.master?.list?.views ?? [];\n return views.map((v) => {\n return new AXPEntityMasterListViewQueryViewModel(this.entityDef, this, v);\n });\n });\n this.view = signal(this.views()[0]);\n this.dataSource = new AXDataSource({\n byKey: (key) => {\n const func = this.entityDef.queries.byKey.execute;\n return func();\n },\n load: (e) => {\n const func = this.entityDef.queries.list?.execute;\n return func(e);\n },\n pageSize: this.view().pageSize || 10,\n key: 'id',\n });\n this.selectedItems = signal([]);\n this.parentKey = computed(() => {\n return this.entityDef.parentKey;\n });\n this.hasSelectedItems = computed(() => {\n return this.selectedItems().length > 0;\n });\n //****************** Title ******************//\n this.title = computed(() => {\n return this._viewDef.title ?? this.entityDef.formats.plural;\n });\n //****************** Description ******************//\n this.description = computed(() => {\n return this._viewDef.description ?? null;\n });\n //****************** Inline filter ******************//\n this.inlineFiltersPlaceholders = computed(() => {\n return this.entityDef.properties.filter((p) => p.options?.filter?.inline?.enabled).map((c) => c.title ?? c.name);\n });\n this.hasInlineFilters = computed(() => {\n return this.inlineFiltersPlaceholders().length > 0;\n });\n //****************** Beardcrumbs ******************//\n this.beardcrumbs = computed(() => {\n return [\n {\n title: this.title(),\n },\n ];\n });\n //****************** Actions ******************//\n this.allActions = computed(() => {\n const list = this.entityDef.interfaces?.master?.list?.actions ?? [];\n return list.map((tr) => new AXPEntityCommandTriggerViewModel(this.entityDef, tr)) ?? [];\n });\n this.selectedScopeActionsCount = computed(() => {\n return this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Selected).length;\n });\n this.primaryRowActions = computed(() => this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Individual && a.priority === 'primary'));\n //****************** Filter ******************//\n this.filterQueries = signal([]);\n //****************** Columns ******************//\n this.allAvailableColumns = () => {\n const { columns = [], properties } = this.entityDef;\n const visibleProperties = properties.filter(({ schema }) => !schema?.hidden);\n const visiblePropNames = new Set(visibleProperties.map(({ name }) => name));\n return columns\n .filter(({ name }) => visiblePropNames.has(name))\n .map((column) => {\n const property = visibleProperties.find(({ name }) => name === column.name);\n return new AXPEntityListViewColumnViewModel(property, column);\n });\n };\n this.visibleColumnCount = () => {\n return this.columns().filter((c) => c.visible == true).length;\n };\n this.columns = signal([]);\n //****************** Sort ******************//\n this.sortableFields = () => {\n const props = this.entityDef.properties.filter((c) => c.options?.sort?.enabled);\n return props.map((e) => {\n return {\n name: e.name,\n title: e.title,\n dir: undefined,\n };\n });\n };\n this.sortableFieldsCount = () => {\n return this.entityDef.properties.filter((c) => c.options?.sort?.enabled).length ?? 0;\n };\n this.canSort = () => {\n return this.sortableFieldsCount() > 0;\n };\n this.canAddMoreSort = () => {\n return this.sortedCount() < this.sortableFieldsCount();\n };\n this.sortedCount = () => {\n return this.sortedFields().filter((i) => i.dir).length;\n };\n this.sortedFields = signal([]);\n this.evaluateExpressions = async (options, data) => {\n const scope = {\n context: {\n eval: (path) => {\n return get(data, path);\n },\n },\n };\n return await this.expressionEvaluator.evaluate(options, scope);\n };\n this.workflow.events$\n .pipe(ofType(AXPRefreshEvent))\n .pipe(takeUntil(this.destroyed))\n .subscribe((event) => {\n if (event.payload.entity == getEntityInfo(this.entityDef).source) {\n this.selectedItems.set([]);\n this.events$.next({ action: 'refresh', meta: event.payload.meta });\n }\n });\n this.sortedFields.set(this.sortableFields());\n }\n async applySettings() {\n this.saveSettings('view');\n const listViewSetting = await this.settings.get(this.settingEntityKey);\n if (listViewSetting) {\n const columns = listViewSetting.list.views[this.view().name].columns;\n const pageSize = listViewSetting.list.views[this.view().name].pageSize;\n const columnVisibilityMap = new Map(columns.map((col) => [col.name, col.visible]));\n const columnWidthsMap = new Map(columns.map((col) => [col.name, col.width]));\n // if (pageSize) {\n // this.dataSource.setPageSize(pageSize);\n // }\n this.columns.update((prev) => prev\n .map((c) => {\n return { ...c, width: columnWidthsMap.get(c.name), visible: columnVisibilityMap.get(c.name) ?? c.visible };\n }) // Update visibility\n .sort((a, b) => columns.findIndex((col) => col.name === a.name) -\n columns.findIndex((col) => col.name === b.name)));\n }\n }\n async saveSettings(changesType, data) {\n const updateSettings = (updateFn) => {\n this.settings.scope(AXPPlatformScope.User).update(this.settingEntityKey, updateFn);\n };\n switch (changesType) {\n case 'columnSizes':\n updateSettings((prev) => {\n const field = data.dataField.split('-')[1];\n const newSettings = { ...prev };\n set(newSettings, `list.views.${this.view().name}.columns`, prev?.list?.views?.[this.view().name]?.columns?.map((c) => ({\n ...c,\n width: c.name === field ? data.width : c.width,\n })));\n return newSettings;\n });\n break;\n case 'columnOrders':\n updateSettings((prev) => {\n const newSettings = { ...prev };\n set(newSettings, `list.views.${this.view().name}.columns`, data.map((c) => ({\n name: c.name,\n visible: c.visible,\n width: c.width,\n })));\n return newSettings;\n });\n break;\n case 'view':\n updateSettings((prev) => ({\n ...prev,\n list: {\n ...prev?.list,\n currentView: this.view().name,\n },\n }));\n break;\n case 'pageSize':\n updateSettings((prev) => ({\n ...prev,\n list: {\n ...prev?.list,\n views: {\n ...prev?.list?.views,\n [this.view().name]: {\n ...prev?.list?.views?.[this.view().name],\n pageSize: data,\n },\n },\n },\n }));\n break;\n default:\n break;\n }\n }\n clearSelection() {\n this.selectedItems.set([]);\n }\n async getPrimaryActions() {\n const scope = {};\n const actions = await Promise.all(this.allActions()\n .filter((a) => a.priority == 'primary' &&\n ((a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||\n (a.scope == AXPEntityCommandScope.TypeLevel && !this.hasSelectedItems())))\n .map(async (a) => {\n const isHidden = await this.expressionEvaluator.evaluate(a.hidden, scope);\n if (isHidden)\n return null;\n const disabled = await this.expressionEvaluator.evaluate(a.disabled, scope);\n return { ...a, disabled };\n }));\n return actions;\n }\n async getSecondaryActions() {\n const scope = {};\n const actions = await Promise.all(this.allActions()\n .filter((a) => a.priority == 'secondary' &&\n ((a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||\n (a.scope == AXPEntityCommandScope.TypeLevel && !this.hasSelectedItems())))\n .map(async (a) => {\n const isHidden = await this.expressionEvaluator.evaluate(a.hidden, scope);\n if (isHidden)\n return null;\n const disabled = await this.expressionEvaluator.evaluate(a.disabled, scope);\n return { ...a, disabled };\n }));\n return actions;\n }\n async secondaryRowActions(rowData) {\n const scope = {\n context: {\n eval: (path) => get(rowData, path),\n },\n };\n const actions = await Promise.all(this.allActions()\n .filter((a) => a.scope === AXPEntityCommandScope.Individual && a.priority === 'secondary')\n .map(async (a) => {\n const isHidden = await this.expressionEvaluator.evaluate(a.hidden, scope);\n if (isHidden)\n return null;\n const disabled = await this.expressionEvaluator.evaluate(a.disabled, scope);\n return { ...a, disabled };\n }));\n return actions.filter(Boolean);\n }\n get properties() {\n return this.entityDef.properties;\n }\n get filtersDef() {\n const props = this.entityDef.properties.filter((c) => c.options?.filter?.advance?.enabled || c.options?.filter?.inline?.enabled);\n return props.map((e) => {\n const widgetConfig = this.widgetResolver.resolve(e.schema.interface?.type);\n const type = (e.options?.filter?.advance?.widgetType ||\n widgetConfig?.defaultFilterWidgetName ||\n e.schema.interface?.type);\n return {\n title: e.title,\n field: e.name,\n operator: {\n type: 'contains',\n },\n widget: { ...e.schema.interface, path: e.name, type },\n filters: [],\n isParametric: false,\n icon: widgetConfig?.icon,\n filterType: {\n advance: e.options?.filter?.advance?.enabled ?? false,\n inline: e.options?.filter?.inline?.enabled ?? false,\n },\n };\n });\n }\n // const viewFilters = this.view().conditions.map((f) => ({\n // field: f.name,\n // operator: f.operator,\n // value: f.value,\n // }));\n async applyViewFilters() {\n const viewFilters = this.view().conditions.map((f) => ({\n field: f.name,\n operator: f.operator,\n value: f.value,\n }));\n this.filterQueries.update((prev) => ({ ...prev, filters: viewFilters }));\n }\n resetFilters() {\n this.applyViewFilters();\n }\n async applyFilterAndSort() {\n this.dataSource.clearFilter();\n this.dataSource.sort(...this.sortedFields()\n .filter((sf) => sf.dir)\n .map((s) => ({ dir: s.dir, field: s.name })));\n this.dataSource.filter(this.filterOperatorMiddleware.transformFilter({\n field: null,\n logic: 'and',\n operator: null,\n filters: this.filterQueries(),\n }));\n this.dataSource.refresh();\n }\n resetColumns() {\n this.applyViewColumns();\n }\n async onColumnsChanged(columns) {\n this.saveSettings('columnOrders', columns);\n }\n applyViewColumns() {\n const cols = this.view().columns;\n const cloned = this.allAvailableColumns().map((c) => {\n const column = this.entityDef.columns?.find((cc) => cc.name == c.name);\n const prop = this.entityDef.properties.find((p) => p.name == c.name);\n const col = new AXPEntityListViewColumnViewModel(prop, column);\n col.visible = !cols.some((c) => c == col.name) && col.visible != false;\n return col;\n });\n this.columns.set(cloned);\n }\n resetSorts() {\n this.applyViewSorts();\n }\n applySorts() {\n this.applyFilterAndSort();\n }\n addSort() {\n const prop = this.sortableFields().find((c) => !this.sortedFields().some((s) => s.name == c.name));\n if (prop) {\n this.sortedFields.set([...this.sortedFields(), ...[prop]]);\n }\n }\n removeSort(name) {\n this.sortedFields.set(this.sortedFields().filter((c) => c.name != name));\n }\n applyViewSorts() {\n const viewSorts = this.view().sorts;\n this.sortedFields.update((prev) => {\n const viewSortsMap = new Map(viewSorts.map((vs) => [vs.name, vs]));\n return prev.map((sf) => {\n const updatedSort = viewSortsMap.get(sf.name);\n if (updatedSort) {\n return { ...updatedSort, title: sf.title };\n }\n return sf;\n });\n });\n }\n //****************** Commands ******************//\n async executeCommand(commandName, data = null) {\n const action = this.allActions().find((c) => {\n return (c.name == commandName &&\n ((this.selectedItems().length\n && !data // added by Arash\n ? c.scope == AXPEntityCommandScope.Selected\n : c.scope == AXPEntityCommandScope.Individual) ||\n c.scope == AXPEntityCommandScope.TypeLevel));\n });\n const command = commandName.split('&')[0];\n const options = await this.evaluateExpressions(action?.options, data);\n await this.workflow.execute(command, {\n entity: getEntityInfo(this.entityDef).source,\n entityInfo: {\n name: this.entityDef.name,\n module: this.entityDef.module,\n title: this.entityDef.title,\n parentKey: this.entityDef.parentKey,\n source: this.entityDef.source,\n },\n data: action?.scope == AXPEntityCommandScope.Selected ? this.selectedItems() : data,\n options: options,\n metadata: action?.metadata,\n });\n }\n async execute(command) {\n switch (command?.name) {\n case 'navigate':\n await this.workflow.execute('navigate', {\n options: {\n path: command.options?.['path'],\n },\n });\n break;\n default:\n this.executeCommand(command.name);\n break;\n }\n }\n //\n destroy() {\n this.destroyed.next();\n this.destroyed.complete();\n }\n}\nexport class AXPEntityListViewModelFactory {\n constructor() {\n this.entityService = inject(AXPEntityDefinitionRegistryService);\n this.layout = inject(AXPLayoutThemeService);\n this.injector = inject(Injector);\n }\n async create(moduleName, entityName) {\n this.layout.setNavigationLoading(true);\n const config = await this.entityService.resolve(moduleName, entityName);\n this.layout.setNavigationLoading(false);\n return new AXPEntityMasterListViewModel(this.injector, config);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityListViewModelFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityListViewModelFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityListViewModelFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nexport const AXPEntityListViewModelResolver = (route, state, service = inject(AXPEntityListViewModelFactory)) => {\n const moduleName = route.parent?.paramMap.get('module');\n const entityName = route.paramMap.get('entity');\n //\n return service.create(moduleName, entityName);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1saXN0LnZpZXdtb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS1tYXN0ZXItbGlzdC52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBb0QsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUVMLHFCQUFxQixFQUdyQixrQ0FBa0MsRUFHbEMsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBS0wsNkJBQTZCLEVBQzdCLGdCQUFnQixHQUNqQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSx3QkFBd0IsRUFBcUIsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFVBQVUsRUFBdUIsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXBHLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsZ0NBQWdDLEVB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UUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQVcsQ0FBQztJQUNsRSxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQVcsQ0FBQztJQUMxRCxFQUFFO0lBQ0YsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNoRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERhdGFTb3VyY2UsIEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbiwgQVhEYXRhU291cmNlU29ydE9wdGlvbiB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWEZvcm1hdFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvZm9ybWF0JztcbmltcG9ydCB7IEFYUFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7XG4gIEFYUEVudGl0eSxcbiAgQVhQRW50aXR5Q29tbWFuZFNjb3BlLFxuICBBWFBFbnRpdHlQcm9wZXJ0eSxcbiAgQVhQRmlsdGVyRGVmaW5pdGlvbixcbiAgQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZSxcbiAgQVhQRmlsdGVyUXVlcnksXG4gIEFYUFF1ZXJ5VmlldyxcbiAgQVhQUmVmcmVzaEV2ZW50LFxuICBBWFBTZXR0aW5nU2VydmljZSxcbiAgZ2V0RW50aXR5SW5mbyxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHtcbiAgQVhQQnJlYWRjcnVtYkl0ZW0sXG4gIEFYUENvbnRleHRTdG9yZSxcbiAgQVhQRXhlY3V0ZUNvbW1hbmQsXG4gIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSxcbiAgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNlcnZpY2UsXG4gIEFYUFBsYXRmb3JtU2NvcGUsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UsIEFYUFdpZGdldFR5cGVzTWFwIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBMYXlvdXRUaGVtZVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3RoZW1lcy9zaGFyZWQnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlLCBvZlR5cGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEluamVjdGFibGUsIEVudmlyb25tZW50SW5qZWN0b3IsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJlc29sdmVGbiwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGdldCwgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsLCBBWFBFbnRpdHlMaXN0Vmlld0NvbHVtblZpZXdNb2RlbCB9IGZyb20gJy4vZW50aXR5LnZpZXdtb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRW50aXR5TWFzdGVyTGlzdFZpZXdTb3J0UHJvcFZpZXdNb2RlbCB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGlyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyTGlzdFZpZXdRdWVyeVZpZXdNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZW50aXR5OiBBWFBFbnRpdHksXG4gICAgcHJpdmF0ZSBzZWN0aW9uOiBBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld01vZGVsLFxuICAgIHByaXZhdGUgdmlldzogQVhQUXVlcnlWaWV3LFxuICApIHsgfVxuXG4gIG5hbWUgPSB0aGlzLnZpZXcubmFtZTtcbiAgdGl0bGUgPSB0aGlzLnZpZXcudGl0bGU7XG4gIHNvcnRzID0gdGhpcy52aWV3LnNvcnRzO1xuICBjb2x1bW5zID0gdGhpcy52aWV3LmNvbHVtbnM7XG4gIGNvbmRpdGlvbnMgPSB0aGlzLnZpZXcuY29uZGl0aW9ucztcbiAgaW5kZXhDb2wgPSB0aGlzLnZpZXcuaW5kZXhDb2w7XG4gIHBhZ2VTaXplID0gdGhpcy52aWV3LnBhZ2VTaXplO1xufVxuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyTGlzdFZpZXdNb2RlbCB7XG4gIHJlYWRvbmx5IGVudGl0eURlZiA9IGNsb25lRGVlcCh0aGlzLmNvbmZpZykhO1xuICBwcml2YXRlIHJlYWRvbmx5IF92aWV3RGVmID0gY2xvbmVEZWVwKHRoaXMuZW50aXR5RGVmLmludGVyZmFjZXM/Lm1hc3Rlcj8ubGlzdCkhO1xuICBwcml2YXRlIHJlYWRvbmx5IGZvcm1hdFNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChBWEZvcm1hdFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb24gPSB0aGlzLmluamVjdG9yLmdldChBWFBTZXNzaW9uU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgd29ya2Zsb3cgPSB0aGlzLmluamVjdG9yLmdldChBWFBXb3JrZmxvd1NlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNldHRpbmdzID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQU2V0dGluZ1NlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHdpZGdldFJlc29sdmVyID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQV2lkZ2V0UmVnaXN0cnlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBleHByZXNzaW9uRXZhbHVhdG9yID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNlcnZpY2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZSk7XG5cbiAgcHJpdmF0ZSBzZXR0aW5nRW50aXR5S2V5ID0gYCR7dGhpcy5jb25maWcubW9kdWxlfToke3RoaXMuY29uZmlnLm5hbWV9YDtcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBldmVudHMkOiBTdWJqZWN0PHsgYWN0aW9uOiBzdHJpbmc7IG1ldGE/OiBhbnkgfT4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIC8vKioqKioqKioqKioqKioqKioqIFZpZXdzICoqKioqKioqKioqKioqKioqKi8vXG5cbiAgdmlld3MgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgdmlld3MgPSB0aGlzLmVudGl0eURlZi5pbnRlcmZhY2VzPy5tYXN0ZXI/Lmxpc3Q/LnZpZXdzID8/IFtdO1xuXG4gICAgcmV0dXJuIHZpZXdzLm1hcCgodikgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld1F1ZXJ5Vmlld01vZGVsKHRoaXMuZW50aXR5RGVmLCB0aGlzLCB2KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgdmlldyA9IHNpZ25hbDxBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld1F1ZXJ5Vmlld01vZGVsPih0aGlzLnZpZXdzKClbMF0pO1xuXG4gIGFzeW5jIHNldFZpZXcodmlld05hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsKSB7XG4gICAgY29uc3QgZW50aXR5U2V0dGluZyA9IGF3YWl0IHRoaXMuc2V0dGluZ3MuZ2V0KHRoaXMuc2V0dGluZ0VudGl0eUtleSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRWaWV3TmFtZSA9IGVudGl0eVNldHRpbmc/Lmxpc3Q/LmN1cnJlbnRWaWV3O1xuICAgIGlmICh2aWV3TmFtZSAhPSB0aGlzLnZpZXcoKS5uYW1lKSB7XG4gICAgICB0aGlzLnZpZXcuc2V0KHRoaXMudmlld3MoKS5maW5kKChjKSA9PiBjLm5hbWUgPT0gKHZpZXdOYW1lIHx8IHNlbGVjdGVkVmlld05hbWUpKSA/PyB0aGlzLnZpZXdzKClbMF0pO1xuXG4gICAgICB0aGlzLmFwcGx5Vmlld1NvcnRzKCk7XG4gICAgICB0aGlzLmFwcGx5Vmlld0NvbHVtbnMoKTtcbiAgICAgIHRoaXMuYXBwbHlWaWV3RmlsdGVycygpO1xuICAgICAgLy8gdGhpcy5hcHBseUZpbHRlckFuZFNvcnQoKTtcbiAgICAgIHRoaXMuYXBwbHlTZXR0aW5ncygpO1xuICAgIH1cbiAgfVxuXG4gIGRhdGFTb3VyY2UgPSBuZXcgQVhEYXRhU291cmNlKHtcbiAgICBieUtleTogKGtleSkgPT4ge1xuICAgICAgY29uc3QgZnVuYyA9IHRoaXMuZW50aXR5RGVmLnF1ZXJpZXMuYnlLZXkuZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICAgIHJldHVybiBmdW5jKCk7XG4gICAgfSxcbiAgICBsb2FkOiAoZSkgPT4ge1xuICAgICAgY29uc3QgZnVuYyA9IHRoaXMuZW50aXR5RGVmLnF1ZXJpZXMubGlzdD8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICAgIHJldHVybiBmdW5jKGUpO1xuICAgIH0sXG4gICAgcGFnZVNpemU6IHRoaXMudmlldygpLnBhZ2VTaXplIHx8IDEwLFxuICAgIGtleTogJ2lkJyxcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBjb25maWc6IEFYUEVudGl0eSxcbiAgKSB7XG4gICAgdGhpcy53b3JrZmxvdy5ldmVudHMkXG4gICAgICAucGlwZShvZlR5cGUoQVhQUmVmcmVzaEV2ZW50KSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpXG4gICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQucGF5bG9hZC5lbnRpdHkgPT0gZ2V0RW50aXR5SW5mbyh0aGlzLmVudGl0eURlZikuc291cmNlKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNldChbXSk7XG4gICAgICAgICAgdGhpcy5ldmVudHMkLm5leHQoeyBhY3Rpb246ICdyZWZyZXNoJywgbWV0YTogZXZlbnQucGF5bG9hZC5tZXRhIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB0aGlzLnNvcnRlZEZpZWxkcy5zZXQodGhpcy5zb3J0YWJsZUZpZWxkcygpKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhcHBseVNldHRpbmdzKCkge1xuICAgIHRoaXMuc2F2ZVNldHRpbmdzKCd2aWV3Jyk7XG5cbiAgICBjb25zdCBsaXN0Vmlld1NldHRpbmcgPSBhd2FpdCB0aGlzLnNldHRpbmdzLmdldCh0aGlzLnNldHRpbmdFbnRpdHlLZXkpO1xuICAgIGlmIChsaXN0Vmlld1NldHRpbmcpIHtcbiAgICAgIGNvbnN0IGNvbHVtbnMgPSBsaXN0Vmlld1NldHRpbmcubGlzdC52aWV3c1t0aGlzLnZpZXcoKS5uYW1lXS5jb2x1bW5zO1xuICAgICAgY29uc3QgcGFnZVNpemUgPSBsaXN0Vmlld1NldHRpbmcubGlzdC52aWV3c1t0aGlzLnZpZXcoKS5uYW1lXS5wYWdlU2l6ZTtcbiAgICAgIGNvbnN0IGNvbHVtblZpc2liaWxpdHlNYXAgPSBuZXcgTWFwKGNvbHVtbnMubWFwKChjb2w6IGFueSkgPT4gW2NvbC5uYW1lLCBjb2wudmlzaWJsZV0pKTtcbiAgICAgIGNvbnN0IGNvbHVtbldpZHRoc01hcCA9IG5ldyBNYXAoY29sdW1ucy5tYXAoKGNvbDogYW55KSA9PiBbY29sLm5hbWUsIGNvbC53aWR0aF0pKTtcblxuICAgICAgLy8gaWYgKHBhZ2VTaXplKSB7XG4gICAgICAvLyAgIHRoaXMuZGF0YVNvdXJjZS5zZXRQYWdlU2l6ZShwYWdlU2l6ZSk7XG4gICAgICAvLyB9XG5cbiAgICAgIHRoaXMuY29sdW1ucy51cGRhdGUoKHByZXYpID0+XG4gICAgICAgIHByZXZcbiAgICAgICAgICAubWFwKChjOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLmMsIHdpZHRoOiBjb2x1bW5XaWR0aHNNYXAuZ2V0KGMubmFtZSksIHZpc2libGU6IGNvbHVtblZpc2liaWxpdHlNYXAuZ2V0KGMubmFtZSkgPz8gYy52aXNpYmxlIH07XG4gICAgICAgICAgfSkgLy8gVXBkYXRlIHZpc2liaWxpdHlcbiAgICAgICAgICAuc29ydChcbiAgICAgICAgICAgIChhLCBiKSA9PlxuICAgICAgICAgICAgICBjb2x1bW5zLmZpbmRJbmRleCgoY29sOiBhbnkpID0+IGNvbC5uYW1lID09PSBhLm5hbWUpIC1cbiAgICAgICAgICAgICAgY29sdW1ucy5maW5kSW5kZXgoKGNvbDogYW55KSA9PiBjb2wubmFtZSA9PT0gYi5uYW1lKSxcbiAgICAgICAgICApLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2F2ZVNldHRpbmdzKGNoYW5nZXNUeXBlOiAnY29sdW1uU2l6ZXMnIHwgJ2NvbHVtbk9yZGVycycgfCAndmlldycgfCAncGFnZVNpemUnLCBkYXRhPzogYW55KSB7XG4gICAgY29uc3QgdXBkYXRlU2V0dGluZ3MgPSAodXBkYXRlRm46IChwcmV2OiBhbnkpID0+IGFueSkgPT4ge1xuICAgICAgdGhpcy5zZXR0aW5ncy5zY29wZShBWFBQbGF0Zm9ybVNjb3BlLlVzZXIpLnVwZGF0ZSh0aGlzLnNldHRpbmdFbnRpdHlLZXksIHVwZGF0ZUZuKTtcbiAgICB9O1xuXG4gICAgc3dpdGNoIChjaGFuZ2VzVHlwZSkge1xuICAgICAgY2FzZSAnY29sdW1uU2l6ZXMnOlxuICAgICAgICB1cGRhdGVTZXR0aW5ncygocHJldikgPT4ge1xuICAgICAgICAgIGNvbnN0IGZpZWxkID0gZGF0YS5kYXRhRmllbGQuc3BsaXQoJy0nKVsxXTtcbiAgICAgICAgICBjb25zdCBuZXdTZXR0aW5ncyA9IHsgLi4ucHJldiB9O1xuXG4gICAgICAgICAgc2V0KFxuICAgICAgICAgICAgbmV3U2V0dGluZ3MsXG4gICAgICAgICAgICBgbGlzdC52aWV3cy4ke3RoaXMudmlldygpLm5hbWV9LmNvbHVtbnNgLFxuICAgICAgICAgICAgcHJldj8ubGlzdD8udmlld3M/Llt0aGlzLnZpZXcoKS5uYW1lXT8uY29sdW1ucz8ubWFwKChjOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgIC4uLmMsXG4gICAgICAgICAgICAgIHdpZHRoOiBjLm5hbWUgPT09IGZpZWxkID8gZGF0YS53aWR0aCA6IGMud2lkdGgsXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHJldHVybiBuZXdTZXR0aW5ncztcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY29sdW1uT3JkZXJzJzpcbiAgICAgICAgdXBkYXRlU2V0dGluZ3MoKHByZXYpID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdTZXR0aW5ncyA9IHsgLi4ucHJldiB9O1xuXG4gICAgICAgICAgc2V0KFxuICAgICAgICAgICAgbmV3U2V0dGluZ3MsXG4gICAgICAgICAgICBgbGlzdC52aWV3cy4ke3RoaXMudmlldygpLm5hbWV9LmNvbHVtbnNgLFxuICAgICAgICAgICAgZGF0YS5tYXAoKGM6IGFueSkgPT4gKHtcbiAgICAgICAgICAgICAgbmFtZTogYy5uYW1lLFxuICAgICAgICAgICAgICB2aXNpYmxlOiBjLnZpc2libGUsXG4gICAgICAgICAgICAgIHdpZHRoOiBjLndpZHRoLFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICByZXR1cm4gbmV3U2V0dGluZ3M7XG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3ZpZXcnOlxuICAgICAgICB1cGRhdGVTZXR0aW5ncygocHJldikgPT4gKHtcbiAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgIGxpc3Q6IHtcbiAgICAgICAgICAgIC4uLnByZXY/Lmxpc3QsXG4gICAgICAgICAgICBjdXJyZW50VmlldzogdGhpcy52aWV3KCkubmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdwYWdlU2l6ZSc6XG4gICAgICAgIHVwZGF0ZVNldHRpbmdzKChwcmV2KSA9PiAoe1xuICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgbGlzdDoge1xuICAgICAgICAgICAgLi4ucHJldj8ubGlzdCxcbiAgICAgICAgICAgIHZpZXdzOiB7XG4gICAgICAgICAgICAgIC4uLnByZXY/Lmxpc3Q/LnZpZXdzLFxuICAgICAgICAgICAgICBbdGhpcy52aWV3KCkubmFtZV06IHtcbiAgICAgICAgICAgICAgICAuLi5wcmV2Py5saXN0Py52aWV3cz8uW3RoaXMudmlldygpLm5hbWVdLFxuICAgICAgICAgICAgICAgIHBhZ2VTaXplOiBkYXRhLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0ZWRJdGVtcyA9IHNpZ25hbDxhbnlbXT4oW10pO1xuXG4gIHB1YmxpYyBwYXJlbnRLZXkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZW50aXR5RGVmLnBhcmVudEtleTtcbiAgfSk7XG5cbiAgcHVibGljIGhhc1NlbGVjdGVkSXRlbXMgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtcygpLmxlbmd0aCA+IDA7XG4gIH0pO1xuXG4gIHB1YmxpYyBjbGVhclNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc2V0KFtdKTtcbiAgfVxuXG4gIC8vKioqKioqKioqKioqKioqKioqIFRpdGxlICoqKioqKioqKioqKioqKioqKi8vXG4gIHB1YmxpYyB0aXRsZSA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLl92aWV3RGVmLnRpdGxlID8/IHRoaXMuZW50aXR5RGVmLmZvcm1hdHMucGx1cmFsITtcbiAgfSk7XG4gIC8vKioqKioqKioqKioqKioqKioqIERlc2NyaXB0aW9uICoqKioqKioqKioqKioqKioqKi8vXG4gIHB1YmxpYyBkZXNjcmlwdGlvbiA9IGNvbXB1dGVkPHN0cmluZyB8IG51bGw+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5fdmlld0RlZi5kZXNjcmlwdGlvbiA/PyBudWxsO1xuICB9KTtcblxuICAvLyoqKioqKioqKioqKioqKioqKiBJbmxpbmUgZmlsdGVyICoqKioqKioqKioqKioqKioqKi8vXG4gIHB1YmxpYyBpbmxpbmVGaWx0ZXJzUGxhY2Vob2xkZXJzID0gY29tcHV0ZWQ8c3RyaW5nW10+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlEZWYucHJvcGVydGllcy5maWx0ZXIoKHApID0+IHAub3B0aW9ucz8uZmlsdGVyPy5pbmxpbmU/LmVuYWJsZWQpLm1hcCgoYykgPT4gYy50aXRsZSA/PyBjLm5hbWUpO1xuICB9KTtcblxuICBwdWJsaWMgaGFzSW5saW5lRmlsdGVycyA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5pbmxpbmVGaWx0ZXJzUGxhY2Vob2xkZXJzKCkubGVuZ3RoID4gMDtcbiAgfSk7XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogQmVhcmRjcnVtYnMgKioqKioqKioqKioqKioqKioqLy9cbiAgcHVibGljIGJlYXJkY3J1bWJzID0gY29tcHV0ZWQ8QVhQQnJlYWRjcnVtYkl0ZW1bXT4oKCkgPT4ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHRpdGxlOiB0aGlzLnRpdGxlKCksXG4gICAgICB9LFxuICAgIF07XG4gIH0pO1xuXG4gIC8vKioqKioqKioqKioqKioqKioqIEFjdGlvbnMgKioqKioqKioqKioqKioqKioqLy9cbiAgcHJpdmF0ZSBhbGxBY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4oKCkgPT4ge1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmVudGl0eURlZi5pbnRlcmZhY2VzPy5tYXN0ZXI/Lmxpc3Q/LmFjdGlvbnMgPz8gW107XG4gICAgcmV0dXJuIGxpc3QubWFwKCh0cikgPT4gbmV3IEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsKHRoaXMuZW50aXR5RGVmLCB0cikpID8/IFtdO1xuICB9KTtcblxuICBwdWJsaWMgYXN5bmMgZ2V0UHJpbWFyeUFjdGlvbnMoKTogUHJvbWlzZTxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPiB7XG4gICAgY29uc3Qgc2NvcGU6IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSA9IHt9O1xuICAgIGNvbnN0IGFjdGlvbnMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHRoaXMuYWxsQWN0aW9ucygpXG4gICAgICAgIC5maWx0ZXIoKGEpID0+IGEucHJpb3JpdHkgPT0gJ3ByaW1hcnknICYmXG4gICAgICAgICAgKChhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZCAmJiB0aGlzLmhhc1NlbGVjdGVkSXRlbXMoKSkgfHxcbiAgICAgICAgICAgIChhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5UeXBlTGV2ZWwgJiYgIXRoaXMuaGFzU2VsZWN0ZWRJdGVtcygpKSkpXG4gICAgICAgIC5tYXAoYXN5bmMgKGEpID0+IHtcbiAgICAgICAgICBjb25zdCBpc0hpZGRlbiA9IGF3YWl0IHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvci5ldmFsdWF0ZShhLmhpZGRlbiwgc2NvcGUpO1xuICAgICAgICAgIGlmIChpc0hpZGRlbikgcmV0dXJuIG51bGw7XG4gICAgICAgICAgY29uc3QgZGlzYWJsZWQgPSBhd2FpdCB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUoYS5kaXNhYmxlZCwgc2NvcGUpO1xuICAgICAgICAgIHJldHVybiB7IC4uLmEsIGRpc2FibGVkIH07XG4gICAgICAgIH0pLFxuICAgICk7XG4gICAgcmV0dXJuIGFjdGlvbnMgYXMgQVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRTZWNvbmRhcnlBY3Rpb25zKCk6IFByb21pc2U8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4ge1xuICAgIGNvbnN0IHNjb3BlOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgPSB7fTtcbiAgICBjb25zdCBhY3Rpb25zID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICB0aGlzLmFsbEFjdGlvbnMoKVxuICAgICAgICAuZmlsdGVyKChhKSA9PiBhLnByaW9yaXR5ID09ICdzZWNvbmRhcnknICYmXG4gICAgICAgICAgKChhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZCAmJiB0aGlzLmhhc1NlbGVjdGVkSXRlbXMoKSkgfHxcbiAgICAgICAgICAgIChhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5UeXBlTGV2ZWwgJiYgIXRoaXMuaGFzU2VsZWN0ZWRJdGVtcygpKSkpXG4gICAgICAgIC5tYXAoYXN5bmMgKGEpID0+IHtcbiAgICAgICAgICBjb25zdCBpc0hpZGRlbiA9IGF3YWl0IHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvci5ldmFsdWF0ZShhLmhpZGRlbiwgc2NvcGUpO1xuICAgICAgICAgIGlmIChpc0hpZGRlbikgcmV0dXJuIG51bGw7XG4gICAgICAgICAgY29uc3QgZGlzYWJsZWQgPSBhd2FpdCB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUoYS5kaXNhYmxlZCwgc2NvcGUpO1xuICAgICAgICAgIHJldHVybiB7IC4uLmEsIGRpc2FibGVkIH07XG4gICAgICAgIH0pLFxuICAgICk7XG4gICAgcmV0dXJuIGFjdGlvbnMgYXMgQVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXTtcbiAgfVxuXG5cbiAgcHVibGljIHNlbGVjdGVkU2NvcGVBY3Rpb25zQ291bnQgPSBjb21wdXRlZDxudW1iZXI+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5hbGxBY3Rpb25zKCkuZmlsdGVyKChhKSA9PiBhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZCkubGVuZ3RoO1xuICB9KTtcblxuICBwdWJsaWMgcHJpbWFyeVJvd0FjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPigoKSA9PlxuICAgIHRoaXMuYWxsQWN0aW9ucygpLmZpbHRlcigoYSkgPT4gYS5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbCAmJiBhLnByaW9yaXR5ID09PSAncHJpbWFyeScpLFxuICApO1xuXG5cblxuICBwdWJsaWMgYXN5bmMgc2Vjb25kYXJ5Um93QWN0aW9ucyhyb3dEYXRhOiBhbnkpOiBQcm9taXNlPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+IHtcbiAgICBjb25zdCBzY29wZTogQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlID0ge1xuICAgICAgY29udGV4dDoge1xuICAgICAgICBldmFsOiAocGF0aDogc3RyaW5nKSA9PiBnZXQocm93RGF0YSwgcGF0aCksXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCBhY3Rpb25zID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICB0aGlzLmFsbEFjdGlvbnMoKVxuICAgICAgICAuZmlsdGVyKChhKSA9PiBhLnNjb3BlID09PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbCAmJiBhLnByaW9yaXR5ID09PSAnc2Vjb25kYXJ5JylcbiAgICAgICAgLm1hcChhc3luYyAoYSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGlzSGlkZGVuID0gYXdhaXQgdGhpcy5leHByZXNzaW9uRXZhbHVhdG9yLmV2YWx1YXRlKGEuaGlkZGVuLCBzY29wZSk7XG4gICAgICAgICAgaWYgKGlzSGlkZGVuKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICBjb25zdCBkaXNhYmxlZCA9IGF3YWl0IHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvci5ldmFsdWF0ZShhLmRpc2FibGVkLCBzY29wZSk7XG4gICAgICAgICAgcmV0dXJuIHsgLi4uYSwgZGlzYWJsZWQgfTtcbiAgICAgICAgfSksXG4gICAgKTtcblxuICAgIHJldHVybiBhY3Rpb25zLmZpbHRlcihCb29sZWFuKSBhcyBBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdO1xuICB9XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogRmlsdGVyICoqKioqKioqKioqKioqKioqKi8vXG5cbiAgZmlsdGVyUXVlcmllcyA9IHNpZ25hbDxBWFBGaWx0ZXJRdWVyeVtdPihbXSk7XG5cbiAgZ2V0IHByb3BlcnRpZXMoKTogQVhQRW50aXR5UHJvcGVydHlbXSB7XG4gICAgcmV0dXJuIHRoaXMuZW50aXR5RGVmLnByb3BlcnRpZXM7XG4gIH1cblxuICBnZXQgZmlsdGVyc0RlZigpOiBBWFBGaWx0ZXJEZWZpbml0aW9uW10ge1xuICAgIGNvbnN0IHByb3BzID0gdGhpcy5lbnRpdHlEZWYucHJvcGVydGllcy5maWx0ZXIoXG4gICAgICAoYykgPT4gYy5vcHRpb25zPy5maWx0ZXI/LmFkdmFuY2U/LmVuYWJsZWQgfHwgYy5vcHRpb25zPy5maWx0ZXI/LmlubGluZT8uZW5hYmxlZCxcbiAgICApO1xuICAgIHJldHVybiBwcm9wcy5tYXAoKGUpID0+IHtcbiAgICAgIGNvbnN0IHdpZGdldENvbmZpZyA9IHRoaXMud2lkZ2V0UmVzb2x2ZXIucmVzb2x2ZShcbiAgICAgICAgZS5zY2hlbWEuaW50ZXJmYWNlPy50eXBlIGFzIEFYUFdpZGdldFR5cGVzTWFwW2tleW9mIEFYUFdpZGdldFR5cGVzTWFwXSxcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHR5cGUgPSAoZS5vcHRpb25zPy5maWx0ZXI/LmFkdmFuY2U/LndpZGdldFR5cGUgfHxcbiAgICAgICAgd2lkZ2V0Q29uZmlnPy5kZWZhdWx0RmlsdGVyV2lkZ2V0TmFtZSB8fFxuICAgICAgICBlLnNjaGVtYS5pbnRlcmZhY2U/LnR5cGUpIGFzIEFYUFdpZGdldFR5cGVzTWFwW2tleW9mIEFYUFdpZGdldFR5cGVzTWFwXTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRpdGxlOiBlLnRpdGxlLFxuICAgICAgICBmaWVsZDogZS5uYW1lLFxuICAgICAgICBvcGVyYXRvcjoge1xuICAgICAgICAgIHR5cGU6ICdjb250YWlucycsXG4gICAgICAgIH0sXG4gICAgICAgIHdpZGdldDogeyAuLi5lLnNjaGVtYS5pbnRlcmZhY2UsIHBhdGg6IGUubmFtZSwgdHlwZSB9LFxuICAgICAgICBmaWx0ZXJzOiBbXSxcbiAgICAgICAgaXNQYXJhbWV0cmljOiBmYWxzZSxcbiAgICAgICAgaWNvbjogd2lkZ2V0Q29uZmlnPy5pY29uLFxuICAgICAgICBmaWx0ZXJUeXBlOiB7XG4gICAgICAgICAgYWR2YW5jZTogZS5vcHRpb25zPy5maWx0ZXI/LmFkdmFuY2U/LmVuYWJsZWQgPz8gZmFsc2UsXG4gICAgICAgICAgaW5saW5lOiBlLm9wdGlvbnM/LmZpbHRlcj8uaW5saW5lPy5lbmFibGVkID8/IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIGNvbnN0IHZpZXdGaWx0ZXJzID0gdGhpcy52aWV3KCkuY29uZGl0aW9ucy5tYXAoKGYpID0+ICh7XG4gIC8vICAgZmllbGQ6IGYubmFtZSxcbiAgLy8gICBvcGVyYXRvcjogZi5vcGVyYXRvcixcbiAgLy8gICB2YWx1ZTogZi52YWx1ZSxcbiAgLy8gfSkpO1xuICBhc3luYyBhcHBseVZpZXdGaWx0ZXJzKCkge1xuICAgIGNvbnN0IHZpZXdGaWx0ZXJzID0gdGhpcy52aWV3KCkuY29uZGl0aW9ucy5tYXAoKGYpID0+ICh7XG4gICAgICBmaWVsZDogZi5uYW1lLFxuICAgICAgb3BlcmF0b3I6IGYub3BlcmF0b3IsXG4gICAgICB2YWx1ZTogZi52YWx1ZSxcbiAgICB9KSk7XG4gICAgdGhpcy5maWx0ZXJRdWVyaWVzLnVwZGF0ZSgocHJldikgPT4gKHsgLi4ucHJldiwgZmlsdGVyczogdmlld0ZpbHRlcnMgYXMgQVhQRmlsdGVyUXVlcnlbXSB9KSk7XG4gIH1cblxuICByZXNldEZpbHRlcnMoKSB7XG4gICAgdGhpcy5hcHBseVZpZXdGaWx0ZXJzKCk7XG4gIH1cblxuICBhc3luYyBhcHBseUZpbHRlckFuZFNvcnQoKSB7XG4gICAgdGhpcy5kYXRhU291cmNlLmNsZWFyRmlsdGVyKCk7XG4gICAgdGhpcy5kYXRhU291cmNlLnNvcnQoXG4gICAgICAuLi50aGlzLnNvcnRlZEZpZWxkcygpXG4gICAgICAgIC5maWx0ZXIoKHNmKSA9PiBzZi5kaXIpXG4gICAgICAgIC5tYXAoKHMpID0+ICh7IGRpcjogcy5kaXIsIGZpZWxkOiBzLm5hbWUgfSkgYXMgQVhEYXRhU291cmNlU29ydE9wdGlvbiksXG4gICAgKTtcblxuICAgIHRoaXMuZGF0YVNvdXJjZS5maWx0ZXIoXG4gICAgICB0aGlzLmZpbHRlck9wZXJhdG9yTWlkZGxld2FyZS50cmFuc2Zvcm1GaWx0ZXIoe1xuICAgICAgICBmaWVsZDogbnVsbCBhcyBhbnksXG4gICAgICAgIGxvZ2ljOiAnYW5kJyxcbiAgICAgICAgb3BlcmF0b3I6IG51bGwgYXMgYW55LFxuICAgICAgICBmaWx0ZXJzOiB0aGlzLmZpbHRlclF1ZXJpZXMoKSBhcyBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb25bXSxcbiAgICAgIH0pLFxuICAgICk7XG4gICAgdGhpcy5kYXRhU291cmNlLnJlZnJlc2goKTtcbiAgfVxuXG4gIC8vKioqKioqKioqKioqKioqKioqIENvbHVtbnMgKioqKioqKioqKioqKioqKioqLy9cblxuICBwcml2YXRlIGFsbEF2YWlsYWJsZUNvbHVtbnMgPSAoKTogQVhQRW50aXR5TGlzdFZpZXdDb2x1bW5WaWV3TW9kZWxbXSA9PiB7XG4gICAgY29uc3QgeyBjb2x1bW5zID0gW10sIHByb3BlcnRpZXMgfSA9IHRoaXMuZW50aXR5RGVmO1xuICAgIGNvbnN0IHZpc2libGVQcm9wZXJ0aWVzID0gcHJvcGVydGllcy5maWx0ZXIoKHsgc2NoZW1hIH0pID0+ICFzY2hlbWE/LmhpZGRlbik7XG4gICAgY29uc3QgdmlzaWJsZVByb3BOYW1lcyA9IG5ldyBTZXQodmlzaWJsZVByb3BlcnRpZXMubWFwKCh7IG5hbWUgfSkgPT4gbmFtZSkpO1xuICAgIHJldHVybiBjb2x1bW5zXG4gICAgICAuZmlsdGVyKCh7IG5hbWUgfSkgPT4gdmlzaWJsZVByb3BOYW1lcy5oYXMobmFtZSkpXG4gICAgICAubWFwKChjb2x1bW4pID0+IHtcbiAgICAgICAgY29uc3QgcHJvcGVydHkgPSB2aXNpYmxlUHJvcGVydGllcy5maW5kKCh7IG5hbWUgfSkgPT4gbmFtZSA9PT0gY29sdW1uLm5hbWUpO1xuICAgICAgICByZXR1cm4gbmV3IEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsKHByb3BlcnR5ISwgY29sdW1uKTtcbiAgICAgIH0pO1xuICB9O1xuXG4gIHZpc2libGVDb2x1bW5Db3VudCA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zKCkuZmlsdGVyKChjKSA9PiBjLnZpc2libGUgPT0gdHJ1ZSkubGVuZ3RoO1xuICB9O1xuXG4gIGNvbHVtbnMgPSBzaWduYWw8QVhQRW50aXR5TGlzdFZpZXdDb2x1bW5WaWV3TW9kZWxbXT4oW10pO1xuXG4gIHJlc2V0Q29sdW1ucygpIHtcbiAgICB0aGlzLmFwcGx5Vmlld0NvbHVtbnMoKTtcbiAgfVxuXG4gIGFzeW5jIG9uQ29sdW1uc0NoYW5nZWQoY29sdW1uczogQVhQRW50aXR5TGlzdFZpZXdDb2x1bW5WaWV3TW9kZWxbXSkge1xuICAgIHRoaXMuc2F2ZVNldHRpbmdzKCdjb2x1bW5PcmRlcnMnLCBjb2x1bW5zKTtcbiAgfVxuXG4gIGFwcGx5Vmlld0NvbHVtbnMoKSB7XG4gICAgY29uc3QgY29scyA9IHRoaXMudmlldygpLmNvbHVtbnM7XG4gICAgY29uc3QgY2xvbmVkID0gdGhpcy5hbGxBdmFpbGFibGVDb2x1bW5zKCkubWFwKChjKSA9PiB7XG4gICAgICBjb25zdCBjb2x1bW4gPSB0aGlzLmVudGl0eURlZi5jb2x1bW5zPy5maW5kKChjYykgPT4gY2MubmFtZSA9PSBjLm5hbWUpO1xuICAgICAgY29uc3QgcHJvcCA9IHRoaXMuZW50aXR5RGVmLnByb3BlcnRpZXMuZmluZCgocCkgPT4gcC5uYW1lID09IGMubmFtZSk7XG4gICAgICBjb25zdCBjb2wgPSBuZXcgQVhQRW50aXR5TGlzdFZpZXdDb2x1bW5WaWV3TW9kZWwocHJvcCEsIGNvbHVtbiEpO1xuICAgICAgY29sLnZpc2libGUgPSAhY29scy5zb21lKChjKSA9PiBjID09IGNvbC5uYW1lKSAmJiBjb2wudmlzaWJsZSAhPSBmYWxzZTtcbiAgICAgIHJldHVybiBjb2w7XG4gICAgfSk7XG4gICAgdGhpcy5jb2x1bW5zLnNldChjbG9uZWQpO1xuICB9XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogU29ydCAqKioqKioqKioqKioqKioqKiovL1xuXG4gIHNvcnRhYmxlRmllbGRzID0gKCkgPT4ge1xuICAgIGNvbnN0IHByb3BzID0gdGhpcy5lbnRpdHlEZWYucHJvcGVydGllcy5maWx0ZXIoKGMpID0+IGMub3B0aW9ucz8uc29ydD8uZW5hYmxlZCk7XG4gICAgcmV0dXJuIHByb3BzLm1hcCgoZSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogZS5uYW1lLFxuICAgICAgICB0aXRsZTogZS50aXRsZSxcbiAgICAgICAgZGlyOiB1bmRlZmluZWQsXG4gICAgICB9O1xuICAgIH0pO1xuICB9O1xuXG4gIHNvcnRhYmxlRmllbGRzQ291bnQgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZW50aXR5RGVmLnByb3BlcnRpZXMuZmlsdGVyKChjKSA9PiBjLm9wdGlvbnM/LnNvcnQ/LmVuYWJsZWQpLmxlbmd0aCA/PyAwO1xuICB9O1xuXG4gIGNhblNvcnQgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc29ydGFibGVGaWVsZHNDb3VudCgpID4gMDtcbiAgfTtcblxuICBjYW5BZGRNb3JlU29ydCA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zb3J0ZWRDb3VudCgpIDwgdGhpcy5zb3J0YWJsZUZpZWxkc0NvdW50KCk7XG4gIH07XG5cbiAgc29ydGVkQ291bnQgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc29ydGVkRmllbGRzKCkuZmlsdGVyKChpKSA9PiBpLmRpcikubGVuZ3RoO1xuICB9O1xuXG4gIHNvcnRlZEZpZWxkcyA9IHNpZ25hbDxBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld1NvcnRQcm9wVmlld01vZGVsW10+KFtdKTtcblxuICByZXNldFNvcnRzKCkge1xuICAgIHRoaXMuYXBwbHlWaWV3U29ydHMoKTtcbiAgfVxuXG4gIGFwcGx5U29ydHMoKSB7XG4gICAgdGhpcy5hcHBseUZpbHRlckFuZFNvcnQoKTtcbiAgfVxuXG4gIGFkZFNvcnQoKTogdm9pZCB7XG4gICAgY29uc3QgcHJvcCA9IHRoaXMuc29ydGFibGVGaWVsZHMoKS5maW5kKChjKSA9PiAhdGhpcy5zb3J0ZWRGaWVsZHMoKS5zb21lKChzKSA9PiBzLm5hbWUgPT0gYy5uYW1lKSk7XG4gICAgaWYgKHByb3ApIHtcbiAgICAgIHRoaXMuc29ydGVkRmllbGRzLnNldChbLi4udGhpcy5zb3J0ZWRGaWVsZHMoKSwgLi4uW3Byb3BdXSk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlU29ydChuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNvcnRlZEZpZWxkcy5zZXQodGhpcy5zb3J0ZWRGaWVsZHMoKS5maWx0ZXIoKGMpID0+IGMubmFtZSAhPSBuYW1lKSk7XG4gIH1cblxuICBhcHBseVZpZXdTb3J0cygpIHtcbiAgICBjb25zdCB2aWV3U29ydHMgPSB0aGlzLnZpZXcoKS5zb3J0cztcblxuICAgIHRoaXMuc29ydGVkRmllbGRzLnVwZGF0ZSgocHJldikgPT4ge1xuICAgICAgY29uc3Qgdmlld1NvcnRzTWFwID0gbmV3IE1hcCh2aWV3U29ydHMubWFwKCh2cykgPT4gW3ZzLm5hbWUsIHZzXSkpO1xuICAgICAgcmV0dXJuIHByZXYubWFwKChzZikgPT4ge1xuICAgICAgICBjb25zdCB1cGRhdGVkU29ydCA9IHZpZXdTb3J0c01hcC5nZXQoc2YubmFtZSk7XG4gICAgICAgIGlmICh1cGRhdGVkU29ydCkge1xuICAgICAgICAgIHJldHVybiB7IC4uLnVwZGF0ZWRTb3J0LCB0aXRsZTogc2YudGl0bGUgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2Y7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vKioqKioqKioqKioqKioqKioqICBDb21tYW5kcyAqKioqKioqKioqKioqKioqKiovL1xuICBwdWJsaWMgYXN5bmMgZXhlY3V0ZUNvbW1hbmQoY29tbWFuZE5hbWU6IHN0cmluZywgZGF0YTogYW55ID0gbnVsbCkge1xuICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuYWxsQWN0aW9ucygpLmZpbmQoKGMpID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGMubmFtZSA9PSBjb21tYW5kTmFtZSAmJlxuICAgICAgICAoKHRoaXMuc2VsZWN0ZWRJdGVtcygpLmxlbmd0aFxuICAgICAgICAgICYmICFkYXRhIC8vIGFkZGVkIGJ5IEFyYXNoXG4gICAgICAgICAgPyBjLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZFxuICAgICAgICAgIDogYy5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbCkgfHxcbiAgICAgICAgICBjLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5UeXBlTGV2ZWwpXG4gICAgICApO1xuICAgIH0pO1xuICAgIGNvbnN0IGNvbW1hbmQgPSBjb21tYW5kTmFtZS5zcGxpdCgnJicpWzBdO1xuICAgIGNvbnN0IG9wdGlvbnMgPSBhd2FpdCB0aGlzLmV2YWx1YXRlRXhwcmVzc2lvbnMoYWN0aW9uPy5vcHRpb25zLCBkYXRhKTtcbiAgICBhd2FpdCB0aGlzLndvcmtmbG93LmV4ZWN1dGUoY29tbWFuZCwge1xuICAgICAgZW50aXR5OiBnZXRFbnRpdHlJbmZvKHRoaXMuZW50aXR5RGVmKS5zb3VyY2UsXG4gICAgICBlbnRpdHlJbmZvOiB7XG4gICAgICAgIG5hbWU6IHRoaXMuZW50aXR5RGVmLm5hbWUsXG4gICAgICAgIG1vZHVsZTogdGhpcy5lbnRpdHlEZWYubW9kdWxlLFxuICAgICAgICB0aXRsZTogdGhpcy5lbnRpdHlEZWYudGl0bGUsXG4gICAgICAgIHBhcmVudEtleTogdGhpcy5lbnRpdHlEZWYucGFyZW50S2V5LFxuICAgICAgICBzb3VyY2U6IHRoaXMuZW50aXR5RGVmLnNvdXJjZSxcbiAgICAgIH0sXG4gICAgICBkYXRhOiBhY3Rpb24/LnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZCA/IHRoaXMuc2VsZWN0ZWRJdGVtcygpIDogZGF0YSxcbiAgICAgIG9wdGlvbnM6IG9wdGlvbnMsXG4gICAgICBtZXRhZGF0YTogYWN0aW9uPy5tZXRhZGF0YSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZXZhbHVhdGVFeHByZXNzaW9ucyA9IGFzeW5jIChvcHRpb25zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LCBkYXRhOiBhbnkpID0+IHtcbiAgICBjb25zdCBzY29wZTogQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlID0ge1xuICAgICAgY29udGV4dDoge1xuICAgICAgICBldmFsOiAocGF0aDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGdldChkYXRhLCBwYXRoKTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5leHByZXNzaW9uRXZhbHVhdG9yLmV2YWx1YXRlKG9wdGlvbnMsIHNjb3BlKTtcbiAgfTtcblxuICBhc3luYyBleGVjdXRlKGNvbW1hbmQ6IEFYUEV4ZWN1dGVDb21tYW5kKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgc3dpdGNoIChjb21tYW5kPy5uYW1lKSB7XG4gICAgICBjYXNlICduYXZpZ2F0ZSc6XG4gICAgICAgIGF3YWl0IHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnbmF2aWdhdGUnLCB7XG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgcGF0aDogY29tbWFuZC5vcHRpb25zPy5bJ3BhdGgnXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmV4ZWN1dGVDb21tYW5kKGNvbW1hbmQubmFtZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8vXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkLmNvbXBsZXRlKCk7XG4gIH1cbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlMaXN0Vmlld01vZGVsRmFjdG9yeSB7XG4gIHByaXZhdGUgZW50aXR5U2VydmljZSA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBsYXlvdXQgPSBpbmplY3QoQVhQTGF5b3V0VGhlbWVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgcHVibGljIGFzeW5jIGNyZWF0ZShtb2R1bGVOYW1lOiBzdHJpbmcsIGVudGl0eU5hbWU6IHN0cmluZyk6IFByb21pc2U8QVhQRW50aXR5TWFzdGVyTGlzdFZpZXdNb2RlbD4ge1xuICAgIHRoaXMubGF5b3V0LnNldE5hdmlnYXRpb25Mb2FkaW5nKHRydWUpO1xuICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHRoaXMuZW50aXR5U2VydmljZS5yZXNvbHZlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xuICAgIHRoaXMubGF5b3V0LnNldE5hdmlnYXRpb25Mb2FkaW5nKGZhbHNlKTtcbiAgICByZXR1cm4gbmV3IEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3TW9kZWwodGhpcy5pbmplY3RvciwgY29uZmlnKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgQVhQRW50aXR5TGlzdFZpZXdNb2RlbFJlc29sdmVyOiBSZXNvbHZlRm48UHJvbWlzZTxBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld01vZGVsPj4gPSAoXG4gIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCxcbiAgc2VydmljZTogQVhQRW50aXR5TGlzdFZpZXdNb2RlbEZhY3RvcnkgPSBpbmplY3QoQVhQRW50aXR5TGlzdFZpZXdNb2RlbEZhY3RvcnkpLFxuKTogUHJvbWlzZTxBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld01vZGVsPiA9PiB7XG4gIGNvbnN0IG1vZHVsZU5hbWUgPSByb3V0ZS5wYXJlbnQ/LnBhcmFtTWFwLmdldCgnbW9kdWxlJykgYXMgc3RyaW5nO1xuICBjb25zdCBlbnRpdHlOYW1lID0gcm91dGUucGFyYW1NYXAuZ2V0KCdlbnRpdHknKSBhcyBzdHJpbmc7XG4gIC8vXG4gIHJldHVybiBzZXJ2aWNlLmNyZWF0ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcbn07XG4iXX0=","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflowAction, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\nimport * as i0 from \"@angular/core\";\nexport const AXPEntityDeletedEvent = createWorkFlowEvent('[Entity] Deleted');\nexport class AXPEntityPerformDeleteAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.entityRegistery = inject(AXPEntityDefinitionRegistryService);\n this.dialogService = inject(AXDialogService);\n this.loadingDialog = inject(AXLoadingDialogService);\n this.translationService = inject(AXTranslationService);\n }\n async execute(context) {\n const moduleEntity = context.getVariable('entity');\n const data = context.getVariable('data');\n const meta = context.getVariable('meta');\n const options = context.getVariable('options');\n const process = options?.['process'];\n const showResult = process?.showResult ?? true;\n const entities = [];\n if (moduleEntity != null) {\n const ids = Array.isArray(data) ? data.map((c) => c.id) : [data.id];\n entities.push({\n source: moduleEntity,\n ids: ids,\n });\n }\n else {\n const listEntities = context.getVariable('entities');\n entities.push(...listEntities);\n }\n const entityDefinitions = {};\n let deletedCount = 0;\n context.setVariable('deleteSuccessful', false);\n for await (const entity of entities) {\n const [moduleName, entityName] = entity.source.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n if (entityDefinition.parentKey && data[entityDefinition.parentKey]) {\n context.setVariable('meta', { ...meta, refreshTargetId: data[entityDefinition.parentKey] });\n }\n entityDefinitions[entity.source] = entityDefinition;\n }\n // Compute consolidated ids from all entities\n const idLength = entities.reduce((acc, curr) => acc + curr.ids.length, 0);\n const dialog = this.loadingDialog.show({\n title: await this.translationService.translateAsync('workflow.deleting'),\n mode: 'determinate',\n status: 'Deleting...',\n progressValue: 0,\n text: `0/${idLength}`,\n buttons: [\n {\n text: await this.translationService.translateAsync('cancel'),\n color: 'danger',\n onClick: () => {\n dialog.close();\n },\n },\n ],\n });\n let allPromises = [];\n for (const entity of entities) {\n const entityDefinition = entityDefinitions[entity.source];\n if (entityDefinition.commands?.delete != null) {\n const deleteExec = entityDefinition.commands?.delete?.execute;\n const entityPromises = entity.ids\n .map((id, i) => {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(deleteExec(id));\n }, i * 200);\n });\n })\n .map((p) => p?.then((value) => {\n deletedCount++;\n dialog.setProgressText(`${deletedCount}/${idLength}`);\n dialog.setProgressValue((deletedCount / idLength) * 100);\n return { status: 'fulfilled', value };\n }, (reason) => ({ status: 'rejected', reason })));\n allPromises = allPromises.concat(entityPromises);\n }\n else {\n throw new Error(`The delete operation cannot be performed on ${entityDefinition.title}. This action might be restricted or not applicable for the selected item.`);\n }\n }\n const results = await Promise.all(allPromises);\n const successfulPromises = results.filter((result) => result?.status === 'fulfilled').length;\n const failedPromises = results.filter((result) => result?.status === 'rejected').length;\n setTimeout(() => {\n dialog.close();\n }, 300);\n // Store the last entity for use in event dispatching\n const lastEntity = entities[entities.length - 1];\n // Handle different scenarios for alerts\n if (successfulPromises > 0 && failedPromises === 0) {\n // All items deleted successfully\n if (showResult) {\n await this.dialogService.alert(await this.translationService.translateAsync('workflow.success-delete-title'), await this.translationService.translateAsync('workflow.success-delete-body', {\n params: { item: successfulPromises },\n }), //TODO test translation\n 'success');\n }\n // Dispatch actions\n this.dispatch(AXPEntityDeletedEvent({ entity: lastEntity.source, ids: lastEntity.ids, meta: meta }));\n this.dispatch(AXPRefreshEvent({ entity: lastEntity.source, meta: context.getVariable('meta') }));\n }\n else if (successfulPromises > 0 && failedPromises > 0) {\n // Some items deleted successfully, some failed\n if (showResult) {\n await this.dialogService.alert(await this.translationService.translateAsync('workflow.success-partial-delete-title'), await this.translationService.translateAsync('workflow.partial-delete-body', {\n params: { success: successfulPromises, fail: failedPromises },\n }), 'warning');\n }\n // Dispatch actions\n this.dispatch(AXPEntityDeletedEvent({ entity: lastEntity.source, ids: lastEntity.ids, meta: meta }));\n }\n else if (successfulPromises === 0 && failedPromises > 0) {\n // No items deleted, all failed\n if (showResult) {\n await this.dialogService.alert(await this.translationService.translateAsync('workflow.fail-delete-title'), await this.translationService.translateAsync('workflow.fail-delete-body', {\n params: { item: failedPromises },\n }), 'danger');\n }\n }\n else {\n // No items to delete (no successful or failed promises)\n if (showResult) {\n await this.dialogService.alert(await this.translationService.translateAsync('workflow.no-need'), await this.translationService.translateAsync('workflow.no-item'), 'primary');\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityPerformDeleteAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityPerformDeleteAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityPerformDeleteAction, decorators: [{\n type: Injectable\n }] });\nexport const AXPDeleteEntityWorkflow = {\n startStepId: 'confirm-delete',\n steps: {\n 'confirm-delete': {\n action: 'show-prompt-dialog',\n input: {\n title: 'workflow.warning',\n message: `workflow.confirm-delete`,\n type: 'danger',\n },\n nextSteps: [\n {\n conditions: [\n {\n type: 'AND',\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\n },\n ],\n nextStepId: 'perform-delete',\n },\n ],\n },\n 'perform-delete': {\n action: 'entity-perform-delete',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWVudGl0eS53b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dvcmtmbG93cy9kZWxldGUtZW50aXR5LndvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQWEsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckUsT0FBTyxFQUFlLGlCQUFpQixFQUFzQixtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUVqRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxtQkFBbUIsQ0FDdEQsa0JBQWtCLENBQ25CLENBQUM7QUFRRixNQUFNLE9BQU8sNEJBQTZCLFNBQVEsaUJBQWlCO0lBRG5FOztRQUVVLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDN0Qsa0JBQWEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDeEMsa0JBQWEsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUMvQyx1QkFBa0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztLQW9KM0Q7SUFsSkMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUEyQjtRQUN2QyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFD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bEMsSUFBSSxFQUFFLFFBQVE7YUFDZjtZQUNELFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxVQUFVLEVBQUU7d0JBQ1Y7NEJBQ0UsSUFBSSxFQUFFLEtBQUs7NEJBQ1gsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxxQ0FBcUMsRUFBRSxDQUFDO3lCQUNwRjtxQkFDRjtvQkFDRCxVQUFVLEVBQUUsZ0JBQWdCO2lCQUM3QjthQUNGO1NBQ0Y7UUFDRCxnQkFBZ0IsRUFBRTtZQUNoQixNQUFNLEVBQUUsdUJBQXVCO1NBQ2hDO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RpYWxvZyc7XG5pbXBvcnQgeyBBWExvYWRpbmdEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmctZGlhbG9nJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYUEVudGl0eSwgQVhQUmVmcmVzaEV2ZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3csIEFYUFdvcmtmbG93QWN0aW9uLCBBWFBXb3JrZmxvd0NvbnRleHQsIGNyZWF0ZVdvcmtGbG93RXZlbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4uL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBBWFBFbnRpdHlEZWxldGVkRXZlbnQgPSBjcmVhdGVXb3JrRmxvd0V2ZW50PHsgZW50aXR5OiBzdHJpbmc7IGlkczogc3RyaW5nW107IG1ldGE/OiBhbnkgfT4oXG4gICdbRW50aXR5XSBEZWxldGVkJ1xuKTtcblxuZXhwb3J0IGludGVyZmFjZSBBWFBFbnRpdHlEZWxldGVPcHRpb25zIHtcbiAgc291cmNlOiBzdHJpbmc7XG4gIGlkczogc3RyaW5nW107XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlQZXJmb3JtRGVsZXRlQWN0aW9uIGV4dGVuZHMgQVhQV29ya2Zsb3dBY3Rpb24ge1xuICBwcml2YXRlIGVudGl0eVJlZ2lzdGVyeSA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlID0gaW5qZWN0KEFYRGlhbG9nU2VydmljZSk7XG4gIHByaXZhdGUgbG9hZGluZ0RpYWxvZyA9IGluamVjdChBWExvYWRpbmdEaWFsb2dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSB0cmFuc2xhdGlvblNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuXG4gIGFzeW5jIGV4ZWN1dGUoY29udGV4dDogQVhQV29ya2Zsb3dDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgbW9kdWxlRW50aXR5ID0gY29udGV4dC5nZXRWYXJpYWJsZSgnZW50aXR5Jyk7XG4gICAgY29uc3QgZGF0YSA9IGNvbnRleHQuZ2V0VmFyaWFibGU8YW55PignZGF0YScpO1xuICAgIGNvbnN0IG1ldGEgPSBjb250ZXh0LmdldFZhcmlhYmxlPGFueT4oJ21ldGEnKTtcblxuICAgIGNvbnN0IG9wdGlvbnMgPSBjb250ZXh0LmdldFZhcmlhYmxlPGFueT4oJ29wdGlvbnMnKTtcbiAgICBjb25zdCBwcm9jZXNzID0gb3B0aW9ucz8uWydwcm9jZXNzJ107XG5cbiAgICBjb25zdCBzaG93UmVzdWx0ID0gcHJvY2Vzcz8uc2hvd1Jlc3VsdCA/PyB0cnVlO1xuXG4gICAgY29uc3QgZW50aXRpZXM6IEFYUEVudGl0eURlbGV0ZU9wdGlvbnNbXSA9IFtdO1xuICAgIGlmIChtb2R1bGVFbnRpdHkgIT0gbnVsbCkge1xuICAgICAgY29uc3QgaWRzID0gQXJyYXkuaXNBcnJheShkYXRhKSA/IGRhdGEubWFwKChjKSA9PiBjLmlkKSA6IFtkYXRhLmlkXTtcbiAgICAgIGVudGl0aWVzLnB1c2goe1xuICAgICAgICBzb3VyY2U6IG1vZHVsZUVudGl0eSxcbiAgICAgICAgaWRzOiBpZHMsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbGlzdEVudGl0aWVzID0gY29udGV4dC5nZXRWYXJpYWJsZSgnZW50aXRpZXMnKTtcbiAgICAgIGVudGl0aWVzLnB1c2goLi4ubGlzdEVudGl0aWVzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbnRpdHlEZWZpbml0aW9uczogeyBba2V5OiBzdHJpbmddOiBBWFBFbnRpdHkgfSA9IHt9O1xuICAgIGxldCBkZWxldGVkQ291bnQgPSAwO1xuICAgIGNvbnRleHQuc2V0VmFyaWFibGUoJ2RlbGV0ZVN1Y2Nlc3NmdWwnLCBmYWxzZSk7XG4gICAgZm9yIGF3YWl0IChjb25zdCBlbnRpdHkgb2YgZW50aXRpZXMpIHtcbiAgICAgIGNvbnN0IFttb2R1bGVOYW1lLCBlbnRpdHlOYW1lXSA9IGVudGl0eS5zb3VyY2Uuc3BsaXQoJy4nKTtcbiAgICAgIGNvbnN0IGVudGl0eURlZmluaXRpb24gPSBhd2FpdCB0aGlzLmVudGl0eVJlZ2lzdGVyeS5yZXNvbHZlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xuICAgICAgaWYgKGVudGl0eURlZmluaXRpb24ucGFyZW50S2V5ICYmIGRhdGFbZW50aXR5RGVmaW5pdGlvbi5wYXJlbnRLZXldKSB7XG4gICAgICAgIGNvbnRleHQuc2V0VmFyaWFibGUoJ21ldGEnLCB7IC4uLm1ldGEsIHJlZnJlc2hUYXJnZXRJZDogZGF0YVtlbnRpdHlEZWZpbml0aW9uLnBhcmVudEtleV0gfSk7XG4gICAgICB9XG4gICAgICBlbnRpdHlEZWZpbml0aW9uc1tlbnRpdHkuc291cmNlXSA9IGVudGl0eURlZmluaXRpb247XG4gICAgfVxuXG4gICAgLy8gQ29tcHV0ZSBjb25zb2xpZGF0ZWQgaWRzIGZyb20gYWxsIGVudGl0aWVzXG4gICAgY29uc3QgaWRMZW5ndGggPSBlbnRpdGllcy5yZWR1Y2UoKGFjYzogbnVtYmVyLCBjdXJyKSA9PiBhY2MgKyBjdXJyLmlkcy5sZW5ndGgsIDApO1xuICAgIGNvbnN0IGRpYWxvZyA9IHRoaXMubG9hZGluZ0RpYWxvZy5zaG93KHtcbiAgICAgIHRpdGxlOiBhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYygnd29ya2Zsb3cuZGVsZXRpbmcnKSxcbiAgICAgIG1vZGU6ICdkZXRlcm1pbmF0ZScsXG4gICAgICBzdGF0dXM6ICdEZWxldGluZy4uLicsXG4gICAgICBwcm9ncmVzc1ZhbHVlOiAwLFxuICAgICAgdGV4dDogYDAvJHtpZExlbmd0aH1gLFxuICAgICAgYnV0dG9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgdGV4dDogYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ2NhbmNlbCcpLFxuICAgICAgICAgIGNvbG9yOiAnZGFuZ2VyJyxcbiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB7XG4gICAgICAgICAgICBkaWFsb2cuY2xvc2UoKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGxldCBhbGxQcm9taXNlczogYW55W10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGVudGl0eSBvZiBlbnRpdGllcykge1xuICAgICAgY29uc3QgZW50aXR5RGVmaW5pdGlvbiA9IGVudGl0eURlZmluaXRpb25zW2VudGl0eS5zb3VyY2VdO1xuICAgICAgaWYgKGVudGl0eURlZmluaXRpb24uY29tbWFuZHM/LmRlbGV0ZSAhPSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGRlbGV0ZUV4ZWMgPSBlbnRpdHlEZWZpbml0aW9uLmNvbW1hbmRzPy5kZWxldGU/LmV4ZWN1dGUgYXMgRnVuY3Rpb247XG4gICAgICAgIGNvbnN0IGVudGl0eVByb21pc2VzID0gKGVudGl0eS5pZHMgYXMgYW55W10pXG4gICAgICAgICAgLm1hcCgoaWQsIGkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKGRlbGV0ZUV4ZWMoaWQpKTtcbiAgICAgICAgICAgICAgfSwgaSAqIDIwMCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5tYXAoKHApID0+XG4gICAgICAgICAgICBwPy50aGVuKFxuICAgICAgICAgICAgICAodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICBkZWxldGVkQ291bnQrKztcbiAgICAgICAgICAgICAgICBkaWFsb2cuc2V0UHJvZ3Jlc3NUZXh0KGAke2RlbGV0ZWRDb3VudH0vJHtpZExlbmd0aH1gKTtcbiAgICAgICAgICAgICAgICBkaWFsb2cuc2V0UHJvZ3Jlc3NWYWx1ZSgoZGVsZXRlZENvdW50IC8gaWRMZW5ndGgpICogMTAwKTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0dXM6ICdmdWxmaWxsZWQnLCB2YWx1ZSB9O1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAocmVhc29uKSA9PiAoeyBzdGF0dXM6ICdyZWplY3RlZCcsIHJlYXNvbiB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgYWxsUHJvbWlzZXMgPSBhbGxQcm9taXNlcy5jb25jYXQoZW50aXR5UHJvbWlzZXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBUaGUgZGVsZXRlIG9wZXJhdGlvbiBjYW5ub3QgYmUgcGVyZm9ybWVkIG9uICR7ZW50aXR5RGVmaW5pdGlvbi50aXRsZX0uIFRoaXMgYWN0aW9uIG1pZ2h0IGJlIHJlc3RyaWN0ZWQgb3Igbm90IGFwcGxpY2FibGUgZm9yIHRoZSBzZWxlY3RlZCBpdGVtLmBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoYWxsUHJvbWlzZXMpO1xuICAgIGNvbnN0IHN1Y2Nlc3NmdWxQcm9taXNlcyA9IHJlc3VsdHMuZmlsdGVyKChyZXN1bHQ6IGFueSkgPT4gcmVzdWx0Py5zdGF0dXMgPT09ICdmdWxmaWxsZWQnKS5sZW5ndGg7XG4gICAgY29uc3QgZmFpbGVkUHJvbWlzZXMgPSByZXN1bHRzLmZpbHRlcigocmVzdWx0OiBhbnkpID0+IHJlc3VsdD8uc3RhdHVzID09PSAncmVqZWN0ZWQnKS5sZW5ndGg7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBkaWFsb2cuY2xvc2UoKTtcbiAgICB9LCAzMDApO1xuXG4gICAgLy8gU3RvcmUgdGhlIGxhc3QgZW50aXR5IGZvciB1c2UgaW4gZXZlbnQgZGlzcGF0Y2hpbmdcbiAgICBjb25zdCBsYXN0RW50aXR5ID0gZW50aXRpZXNbZW50aXRpZXMubGVuZ3RoIC0gMV07XG5cbiAgICAvLyBIYW5kbGUgZGlmZmVyZW50IHNjZW5hcmlvcyBmb3IgYWxlcnRzXG4gICAgaWYgKHN1Y2Nlc3NmdWxQcm9taXNlcyA+IDAgJiYgZmFpbGVkUHJvbWlzZXMgPT09IDApIHtcbiAgICAgIC8vIEFsbCBpdGVtcyBkZWxldGVkIHN1Y2Nlc3NmdWxseVxuICAgICAgaWYgKHNob3dSZXN1bHQpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5kaWFsb2dTZXJ2aWNlLmFsZXJ0KFxuICAgICAgICAgIGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCd3b3JrZmxvdy5zdWNjZXNzLWRlbGV0ZS10aXRsZScpLFxuICAgICAgICAgIGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCd3b3JrZmxvdy5zdWNjZXNzLWRlbGV0ZS1ib2R5Jywge1xuICAgICAgICAgICAgcGFyYW1zOiB7IGl0ZW06IHN1Y2Nlc3NmdWxQcm9taXNlcyB9LFxuICAgICAgICAgIH0pLCAvL1RPRE8gdGVzdCB0cmFuc2xhdGlvblxuICAgICAgICAgICdzdWNjZXNzJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgICAgLy8gRGlzcGF0Y2ggYWN0aW9uc1xuICAgICAgdGhpcy5kaXNwYXRjaChBWFBFbnRpdHlEZWxldGVkRXZlbnQoeyBlbnRpdHk6IGxhc3RFbnRpdHkuc291cmNlLCBpZHM6IGxhc3RFbnRpdHkuaWRzLCBtZXRhOiBtZXRhIH0pKTtcbiAgICAgIHRoaXMuZGlzcGF0Y2goQVhQUmVmcmVzaEV2ZW50KHsgZW50aXR5OiBsYXN0RW50aXR5LnNvdXJjZSwgbWV0YTogY29udGV4dC5nZXRWYXJpYWJsZTxhbnk+KCdtZXRhJykgfSkpO1xuICAgIH0gZWxzZSBpZiAoc3VjY2Vzc2Z1bFByb21pc2VzID4gMCAmJiBmYWlsZWRQcm9taXNlcyA+IDApIHtcbiAgICAgIC8vIFNvbWUgaXRlbXMgZGVsZXRlZCBzdWNjZXNzZnVsbHksIHNvbWUgZmFpbGVkXG4gICAgICBpZiAoc2hvd1Jlc3VsdCkge1xuICAgICAgICBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2UuYWxlcnQoXG4gICAgICAgICAgYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ3dvcmtmbG93LnN1Y2Nlc3MtcGFydGlhbC1kZWxldGUtdGl0bGUnKSxcbiAgICAgICAgICBhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYygnd29ya2Zsb3cucGFydGlhbC1kZWxldGUtYm9keScsIHtcbiAgICAgICAgICAgIHBhcmFtczogeyBzdWNjZXNzOiBzdWNjZXNzZnVsUHJvbWlzZXMsIGZhaWw6IGZhaWxlZFByb21pc2VzIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgJ3dhcm5pbmcnXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICAvLyBEaXNwYXRjaCBhY3Rpb25zXG4gICAgICB0aGlzLmRpc3BhdGNoKEFYUEVudGl0eURlbGV0ZWRFdmVudCh7IGVudGl0eTogbGFzdEVudGl0eS5zb3VyY2UsIGlkczogbGFzdEVudGl0eS5pZHMsIG1ldGE6IG1ldGEgfSkpO1xuICAgIH0gZWxzZSBpZiAoc3VjY2Vzc2Z1bFByb21pc2VzID09PSAwICYmIGZhaWxlZFByb21pc2VzID4gMCkge1xuICAgICAgLy8gTm8gaXRlbXMgZGVsZXRlZCwgYWxsIGZhaWxlZFxuICAgICAgaWYgKHNob3dSZXN1bHQpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5kaWFsb2dTZXJ2aWNlLmFsZXJ0KFxuICAgICAgICAgIGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCd3b3JrZmxvdy5mYWlsLWRlbGV0ZS10aXRsZScpLFxuICAgICAgICAgIGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCd3b3JrZmxvdy5mYWlsLWRlbGV0ZS1ib2R5Jywge1xuICAgICAgICAgICAgcGFyYW1zOiB7IGl0ZW06IGZhaWxlZFByb21pc2VzIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgJ2RhbmdlcidcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTm8gaXRlbXMgdG8gZGVsZXRlIChubyBzdWNjZXNzZnVsIG9yIGZhaWxlZCBwcm9taXNlcylcbiAgICAgIGlmIChzaG93UmVzdWx0KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuZGlhbG9nU2VydmljZS5hbGVydChcbiAgICAgICAgICBhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYygnd29ya2Zsb3cubm8tbmVlZCcpLFxuICAgICAgICAgIGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCd3b3JrZmxvdy5uby1pdGVtJyksXG4gICAgICAgICAgJ3ByaW1hcnknXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBBWFBEZWxldGVFbnRpdHlXb3JrZmxvdzogQVhQV29ya2Zsb3cgPSB7XG4gIHN0YXJ0U3RlcElkOiAnY29uZmlybS1kZWxldGUnLFxuICBzdGVwczoge1xuICAgICdjb25maXJtLWRlbGV0ZSc6IHtcbiAgICAgIGFjdGlvbjogJ3Nob3ctcHJvbXB0LWRpYWxvZycsXG4gICAgICBpbnB1dDoge1xuICAgICAgICB0aXRsZTogJ3dvcmtmbG93Lndhcm5pbmcnLFxuICAgICAgICBtZXNzYWdlOiBgd29ya2Zsb3cuY29uZmlybS1kZWxldGVgLFxuICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcbiAgICAgIH0sXG4gICAgICBuZXh0U3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNvbmRpdGlvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ0FORCcsXG4gICAgICAgICAgICAgIGNvbmRpdGlvbnM6IFt7IHR5cGU6ICdTSU5HTEUnLCBleHByZXNzaW9uOiAnY29udGV4dC5nZXRPdXRwdXQoXCJyZXN1bHRcIikgPT0gdHJ1ZScgfV0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgbmV4dFN0ZXBJZDogJ3BlcmZvcm0tZGVsZXRlJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICAncGVyZm9ybS1kZWxldGUnOiB7XG4gICAgICBhY3Rpb246ICdlbnRpdHktcGVyZm9ybS1kZWxldGUnLFxuICAgIH0sXG4gIH0sXG59O1xuIl19","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPLockService } from '@acorex/platform/common';\nimport { AXPPageStatus } from '@acorex/platform/layout/builder';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { computed, inject, Injectable, Injector, signal } from '@angular/core';\nimport { cloneDeep, merge, set } from 'lodash-es';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityMasterUpdateElementViewModel {\n constructor(entity, property) {\n this.entity = entity;\n this.property = property;\n this.name = signal(this.property.name);\n this.title = signal(this.property.title);\n this.description = signal(this.property.description);\n this.editable = computed(() => {\n return !(this.property.schema.readonly ?? false);\n });\n this.isRequired = computed(() => {\n return this.property.validations?.some((c) => c.rule == 'required') || false;\n });\n this.layout = computed(() => {\n const updateProp = this.entity.interfaces?.master?.update?.properties?.find((c) => c.name == this.property.name);\n const source = cloneDeep(updateProp?.layout ?? {});\n set(source, 'positions.default.colSpan', 12);\n return source;\n });\n this.node = computed(() => {\n const schema = this.property.schema;\n const widget = schema.interface;\n return {\n type: widget.type,\n mode: this.editable() ? 'edit' : 'view',\n path: this.name(),\n name: this.name(),\n children: widget.children,\n formula: widget.formula,\n triggers: widget.triggers,\n valueTransforms: widget.valueTransforms,\n options: merge(schema.interface?.options, {\n validations: this.property.validations?.map((c) => ({ rule: c.rule, message: c.message, options: c.options })),\n }),\n };\n });\n }\n}\nexport class AXPEntityMasterUpdateViewModel {\n // Dynamically resolve identifiers when needed\n get moduleName() {\n return this.config.module ?? '';\n }\n get entityName() {\n return this.config.name ?? '';\n }\n get entityId() {\n return this.entityData?.id ?? '';\n }\n constructor(injector, config, entityData, props) {\n this.injector = injector;\n this.config = config;\n this.entityData = entityData;\n this.props = props;\n this.entityDef = cloneDeep(this.config);\n this.workflow = this.injector.get(AXPWorkflowService);\n this.lockService = this.injector.get(AXPLockService);\n this.sessionService = this.injector.get(AXPSessionService);\n this.isInProgress = signal(false);\n this.context = signal(cloneDeep(this.entityData));\n this.elements = computed(() => {\n const props = this.entityDef.properties.filter((c) => this.props.includes(c.name) && c.schema.hidden != true);\n return props.map((e) => {\n return new AXPEntityMasterUpdateElementViewModel(this.entityDef, e);\n });\n });\n // Lock the record on creation\n if (this.entityId) {\n this.lockService.lock({\n refId: this.entityId,\n refType: `${this.moduleName}.${this.entityName}`,\n type: 'user',\n date: new Date().toISOString(),\n lockedBy: {\n id: this.sessionService.user?.id ?? 'system',\n type: 'oidc.users',\n },\n });\n }\n }\n async save() {\n this.isInProgress.set(true);\n this.builder.setStatus(AXPPageStatus.Submitting);\n try {\n const com = this.entityDef.commands?.update;\n if (com) {\n const exec = com.execute;\n const result = await exec(this.context());\n this.builder.setStatus(AXPPageStatus.Submitted);\n return result;\n }\n }\n catch (error) {\n this.builder.setStatus(AXPPageStatus.Error);\n return Promise.reject(error);\n }\n finally {\n this.isInProgress.set(false);\n }\n }\n reset() {\n this.context.set(cloneDeep(this.entityData));\n }\n async unlock() {\n if (this.entityId) {\n await this.lockService.unlock({\n refId: this.entityId,\n refType: `${this.moduleName}.${this.entityName}`,\n type: 'user',\n });\n }\n }\n}\nexport class AXPEntityMasterUpdateViewModelFactory {\n constructor() {\n this.entityService = inject(AXPEntityDefinitionRegistryService);\n this.layout = inject(AXPLayoutThemeService);\n this.injector = inject(Injector);\n }\n async create(moduleName, entityName, id, props) {\n const config = await this.entityService.resolve(moduleName, entityName);\n this.layout.setNavigationLoading(true);\n if (config.queries.byKey) {\n const func = config.queries.byKey.execute;\n const data = await func(id);\n this.layout.setNavigationLoading(false);\n return new AXPEntityMasterUpdateViewModel(this.injector, config, data, props);\n }\n this.layout.setNavigationLoading(false);\n return Promise.reject('cannot fetch ');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityMasterUpdateViewModelFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityMasterUpdateViewModelFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityMasterUpdateViewModelFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci11cGRhdGUudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1hc3Rlci11cGRhdGUudmlld21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBc0QsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0csT0FBTyxFQUEyQixhQUFhLEVBQWlCLE1BQU0saUNBQWlDLENBQUM7QUFDeEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUVoRixNQUFNLE9BQU8scUNBQXFDO0lBQ2hELFlBQ1UsTUFBaUIsRUFDakIsUUFBMkI7UUFEM0IsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixhQUFRLEdBQVIsUUFBUSxDQUFtQjtRQUdyQyxTQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsVUFBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLGdCQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7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QUUsQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFeEMsT0FBTyxJQUFJLDhCQUE4QixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoRixDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDekMsQ0FBQzs4R0F0QlUscUNBQXFDO2tIQUFyQyxxQ0FBcUMsY0FEeEIsTUFBTTs7MkZBQ25CLHFDQUFxQztrQkFEakQsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBTZXNzaW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vYXV0aCc7XG5pbXBvcnQgeyBBWFBFbnRpdHksIEFYUEVudGl0eVByb3BlcnR5LCBBWFBHcmlkTGF5b3V0T3B0aW9ucywgQVhQTG9ja1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyU2VydmljZSwgQVhQUGFnZVN0YXR1cywgQVhQV2lkZ2V0Tm9kZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQVhQTGF5b3V0VGhlbWVTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS90aGVtZXMvc2hhcmVkJztcbmltcG9ydCB7IEFYUFdvcmtmbG93U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgY29tcHV0ZWQsIGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBtZXJnZSwgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZSc7XG5cbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlNYXN0ZXJVcGRhdGVFbGVtZW50Vmlld01vZGVsIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbnRpdHk6IEFYUEVudGl0eSxcbiAgICBwcml2YXRlIHByb3BlcnR5OiBBWFBFbnRpdHlQcm9wZXJ0eSxcbiAgKSB7fVxuXG4gIG5hbWUgPSBzaWduYWwodGhpcy5wcm9wZXJ0eS5uYW1lKTtcbiAgdGl0bGUgPSBzaWduYWwodGhpcy5wcm9wZXJ0eS50aXRsZSk7XG4gIGRlc2NyaXB0aW9uID0gc2lnbmFsKHRoaXMucHJvcGVydHkuZGVzY3JpcHRpb24pO1xuXG4gIGVkaXRhYmxlID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHJldHVybiAhKHRoaXMucHJvcGVydHkuc2NoZW1hLnJlYWRvbmx5ID8/IGZhbHNlKTtcbiAgfSk7XG5cbiAgaXNSZXF1aXJlZCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9wZXJ0eS52YWxpZGF0aW9ucz8uc29tZSgoYykgPT4gYy5ydWxlID09ICdyZXF1aXJlZCcpIHx8IGZhbHNlO1xuICB9KTtcblxuICBsYXlvdXQgPSBjb21wdXRlZDxBWFBHcmlkTGF5b3V0T3B0aW9ucz4oKCkgPT4ge1xuICAgIGNvbnN0IHVwZGF0ZVByb3AgPSB0aGlzLmVudGl0eS5pbnRlcmZhY2VzPy5tYXN0ZXI/LnVwZGF0ZT8ucHJvcGVydGllcz8uZmluZCgoYykgPT4gYy5uYW1lID09IHRoaXMucHJvcGVydHkubmFtZSk7XG4gICAgY29uc3Qgc291cmNlID0gY2xvbmVEZWVwKHVwZGF0ZVByb3A/LmxheW91dCA/PyB7fSkgYXMgb2JqZWN0O1xuICAgIHNldChzb3VyY2UsICdwb3NpdGlvbnMuZGVmYXVsdC5jb2xTcGFuJywgMTIpO1xuICAgIHJldHVybiBzb3VyY2UgYXMgQVhQR3JpZExheW91dE9wdGlvbnM7XG4gIH0pO1xuXG4gIG5vZGUgPSBjb21wdXRlZDxBWFBXaWRnZXROb2RlPigoKSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gdGhpcy5wcm9wZXJ0eS5zY2hlbWEhO1xuICAgIGNvbnN0IHdpZGdldCA9IHNjaGVtYS5pbnRlcmZhY2UhO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB3aWRnZXQudHlwZSxcbiAgICAgIG1vZGU6IHRoaXMuZWRpdGFibGUoKSA/ICdlZGl0JyA6ICd2aWV3JyxcbiAgICAgIHBhdGg6IHRoaXMubmFtZSgpLFxuICAgICAgbmFtZTogdGhpcy5uYW1lKCksXG4gICAgICBjaGlsZHJlbjogd2lkZ2V0LmNoaWxkcmVuLFxuICAgICAgZm9ybXVsYTogd2lkZ2V0LmZvcm11bGEsXG4gICAgICB0cmlnZ2Vyczogd2lkZ2V0LnRyaWdnZXJzLFxuICAgICAgdmFsdWVUcmFuc2Zvcm1zOiB3aWRnZXQudmFsdWVUcmFuc2Zvcm1zLFxuICAgICAgb3B0aW9uczogbWVyZ2Uoc2NoZW1hLmludGVyZmFjZT8ub3B0aW9ucywge1xuICAgICAgICB2YWxpZGF0aW9uczogdGhpcy5wcm9wZXJ0eS52YWxpZGF0aW9ucz8ubWFwKChjKSA9PiAoeyBydWxlOiBjLnJ1bGUsIG1lc3NhZ2U6IGMubWVzc2FnZSwgb3B0aW9uczogYy5vcHRpb25zIH0pKSxcbiAgICAgIH0pLFxuICAgIH0gYXMgQVhQV2lkZ2V0Tm9kZTtcbiAgfSk7XG59XG5cbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlNYXN0ZXJVcGRhdGVWaWV3TW9kZWwge1xuICBwcml2YXRlIGVudGl0eURlZiA9IGNsb25lRGVlcCh0aGlzLmNvbmZpZykhO1xuICBwcml2YXRlIHdvcmtmbG93ID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQV29ya2Zsb3dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBsb2NrU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUExvY2tTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBzZXNzaW9uU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUFNlc3Npb25TZXJ2aWNlKTtcblxuICAvLyBEeW5hbWljYWxseSByZXNvbHZlIGlkZW50aWZpZXJzIHdoZW4gbmVlZGVkXG4gIHByaXZhdGUgZ2V0IG1vZHVsZU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMuY29uZmlnIGFzIGFueSkubW9kdWxlID8/ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZW50aXR5TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5jb25maWcgYXMgYW55KS5uYW1lID8/ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZW50aXR5SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlEYXRhPy5pZCA/PyAnJztcbiAgfVxuXG4gIHB1YmxpYyBidWlsZGVyOiBBWFBMYXlvdXRCdWlsZGVyU2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGNvbmZpZzogQVhQRW50aXR5LFxuICAgIHByaXZhdGUgZW50aXR5RGF0YTogYW55LFxuICAgIHByaXZhdGUgcHJvcHM6IHN0cmluZ1tdLFxuICApIHtcbiAgICAvLyBMb2NrIHRoZSByZWNvcmQgb24gY3JlYXRpb25cbiAgICBpZiAodGhpcy5lbnRpdHlJZCkge1xuICAgICAgdGhpcy5sb2NrU2VydmljZS5sb2NrKHtcbiAgICAgICAgcmVmSWQ6IHRoaXMuZW50aXR5SWQsXG4gICAgICAgIHJlZlR5cGU6IGAke3RoaXMubW9kdWxlTmFtZX0uJHt0aGlzLmVudGl0eU5hbWV9YCxcbiAgICAgICAgdHlwZTogJ3VzZXInLFxuICAgICAgICBkYXRlOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIGxvY2tlZEJ5OiB7XG4gICAgICAgICAgaWQ6IHRoaXMuc2Vzc2lvblNlcnZpY2UudXNlcj8uaWQgPz8gJ3N5c3RlbScsXG4gICAgICAgICAgdHlwZTogJ29pZGMudXNlcnMnLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzSW5Qcm9ncmVzcyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHVibGljIGNvbnRleHQgPSBzaWduYWw8YW55PihjbG9uZURlZXAodGhpcy5lbnRpdHlEYXRhKSk7XG5cbiAgZWxlbWVudHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcigoYykgPT4gdGhpcy5wcm9wcy5pbmNsdWRlcyhjLm5hbWUpICYmIGMuc2NoZW1hLmhpZGRlbiAhPSB0cnVlKTtcbiAgICByZXR1cm4gcHJvcHMubWFwKChlKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IEFYUEVudGl0eU1hc3RlclVwZGF0ZUVsZW1lbnRWaWV3TW9kZWwodGhpcy5lbnRpdHlEZWYsIGUpO1xuICAgIH0pO1xuICB9KTtcblxuICBwdWJsaWMgYXN5bmMgc2F2ZSgpOiBQcm9taXNlPGFueT4ge1xuICAgIHRoaXMuaXNJblByb2dyZXNzLnNldCh0cnVlKTtcbiAgICB0aGlzLmJ1aWxkZXIuc2V0U3RhdHVzKEFYUFBhZ2VTdGF0dXMuU3VibWl0dGluZyk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbSA9IHRoaXMuZW50aXR5RGVmLmNvbW1hbmRzPy51cGRhdGU7XG4gICAgICBpZiAoY29tKSB7XG4gICAgICAgIGNvbnN0IGV4ZWMgPSBjb20uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZXhlYyh0aGlzLmNvbnRleHQoKSk7XG4gICAgICAgIHRoaXMuYnVpbGRlci5zZXRTdGF0dXMoQVhQUGFnZVN0YXR1cy5TdWJtaXR0ZWQpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIHRoaXMuYnVpbGRlci5zZXRTdGF0dXMoQVhQUGFnZVN0YXR1cy5FcnJvcik7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3IpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzSW5Qcm9ncmVzcy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpIHtcbiAgICB0aGlzLmNvbnRleHQuc2V0KGNsb25lRGVlcCh0aGlzLmVudGl0eURhdGEpKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1bmxvY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuZW50aXR5SWQpIHtcbiAgICAgIGF3YWl0IHRoaXMubG9ja1NlcnZpY2UudW5sb2NrKHtcbiAgICAgICAgcmVmSWQ6IHRoaXMuZW50aXR5SWQsXG4gICAgICAgIHJlZlR5cGU6IGAke3RoaXMubW9kdWxlTmFtZX0uJHt0aGlzLmVudGl0eU5hbWV9YCxcbiAgICAgICAgdHlwZTogJ3VzZXInLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyVXBkYXRlVmlld01vZGVsRmFjdG9yeSB7XG4gIHByaXZhdGUgZW50aXR5U2VydmljZSA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBsYXlvdXQgPSBpbmplY3QoQVhQTGF5b3V0VGhlbWVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgcHVibGljIGFzeW5jIGNyZWF0ZShcbiAgICBtb2R1bGVOYW1lOiBzdHJpbmcsXG4gICAgZW50aXR5TmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IHN0cmluZ1tdLFxuICApOiBQcm9taXNlPEFYUEVudGl0eU1hc3RlclVwZGF0ZVZpZXdNb2RlbD4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHRoaXMuZW50aXR5U2VydmljZS5yZXNvbHZlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xuICAgIHRoaXMubGF5b3V0LnNldE5hdmlnYXRpb25Mb2FkaW5nKHRydWUpO1xuICAgIGlmIChjb25maWcucXVlcmllcy5ieUtleSkge1xuICAgICAgY29uc3QgZnVuYyA9IGNvbmZpZy5xdWVyaWVzLmJ5S2V5LmV4ZWN1dGUgYXMgRnVuY3Rpb247XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgZnVuYyhpZCk7XG4gICAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyhmYWxzZSk7XG5cbiAgICAgIHJldHVybiBuZXcgQVhQRW50aXR5TWFzdGVyVXBkYXRlVmlld01vZGVsKHRoaXMuaW5qZWN0b3IsIGNvbmZpZywgZGF0YSwgcHJvcHMpO1xuICAgIH1cbiAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyhmYWxzZSk7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCdjYW5ub3QgZmV0Y2ggJyk7XG4gIH1cbn1cbiJdfQ==","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflowAction, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { AXPEntityMasterUpdateViewModelFactory } from '../entity-master-update.viewmodel';\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\nimport { AXP_ENTITY_CONFIG_TOKEN } from '../entity.config';\nimport * as i0 from \"@angular/core\";\nexport const AXPEntityModifyEvent = createWorkFlowEvent('[Entity] Modified');\nexport class AXPEntityModifySectionPopupAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.popupService = inject(AXPopupService);\n this.platform = inject(AXPlatform);\n this.translateService = inject(AXTranslationService);\n this.entityRegistery = inject(AXPEntityDefinitionRegistryService);\n this.config = inject(AXP_ENTITY_CONFIG_TOKEN);\n this.factory = inject(AXPEntityMasterUpdateViewModelFactory);\n }\n async execute(context) {\n const [moduleName, entityName] = context.getVariable('entity').split('.');\n const { properties, id, title } = context.getVariable('data');\n const entityRef = await this.entityRegistery.resolve(moduleName, entityName);\n const vm = await this.factory.create(moduleName, entityName, id, properties);\n const options = context.getVariable('options');\n const decoration = options?.['decoration'];\n const headerTitle = decoration?.header?.title;\n const com = await this.config.viewers.master.modify();\n const popup = await this.popupService.open(com, {\n title: headerTitle\n ? headerTitle\n : title ??\n `${this.translateService.translateSync('entity.modify')} ${this.translateService.translateSync(entityRef.formats.individual)}`,\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',\n data: {\n vm,\n properties,\n entity: entityRef,\n },\n });\n context.setOutput('result', false);\n if (popup.data?.result == true) {\n context.setOutput('result', true);\n context.setVariable('data', cloneDeep(popup.data.context));\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityModifySectionPopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityModifySectionPopupAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityModifySectionPopupAction, decorators: [{\n type: Injectable\n }] });\nexport class AXPEntityModifyConfirmedAction extends AXPWorkflowAction {\n async execute(context) {\n const updatedData = context.getVariable('data');\n this.dispatch(AXPEntityModifyEvent({ entity: context.getVariable('entity'), values: updatedData }));\n const gridItemParentKey = context.getVariable('parentKey');\n this.dispatch(AXPRefreshEvent({\n entity: context.getVariable('entity'),\n meta: {\n refreshTargetId: updatedData[gridItemParentKey],\n },\n }));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityModifyConfirmedAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityModifyConfirmedAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityModifyConfirmedAction, decorators: [{\n type: Injectable\n }] });\nexport const AXPModifyEntitySectionWorkflow = {\n startStepId: 'modifyPopup',\n steps: {\n modifyPopup: {\n id: 'modifyPopup',\n action: 'AXPEntityModifySectionPopupAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\n nextStepId: 'successToast',\n },\n ],\n },\n successToast: {\n id: 'successToast',\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-modified-title',\n content: 'workflow.entity-modified-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'modifyConfirmed',\n },\n ],\n },\n modifyConfirmed: {\n id: 'modifyConfirmed',\n action: 'AXPEntityModifyConfirmedAction',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kaWZ5LXNlY3Rpb24ud29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93b3JrZmxvd3MvbW9kaWZ5LXNlY3Rpb24ud29ya2Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFlLGlCQUFpQixFQUFzQixtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRTNELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLG1CQUFtQixDQUFrQyxtQkFBbUIsQ0FBQyxDQUFDO0FBRzlHLE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxpQkFBaUI7SUFEeEU7O1FBRVUsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QixxQkFBZ0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNoRCxvQkFB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WFBvcHVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBBWFBsYXRmb3JtIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYUFJlZnJlc2hFdmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUFdvcmtmbG93LCBBWFBXb3JrZmxvd0FjdGlvbiwgQVhQV29ya2Zsb3dDb250ZXh0LCBjcmVhdGVXb3JrRmxvd0V2ZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBFbnRpdHlNYXN0ZXJVcGRhdGVWaWV3TW9kZWxGYWN0b3J5IH0gZnJvbSAnLi4vZW50aXR5LW1hc3Rlci11cGRhdGUudmlld21vZGVsJztcbmltcG9ydCB7IEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuLi9lbnRpdHktcmVnaXN0ZXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQX0VOVElUWV9DT05GSUdfVE9LRU4gfSBmcm9tICcuLi9lbnRpdHkuY29uZmlnJztcblxuZXhwb3J0IGNvbnN0IEFYUEVudGl0eU1vZGlmeUV2ZW50ID0gY3JlYXRlV29ya0Zsb3dFdmVudDx7IGVudGl0eTogc3RyaW5nOyB2YWx1ZXM6IGFueSB9PignW0VudGl0eV0gTW9kaWZpZWQnKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1vZGlmeVNlY3Rpb25Qb3B1cEFjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgcHJpdmF0ZSBwb3B1cFNlcnZpY2UgPSBpbmplY3QoQVhQb3B1cFNlcnZpY2UpO1xuICBwcml2YXRlIHBsYXRmb3JtID0gaW5qZWN0KEFYUGxhdGZvcm0pO1xuICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIGVudGl0eVJlZ2lzdGVyeSA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBjb25maWcgPSBpbmplY3QoQVhQX0VOVElUWV9DT05GSUdfVE9LRU4pO1xuICBwcml2YXRlIGZhY3RvcnkgPSBpbmplY3QoQVhQRW50aXR5TWFzdGVyVXBkYXRlVmlld01vZGVsRmFjdG9yeSk7XG5cbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBbbW9kdWxlTmFtZSwgZW50aXR5TmFtZV0gPSBjb250ZXh0LmdldFZhcmlhYmxlPHN0cmluZz4oJ2VudGl0eScpLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgeyBwcm9wZXJ0aWVzLCBpZCwgdGl0bGUgfSA9IGNvbnRleHQuZ2V0VmFyaWFibGUoJ2RhdGEnKTtcbiAgICBjb25zdCBlbnRpdHlSZWYgPSBhd2FpdCB0aGlzLmVudGl0eVJlZ2lzdGVyeS5yZXNvbHZlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xuICAgIGNvbnN0IHZtID0gYXdhaXQgdGhpcy5mYWN0b3J5LmNyZWF0ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lLCBpZCwgcHJvcGVydGllcyk7XG5cbiAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5nZXRWYXJpYWJsZTxhbnk+KCdvcHRpb25zJyk7XG4gICAgY29uc3QgZGVjb3JhdGlvbiA9IG9wdGlvbnM/LlsnZGVjb3JhdGlvbiddO1xuICAgIGNvbnN0IGhlYWRlclRpdGxlID0gZGVjb3JhdGlvbj8uaGVhZGVyPy50aXRsZTtcblxuICAgIGNvbnN0IGNvbSA9IGF3YWl0IHRoaXMuY29uZmlnLnZpZXdlcnMubWFzdGVyLm1vZGlmeSgpO1xuICAgIGNvbnN0IHBvcHVwID0gYXdhaXQgdGhpcy5wb3B1cFNlcnZpY2Uub3Blbihjb20sIHtcbiAgICAgIHRpdGxlOiBoZWFkZXJUaXRsZVxuICAgICAgICA/IGhlYWRlclRpdGxlXG4gICAgICAgIDogdGl0bGUgPz9cbiAgICAgICAgYCR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZVN5bmMoJ2VudGl0eS5tb2RpZnknKX0gJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlU3luYyhcbiAgICAgICAgICBlbnRpdHlSZWYuZm9ybWF0cy5pbmRpdmlkdWFsXG4gICAgICAgICl9YCxcbiAgICAgIHNpemU6IHRoaXMucGxhdGZvcm0uaXMoJ01vYmlsZScpIHx8IHRoaXMucGxhdGZvcm0uaXMoJ1NNJykgPyAnZnVsbCcgOiAnbWQnLFxuICAgICAgZGF0YToge1xuICAgICAgICB2bSxcbiAgICAgICAgcHJvcGVydGllcyxcbiAgICAgICAgZW50aXR5OiBlbnRpdHlSZWYsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGNvbnRleHQuc2V0T3V0cHV0KCdyZXN1bHQnLCBmYWxzZSk7XG4gICAgaWYgKHBvcHVwLmRhdGE/LnJlc3VsdCA9PSB0cnVlKSB7XG4gICAgICBjb250ZXh0LnNldE91dHB1dCgncmVzdWx0JywgdHJ1ZSk7XG4gICAgICBjb250ZXh0LnNldFZhcmlhYmxlKCdkYXRhJywgY2xvbmVEZWVwKHBvcHVwLmRhdGEuY29udGV4dCkpO1xuICAgIH1cbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TW9kaWZ5Q29uZmlybWVkQWN0aW9uIGV4dGVuZHMgQVhQV29ya2Zsb3dBY3Rpb24ge1xuXG4gIGFzeW5jIGV4ZWN1dGUoY29udGV4dDogQVhQV29ya2Zsb3dDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdXBkYXRlZERhdGEgPSBjb250ZXh0LmdldFZhcmlhYmxlKCdkYXRhJyk7XG4gICAgdGhpcy5kaXNwYXRjaChBWFBFbnRpdHlNb2RpZnlFdmVudCh7IGVudGl0eTogY29udGV4dC5nZXRWYXJpYWJsZTxzdHJpbmc+KCdlbnRpdHknKSwgdmFsdWVzOiB1cGRhdGVkRGF0YSB9KSk7XG5cbiAgICBjb25zdCBncmlkSXRlbVBhcmVudEtleSA9IGNvbnRleHQuZ2V0VmFyaWFibGUoJ3BhcmVudEtleScpO1xuXG4gICAgdGhpcy5kaXNwYXRjaChcbiAgICAgIEFYUFJlZnJlc2hFdmVudCh7XG4gICAgICAgIGVudGl0eTogY29udGV4dC5nZXRWYXJpYWJsZTxzdHJpbmc+KCdlbnRpdHknKSxcbiAgICAgICAgbWV0YToge1xuICAgICAgICAgIHJlZnJlc2hUYXJnZXRJZDogdXBkYXRlZERhdGFbZ3JpZEl0ZW1QYXJlbnRLZXldLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBBWFBNb2RpZnlFbnRpdHlTZWN0aW9uV29ya2Zsb3c6IEFYUFdvcmtmbG93ID0ge1xuICBzdGFydFN0ZXBJZDogJ21vZGlmeVBvcHVwJyxcbiAgc3RlcHM6IHtcbiAgICBtb2RpZnlQb3B1cDoge1xuICAgICAgaWQ6ICdtb2RpZnlQb3B1cCcsXG4gICAgICBhY3Rpb246ICdBWFBFbnRpdHlNb2RpZnlTZWN0aW9uUG9wdXBBY3Rpb24nLFxuICAgICAgbmV4dFN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb25kaXRpb25zOiBbeyB0eXBlOiAnU0lOR0xFJywgZXhwcmVzc2lvbjogJ2NvbnRleHQuZ2V0T3V0cHV0KFwicmVzdWx0XCIpID09IHRydWUnIH1dLFxuICAgICAgICAgIG5leHRTdGVwSWQ6ICdzdWNjZXNzVG9hc3QnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHN1Y2Nlc3NUb2FzdDoge1xuICAgICAgaWQ6ICdzdWNjZXNzVG9hc3QnLFxuICAgICAgYWN0aW9uOiAnQVhQVG9hc3RBY3Rpb24nLFxuICAgICAgaW5wdXQ6IHtcbiAgICAgICAgY29sb3I6ICdzdWNjZXNzJyxcbiAgICAgICAgdGl0bGU6ICd3b3JrZmxvdy5lbnRpdHktbW9kaWZpZWQtdGl0bGUnLFxuICAgICAgICBjb250ZW50OiAnd29ya2Zsb3cuZW50aXR5LW1vZGlmaWVkLWJvZHknLFxuICAgICAgfSxcbiAgICAgIG5leHRTdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgY29uZGl0aW9uczogW10sXG4gICAgICAgICAgbmV4dFN0ZXBJZDogJ21vZGlmeUNvbmZpcm1lZCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgbW9kaWZ5Q29uZmlybWVkOiB7XG4gICAgICBpZDogJ21vZGlmeUNvbmZpcm1lZCcsXG4gICAgICBhY3Rpb246ICdBWFBFbnRpdHlNb2RpZnlDb25maXJtZWRBY3Rpb24nLFxuICAgIH0sXG4gIH0sXG59O1xuIl19","import { AXFormatService } from '@acorex/core/format';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPEntityCommandScope, getEntityInfo, } from '@acorex/platform/common';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXPWorkflowService, ofType } from '@acorex/platform/workflow';\nimport { Injectable, Injector, computed, inject, signal } from '@angular/core';\nimport { cloneDeep, merge, set } from 'lodash-es';\nimport { Subject, takeUntil } from 'rxjs';\nimport { AXPEntityDetailListViewModel } from './entity-detail-list.viewmodel';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\nimport { AXPEntityCommandTriggerViewModel } from './entity.viewmodel';\nimport { AXPEntityDeletedEvent } from './workflows/delete-entity.workflow';\nimport { AXPEntityModifyEvent } from './workflows/modify-section.workflow';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityMasterSingleViewGroupViewModel {\n constructor(entity, section) {\n this.entity = entity;\n this.section = section;\n this.group = this.entity.groups?.find((c) => c.id == this.section.id);\n this.name = signal(this.group.id);\n this.isLoading = signal(false);\n this.title = computed(() => {\n return this.group.title ?? this.group.id;\n });\n this.description = computed(() => {\n return this.group.description;\n });\n this.layout = computed(() => {\n const source = cloneDeep(this.section.layout ?? {});\n set(source, 'positions.default.colSpan', 12);\n return source;\n });\n this.props = computed(() => {\n const { properties, interfaces } = this.entity;\n const groupProperties = properties\n .filter(({ groupId, schema }) => groupId === this.group.id && !schema.hidden)\n .map(({ name }) => name);\n const viewProperties = interfaces?.master?.single?.properties?.filter(({ name }) => groupProperties.includes(name)) ?? [];\n return viewProperties.map((prop) => new AXPEntityMasterSingleElementViewModel(this.entity, this, prop));\n });\n this.editableProps = computed(() => {\n const { properties, interfaces } = this.entity;\n const editablePropertyNames = interfaces?.master?.update?.properties?.map(({ name }) => name) ?? [];\n const filteredProperties = properties.filter(({ groupId, schema, name }) => groupId === this.group.id && !schema.hidden && editablePropertyNames.includes(name));\n return filteredProperties.map((prop) => new AXPEntityMasterSingleElementViewModel(this.entity, this, prop));\n });\n this.editable = computed(() => {\n return this.editableProps().length > 0;\n });\n }\n}\nexport class AXPEntityMasterSingleElementViewModel {\n constructor(entity, section, propertyView) {\n this.entity = entity;\n this.section = section;\n this.propertyView = propertyView;\n this.property = this.entity.properties.find((c) => c.name == this.propertyView.name);\n this.name = signal(this.property.name);\n this.path = signal(this.propertyView.dataPath ?? this.property.name);\n this.title = signal(this.property.title);\n this.showLabel = signal(this.propertyView.layout?.label?.visible != false);\n this.description = signal(this.property.description);\n this.layout = computed(() => {\n const viewProp = this.entity.interfaces?.master?.single?.properties?.find((c) => c.name == this.property.name);\n const source = cloneDeep(viewProp?.layout ?? {});\n set(source, 'positions.default.colSpan', 12);\n return source;\n });\n this.node = computed(() => {\n const schema = this.property.schema;\n const widget = schema.interface;\n return {\n type: widget.type,\n mode: 'view',\n path: this.path(),\n children: widget.children,\n formula: widget.formula,\n valueTransforms: widget.valueTransforms,\n options: merge(schema.interface?.options),\n };\n });\n }\n}\nexport class AXPEntityMasterSingleViewModel {\n constructor(injector, config, entityData) {\n this.injector = injector;\n this.config = config;\n this.entityData = entityData;\n this.entityDef = cloneDeep(this.config);\n this._viewDef = cloneDeep(this.entityDef.interfaces?.master?.single);\n this.session = this.injector.get(AXPSessionService);\n this.formatService = this.injector.get(AXFormatService);\n this.workflow = this.injector.get(AXPWorkflowService);\n this.destroyed = new Subject();\n this.translateService = this.injector.get(AXTranslationService);\n this.context = signal(cloneDeep(this.entityData));\n this.actions = computed(() => {\n return (this.entityDef.interfaces?.master?.single?.actions?.map((tr) => new AXPEntityCommandTriggerViewModel(this.entityDef, tr)) ?? []);\n });\n this.primaryActions = computed(() => {\n return this.actions().filter((c) => c.priority == 'primary');\n });\n this.secondaryActions = computed(() => {\n return this.actions().filter((c) => c.priority == 'secondary');\n });\n this.sections = computed(() => {\n const { interfaces, properties } = this.entityDef;\n const viewProps = interfaces?.master?.single?.properties?.map(({ name }) => name) ?? [];\n const filteredProperties = properties.filter(({ groupId, schema, name }) => groupId && !schema.hidden && viewProps.includes(name));\n const groups = interfaces?.master?.single?.sections?.filter(({ id }) => filteredProperties.some(({ groupId }) => groupId === id)) ?? [];\n return groups.map((section) => new AXPEntityMasterSingleViewGroupViewModel(this.entityDef, section));\n });\n //****************** Title ******************//\n this.title = computed(() => {\n const suggestedProps = this.entityDef.properties.find((c) => ['title', 'name', 'code'].includes(c.name));\n let suggestedFormat = 'Item #{{id}}';\n if (suggestedProps)\n suggestedFormat = `{{${suggestedProps.name}}}`;\n return this.formatService.format(this._viewDef.title ?? suggestedFormat, 'string', this.context());\n });\n //****************** Description ******************//\n this.description = computed(() => {\n return this._viewDef.description\n ? this.formatService.format(this._viewDef.description, 'string', this.context())\n : null;\n });\n //****************** Beardcrumbs ******************//\n this.beardcrumbs = computed(() => {\n return [\n {\n title: this.entityDef.formats.plural ?? this.entityDef.formats.individual,\n command: {\n name: 'navigate',\n options: {\n path: `/${this.session.application?.name}/m/${this.entityDef.module}/e/${this.entityDef.name}/list`,\n },\n },\n },\n {\n title: this.title(),\n },\n ];\n });\n this.relatedEntities = computed(async () => {\n const relatedEntities = this.entityDef.relatedEntities?.map((re) => new AXPEntityDetailListViewModel(this.injector, re, { entity: this.entityDef, data: this.entityData })) ?? [];\n const filteredEntities = await Promise.all(relatedEntities.map(async (re) => ((await re.hidden()) ? null : re)));\n return filteredEntities.filter((re) => re !== null);\n });\n this.workflow.events$\n .pipe(ofType(AXPEntityDeletedEvent))\n .pipe(takeUntil(this.destroyed))\n .subscribe((event) => {\n if (event.payload.entity == getEntityInfo(this.entityDef).source &&\n event.payload.ids.includes(this.context().id)) {\n this.workflow.execute('show-list-view', {\n entity: getEntityInfo(this.entityDef).source,\n });\n }\n });\n this.workflow.events$\n .pipe(ofType(AXPEntityModifyEvent))\n .pipe(takeUntil(this.destroyed))\n .subscribe(async (event) => {\n if (event.payload.entity == getEntityInfo(this.entityDef).source &&\n event.payload.values.id === this.context().id) {\n this.context.set(event.payload.values);\n }\n });\n }\n async executeCommand(commandName, data = null) {\n //TODO: syntact for workflow\n switch (commandName) {\n case 'modify-entity-section': {\n this.workflow.execute('modify-entity-section', {\n entity: getEntityInfo(this.entityDef).source,\n data: {\n id: this.context().id,\n properties: data.editableProps().map((m) => m.name()),\n },\n });\n break;\n }\n default: {\n const action = this.actions().find((c) => c.name == commandName);\n this.workflow.execute(commandName, {\n entity: getEntityInfo(this.entityDef).source,\n data: action?.scope == AXPEntityCommandScope.Individual ? this.context() : null,\n });\n }\n }\n }\n async execute(command) {\n switch (command?.name) {\n case 'navigate':\n await this.workflow.execute('navigate', {\n options: {\n path: command.options?.['path'],\n },\n });\n break;\n default:\n this.executeCommand(command.name, command.options);\n break;\n }\n }\n //\n //\n destroy() {\n this.destroyed.next();\n this.destroyed.complete();\n }\n}\nexport class AXPEntityDetailViewModelFactory {\n constructor() {\n this.entityService = inject(AXPEntityDefinitionRegistryService);\n this.layout = inject(AXPLayoutThemeService);\n this.injector = inject(Injector);\n }\n async create(moduleName, entityName, id) {\n const config = await this.entityService.resolve(moduleName, entityName);\n this.layout.setNavigationLoading(true);\n if (config.queries.byKey) {\n const func = config.queries.byKey.execute;\n const data = await func(id);\n this.layout.setNavigationLoading(false);\n return new AXPEntityMasterSingleViewModel(this.injector, config, data);\n }\n this.layout.setNavigationLoading(false);\n return Promise.reject('cannot fetch ');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityDetailViewModelFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityDetailViewModelFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityDetailViewModelFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nexport const AXPEntityDetailViewModelResolver = (route, state, service = inject(AXPEntityDetailViewModelFactory)) => {\n const moduleName = route.parent?.paramMap.get('module');\n const entityName = route.paramMap.get('entity');\n const id = route.paramMap.get('id');\n //\n return service.create(moduleName, entityName, id);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1zaW5nbGUudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1hc3Rlci1zaW5nbGUudmlld21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBRUwscUJBQXFCLEVBSXJCLGFBQWEsR0FDZCxNQUFNLHlCQUF5QixDQUFDO0FBR2pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFD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QUksR0FBRyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hDLE9BQU8sSUFBSSw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDekMsQ0FBQzs4R0FoQlUsK0JBQStCO2tIQUEvQiwrQkFBK0IsY0FEbEIsTUFBTTs7MkZBQ25CLCtCQUErQjtrQkFEM0MsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7O0FBb0JsQyxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBdUQsQ0FDbEcsS0FBNkIsRUFDN0IsS0FBMEIsRUFDMUIsVUFBMkMsTUFBTSxDQUFDLCtCQUErQixDQUFDLEVBQ3pDLEVBQUU7SUFDM0MsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBVyxDQUFDO0lBQ2xFLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBVyxDQUFDO0lBQzFELE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBVyxDQUFDO0lBQzlDLEVBQUU7SUFDRixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNwRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEZvcm1hdFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvZm9ybWF0JztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYUFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7XG4gIEFYUEVudGl0eSxcbiAgQVhQRW50aXR5Q29tbWFuZFNjb3BlLFxuICBBWFBFbnRpdHlQcm9wZXJ0eVZpZXcsXG4gIEFYUEVudGl0eVNlY3Rpb25WaWV3LFxuICBBWFBHcmlkTGF5b3V0T3B0aW9ucyxcbiAgZ2V0RW50aXR5SW5mbyxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQQnJlYWRjcnVtYkl0ZW0sIEFYUEV4ZWN1dGVDb21tYW5kIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUFdpZGdldE5vZGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IEFYUExheW91dFRoZW1lU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vdGhlbWVzL3NoYXJlZCc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UsIG9mVHlwZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUmVzb2x2ZUZuLCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGNsb25lRGVlcCwgbWVyZ2UsIHNldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUEVudGl0eURldGFpbExpc3RWaWV3TW9kZWwgfSBmcm9tICcuL2VudGl0eS1kZXRhaWwtbGlzdC52aWV3bW9kZWwnO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsIH0gZnJvbSAnLi9lbnRpdHkudmlld21vZGVsJztcbmltcG9ydCB7IEFYUEVudGl0eURlbGV0ZWRFdmVudCB9IGZyb20gJy4vd29ya2Zsb3dzL2RlbGV0ZS1lbnRpdHkud29ya2Zsb3cnO1xuaW1wb3J0IHsgQVhQRW50aXR5TW9kaWZ5RXZlbnQgfSBmcm9tICcuL3dvcmtmbG93cy9tb2RpZnktc2VjdGlvbi53b3JrZmxvdyc7XG5cbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3R3JvdXBWaWV3TW9kZWwge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVudGl0eTogQVhQRW50aXR5LCBwcml2YXRlIHNlY3Rpb246IEFYUEVudGl0eVNlY3Rpb25WaWV3KSB7IH1cblxuICBncm91cCA9IHRoaXMuZW50aXR5Lmdyb3Vwcz8uZmluZCgoYykgPT4gYy5pZCA9PSB0aGlzLnNlY3Rpb24uaWQpITtcbiAgbmFtZSA9IHNpZ25hbCh0aGlzLmdyb3VwLmlkKTtcbiAgaXNMb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcblxuICB0aXRsZSA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmdyb3VwLnRpdGxlID8/IHRoaXMuZ3JvdXAuaWQ7XG4gIH0pO1xuXG4gIGRlc2NyaXB0aW9uID0gY29tcHV0ZWQ8c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZD4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmdyb3VwLmRlc2NyaXB0aW9uO1xuICB9KTtcblxuICBsYXlvdXQgPSBjb21wdXRlZDxBWFBHcmlkTGF5b3V0T3B0aW9ucz4oKCkgPT4ge1xuICAgIGNvbnN0IHNvdXJjZSA9IGNsb25lRGVlcCh0aGlzLnNlY3Rpb24ubGF5b3V0ID8/IHt9KSBhcyBvYmplY3Q7XG4gICAgc2V0KHNvdXJjZSwgJ3Bvc2l0aW9ucy5kZWZhdWx0LmNvbFNwYW4nLCAxMik7XG4gICAgcmV0dXJuIHNvdXJjZSBhcyBBWFBHcmlkTGF5b3V0T3B0aW9ucztcbiAgfSk7XG5cbiAgcHJvcHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgeyBwcm9wZXJ0aWVzLCBpbnRlcmZhY2VzIH0gPSB0aGlzLmVudGl0eTtcbiAgICBjb25zdCBncm91cFByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzXG4gICAgICAuZmlsdGVyKCh7IGdyb3VwSWQsIHNjaGVtYSB9KSA9PiBncm91cElkID09PSB0aGlzLmdyb3VwLmlkICYmICFzY2hlbWEuaGlkZGVuKVxuICAgICAgLm1hcCgoeyBuYW1lIH0pID0+IG5hbWUpO1xuXG4gICAgY29uc3Qgdmlld1Byb3BlcnRpZXMgPVxuICAgICAgaW50ZXJmYWNlcz8ubWFzdGVyPy5zaW5nbGU/LnByb3BlcnRpZXM/LmZpbHRlcigoeyBuYW1lIH0pID0+IGdyb3VwUHJvcGVydGllcy5pbmNsdWRlcyhuYW1lKSkgPz8gW107XG5cbiAgICByZXR1cm4gdmlld1Byb3BlcnRpZXMubWFwKChwcm9wKSA9PiBuZXcgQVhQRW50aXR5TWFzdGVyU2luZ2xlRWxlbWVudFZpZXdNb2RlbCh0aGlzLmVudGl0eSwgdGhpcywgcHJvcCkpO1xuICB9KTtcblxuICBlZGl0YWJsZVByb3BzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHsgcHJvcGVydGllcywgaW50ZXJmYWNlcyB9ID0gdGhpcy5lbnRpdHk7XG4gICAgY29uc3QgZWRpdGFibGVQcm9wZXJ0eU5hbWVzID0gaW50ZXJmYWNlcz8ubWFzdGVyPy51cGRhdGU/LnByb3BlcnRpZXM/Lm1hcCgoeyBuYW1lIH0pID0+IG5hbWUpID8/IFtdO1xuXG4gICAgY29uc3QgZmlsdGVyZWRQcm9wZXJ0aWVzID0gcHJvcGVydGllcy5maWx0ZXIoXG4gICAgICAoeyBncm91cElkLCBzY2hlbWEsIG5hbWUgfSkgPT4gZ3JvdXBJZCA9PT0gdGhpcy5ncm91cC5pZCAmJiAhc2NoZW1hLmhpZGRlbiAmJiBlZGl0YWJsZVByb3BlcnR5TmFtZXMuaW5jbHVkZXMobmFtZSlcbiAgICApO1xuXG4gICAgcmV0dXJuIGZpbHRlcmVkUHJvcGVydGllcy5tYXAoKHByb3ApID0+IG5ldyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVFbGVtZW50Vmlld01vZGVsKHRoaXMuZW50aXR5LCB0aGlzLCBwcm9wKSk7XG4gIH0pO1xuXG4gIGVkaXRhYmxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmVkaXRhYmxlUHJvcHMoKS5sZW5ndGggPiAwO1xuICB9KTtcbn1cblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1hc3RlclNpbmdsZUVsZW1lbnRWaWV3TW9kZWwge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVudGl0eTogQVhQRW50aXR5LFxuICAgIHByaXZhdGUgc2VjdGlvbjogQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld0dyb3VwVmlld01vZGVsLFxuICAgIHByaXZhdGUgcHJvcGVydHlWaWV3OiBBWFBFbnRpdHlQcm9wZXJ0eVZpZXdcbiAgKSB7IH1cblxuICBwcml2YXRlIHByb3BlcnR5ID0gdGhpcy5lbnRpdHkucHJvcGVydGllcy5maW5kKChjKSA9PiBjLm5hbWUgPT0gdGhpcy5wcm9wZXJ0eVZpZXcubmFtZSkhO1xuICBuYW1lID0gc2lnbmFsKHRoaXMucHJvcGVydHkubmFtZSk7XG4gIHBhdGggPSBzaWduYWwodGhpcy5wcm9wZXJ0eVZpZXcuZGF0YVBhdGggPz8gdGhpcy5wcm9wZXJ0eS5uYW1lKTtcbiAgdGl0bGUgPSBzaWduYWwodGhpcy5wcm9wZXJ0eS50aXRsZSk7XG4gIHNob3dMYWJlbCA9IHNpZ25hbCh0aGlzLnByb3BlcnR5Vmlldy5sYXlvdXQ/LmxhYmVsPy52aXNpYmxlICE9IGZhbHNlKTtcbiAgZGVzY3JpcHRpb24gPSBzaWduYWwodGhpcy5wcm9wZXJ0eS5kZXNjcmlwdGlvbik7XG5cbiAgbGF5b3V0ID0gY29tcHV0ZWQ8QVhQR3JpZExheW91dE9wdGlvbnM+KCgpID0+IHtcbiAgICBjb25zdCB2aWV3UHJvcCA9IHRoaXMuZW50aXR5LmludGVyZmFjZXM/Lm1hc3Rlcj8uc2luZ2xlPy5wcm9wZXJ0aWVzPy5maW5kKChjKSA9PiBjLm5hbWUgPT0gdGhpcy5wcm9wZXJ0eS5uYW1lKTtcbiAgICBjb25zdCBzb3VyY2UgPSBjbG9uZURlZXAodmlld1Byb3A/LmxheW91dCA/PyB7fSkgYXMgb2JqZWN0O1xuICAgIHNldChzb3VyY2UsICdwb3NpdGlvbnMuZGVmYXVsdC5jb2xTcGFuJywgMTIpO1xuICAgIHJldHVybiBzb3VyY2UgYXMgQVhQR3JpZExheW91dE9wdGlvbnM7XG4gIH0pO1xuXG4gIG5vZGUgPSBjb21wdXRlZDxBWFBXaWRnZXROb2RlPigoKSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gdGhpcy5wcm9wZXJ0eS5zY2hlbWEhO1xuICAgIGNvbnN0IHdpZGdldCA9IHNjaGVtYS5pbnRlcmZhY2UhO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB3aWRnZXQudHlwZSxcbiAgICAgIG1vZGU6ICd2aWV3JyxcbiAgICAgIHBhdGg6IHRoaXMucGF0aCgpLFxuICAgICAgY2hpbGRyZW46IHdpZGdldC5jaGlsZHJlbixcbiAgICAgIGZvcm11bGE6IHdpZGdldC5mb3JtdWxhLFxuICAgICAgdmFsdWVUcmFuc2Zvcm1zOiB3aWRnZXQudmFsdWVUcmFuc2Zvcm1zLFxuICAgICAgb3B0aW9uczogbWVyZ2Uoc2NoZW1hLmludGVyZmFjZT8ub3B0aW9ucyksXG4gICAgfSBhcyBBWFBXaWRnZXROb2RlO1xuICB9KTtcbn1cblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZW50aXR5RGVmID0gY2xvbmVEZWVwKHRoaXMuY29uZmlnKSE7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdEZWYgPSBjbG9uZURlZXAodGhpcy5lbnRpdHlEZWYuaW50ZXJmYWNlcz8ubWFzdGVyPy5zaW5nbGUpITtcbiAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQU2Vzc2lvblNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGZvcm1hdFNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChBWEZvcm1hdFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHdvcmtmbG93ID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQV29ya2Zsb3dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsIHByaXZhdGUgY29uZmlnOiBBWFBFbnRpdHksIHByaXZhdGUgZW50aXR5RGF0YTogYW55KSB7XG4gICAgdGhpcy53b3JrZmxvdy5ldmVudHMkXG4gICAgICAucGlwZShvZlR5cGUoQVhQRW50aXR5RGVsZXRlZEV2ZW50KSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpXG4gICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZXZlbnQucGF5bG9hZC5lbnRpdHkgPT0gZ2V0RW50aXR5SW5mbyh0aGlzLmVudGl0eURlZikuc291cmNlICYmXG4gICAgICAgICAgZXZlbnQucGF5bG9hZC5pZHMuaW5jbHVkZXModGhpcy5jb250ZXh0KCkuaWQpXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnc2hvdy1saXN0LXZpZXcnLCB7XG4gICAgICAgICAgICBlbnRpdHk6IGdldEVudGl0eUluZm8odGhpcy5lbnRpdHlEZWYpLnNvdXJjZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgdGhpcy53b3JrZmxvdy5ldmVudHMkXG4gICAgICAucGlwZShvZlR5cGUoQVhQRW50aXR5TW9kaWZ5RXZlbnQpKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSlcbiAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBldmVudC5wYXlsb2FkLmVudGl0eSA9PSBnZXRFbnRpdHlJbmZvKHRoaXMuZW50aXR5RGVmKS5zb3VyY2UgJiZcbiAgICAgICAgICBldmVudC5wYXlsb2FkLnZhbHVlcy5pZCA9PT0gdGhpcy5jb250ZXh0KCkuaWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5jb250ZXh0LnNldChldmVudC5wYXlsb2FkLnZhbHVlcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNvbnRleHQgPSBzaWduYWw8YW55PihjbG9uZURlZXAodGhpcy5lbnRpdHlEYXRhKSk7XG5cbiAgcHJpdmF0ZSBhY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4oKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmVudGl0eURlZi5pbnRlcmZhY2VzPy5tYXN0ZXI/LnNpbmdsZT8uYWN0aW9ucz8ubWFwKFxuICAgICAgICAodHIpID0+IG5ldyBBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbCh0aGlzLmVudGl0eURlZiwgdHIpXG4gICAgICApID8/IFtdXG4gICAgKTtcbiAgfSk7XG5cbiAgcHVibGljIHByaW1hcnlBY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmFjdGlvbnMoKS5maWx0ZXIoKGMpID0+IGMucHJpb3JpdHkgPT0gJ3ByaW1hcnknKTtcbiAgfSk7XG5cbiAgcHVibGljIHNlY29uZGFyeUFjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aW9ucygpLmZpbHRlcigoYykgPT4gYy5wcmlvcml0eSA9PSAnc2Vjb25kYXJ5Jyk7XG4gIH0pO1xuXG4gIHB1YmxpYyBzZWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdHcm91cFZpZXdNb2RlbFtdPigoKSA9PiB7XG4gICAgY29uc3QgeyBpbnRlcmZhY2VzLCBwcm9wZXJ0aWVzIH0gPSB0aGlzLmVudGl0eURlZjtcbiAgICBjb25zdCB2aWV3UHJvcHMgPSBpbnRlcmZhY2VzPy5tYXN0ZXI/LnNpbmdsZT8ucHJvcGVydGllcz8ubWFwKCh7IG5hbWUgfSkgPT4gbmFtZSkgPz8gW107XG5cbiAgICBjb25zdCBmaWx0ZXJlZFByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLmZpbHRlcihcbiAgICAgICh7IGdyb3VwSWQsIHNjaGVtYSwgbmFtZSB9KSA9PiBncm91cElkICYmICFzY2hlbWEuaGlkZGVuICYmIHZpZXdQcm9wcy5pbmNsdWRlcyhuYW1lKVxuICAgICk7XG5cbiAgICBjb25zdCBncm91cHMgPVxuICAgICAgaW50ZXJmYWNlcz8ubWFzdGVyPy5zaW5nbGU/LnNlY3Rpb25zPy5maWx0ZXIoKHsgaWQgfSkgPT5cbiAgICAgICAgZmlsdGVyZWRQcm9wZXJ0aWVzLnNvbWUoKHsgZ3JvdXBJZCB9KSA9PiBncm91cElkID09PSBpZClcbiAgICAgICkgPz8gW107XG5cbiAgICByZXR1cm4gZ3JvdXBzLm1hcCgoc2VjdGlvbikgPT4gbmV3IEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdHcm91cFZpZXdNb2RlbCh0aGlzLmVudGl0eURlZiwgc2VjdGlvbikpO1xuICB9KTtcblxuICAvLyoqKioqKioqKioqKioqKioqKiBUaXRsZSAqKioqKioqKioqKioqKioqKiovL1xuICBwdWJsaWMgdGl0bGUgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcbiAgICBjb25zdCBzdWdnZXN0ZWRQcm9wcyA9IHRoaXMuZW50aXR5RGVmLnByb3BlcnRpZXMuZmluZCgoYykgPT4gWyd0aXRsZScsICduYW1lJywgJ2NvZGUnXS5pbmNsdWRlcyhjLm5hbWUpKTtcbiAgICBsZXQgc3VnZ2VzdGVkRm9ybWF0ID0gJ0l0ZW0gI3t7aWR9fSc7XG4gICAgaWYgKHN1Z2dlc3RlZFByb3BzKSBzdWdnZXN0ZWRGb3JtYXQgPSBge3ske3N1Z2dlc3RlZFByb3BzLm5hbWV9fX1gO1xuICAgIHJldHVybiB0aGlzLmZvcm1hdFNlcnZpY2UuZm9ybWF0KHRoaXMuX3ZpZXdEZWYudGl0bGUgPz8gc3VnZ2VzdGVkRm9ybWF0LCAnc3RyaW5nJywgdGhpcy5jb250ZXh0KCkpO1xuICB9KTtcbiAgLy8qKioqKioqKioqKioqKioqKiogRGVzY3JpcHRpb24gKioqKioqKioqKioqKioqKioqLy9cbiAgcHVibGljIGRlc2NyaXB0aW9uID0gY29tcHV0ZWQ8c3RyaW5nIHwgbnVsbD4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLl92aWV3RGVmLmRlc2NyaXB0aW9uXG4gICAgICA/IHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQodGhpcy5fdmlld0RlZi5kZXNjcmlwdGlvbiwgJ3N0cmluZycsIHRoaXMuY29udGV4dCgpKVxuICAgICAgOiBudWxsO1xuICB9KTtcblxuICAvLyoqKioqKioqKioqKioqKioqKiBCZWFyZGNydW1icyAqKioqKioqKioqKioqKioqKiovL1xuICBwdWJsaWMgYmVhcmRjcnVtYnMgPSBjb21wdXRlZDxBWFBCcmVhZGNydW1iSXRlbVtdPigoKSA9PiB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgdGl0bGU6IHRoaXMuZW50aXR5RGVmLmZvcm1hdHMucGx1cmFsID8/IHRoaXMuZW50aXR5RGVmLmZvcm1hdHMuaW5kaXZpZHVhbCxcbiAgICAgICAgY29tbWFuZDoge1xuICAgICAgICAgIG5hbWU6ICduYXZpZ2F0ZScsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgcGF0aDogYC8ke3RoaXMuc2Vzc2lvbi5hcHBsaWNhdGlvbj8ubmFtZX0vbS8ke3RoaXMuZW50aXR5RGVmLm1vZHVsZX0vZS8ke3RoaXMuZW50aXR5RGVmLm5hbWV9L2xpc3RgLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0aXRsZTogdGhpcy50aXRsZSgpLFxuICAgICAgfSxcbiAgICBdO1xuICB9KTtcblxuICBwdWJsaWMgcmVsYXRlZEVudGl0aWVzID0gY29tcHV0ZWQ8UHJvbWlzZTxBWFBFbnRpdHlEZXRhaWxMaXN0Vmlld01vZGVsW10+Pihhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVsYXRlZEVudGl0aWVzID1cbiAgICAgIHRoaXMuZW50aXR5RGVmLnJlbGF0ZWRFbnRpdGllcz8ubWFwKFxuICAgICAgICAocmUpID0+IG5ldyBBWFBFbnRpdHlEZXRhaWxMaXN0Vmlld01vZGVsKHRoaXMuaW5qZWN0b3IsIHJlLCB7IGVudGl0eTogdGhpcy5lbnRpdHlEZWYsIGRhdGE6IHRoaXMuZW50aXR5RGF0YSB9KVxuICAgICAgKSA/PyBbXTtcblxuICAgIGNvbnN0IGZpbHRlcmVkRW50aXRpZXMgPSBhd2FpdCBQcm9taXNlLmFsbChyZWxhdGVkRW50aXRpZXMubWFwKGFzeW5jIChyZSkgPT4gKChhd2FpdCByZS5oaWRkZW4oKSkgPyBudWxsIDogcmUpKSk7XG5cbiAgICByZXR1cm4gZmlsdGVyZWRFbnRpdGllcy5maWx0ZXIoKHJlKSA9PiByZSAhPT0gbnVsbCkgYXMgQVhQRW50aXR5RGV0YWlsTGlzdFZpZXdNb2RlbFtdO1xuICB9KTtcblxuICBwdWJsaWMgYXN5bmMgZXhlY3V0ZUNvbW1hbmQoY29tbWFuZE5hbWU6IHN0cmluZywgZGF0YTogYW55ID0gbnVsbCkge1xuICAgIC8vVE9ETzogc3ludGFjdCBmb3Igd29ya2Zsb3dcbiAgICBzd2l0Y2ggKGNvbW1hbmROYW1lKSB7XG4gICAgICBjYXNlICdtb2RpZnktZW50aXR5LXNlY3Rpb24nOiB7XG4gICAgICAgIHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnbW9kaWZ5LWVudGl0eS1zZWN0aW9uJywge1xuICAgICAgICAgIGVudGl0eTogZ2V0RW50aXR5SW5mbyh0aGlzLmVudGl0eURlZikuc291cmNlLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGlkOiB0aGlzLmNvbnRleHQoKS5pZCxcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IChkYXRhIGFzIEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdHcm91cFZpZXdNb2RlbCkuZWRpdGFibGVQcm9wcygpLm1hcCgobSkgPT4gbS5uYW1lKCkpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29uc3QgYWN0aW9uID0gdGhpcy5hY3Rpb25zKCkuZmluZCgoYykgPT4gYy5uYW1lID09IGNvbW1hbmROYW1lKTtcbiAgICAgICAgdGhpcy53b3JrZmxvdy5leGVjdXRlKGNvbW1hbmROYW1lLCB7XG4gICAgICAgICAgZW50aXR5OiBnZXRFbnRpdHlJbmZvKHRoaXMuZW50aXR5RGVmKS5zb3VyY2UsXG4gICAgICAgICAgZGF0YTogYWN0aW9uPy5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbCA/IHRoaXMuY29udGV4dCgpIDogbnVsbCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZShjb21tYW5kOiBBWFBFeGVjdXRlQ29tbWFuZCkge1xuICAgIHN3aXRjaCAoY29tbWFuZD8ubmFtZSkge1xuICAgICAgY2FzZSAnbmF2aWdhdGUnOlxuICAgICAgICBhd2FpdCB0aGlzLndvcmtmbG93LmV4ZWN1dGUoJ25hdmlnYXRlJywge1xuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHBhdGg6IGNvbW1hbmQub3B0aW9ucz8uWydwYXRoJ10sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5leGVjdXRlQ29tbWFuZChjb21tYW5kLm5hbWUsIGNvbW1hbmQub3B0aW9ucyk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICAvL1xuICAvL1xuICBkZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveWVkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3llZC5jb21wbGV0ZSgpO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5RGV0YWlsVmlld01vZGVsRmFjdG9yeSB7XG4gIHByaXZhdGUgZW50aXR5U2VydmljZSA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBsYXlvdXQgPSBpbmplY3QoQVhQTGF5b3V0VGhlbWVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgcHVibGljIGFzeW5jIGNyZWF0ZShtb2R1bGVOYW1lOiBzdHJpbmcsIGVudGl0eU5hbWU6IHN0cmluZywgaWQ6IHN0cmluZyk6IFByb21pc2U8QVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld01vZGVsPiB7XG4gICAgY29uc3QgY29uZmlnID0gYXdhaXQgdGhpcy5lbnRpdHlTZXJ2aWNlLnJlc29sdmUobW9kdWxlTmFtZSwgZW50aXR5TmFtZSk7XG4gICAgdGhpcy5sYXlvdXQuc2V0TmF2aWdhdGlvbkxvYWRpbmcodHJ1ZSk7XG4gICAgaWYgKGNvbmZpZy5xdWVyaWVzLmJ5S2V5KSB7XG4gICAgICBjb25zdCBmdW5jID0gY29uZmlnLnF1ZXJpZXMuYnlLZXkuZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBmdW5jKGlkKTtcbiAgICAgIHRoaXMubGF5b3V0LnNldE5hdmlnYXRpb25Mb2FkaW5nKGZhbHNlKTtcbiAgICAgIHJldHVybiBuZXcgQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld01vZGVsKHRoaXMuaW5qZWN0b3IsIGNvbmZpZywgZGF0YSk7XG4gICAgfVxuICAgIHRoaXMubGF5b3V0LnNldE5hdmlnYXRpb25Mb2FkaW5nKGZhbHNlKTtcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoJ2Nhbm5vdCBmZXRjaCAnKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgQVhQRW50aXR5RGV0YWlsVmlld01vZGVsUmVzb2x2ZXI6IFJlc29sdmVGbjxQcm9taXNlPEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbD4+ID0gKFxuICByb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsXG4gIHNlcnZpY2U6IEFYUEVudGl0eURldGFpbFZpZXdNb2RlbEZhY3RvcnkgPSBpbmplY3QoQVhQRW50aXR5RGV0YWlsVmlld01vZGVsRmFjdG9yeSlcbik6IFByb21pc2U8QVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld01vZGVsPiA9PiB7XG4gIGNvbnN0IG1vZHVsZU5hbWUgPSByb3V0ZS5wYXJlbnQ/LnBhcmFtTWFwLmdldCgnbW9kdWxlJykgYXMgc3RyaW5nO1xuICBjb25zdCBlbnRpdHlOYW1lID0gcm91dGUucGFyYW1NYXAuZ2V0KCdlbnRpdHknKSBhcyBzdHJpbmc7XG4gIGNvbnN0IGlkID0gcm91dGUucGFyYW1NYXAuZ2V0KCdpZCcpIGFzIHN0cmluZztcbiAgLy9cbiAgcmV0dXJuIHNlcnZpY2UuY3JlYXRlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUsIGlkKTtcbn07XG4iXX0=","import { inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\nexport class AXPEntityStorageService {\n}\nexport class AXPEntityDataProvider {\n}\nexport class AXPEntityDataProviderImpl {\n constructor(storageService, entityName) {\n this.storageService = storageService;\n this.entityName = entityName;\n }\n async initial(collection) {\n await this.storageService.initial(this.entityName, collection);\n }\n getOne(id) {\n return this.storageService.getOne(this.entityName, id);\n }\n getAll() {\n return this.storageService.getAll(this.entityName);\n }\n query(request) {\n return this.storageService.query(this.entityName, request);\n }\n updateOne(id, keyValues) {\n return this.storageService.updateOne(this.entityName, id, keyValues);\n }\n deleteOne(id) {\n return this.storageService.deleteOne(this.entityName, id);\n }\n insertOne(entity) {\n return this.storageService.insertOne(this.entityName, entity);\n }\n}\nexport class AXMEntityCrudService {\n}\nexport class AXMEntityCrudServiceImpl {\n constructor(entityName) {\n this.entityName = entityName;\n this._storageService = inject(AXPEntityStorageService);\n this.entityRegistery = inject(AXPEntityDefinitionRegistryService);\n this._entityDataProvider = new AXPEntityDataProviderImpl(this._storageService, this.entityName);\n }\n async insertOne(request) {\n return this._entityDataProvider.insertOne(request);\n }\n async getOne(id) {\n return this._entityDataProvider.getOne(id);\n }\n async deleteOne(id) {\n return this._entityDataProvider.deleteOne(id);\n }\n async updateOne(id, values) {\n return this._entityDataProvider.updateOne(id, values);\n }\n async query(request = { skip: 0, take: 100 }) {\n const [moduleName, entityName] = this._entityDataProvider.entityName.split('.');\n const entityRef = await this.entityRegistery.resolve(moduleName, entityName);\n if (entityRef.parentKey) {\n if (!request.filter?.filters?.length && request.filter?.field !== entityRef.parentKey) {\n request.filter = {\n value: true,\n field: entityRef.parentKey,\n operator: {\n type: 'isEmpty',\n },\n };\n }\n }\n return this._entityDataProvider.query(request);\n }\n // get entityDataProvider() {\n // return this._entityDataProvider;\n // }\n get storageService() {\n return this._storageService;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JhZ2Utc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS1zdG9yYWdlLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQVVoRixNQUFNLE9BQWdCLHVCQUF1QjtDQXNCNUM7QUFFRCxNQUFNLE9BQWdCLHFCQUFxQjtDQXNCMUM7QUFFRCxNQUFNLE9BQU8seUJBQXlCO0lBUXBDLFlBQ1UsY0FBK0YsRUFDaEcsVUFBa0I7UUFEakIsbUJBQWMsR0FBZCxjQUFjLENBQWlGO1FBQ2hHLGVBQVUsR0FBVixVQUFVLENBQVE7SUFDeEIsQ0FBQztJQUVKLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBd0I7UUFDcEMsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxNQUFNLENBQUMsRUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxLQUFLLENBQUMsT0FBd0I7UUFDNUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxTQUFTLENBQUMsRUFBUSxFQUFFLFNBQTBDO1FBQzVELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELFNBQVMsQ0FBQyxFQUFRO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQWtCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoRSxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQWdCLG9CQUFvQjtDQWdCekM7QUFFRCxNQUFNLE9BQU8sd0JBQXdCO0lBY25DLFlBQW9CLFVBQWtCO1FBQWxCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFQOUIsb0JBQWUsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNsRCxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQzdELHdCQUFtQixHQUFHLElBQUkseUJBQXlCLENBQ3pELElBQUksQ0FBQyxlQUFlLEVBQ3BCLElBQUksQ0FBQyxVQUFVLENBQ2hCLENBQUM7SUFFdUMsQ0FBQztJQUUxQyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQW1CO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFRO1FBQ25CLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFRO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFRLEVBQUUsTUFBdUM7UUFDL0QsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUEyQixFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRTtRQUMzRCxNQUFNLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hGLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzdFLElBQUksU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLEtBQUssU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN0RixPQUFPLENBQUMsTUFBTSxHQUFHO29CQUNmLEtBQUssRUFBRSxJQUFJO29CQUNYLEtBQUssRUFBRSxTQUFTLENBQUMsU0FBUztvQkFDMUIsUUFBUSxFQUFFO3dCQUNSLElBQUksRUFBRSxTQUFTO3FCQUNoQjtpQkFDRixDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELDZCQUE2QjtJQUM3QixxQ0FBcUM7SUFDckMsSUFBSTtJQUVKLElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi9lbnRpdHktcmVnaXN0ZXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQUGFnZWRMaXN0UmVzdWx0LCBBWFBRdWVyeVJlcXVlc3QgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHtcbiAgQVhQRW50aXR5Q3JlYXRlRHRvLFxuICBBWFBFbnRpdHlEZXRhaWxEdG8sXG4gIEFYUEVudGl0eUxpc3RJdGVtRHRvLFxuICBBWFBFbnRpdHlNb2RlbCxcbiAgQVhQRW50aXR5VXBkYXRlRHRvLFxufSBmcm9tICcuL2VudGl0eS50eXBlcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBFbnRpdHlTdG9yYWdlU2VydmljZTxcbiAgVEtleSxcbiAgVERldGFpbER0byBleHRlbmRzIEFYUEVudGl0eURldGFpbER0bzxUS2V5PiA9IEFYUEVudGl0eU1vZGVsPFRLZXk+LFxuICBUTGlzdEl0ZW1EdG8gZXh0ZW5kcyBBWFBFbnRpdHlMaXN0SXRlbUR0bzxUS2V5PiA9IFREZXRhaWxEdG8sXG4gIFRDcmVhdGVEdG8gZXh0ZW5kcyBBWFBFbnRpdHlDcmVhdGVEdG8gPSBURGV0YWlsRHRvLFxuICBUVXBkYXRlRHRvIGV4dGVuZHMgQVhQRW50aXR5VXBkYXRlRHRvPFRLZXk+ID0gVERldGFpbER0byxcbj4ge1xuICBhYnN0cmFjdCBnZXQgZGJOYW1lKCk6IHN0cmluZztcblxuICBhYnN0cmFjdCBpbml0aWFsKGVudGl0eU5hbWU6IHN0cmluZywgY29sbGVjdGlvbjogVENyZWF0ZUR0b1tdKTogUHJvbWlzZTxUQ3JlYXRlRHRvW10+O1xuXG4gIGFic3RyYWN0IGdldE9uZShlbnRpdHlOYW1lOiBzdHJpbmcsIGlkOiBUS2V5KTogUHJvbWlzZTxURGV0YWlsRHRvPjtcblxuICBhYnN0cmFjdCB1cGRhdGVPbmUoZW50aXR5TmFtZTogc3RyaW5nLCBpZDogVEtleSwga2V5VmFsdWVzOiBPbWl0PFBhcnRpYWw8VFVwZGF0ZUR0bz4sICdpZCc+KTogUHJvbWlzZTxURGV0YWlsRHRvPjtcblxuICBhYnN0cmFjdCBkZWxldGVPbmUoZW50aXR5TmFtZTogc3RyaW5nLCBpZDogVEtleSk6IFByb21pc2U8dm9pZD47XG5cbiAgYWJzdHJhY3QgaW5zZXJ0T25lKGVudGl0eU5hbWU6IHN0cmluZywgZW50aXR5OiBUQ3JlYXRlRHRvKTogUHJvbWlzZTxUS2V5PjtcblxuICBhYnN0cmFjdCBnZXRBbGwoZW50aXR5TmFtZTogc3RyaW5nKTogUHJvbWlzZTxUTGlzdEl0ZW1EdG9bXT47XG5cbiAgYWJzdHJhY3QgcXVlcnkoZW50aXR5TmFtZTogc3RyaW5nLCByZXF1ZXN0OiBBWFBRdWVyeVJlcXVlc3QpOiBQcm9taXNlPEFYUFBhZ2VkTGlzdFJlc3VsdDxUTGlzdEl0ZW1EdG8+Pjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUEVudGl0eURhdGFQcm92aWRlcjxcbiAgVEtleSxcbiAgVERldGFpbER0byBleHRlbmRzIEFYUEVudGl0eURldGFpbER0bzxUS2V5PiA9IEFYUEVudGl0eU1vZGVsPFRLZXk+LFxuICBUTGlzdEl0ZW1EdG8gZXh0ZW5kcyBBWFBFbnRpdHlMaXN0SXRlbUR0bzxUS2V5PiA9IFREZXRhaWxEdG8sXG4gIFRDcmVhdGVEdG8gZXh0ZW5kcyBBWFBFbnRpdHlDcmVhdGVEdG8gPSBURGV0YWlsRHRvLFxuICBUVXBkYXRlRHRvIGV4dGVuZHMgQVhQRW50aXR5VXBkYXRlRHRvPFRLZXk+ID0gVERldGFpbER0byxcbj4ge1xuICBhYnN0cmFjdCBnZXQgZW50aXR5TmFtZSgpOiBzdHJpbmc7XG5cbiAgYWJzdHJhY3QgaW5pdGlhbChjb2xsZWN0aW9uOiBUQ3JlYXRlRHRvW10pOiBQcm9taXNlPHZvaWQ+O1xuXG4gIGFic3RyYWN0IGdldE9uZShpZDogVEtleSk6IFByb21pc2U8VERldGFpbER0bz47XG5cbiAgYWJzdHJhY3QgZ2V0QWxsKCk6IFByb21pc2U8VExpc3RJdGVtRHRvW10+O1xuXG4gIGFic3RyYWN0IHVwZGF0ZU9uZShpZDogVEtleSwga2V5VmFsdWVzOiBPbWl0PFBhcnRpYWw8VFVwZGF0ZUR0bz4sICdpZCc+KTogUHJvbWlzZTxURGV0YWlsRHRvPjtcblxuICBhYnN0cmFjdCBkZWxldGVPbmUoaWQ6IFRLZXkpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIGFic3RyYWN0IGluc2VydE9uZShlbnRpdHk6IFRDcmVhdGVEdG8pOiBQcm9taXNlPFRLZXk+O1xuXG4gIGFic3RyYWN0IHF1ZXJ5KHJlcXVlc3Q6IEFYUFF1ZXJ5UmVxdWVzdCk6IFByb21pc2U8QVhQUGFnZWRMaXN0UmVzdWx0PFRMaXN0SXRlbUR0bz4+O1xufVxuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5RGF0YVByb3ZpZGVySW1wbDxcbiAgVEtleSxcbiAgVERldGFpbER0byBleHRlbmRzIEFYUEVudGl0eURldGFpbER0bzxUS2V5PiA9IEFYUEVudGl0eU1vZGVsPFRLZXk+LFxuICBUTGlzdEl0ZW1EdG8gZXh0ZW5kcyBBWFBFbnRpdHlMaXN0SXRlbUR0bzxUS2V5PiA9IFREZXRhaWxEdG8sXG4gIFRDcmVhdGVEdG8gZXh0ZW5kcyBBWFBFbnRpdHlDcmVhdGVEdG8gPSBURGV0YWlsRHRvLFxuICBUVXBkYXRlRHRvIGV4dGVuZHMgQVhQRW50aXR5VXBkYXRlRHRvPFRLZXk+ID0gVERldGFpbER0byxcbj4gaW1wbGVtZW50cyBBWFBFbnRpdHlEYXRhUHJvdmlkZXI8VEtleSwgVERldGFpbER0bywgVExpc3RJdGVtRHRvLCBUQ3JlYXRlRHRvLCBUVXBkYXRlRHRvPlxue1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBBWFBFbnRpdHlTdG9yYWdlU2VydmljZTxUS2V5LCBURGV0YWlsRHRvLCBUTGlzdEl0ZW1EdG8sIFRDcmVhdGVEdG8sIFRVcGRhdGVEdG8+LFxuICAgIHB1YmxpYyBlbnRpdHlOYW1lOiBzdHJpbmcsXG4gICkge31cblxuICBhc3luYyBpbml0aWFsKGNvbGxlY3Rpb246IFRDcmVhdGVEdG9bXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuc3RvcmFnZVNlcnZpY2UuaW5pdGlhbCh0aGlzLmVudGl0eU5hbWUsIGNvbGxlY3Rpb24pO1xuICB9XG5cbiAgZ2V0T25lKGlkOiBUS2V5KTogUHJvbWlzZTxURGV0YWlsRHRvPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0T25lKHRoaXMuZW50aXR5TmFtZSwgaWQpO1xuICB9XG5cbiAgZ2V0QWxsKCk6IFByb21pc2U8VExpc3RJdGVtRHRvW10+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRBbGwodGhpcy5lbnRpdHlOYW1lKTtcbiAgfVxuXG4gIHF1ZXJ5KHJlcXVlc3Q6IEFYUFF1ZXJ5UmVxdWVzdCk6IFByb21pc2U8QVhQUGFnZWRMaXN0UmVzdWx0PFRMaXN0SXRlbUR0bz4+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5xdWVyeSh0aGlzLmVudGl0eU5hbWUsIHJlcXVlc3QpO1xuICB9XG5cbiAgdXBkYXRlT25lKGlkOiBUS2V5LCBrZXlWYWx1ZXM6IE9taXQ8UGFydGlhbDxUVXBkYXRlRHRvPiwgJ2lkJz4pOiBQcm9taXNlPFREZXRhaWxEdG8+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS51cGRhdGVPbmUodGhpcy5lbnRpdHlOYW1lLCBpZCwga2V5VmFsdWVzKTtcbiAgfVxuXG4gIGRlbGV0ZU9uZShpZDogVEtleSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmRlbGV0ZU9uZSh0aGlzLmVudGl0eU5hbWUsIGlkKTtcbiAgfVxuXG4gIGluc2VydE9uZShlbnRpdHk6IFRDcmVhdGVEdG8pOiBQcm9taXNlPFRLZXk+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5pbnNlcnRPbmUodGhpcy5lbnRpdHlOYW1lLCBlbnRpdHkpO1xuICB9XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWE1FbnRpdHlDcnVkU2VydmljZTxcbiAgVEtleSxcbiAgVERldGFpbER0byBleHRlbmRzIEFYUEVudGl0eURldGFpbER0bzxUS2V5PiA9IEFYUEVudGl0eU1vZGVsPFRLZXk+LFxuICBUTGlzdEl0ZW1EdG8gZXh0ZW5kcyBBWFBFbnRpdHlMaXN0SXRlbUR0bzxUS2V5PiA9IFREZXRhaWxEdG8sXG4gIFRDcmVhdGVEdG8gZXh0ZW5kcyBBWFBFbnRpdHlDcmVhdGVEdG8gPSBURGV0YWlsRHRvLFxuICBUVXBkYXRlRHRvIGV4dGVuZHMgQVhQRW50aXR5VXBkYXRlRHRvPFRLZXk+ID0gVERldGFpbER0byxcbj4ge1xuICBhYnN0cmFjdCBpbnNlcnRPbmUocmVxdWVzdDogVENyZWF0ZUR0byk6IFByb21pc2U8VEtleT47XG5cbiAgYWJzdHJhY3QgZ2V0T25lKGlkOiBUS2V5KTogUHJvbWlzZTxURGV0YWlsRHRvPjtcblxuICBhYnN0cmFjdCBkZWxldGVPbmUoaWQ6IFRLZXkpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIGFic3RyYWN0IHVwZGF0ZU9uZShpZDogVEtleSwgdmFsdWVzOiBPbWl0PFBhcnRpYWw8VFVwZGF0ZUR0bz4sICdpZCc+KTogUHJvbWlzZTxURGV0YWlsRHRvPjtcblxuICBhYnN0cmFjdCBxdWVyeShyZXF1ZXN0OiBBWFBRdWVyeVJlcXVlc3QpOiBQcm9taXNlPEFYUFBhZ2VkTGlzdFJlc3VsdDxUTGlzdEl0ZW1EdG8+Pjtcbn1cblxuZXhwb3J0IGNsYXNzIEFYTUVudGl0eUNydWRTZXJ2aWNlSW1wbDxcbiAgVEtleSxcbiAgVERldGFpbER0byBleHRlbmRzIEFYUEVudGl0eURldGFpbER0bzxUS2V5PiA9IEFYUEVudGl0eU1vZGVsPFRLZXk+LFxuICBUTGlzdEl0ZW1EdG8gZXh0ZW5kcyBBWFBFbnRpdHlMaXN0SXRlbUR0bzxUS2V5PiA9IFREZXRhaWxEdG8sXG4gIFRDcmVhdGVEdG8gZXh0ZW5kcyBBWFBFbnRpdHlDcmVhdGVEdG8gPSBPbWl0PFREZXRhaWxEdG8sICdpZCc+LFxuICBUVXBkYXRlRHRvIGV4dGVuZHMgQVhQRW50aXR5VXBkYXRlRHRvPFRLZXk+ID0gVERldGFpbER0byxcbj4ge1xuICBwcml2YXRlIF9zdG9yYWdlU2VydmljZSA9IGluamVjdChBWFBFbnRpdHlTdG9yYWdlU2VydmljZSk7XG4gIHByaXZhdGUgZW50aXR5UmVnaXN0ZXJ5ID0gaW5qZWN0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xuICBwcml2YXRlIF9lbnRpdHlEYXRhUHJvdmlkZXIgPSBuZXcgQVhQRW50aXR5RGF0YVByb3ZpZGVySW1wbDxUS2V5LCBURGV0YWlsRHRvLCBUTGlzdEl0ZW1EdG8sIFRDcmVhdGVEdG8sIFRVcGRhdGVEdG8+KFxuICAgIHRoaXMuX3N0b3JhZ2VTZXJ2aWNlLFxuICAgIHRoaXMuZW50aXR5TmFtZSxcbiAgKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVudGl0eU5hbWU6IHN0cmluZykge31cblxuICBhc3luYyBpbnNlcnRPbmUocmVxdWVzdDogVENyZWF0ZUR0byk6IFByb21pc2U8VEtleT4ge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdHlEYXRhUHJvdmlkZXIuaW5zZXJ0T25lKHJlcXVlc3QpO1xuICB9XG5cbiAgYXN5bmMgZ2V0T25lKGlkOiBUS2V5KTogUHJvbWlzZTxURGV0YWlsRHRvPiB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eURhdGFQcm92aWRlci5nZXRPbmUoaWQpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlT25lKGlkOiBUS2V5KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eURhdGFQcm92aWRlci5kZWxldGVPbmUoaWQpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlT25lKGlkOiBUS2V5LCB2YWx1ZXM6IE9taXQ8UGFydGlhbDxUVXBkYXRlRHRvPiwgJ2lkJz4pOiBQcm9taXNlPFREZXRhaWxEdG8+IHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5RGF0YVByb3ZpZGVyLnVwZGF0ZU9uZShpZCwgdmFsdWVzKTtcbiAgfVxuXG4gIGFzeW5jIHF1ZXJ5KHJlcXVlc3Q6IEFYUFF1ZXJ5UmVxdWVzdCA9IHsgc2tpcDogMCwgdGFrZTogMTAwIH0pOiBQcm9taXNlPEFYUFBhZ2VkTGlzdFJlc3VsdDxUTGlzdEl0ZW1EdG8+PiB7XG4gICAgY29uc3QgW21vZHVsZU5hbWUsIGVudGl0eU5hbWVdID0gdGhpcy5fZW50aXR5RGF0YVByb3ZpZGVyLmVudGl0eU5hbWUuc3BsaXQoJy4nKTtcbiAgICBjb25zdCBlbnRpdHlSZWYgPSBhd2FpdCB0aGlzLmVudGl0eVJlZ2lzdGVyeS5yZXNvbHZlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xuICAgIGlmIChlbnRpdHlSZWYucGFyZW50S2V5KSB7XG4gICAgICBpZiAoIXJlcXVlc3QuZmlsdGVyPy5maWx0ZXJzPy5sZW5ndGggJiYgcmVxdWVzdC5maWx0ZXI/LmZpZWxkICE9PSBlbnRpdHlSZWYucGFyZW50S2V5KSB7XG4gICAgICAgIHJlcXVlc3QuZmlsdGVyID0ge1xuICAgICAgICAgIHZhbHVlOiB0cnVlLFxuICAgICAgICAgIGZpZWxkOiBlbnRpdHlSZWYucGFyZW50S2V5LFxuICAgICAgICAgIG9wZXJhdG9yOiB7XG4gICAgICAgICAgICB0eXBlOiAnaXNFbXB0eScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eURhdGFQcm92aWRlci5xdWVyeShyZXF1ZXN0KTtcbiAgfVxuXG4gIC8vIGdldCBlbnRpdHlEYXRhUHJvdmlkZXIoKSB7XG4gIC8vICAgcmV0dXJuIHRoaXMuX2VudGl0eURhdGFQcm92aWRlcjtcbiAgLy8gfVxuXG4gIGdldCBzdG9yYWdlU2VydmljZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RvcmFnZVNlcnZpY2U7XG4gIH1cbn1cbiJdfQ==","export class AXPEntityCommandSearchDefinitionProvider {\n async provide(context) {\n context.addDefinition('command', 'Commands', 'command', 'fa-solid fa-command', 1, {\n format: {\n id: '{{id}}',\n },\n actions: [\n {\n name: 'open-entity',\n type: 'view',\n priority: 'primary',\n },\n ],\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRlZmluaXRpb24tY29tbWFuZC5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3NlYXJjaC1kZWZpbml0aW9uLWNvbW1hbmQucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLHdDQUF3QztJQUNuRCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQTJDO1FBQ3ZELE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxFQUFFO1lBQ2hGLE1BQU0sRUFBRTtnQkFDTixFQUFFLEVBQUUsUUFBUTthQUNiO1lBQ0QsT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxhQUFhO29CQUNuQixJQUFJLEVBQUUsTUFBTTtvQkFDWixRQUFRLEVBQUUsU0FBUztpQkFDcEI7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFNlYXJjaERlZmluaXRpb25Qcm92aWRlciwgQVhQU2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUNvbW1hbmRTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIgaW1wbGVtZW50cyBBWFBTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIge1xuICBhc3luYyBwcm92aWRlKGNvbnRleHQ6IEFYUFNlYXJjaERlZmluaXRpb25Qcm92aWRlckNvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb250ZXh0LmFkZERlZmluaXRpb24oJ2NvbW1hbmQnLCAnQ29tbWFuZHMnLCAnY29tbWFuZCcsICdmYS1zb2xpZCBmYS1jb21tYW5kJywgMSwge1xuICAgICAgZm9ybWF0OiB7XG4gICAgICAgIGlkOiAne3tpZH19JyxcbiAgICAgIH0sXG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnb3Blbi1lbnRpdHknLFxuICAgICAgICAgIHR5cGU6ICd2aWV3JyxcbiAgICAgICAgICBwcmlvcml0eTogJ3ByaW1hcnknLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxufVxuIl19","import { inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\nexport class AXPEntitySearchDefinitionProvider {\n constructor() {\n this.entityRegister = inject(AXPEntityDefinitionRegistryService);\n }\n async provide(context) {\n console.log(this.entityRegister.getAll());\n this.entityRegister.getAll().forEach((entity) => {\n context.addDefinition(`Module.${entity.module}.${entity.name}`, entity.formats.searchResult?.description ?? entity.module, `Module.${entity.module}`, 'fa-solid fa-objects-column', 4, {\n actions: [\n {\n name: 'open-entity',\n type: 'view',\n priority: 'primary',\n },\n ],\n format: {\n title: entity.formats.searchResult?.title,\n description: (entity.formats.searchResult?.description ?? entity.module) + ' / ' + entity.title,\n id: '{{data.id}}',\n },\n });\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRlZmluaXRpb24ucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi9zZWFyY2gtZGVmaW5pdGlvbi5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhGLE1BQU0sT0FBTyxpQ0FBaUM7SUFBOUM7UUFDRSxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0lBNkI5RCxDQUFDO0lBM0JDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBMkM7UUFDdkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFMUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM5QyxPQUFPLENBQUMsYUFBYSxDQUNuQixVQUFVLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxFQUN4QyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxXQUFXLElBQUksTUFBTSxDQUFDLE1BQU0sRUFDekQsVUFBVSxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQ3pCLDRCQUE0QixFQUM1QixDQUFDLEVBQ0Q7Z0JBQ0UsT0FBTyxFQUFFO29CQUNQO3dCQUNFLElBQUksRUFBRSxhQUFhO3dCQUNuQixJQUFJLEVBQUUsTUFBTTt3QkFDWixRQUFRLEVBQUUsU0FBUztxQkFDcEI7aUJBQ0Y7Z0JBQ0QsTUFBTSxFQUFFO29CQUNOLEtBQUssRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxLQUFLO29CQUN6QyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxXQUFXLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSztvQkFDL0YsRUFBRSxFQUFFLGFBQWE7aUJBQ2xCO2FBQ0YsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIsIEFYUFNlYXJjaERlZmluaXRpb25Qcm92aWRlckNvbnRleHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZSc7XG5cbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIgaW1wbGVtZW50cyBBWFBTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIge1xuICBlbnRpdHlSZWdpc3RlciA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcblxuICBhc3luYyBwcm92aWRlKGNvbnRleHQ6IEFYUFNlYXJjaERlZmluaXRpb25Qcm92aWRlckNvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmVudGl0eVJlZ2lzdGVyLmdldEFsbCgpKTtcblxuICAgIHRoaXMuZW50aXR5UmVnaXN0ZXIuZ2V0QWxsKCkuZm9yRWFjaCgoZW50aXR5KSA9PiB7XG4gICAgICBjb250ZXh0LmFkZERlZmluaXRpb24oXG4gICAgICAgIGBNb2R1bGUuJHtlbnRpdHkubW9kdWxlfS4ke2VudGl0eS5uYW1lfWAsXG4gICAgICAgIGVudGl0eS5mb3JtYXRzLnNlYXJjaFJlc3VsdD8uZGVzY3JpcHRpb24gPz8gZW50aXR5Lm1vZHVsZSxcbiAgICAgICAgYE1vZHVsZS4ke2VudGl0eS5tb2R1bGV9YCxcbiAgICAgICAgJ2ZhLXNvbGlkIGZhLW9iamVjdHMtY29sdW1uJyxcbiAgICAgICAgNCxcbiAgICAgICAge1xuICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ29wZW4tZW50aXR5JyxcbiAgICAgICAgICAgICAgdHlwZTogJ3ZpZXcnLFxuICAgICAgICAgICAgICBwcmlvcml0eTogJ3ByaW1hcnknLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGZvcm1hdDoge1xuICAgICAgICAgICAgdGl0bGU6IGVudGl0eS5mb3JtYXRzLnNlYXJjaFJlc3VsdD8udGl0bGUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogKGVudGl0eS5mb3JtYXRzLnNlYXJjaFJlc3VsdD8uZGVzY3JpcHRpb24gPz8gZW50aXR5Lm1vZHVsZSkgKyAnIC8gJyArIGVudGl0eS50aXRsZSxcbiAgICAgICAgICAgIGlkOiAne3tkYXRhLmlkfX0nLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { AXLoadingModule } from '@acorex/components/loading';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { ChangeDetectionStrategy, Component, computed, effect, HostBinding, inject, signal } from '@angular/core';\nimport { AXPEntityResolver } from '../../entity.config';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { castArray, isNil } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/loading\";\nimport * as i2 from \"@acorex/components/badge\";\nexport class AXPLookupWidgetViewComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n this.formatService = inject(AXFormatService);\n this.entityResolver = inject(AXPEntityResolver);\n this.entity = computed(() => this.options()['entity']);\n this.multiple = computed(() => this.options()['multiple']);\n this.valueField = computed(() => this.options()['valueField'] ?? 'id');\n this.textField = computed(() => this.options()['textField'] ?? 'title');\n this.displayField = computed(() => {\n return this.textField() ?? this.entityDef()?.formats.lookup ?? this.entityDef()?.properties.find((c) => c.name != 'id')?.name ?? 'title';\n });\n this.loading = signal(false);\n this.entityDef = signal(null);\n this.displayItems = signal([]);\n this.efEntity = effect(async () => {\n const [module, entity] = this.entity().split('.');\n this.entityDef.set(await this.entityResolver.get(module, entity));\n });\n this.efDisplay = effect(async () => {\n const value = this.getValue();\n if (isNil(value)) {\n this.displayItems.set([]);\n }\n else {\n const items = castArray(value).map(async (item) => await this.extractItem(item));\n this.displayItems.set(await Promise.all(items));\n }\n });\n }\n async extractItem(item) {\n if (typeof item == 'object') {\n return {\n id: item[this.valueField()],\n text: this.formatService.format(this.displayField(), 'string', item),\n };\n }\n else {\n const def = this.entityDef();\n const byKey = def?.queries.byKey?.execute;\n if (byKey) {\n this.loading.set(true);\n const fetchedItem = await byKey(item);\n this.loading.set(false);\n return {\n id: fetchedItem[this.valueField()],\n text: this.formatService.format(this.displayField(), 'string', fetchedItem),\n };\n }\n return {\n id: item,\n text: item\n };\n }\n }\n get __class() {\n const cls = {};\n cls[`ax-flex`] = true;\n cls[`ax-gap-1`] = true;\n return cls;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPLookupWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", type: AXPLookupWidgetViewComponent, isStandalone: true, selector: \"axp-lookup-widget-view\", host: { properties: { \"class\": \"this.__class\" } }, usesInheritance: true, ngImport: i0, template: `\n @if(loading())\n {\n <ax-loading></ax-loading>\n }\n @else{\n @for (item of displayItems(); track $index) {\n <ax-badge [look]=\"'twotone'\" [text]=\"item.text\" color=\"primary\"></ax-badge>\n }\n }\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXLoadingModule }, { kind: \"component\", type: i1.AXLoadingComponent, selector: \"ax-loading\", inputs: [\"visible\", \"type\", \"context\"], outputs: [\"visibleChange\"] }, { kind: \"ngmodule\", type: AXBadgeModule }, { kind: \"component\", type: i2.AXBadgeComponent, selector: \"ax-badge\", inputs: [\"color\", \"text\", \"look\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPLookupWidgetViewComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-lookup-widget-view',\n template: `\n @if(loading())\n {\n <ax-loading></ax-loading>\n }\n @else{\n @for (item of displayItems(); track $index) {\n <ax-badge [look]=\"'twotone'\" [text]=\"item.text\" color=\"primary\"></ax-badge>\n }\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXLoadingModule, AXBadgeModule]\n }]\n }], propDecorators: { __class: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvbG9va3VwLXdpZGdldC9sb29rdXAtd2lkZ2V0LXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQzs7OztBQWtCN0MsTUFBTSxPQUFPLDRCQUE2QixTQUFRLHVCQUE0QjtJQWhCOUU7O1FBaUJxQixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN4QyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBR3BELFdBQU0sR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBVyxDQUFDLENBQUM7UUFDcEUsYUFBUSxHQUFHLFFBQVEsQ0FBVSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFZLENBQUMsQ0FB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TyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDeEIsT0FBTztvQkFDTCxFQUFFLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDbEMsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxRQUFRLEVBQUUsV0FBVyxDQUFDO2lCQUM1RSxDQUFBO1lBQ0gsQ0FBQztZQUNELE9BQU87Z0JBQ0wsRUFBRSxFQUFFLElBQUk7Z0JBQ1IsSUFBSSxFQUFFLElBQUk7YUFDWCxDQUFBO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxJQUNZLE9BQU87UUFDakIsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDdEIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN2QixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7OEdBckVVLDRCQUE0QjtrR0FBNUIsNEJBQTRCLDRKQWQ3Qjs7Ozs7Ozs7OztHQVVULDJEQUVTLGVBQWUsOEtBQUUsYUFBYTs7MkZBRTdCLDRCQUE0QjtrQkFoQnhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsUUFBUSxFQUFFOzs7Ozs7Ozs7O0dBVVQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLGVBQWUsRUFBRSxhQUFhLENBQUM7aUJBQzFDOzhCQWlFYSxPQUFPO3NCQURsQixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWExvYWRpbmdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWEZvcm1hdFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvZm9ybWF0JztcbmltcG9ydCB7IEFYUEVudGl0eSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIEhvc3RCaW5kaW5nLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRW50aXR5UmVzb2x2ZXIgfSBmcm9tICcuLi8uLi9lbnRpdHkuY29uZmlnJztcbmltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgY2FzdEFycmF5LCBpc05pbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1sb29rdXAtd2lkZ2V0LXZpZXcnLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZihsb2FkaW5nKCkpXG4gICAge1xuICAgICAgPGF4LWxvYWRpbmc+PC9heC1sb2FkaW5nPlxuICAgIH1cbiAgICBAZWxzZXtcbiAgICAgIEBmb3IgKGl0ZW0gb2YgZGlzcGxheUl0ZW1zKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8YXgtYmFkZ2UgIFtsb29rXT1cIid0d290b25lJ1wiIFt0ZXh0XT1cIml0ZW0udGV4dFwiIGNvbG9yPVwicHJpbWFyeVwiPjwvYXgtYmFkZ2U+XG4gICAgICB9XG4gICAgfVxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0FYTG9hZGluZ01vZHVsZSwgQVhCYWRnZU1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgQVhQTG9va3VwV2lkZ2V0Vmlld0NvbXBvbmVudCBleHRlbmRzIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50PGFueT4ge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZm9ybWF0U2VydmljZSA9IGluamVjdChBWEZvcm1hdFNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZW50aXR5UmVzb2x2ZXIgPSBpbmplY3QoQVhQRW50aXR5UmVzb2x2ZXIpO1xuXG5cbiAgcHJvdGVjdGVkIGVudGl0eSA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ2VudGl0eSddIGFzIHN0cmluZyk7XG4gIHByb3RlY3RlZCBtdWx0aXBsZSA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMub3B0aW9ucygpWydtdWx0aXBsZSddIGFzIGJvb2xlYW4pO1xuICBwcm90ZWN0ZWQgdmFsdWVGaWVsZCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gKHRoaXMub3B0aW9ucygpWyd2YWx1ZUZpZWxkJ10gYXMgc3RyaW5nKSA/PyAnaWQnKTtcbiAgcHJvdGVjdGVkIHRleHRGaWVsZCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gKHRoaXMub3B0aW9ucygpWyd0ZXh0RmllbGQnXSBhcyBzdHJpbmcpID8/ICd0aXRsZScpO1xuXG4gIHByb3RlY3RlZCBkaXNwbGF5RmllbGQgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy50ZXh0RmllbGQoKSA/PyB0aGlzLmVudGl0eURlZigpPy5mb3JtYXRzLmxvb2t1cCA/PyB0aGlzLmVudGl0eURlZigpPy5wcm9wZXJ0aWVzLmZpbmQoKGMpID0+IGMubmFtZSAhPSAnaWQnKT8ubmFtZSA/PyAndGl0bGUnO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgbG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHByaXZhdGUgZW50aXR5RGVmID0gc2lnbmFsPEFYUEVudGl0eSB8IG51bGw+KG51bGwpO1xuXG4gIHByb3RlY3RlZCBkaXNwbGF5SXRlbXMgPSBzaWduYWw8YW55W10+KFtdKTtcblxuXG4gIHByaXZhdGUgZWZFbnRpdHkgPSBlZmZlY3QoYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IFttb2R1bGUsIGVudGl0eV0gPSB0aGlzLmVudGl0eSgpLnNwbGl0KCcuJyk7XG4gICAgdGhpcy5lbnRpdHlEZWYuc2V0KGF3YWl0IHRoaXMuZW50aXR5UmVzb2x2ZXIuZ2V0KG1vZHVsZSwgZW50aXR5KSk7XG4gIH0pO1xuXG4gIHByaXZhdGUgZWZEaXNwbGF5ID0gZWZmZWN0KGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICBpZiAoaXNOaWwodmFsdWUpKSB7XG4gICAgICB0aGlzLmRpc3BsYXlJdGVtcy5zZXQoW10pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNvbnN0IGl0ZW1zID0gY2FzdEFycmF5KHZhbHVlKS5tYXAoYXN5bmMgKGl0ZW06IGFueSkgPT4gYXdhaXQgdGhpcy5leHRyYWN0SXRlbShpdGVtKSk7XG4gICAgICB0aGlzLmRpc3BsYXlJdGVtcy5zZXQoYXdhaXQgUHJvbWlzZS5hbGwoaXRlbXMpKTtcbiAgICB9XG4gIH0pXG5cblxuICBwcml2YXRlIGFzeW5jIGV4dHJhY3RJdGVtKGl0ZW06IGFueSkge1xuICAgIGlmICh0eXBlb2YgaXRlbSA9PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IGl0ZW1bdGhpcy52YWx1ZUZpZWxkKCldLFxuICAgICAgICB0ZXh0OiB0aGlzLmZvcm1hdFNlcnZpY2UuZm9ybWF0KHRoaXMuZGlzcGxheUZpZWxkKCksICdzdHJpbmcnLCBpdGVtKSxcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBjb25zdCBkZWYgPSB0aGlzLmVudGl0eURlZigpO1xuICAgICAgY29uc3QgYnlLZXkgPSBkZWY/LnF1ZXJpZXMuYnlLZXk/LmV4ZWN1dGUgYXMgRnVuY3Rpb247XG4gICAgICBpZiAoYnlLZXkpIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nLnNldCh0cnVlKTtcbiAgICAgICAgY29uc3QgZmV0Y2hlZEl0ZW0gPSBhd2FpdCBieUtleShpdGVtKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaWQ6IGZldGNoZWRJdGVtW3RoaXMudmFsdWVGaWVsZCgpXSxcbiAgICAgICAgICB0ZXh0OiB0aGlzLmZvcm1hdFNlcnZpY2UuZm9ybWF0KHRoaXMuZGlzcGxheUZpZWxkKCksICdzdHJpbmcnLCBmZXRjaGVkSXRlbSksXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBpdGVtLFxuICAgICAgICB0ZXh0OiBpdGVtXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIHByaXZhdGUgZ2V0IF9fY2xhc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjbHM6IGFueSA9IHt9O1xuICAgIGNsc1tgYXgtZmxleGBdID0gdHJ1ZTtcbiAgICBjbHNbYGF4LWdhcC0xYF0gPSB0cnVlO1xuICAgIHJldHVybiBjbHM7XG4gIH1cbn1cbiJdfQ==","import { AXCommonModule } from '@acorex/cdk/common';\nimport { AXDataTableModule, } from '@acorex/components/data-table';\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, signal, viewChild } from '@angular/core';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@acorex/cdk/common\";\nimport * as i3 from \"@acorex/components/button\";\nimport * as i4 from \"@acorex/components/decorators\";\nimport * as i5 from \"@acorex/components/data-table\";\nimport * as i6 from \"@acorex/components/search-box\";\nimport * as i7 from \"@acorex/platform/layout/builder\";\nimport * as i8 from \"@acorex/core/translation\";\nexport class AXPLookupWidgetSelectorComponent extends AXBasePageComponent {\n constructor() {\n super(...arguments);\n this.grid = viewChild('grid');\n this.initialSelectedItems = [];\n this.selectedItems = signal([]);\n this.allowSelect = computed(() => this.selectedItems().length > 0);\n }\n ngAfterViewInit() {\n if (this.initialSelectedItems.length > 0 && this.grid()) {\n this.grid()?.selectRows(...this.initialSelectedItems);\n }\n if (this.searchTerm) {\n this.vm.applyInlineFilter(this.searchTerm);\n }\n else {\n this.vm.applyFilterAndSort();\n }\n }\n handleRowDbClick(e) {\n this.close({ items: [e.data] });\n }\n handleRowClick(e) {\n if (this.vm.allowMultiple()) {\n this.selectedItems.set([...this.selectedItems(), e.data]);\n }\n else if (this.selectedItems().length > 0) {\n const selected = this.selectedItems().find((item) => item.id === e.data.id);\n if (selected) {\n this.selectedItems.set(this.selectedItems().filter((item) => item.id !== selected.id));\n }\n else {\n this.selectedItems.set([e.data]);\n }\n }\n else if (this.selectedItems().length === 0) {\n this.selectedItems.set([e.data]);\n }\n else {\n this.selectedItems.set([e.data]);\n }\n }\n async handleSelectedRowsChange(rows) {\n this.selectedItems.set(rows);\n }\n handleChangeSearchValue(e) {\n if (e.isUserInteraction) {\n this.vm.applyInlineFilter(e.value);\n }\n }\n async handleCreateNewClick() {\n this.close();\n await this.vm.create();\n }\n handleCloseClick() {\n this.close();\n }\n handleSelectClick() {\n this.close({ items: this.selectedItems() });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPLookupWidgetSelectorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", type: AXPLookupWidgetSelectorComponent, isStandalone: true, selector: \"ng-component\", viewQueries: [{ propertyName: \"grid\", first: true, predicate: [\"grid\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `\n <div class=\"ax-p-4 ax-flex ax-flex-col ax-gap-4 ax-overflow-hidden\">\n @if (vm.hasInlineFilters()) {\n <div class=\"ax-w-full\">\n <ax-search-box\n [placeholder]=\"('widget.lookup.search' | translate | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n [value]=\"searchTerm\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n [axAutoFocus]=\"true\"\n ><ax-clear-button></ax-clear-button\n ></ax-search-box>\n </div>\n }\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-h-[50vh]\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm.dataSource\"\n [parentField]=\"vm.parentKey()\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowClick)=\"handleRowClick($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n >\n @if (vm.allowMultiple()) {\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n }\n @for (col of vm.columns(); track col.name) {\n @if (col.visible) {\n <axp-widget-column-renderer\n [expandHandler]=\"$index === 0 && vm.parentKey() ? true : false\"\n [caption]=\"col.title | translate | async\"\n [node]=\"col.node()\"\n ></axp-widget-column-renderer>\n }\n }\n </ax-data-table>\n </div>\n <ax-footer>\n <ax-suffix>\n <ax-button look=\"solid\" [text]=\"('close' | translate | async)!\" (onClick)=\"handleCloseClick()\"> </ax-button>\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [text]=\"('select' | translate | async)!\"\n (onClick)=\"handleSelectClick()\"\n [disabled]=\"allowSelect() === false\"\n >\n </ax-button>\n @if (!vm.canCreate()) {\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [text]=\"'Create-New' | translate | async\"\n (onClick)=\"handleCreateNewClick()\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-add\"></ax-icon>\n </ax-prefix>\n </ax-button>\n }\n </ax-suffix>\n </ax-footer>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"pipe\", type: i1.AsyncPipe, name: \"async\" }, { kind: \"ngmodule\", type: AXCommonModule }, { kind: \"directive\", type: i2.AXAutoFocusDirective, selector: \"[axAutoFocus]\", inputs: [\"axAutoFocus\", \"axAutoFocusTime\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i3.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i4.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i4.AXDecoratorClearButtonComponent, selector: \"ax-clear-button\", inputs: [\"icon\"] }, { kind: \"component\", type: i4.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXDropdownButtonModule }, { kind: \"ngmodule\", type: AXDataTableModule }, { kind: \"component\", type: i5.AXDataTableComponent, selector: \"ax-data-table\", inputs: [\"dataSource\", \"parentField\", \"rowTemplate\", \"emptyTemplate\", \"alternative\", \"showHeader\", \"fixedHeader\", \"showFooter\", \"fixedFooter\", \"itemHeight\", \"allowReordering\", \"paging\", \"fetchDataMode\", \"loading\", \"focusedRow\"], outputs: [\"selectedRowsChange\", \"focusedRowChange\", \"onRowClick\", \"onRowDbClick\", \"onColumnsOrderChanged\", \"onColumnSizeChanged\", \"onPageChanged\"] }, { kind: \"component\", type: i5.AXRowSelectColumnComponent, selector: \"ax-select-column\", inputs: [\"width\", \"caption\", \"fixed\"] }, { kind: \"ngmodule\", type: AXSearchBoxModule }, { kind: \"component\", type: i6.AXSearchBoxComponent, selector: \"ax-search-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"class\", \"delayTime\", \"type\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: AXPLayoutBuilderModule }, { kind: \"component\", type: i7.AXPWidgetColumnRendererComponent, selector: \"axp-widget-column-renderer\", inputs: [\"caption\", \"customExpandIcon\", \"customCollapseIcon\", \"customWidth\", \"node\", \"footerTemplate\", \"expandHandler\", \"cellTemplate\", \"headerTemplate\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: i8.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPLookupWidgetSelectorComponent, decorators: [{\n type: Component,\n args: [{\n template: `\n <div class=\"ax-p-4 ax-flex ax-flex-col ax-gap-4 ax-overflow-hidden\">\n @if (vm.hasInlineFilters()) {\n <div class=\"ax-w-full\">\n <ax-search-box\n [placeholder]=\"('widget.lookup.search' | translate | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n [value]=\"searchTerm\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n [axAutoFocus]=\"true\"\n ><ax-clear-button></ax-clear-button\n ></ax-search-box>\n </div>\n }\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-h-[50vh]\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm.dataSource\"\n [parentField]=\"vm.parentKey()\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowClick)=\"handleRowClick($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n >\n @if (vm.allowMultiple()) {\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n }\n @for (col of vm.columns(); track col.name) {\n @if (col.visible) {\n <axp-widget-column-renderer\n [expandHandler]=\"$index === 0 && vm.parentKey() ? true : false\"\n [caption]=\"col.title | translate | async\"\n [node]=\"col.node()\"\n ></axp-widget-column-renderer>\n }\n }\n </ax-data-table>\n </div>\n <ax-footer>\n <ax-suffix>\n <ax-button look=\"solid\" [text]=\"('close' | translate | async)!\" (onClick)=\"handleCloseClick()\"> </ax-button>\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [text]=\"('select' | translate | async)!\"\n (onClick)=\"handleSelectClick()\"\n [disabled]=\"allowSelect() === false\"\n >\n </ax-button>\n @if (!vm.canCreate()) {\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [text]=\"'Create-New' | translate | async\"\n (onClick)=\"handleCreateNewClick()\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-add\"></ax-icon>\n </ax-prefix>\n </ax-button>\n }\n </ax-suffix>\n </ax-footer>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n AXCommonModule,\n AXButtonModule,\n AXFormModule,\n AXDecoratorModule,\n AXDropdownButtonModule,\n AXDataTableModule,\n AXSearchBoxModule,\n AXPLayoutBuilderModule,\n AXTranslationModule,\n ],\n inputs: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL2xvb2t1cC13aWRnZXQvbG9va3VwLXdpZGdldC1zZWxlY3Rvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBaUQsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRyxPQUFPLEVBRUwsaUJBQWlCLEdBR2xCLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7OztBQW9GL0QsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLG1CQUFtQjtJQWxGekU7O1FBdUZZLFNBQUksR0FBRyxTQUFTLENBQXVCLE1BQU0sQ0FBQyxDQUFDO1FB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Q0FBQyxvQkFBb0I7UUFDbEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFUyxnQkFBZ0I7UUFDeEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVTLGlCQUFpQjtRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQzs4R0FsRVUsZ0NBQWdDO2tHQUFoQyxnQ0FBZ0MsNk1BakZqQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpRVQsMkRBR0MsWUFBWSxtRkFDWixjQUFjLDJKQUNkLGNBQWMsNlhBQ2QsWUFBWSw4QkFDWixpQkFBaUIsc2NBQ2pCLHNCQUFzQiw4QkFDdEIsaUJBQWlCLHltQkFDakIsaUJBQWlCLDRZQUNqQixzQkFBc0IsbVNBQ3RCLG1CQUFtQjs7MkZBSVYsZ0NBQWdDO2tCQWxGNUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUVUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEIsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3FCQUNwQjtvQkFDRCxNQUFNLEVBQUUsRUFBRTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tbW9uTW9kdWxlLCBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24sIEFYVmFsdWVDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHtcbiAgQVhEYXRhVGFibGVDb21wb25lbnQsXG4gIEFYRGF0YVRhYmxlTW9kdWxlLFxuICBBWERhdGFUYWJsZVJvd0NsaWNrLFxuICBBWERhdGFUYWJsZVJvd0RiQ2xpY2ssXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kYXRhLXRhYmxlJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgc2lnbmFsLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhEcm9wZG93bkJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bi1idXR0b24nO1xuaW1wb3J0IHsgQVhGb3JtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHsgQVhCYXNlUGFnZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wYWdlJztcbmltcG9ydCB7IEFYU2VhcmNoQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBMb29rdXBXaWRnZXRTZWxlY3RvclZpZXdNb2RlbCB9IGZyb20gJy4vbG9va3VwLXdpZGdldC1zZWxlY3Rvci52aWV3bW9kZWwnO1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImF4LXAtNCBheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC00ICBheC1vdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgIEBpZiAodm0uaGFzSW5saW5lRmlsdGVycygpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC13LWZ1bGxcIj5cbiAgICAgICAgICA8YXgtc2VhcmNoLWJveFxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIignd2lkZ2V0Lmxvb2t1cC5zZWFyY2gnIHwgdHJhbnNsYXRlIHwgYXN5bmMpICsgdm0uaW5saW5lRmlsdGVyc1BsYWNlaG9sZGVycygpLmpvaW4oJywgJylcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cInNlYXJjaFRlcm1cIlxuICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cImhhbmRsZUNoYW5nZVNlYXJjaFZhbHVlKCRldmVudClcIlxuICAgICAgICAgICAgW2F4QXV0b0ZvY3VzXT1cInRydWVcIlxuICAgICAgICAgICAgPjxheC1jbGVhci1idXR0b24+PC9heC1jbGVhci1idXR0b25cbiAgICAgICAgICA+PC9heC1zZWFyY2gtYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICAgIDxheC1kYXRhLXRhYmxlXG4gICAgICAgICNncmlkXG4gICAgICAgIFtzaG93Rm9vdGVyXT1cImZhbHNlXCJcbiAgICAgICAgY2xhc3M9XCJheC1oLVs1MHZoXVwiXG4gICAgICAgIFtwYWdpbmddPVwidHJ1ZVwiXG4gICAgICAgIFtmZXRjaERhdGFNb2RlXT1cIidtYW51YWwnXCJcbiAgICAgICAgW2xvYWRpbmddPVwieyBlbmFibGVkOiB0cnVlLCBhbmltYXRpb246IHRydWUgfVwiXG4gICAgICAgIFtkYXRhU291cmNlXT1cInZtLmRhdGFTb3VyY2VcIlxuICAgICAgICBbcGFyZW50RmllbGRdPVwidm0ucGFyZW50S2V5KClcIlxuICAgICAgICAoc2VsZWN0ZWRSb3dzQ2hhbmdlKT1cImhhbmRsZVNlbGVjdGVkUm93c0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKG9uUm93Q2xpY2spPVwiaGFuZGxlUm93Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgIChvblJvd0RiQ2xpY2spPVwiaGFuZGxlUm93RGJDbGljaygkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgQGlmICh2bS5hbGxvd011bHRpcGxlKCkpIHtcbiAgICAgICAgICA8YXgtc2VsZWN0LWNvbHVtbiBmaXhlZD1cInN0YXJ0XCIgW3dpZHRoXT1cIic1MHB4J1wiPjwvYXgtc2VsZWN0LWNvbHVtbj5cbiAgICAgICAgfVxuICAgICAgICBAZm9yIChjb2wgb2Ygdm0uY29sdW1ucygpOyB0cmFjayBjb2wubmFtZSkge1xuICAgICAgICAgIEBpZiAoY29sLnZpc2libGUpIHtcbiAgICAgICAgICAgIDxheHAtd2lkZ2V0LWNvbHVtbi1yZW5kZXJlclxuICAgICAgICAgICAgICBbZXhwYW5kSGFuZGxlcl09XCIkaW5kZXggPT09IDAgJiYgdm0ucGFyZW50S2V5KCkgPyB0cnVlIDogZmFsc2VcIlxuICAgICAgICAgICAgICBbY2FwdGlvbl09XCJjb2wudGl0bGUgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgICAgICAgIFtub2RlXT1cImNvbC5ub2RlKClcIlxuICAgICAgICAgICAgPjwvYXhwLXdpZGdldC1jb2x1bW4tcmVuZGVyZXI+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L2F4LWRhdGEtdGFibGU+XG4gICAgPC9kaXY+XG4gICAgPGF4LWZvb3Rlcj5cbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC1idXR0b24gbG9vaz1cInNvbGlkXCIgW3RleHRdPVwiKCdjbG9zZScgfCB0cmFuc2xhdGUgfCBhc3luYykhXCIgKG9uQ2xpY2spPVwiaGFuZGxlQ2xvc2VDbGljaygpXCI+IDwvYXgtYnV0dG9uPlxuICAgICAgICA8YXgtYnV0dG9uXG4gICAgICAgICAgbG9vaz1cInNvbGlkXCJcbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgIFt0ZXh0XT1cIignc2VsZWN0JyB8IHRyYW5zbGF0ZSB8IGFzeW5jKSFcIlxuICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZVNlbGVjdENsaWNrKClcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJhbGxvd1NlbGVjdCgpID09PSBmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIEBpZiAoIXZtLmNhbkNyZWF0ZSgpKSB7XG4gICAgICAgICAgPGF4LWJ1dHRvblxuICAgICAgICAgICAgbG9vaz1cInNvbGlkXCJcbiAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICBbdGV4dF09XCInQ3JlYXRlLU5ldycgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVDcmVhdGVOZXdDbGljaygpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtc29saWQgZmEtYWRkXCI+PC9heC1pY29uPlxuICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIH1cbiAgICAgIDwvYXgtc3VmZml4PlxuICAgIDwvYXgtZm9vdGVyPlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBWENvbW1vbk1vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWEZvcm1Nb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhEcm9wZG93bkJ1dHRvbk1vZHVsZSxcbiAgICBBWERhdGFUYWJsZU1vZHVsZSxcbiAgICBBWFNlYXJjaEJveE1vZHVsZSxcbiAgICBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlLFxuICAgIEFYVHJhbnNsYXRpb25Nb2R1bGUsXG4gIF0sXG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUExvb2t1cFdpZGdldFNlbGVjdG9yQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlUGFnZUNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCB2bTogQVhQTG9va3VwV2lkZ2V0U2VsZWN0b3JWaWV3TW9kZWw7XG4gIHByb3RlY3RlZCBzZWFyY2hUZXJtOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBmaWx0ZXI6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbjtcblxuICBwcm90ZWN0ZWQgZ3JpZCA9IHZpZXdDaGlsZDxBWERhdGFUYWJsZUNvbXBvbmVudD4oJ2dyaWQnKTtcblxuICBwcm90ZWN0ZWQgaW5pdGlhbFNlbGVjdGVkSXRlbXM6IGFueVtdID0gW107XG5cbiAgcHJvdGVjdGVkIHNlbGVjdGVkSXRlbXMgPSBzaWduYWw8YW55W10+KFtdKTtcblxuICBwcm90ZWN0ZWQgYWxsb3dTZWxlY3QgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlbGVjdGVkSXRlbXMoKS5sZW5ndGggPiAwKTtcblxuICBwcm90ZWN0ZWQgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLmluaXRpYWxTZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDAgJiYgdGhpcy5ncmlkKCkpIHtcbiAgICAgIHRoaXMuZ3JpZCgpPy5zZWxlY3RSb3dzKC4uLnRoaXMuaW5pdGlhbFNlbGVjdGVkSXRlbXMpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zZWFyY2hUZXJtKSB7XG4gICAgICB0aGlzLnZtLmFwcGx5SW5saW5lRmlsdGVyKHRoaXMuc2VhcmNoVGVybSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudm0uYXBwbHlGaWx0ZXJBbmRTb3J0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZVJvd0RiQ2xpY2soZTogQVhEYXRhVGFibGVSb3dEYkNsaWNrKSB7XG4gICAgdGhpcy5jbG9zZSh7IGl0ZW1zOiBbZS5kYXRhXSB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVSb3dDbGljayhlOiBBWERhdGFUYWJsZVJvd0NsaWNrKSB7XG4gICAgaWYgKHRoaXMudm0uYWxsb3dNdWx0aXBsZSgpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc2V0KFsuLi50aGlzLnNlbGVjdGVkSXRlbXMoKSwgZS5kYXRhXSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMoKS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRJdGVtcygpLmZpbmQoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IGUuZGF0YS5pZCk7XG4gICAgICBpZiAoc2VsZWN0ZWQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNldCh0aGlzLnNlbGVjdGVkSXRlbXMoKS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uaWQgIT09IHNlbGVjdGVkLmlkKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc2V0KFtlLmRhdGFdKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtcygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNldChbZS5kYXRhXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5zZXQoW2UuZGF0YV0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTZWxlY3RlZFJvd3NDaGFuZ2Uocm93czogdW5rbm93bltdKSB7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNldChyb3dzKTtcbiAgfVxuXG4gIGhhbmRsZUNoYW5nZVNlYXJjaFZhbHVlKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQpIHtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgdGhpcy52bS5hcHBseUlubGluZUZpbHRlcihlLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlQ3JlYXRlTmV3Q2xpY2soKSB7XG4gICAgdGhpcy5jbG9zZSgpO1xuICAgIGF3YWl0IHRoaXMudm0uY3JlYXRlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xvc2VDbGljaygpIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlU2VsZWN0Q2xpY2soKSB7XG4gICAgdGhpcy5jbG9zZSh7IGl0ZW1zOiB0aGlzLnNlbGVjdGVkSXRlbXMoKSB9KTtcbiAgfVxufVxuIl19","import { AXDataSource } from '@acorex/cdk/common';\nimport { AXPCleanNestedFilters, AXPFilterOperatorMiddlewareService, getEntityInfo, } from '@acorex/platform/common';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { computed } from '@angular/core';\nimport { AXPEntityListViewColumnViewModel } from '../../entity.viewmodel';\nexport class AXPLookupWidgetSelectorViewModel {\n constructor(injector, entityDef, options = {\n parentFilters: null,\n customFilter: null,\n sortedFields: [],\n }) {\n this.injector = injector;\n this.entityDef = entityDef;\n this.options = options;\n this.workflow = this.injector.get(AXPWorkflowService);\n this.filterOperatorMiddleware = this.injector.get(AXPFilterOperatorMiddlewareService);\n this.dataSource = new AXDataSource({\n byKey: (key) => {\n const func = this.entityDef.queries.byKey.execute;\n return func();\n },\n load: (e) => {\n const func = this.entityDef.queries.list?.execute;\n return func(e);\n },\n pageSize: 10,\n key: 'id',\n });\n this.canCreate = computed(() => {\n return this.entityDef.commands?.create?.execute != null;\n });\n this.parentKey = computed(() => {\n return this.entityDef.parentKey;\n });\n this.allowMultiple = computed(() => {\n return this.options.allowMultiple ?? false;\n });\n this.inlineFiltersPlaceholders = computed(() => {\n return (this.entityDef?.properties.filter((p) => p.options?.filter?.inline?.enabled).map((c) => c.title ?? c.name) ?? []);\n });\n this.hasInlineFilters = computed(() => {\n return this.inlineFiltersPlaceholders().length > 0;\n });\n this.columns = () => {\n const listColumns = this.entityDef.columns ?? [];\n const columns = listColumns?.map((c) => c.name) ?? [];\n const props = this.entityDef.properties.filter((p) => p.schema.hidden != true);\n const displayColumns = props.filter((p) => columns.some((c) => c == p.name));\n return displayColumns.map((p) => {\n return new AXPEntityListViewColumnViewModel(p, listColumns?.find((c) => c.name == p.name));\n });\n };\n this.inlineFilters = {\n field: null,\n logic: 'or',\n operator: null,\n filters: [],\n };\n this.advanceFilters = {\n field: null,\n logic: 'and',\n operator: null,\n filters: [],\n };\n }\n async create() {\n await this.workflow.execute('create-entity', {\n entity: getEntityInfo(this.entityDef).source,\n });\n }\n applyInlineFilter(value, refresh = true) {\n const props = this.entityDef.properties.filter((c) => c.options?.filter?.inline?.enabled);\n this.inlineFilters.filters = [];\n if (value) {\n props.forEach((p) => {\n this.inlineFilters.filters?.push({\n field: p.name,\n operator: {\n type: 'contains',\n },\n value,\n });\n });\n }\n if (refresh)\n this.applyFilterAndSort();\n }\n applyFilterAndSort() {\n // this.dataSource.clearFilter();\n //\n //this.dataSource.sort(...this.sortedFields().map(s => ({ dir: s.dir, field: s.name } as AXDataSourceSortOption)));\n //\n // Check if inlineFilters or parentFilters have any filters\n const hasInlineFilters = (this.inlineFilters?.filters?.length ?? 0) > 0;\n const hasParentFilters = (this.options.parentFilters?.filters?.length ?? 0) > 0;\n // Construct the filters array based on the presence of filters\n const filters = [];\n console.log(this.options.customFilter);\n if (this.options.customFilter) {\n const cleanedFilters = AXPCleanNestedFilters([this.options.customFilter]);\n if (cleanedFilters.length > 0) {\n filters.push(this.filterOperatorMiddleware.transformFilter(cleanedFilters[0]));\n }\n }\n if (hasInlineFilters) {\n filters.push(this.inlineFilters);\n }\n if (hasParentFilters && this.options.parentFilters) {\n filters.push(this.options.parentFilters);\n }\n // Apply the filters to the dataSource\n this.dataSource.filter({\n field: null,\n logic: 'and',\n operator: null,\n filters: filters,\n });\n // Refresh the dataSource\n this.dataSource.refresh();\n }\n async find(value) {\n this.applyInlineFilter(value.trim(), false);\n const func = this.entityDef.queries.list?.execute;\n return (await func({ filter: this.inlineFilters, take: 10 })) ?? [];\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC1zZWxlY3Rvci52aWV3bW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL2xvb2t1cC13aWRnZXQvbG9va3VwLXdpZGdldC1zZWxlY3Rvci52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBd0QsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RyxPQUFPLEVBQ0wscUJBQXFCLEVBRXJCLGtDQUFrQyxFQUNsQyxhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsUUFBUSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTFFLE1BQU0sT0FBTyxnQ0FBZ0M7SUFJM0MsWUFDVSxRQUFrQixFQUNsQixTQUFvQixFQUNwQixVQUtKO1FBQ0YsYUFBYSxFQUFFLElBQUk7UUFDbkIsWUFBWSxFQUFFLElBQUk7UUFDbEIsWUFBWSxFQUFFLEVBQUU7S0FDakI7UUFYTyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsWUFBTyxHQUFQLE9BQU8sQ0FTZDtRQWZLLGFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2pELDZCQUF3QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFpQnpGLGVBQVUsR0FBRyxJQUFJLFlBQVksQ0FBQztZQUM1QixLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDYixNQUFNLElBQUksR0FBRyxJ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LEVBQUUsS0FBSztZQUNaLFFBQVEsRUFBRSxJQUFXO1lBQ3JCLE9BQU8sRUFBRSxPQUFPO1NBQ2pCLENBQUMsQ0FBQztRQUVILHlCQUF5QjtRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBbUIsQ0FBQztRQUM5RCxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0RSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERhdGFTb3VyY2UsIEFYRGF0YVNvdXJjZUNhbGxiYWNrUmVzdWx0LCBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24gfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHtcbiAgQVhQQ2xlYW5OZXN0ZWRGaWx0ZXJzLFxuICBBWFBFbnRpdHksXG4gIEFYUEZpbHRlck9wZXJhdG9yTWlkZGxld2FyZVNlcnZpY2UsXG4gIGdldEVudGl0eUluZm8sXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUFdvcmtmbG93U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgY29tcHV0ZWQsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlMaXN0Vmlld0NvbHVtblZpZXdNb2RlbCB9IGZyb20gJy4uLy4uL2VudGl0eS52aWV3bW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgQVhQTG9va3VwV2lkZ2V0U2VsZWN0b3JWaWV3TW9kZWwge1xuICBwcml2YXRlIHdvcmtmbG93ID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQV29ya2Zsb3dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBmaWx0ZXJPcGVyYXRvck1pZGRsZXdhcmUgPSB0aGlzLmluamVjdG9yLmdldChBWFBGaWx0ZXJPcGVyYXRvck1pZGRsZXdhcmVTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGVudGl0eURlZjogQVhQRW50aXR5LFxuICAgIHByaXZhdGUgb3B0aW9uczoge1xuICAgICAgcGFyZW50RmlsdGVycz86IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbiB8IG51bGw7XG4gICAgICBjdXN0b21GaWx0ZXI/OiBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24gfCBudWxsO1xuICAgICAgc29ydGVkRmllbGRzPzogeyBuYW1lOiBzdHJpbmc7IGRpcjogJ2FzYycgfCAnZGVzYycgfVtdO1xuICAgICAgYWxsb3dNdWx0aXBsZT86IGJvb2xlYW47XG4gICAgfSA9IHtcbiAgICAgIHBhcmVudEZpbHRlcnM6IG51bGwsXG4gICAgICBjdXN0b21GaWx0ZXI6IG51bGwsXG4gICAgICBzb3J0ZWRGaWVsZHM6IFtdLFxuICAgIH0sXG4gICkge31cblxuICBkYXRhU291cmNlID0gbmV3IEFYRGF0YVNvdXJjZSh7XG4gICAgYnlLZXk6IChrZXkpID0+IHtcbiAgICAgIGNvbnN0IGZ1bmMgPSB0aGlzLmVudGl0eURlZi5xdWVyaWVzLmJ5S2V5LmV4ZWN1dGUgYXMgRnVuY3Rpb247XG4gICAgICByZXR1cm4gZnVuYygpO1xuICAgIH0sXG4gICAgbG9hZDogKGUpID0+IHtcbiAgICAgIGNvbnN0IGZ1bmMgPSB0aGlzLmVudGl0eURlZi5xdWVyaWVzLmxpc3Q/LmV4ZWN1dGUgYXMgRnVuY3Rpb247XG4gICAgICByZXR1cm4gZnVuYyhlKTtcbiAgICB9LFxuICAgIHBhZ2VTaXplOiAxMCxcbiAgICBrZXk6ICdpZCcsXG4gIH0pO1xuXG4gIHB1YmxpYyBjYW5DcmVhdGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZW50aXR5RGVmLmNvbW1hbmRzPy5jcmVhdGU/LmV4ZWN1dGUgIT0gbnVsbDtcbiAgfSk7XG5cbiAgcHVibGljIHBhcmVudEtleSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlEZWYucGFyZW50S2V5O1xuICB9KTtcblxuICBwdWJsaWMgYWxsb3dNdWx0aXBsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmFsbG93TXVsdGlwbGUgPz8gZmFsc2U7XG4gIH0pO1xuXG4gIHB1YmxpYyBhc3luYyBjcmVhdGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy53b3JrZmxvdy5leGVjdXRlKCdjcmVhdGUtZW50aXR5Jywge1xuICAgICAgZW50aXR5OiBnZXRFbnRpdHlJbmZvKHRoaXMuZW50aXR5RGVmKS5zb3VyY2UsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgaW5saW5lRmlsdGVyc1BsYWNlaG9sZGVycyA9IGNvbXB1dGVkPHN0cmluZ1tdPigoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZW50aXR5RGVmPy5wcm9wZXJ0aWVzLmZpbHRlcigocCkgPT4gcC5vcHRpb25zPy5maWx0ZXI/LmlubGluZT8uZW5hYmxlZCkubWFwKChjKSA9PiBjLnRpdGxlID8/IGMubmFtZSkgPz8gW11cbiAgICApO1xuICB9KTtcblxuICBwdWJsaWMgaGFzSW5saW5lRmlsdGVycyA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5pbmxpbmVGaWx0ZXJzUGxhY2Vob2xkZXJzKCkubGVuZ3RoID4gMDtcbiAgfSk7XG5cbiAgcHVibGljIGNvbHVtbnMgPSAoKSA9PiB7XG4gICAgY29uc3QgbGlzdENvbHVtbnMgPSB0aGlzLmVudGl0eURlZi5jb2x1bW5zID8/IFtdO1xuICAgIGNvbnN0IGNvbHVtbnMgPSBsaXN0Q29sdW1ucz8ubWFwKChjKSA9PiBjLm5hbWUpID8/IFtdO1xuICAgIGNvbnN0IHByb3BzID0gdGhpcy5lbnRpdHlEZWYucHJvcGVydGllcy5maWx0ZXIoKHApID0+IHAuc2NoZW1hLmhpZGRlbiAhPSB0cnVlKTtcbiAgICBjb25zdCBkaXNwbGF5Q29sdW1ucyA9IHByb3BzLmZpbHRlcigocCkgPT4gY29sdW1ucy5zb21lKChjKSA9PiBjID09IHAubmFtZSkpO1xuICAgIHJldHVybiBkaXNwbGF5Q29sdW1ucy5tYXAoKHApID0+IHtcbiAgICAgIHJldHVybiBuZXcgQVhQRW50aXR5TGlzdFZpZXdDb2x1bW5WaWV3TW9kZWwocCwgbGlzdENvbHVtbnM/LmZpbmQoKGMpID0+IGMubmFtZSA9PSBwLm5hbWUpISk7XG4gICAgfSk7XG4gIH07XG5cbiAgcHJpdmF0ZSBpbmxpbmVGaWx0ZXJzOiBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24gPSB7XG4gICAgZmllbGQ6IG51bGwgYXMgYW55LFxuICAgIGxvZ2ljOiAnb3InLFxuICAgIG9wZXJhdG9yOiBudWxsIGFzIGFueSxcbiAgICBmaWx0ZXJzOiBbXSxcbiAgfTtcblxuICBwcml2YXRlIGFkdmFuY2VGaWx0ZXJzOiBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24gPSB7XG4gICAgZmllbGQ6IG51bGwgYXMgYW55LFxuICAgIGxvZ2ljOiAnYW5kJyxcbiAgICBvcGVyYXRvcjogbnVsbCBhcyBhbnksXG4gICAgZmlsdGVyczogW10sXG4gIH07XG5cbiAgYXBwbHlJbmxpbmVGaWx0ZXIodmFsdWU6IHN0cmluZywgcmVmcmVzaDogYm9vbGVhbiA9IHRydWUpIHtcbiAgICBjb25zdCBwcm9wcyA9IHRoaXMuZW50aXR5RGVmLnByb3BlcnRpZXMuZmlsdGVyKChjKSA9PiBjLm9wdGlvbnM/LmZpbHRlcj8uaW5saW5lPy5lbmFibGVkKTtcbiAgICB0aGlzLmlubGluZUZpbHRlcnMuZmlsdGVycyA9IFtdO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgcHJvcHMuZm9yRWFjaCgocCkgPT4ge1xuICAgICAgICB0aGlzLmlubGluZUZpbHRlcnMuZmlsdGVycz8ucHVzaCh7XG4gICAgICAgICAgZmllbGQ6IHAubmFtZSxcbiAgICAgICAgICBvcGVyYXRvcjoge1xuICAgICAgICAgICAgdHlwZTogJ2NvbnRhaW5zJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAocmVmcmVzaCkgdGhpcy5hcHBseUZpbHRlckFuZFNvcnQoKTtcbiAgfVxuXG4gIGFwcGx5RmlsdGVyQW5kU29ydCgpIHtcbiAgICAvLyB0aGlzLmRhdGFTb3VyY2UuY2xlYXJGaWx0ZXIoKTtcbiAgICAvL1xuICAgIC8vdGhpcy5kYXRhU291cmNlLnNvcnQoLi4udGhpcy5zb3J0ZWRGaWVsZHMoKS5tYXAocyA9PiAoeyBkaXI6IHMuZGlyLCBmaWVsZDogcy5uYW1lIH0gYXMgQVhEYXRhU291cmNlU29ydE9wdGlvbikpKTtcbiAgICAvL1xuXG4gICAgLy8gQ2hlY2sgaWYgaW5saW5lRmlsdGVycyBvciBwYXJlbnRGaWx0ZXJzIGhhdmUgYW55IGZpbHRlcnNcbiAgICBjb25zdCBoYXNJbmxpbmVGaWx0ZXJzID0gKHRoaXMuaW5saW5lRmlsdGVycz8uZmlsdGVycz8ubGVuZ3RoID8/IDApID4gMDtcbiAgICBjb25zdCBoYXNQYXJlbnRGaWx0ZXJzID0gKHRoaXMub3B0aW9ucy5wYXJlbnRGaWx0ZXJzPy5maWx0ZXJzPy5sZW5ndGggPz8gMCkgPiAwO1xuXG4gICAgLy8gQ29uc3RydWN0IHRoZSBmaWx0ZXJzIGFycmF5IGJhc2VkIG9uIHRoZSBwcmVzZW5jZSBvZiBmaWx0ZXJzXG4gICAgY29uc3QgZmlsdGVyczogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uW10gPSBbXTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLm9wdGlvbnMuY3VzdG9tRmlsdGVyKTtcbiAgICBpZiAodGhpcy5vcHRpb25zLmN1c3RvbUZpbHRlcikge1xuICAgICAgY29uc3QgY2xlYW5lZEZpbHRlcnMgPSBBWFBDbGVhbk5lc3RlZEZpbHRlcnMoW3RoaXMub3B0aW9ucy5jdXN0b21GaWx0ZXJdKTtcbiAgICAgIGlmIChjbGVhbmVkRmlsdGVycy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZpbHRlcnMucHVzaCh0aGlzLmZpbHRlck9wZXJhdG9yTWlkZGxld2FyZS50cmFuc2Zvcm1GaWx0ZXIoY2xlYW5lZEZpbHRlcnNbMF0pKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGhhc0lubGluZUZpbHRlcnMpIHtcbiAgICAgIGZpbHRlcnMucHVzaCh0aGlzLmlubGluZUZpbHRlcnMpO1xuICAgIH1cbiAgICBpZiAoaGFzUGFyZW50RmlsdGVycyAmJiB0aGlzLm9wdGlvbnMucGFyZW50RmlsdGVycykge1xuICAgICAgZmlsdGVycy5wdXNoKHRoaXMub3B0aW9ucy5wYXJlbnRGaWx0ZXJzKTtcbiAgICB9XG5cbiAgICAvLyBBcHBseSB0aGUgZmlsdGVycyB0byB0aGUgZGF0YVNvdXJjZVxuICAgIHRoaXMuZGF0YVNvdXJjZS5maWx0ZXIoe1xuICAgICAgZmllbGQ6IG51bGwgYXMgYW55LFxuICAgICAgbG9naWM6ICdhbmQnLFxuICAgICAgb3BlcmF0b3I6IG51bGwgYXMgYW55LFxuICAgICAgZmlsdGVyczogZmlsdGVycyxcbiAgICB9KTtcblxuICAgIC8vIFJlZnJlc2ggdGhlIGRhdGFTb3VyY2VcbiAgICB0aGlzLmRhdGFTb3VyY2UucmVmcmVzaCgpO1xuICB9XG5cbiAgYXN5bmMgZmluZCh2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTxBWERhdGFTb3VyY2VDYWxsYmFja1Jlc3VsdDxhbnk+PiB7XG4gICAgdGhpcy5hcHBseUlubGluZUZpbHRlcih2YWx1ZS50cmltKCksIGZhbHNlKTtcbiAgICBjb25zdCBmdW5jID0gdGhpcy5lbnRpdHlEZWYucXVlcmllcy5saXN0Py5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgIHJldHVybiAoYXdhaXQgZnVuYyh7IGZpbHRlcjogdGhpcy5pbmxpbmVGaWx0ZXJzLCB0YWtlOiAxMCB9KSkgPz8gW107XG4gIH1cbn1cbiJdfQ==","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXTagBoxComponent, AXTagBoxModule } from '@acorex/components/tag-box';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Injector, computed, effect, inject, signal, viewChild, } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { castArray, get, isEmpty, isNil, set } from 'lodash-es';\nimport { AXPEntityResolver } from '../../entity.config';\nimport { AXPLookupWidgetSelectorComponent } from './lookup-widget-selector.component';\nimport { AXPLookupWidgetSelectorViewModel } from './lookup-widget-selector.viewmodel';\nimport { extractValue, setSmart } from '@acorex/platform/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@acorex/components/button\";\nimport * as i4 from \"@acorex/components/decorators\";\nimport * as i5 from \"@acorex/components/loading\";\nimport * as i6 from \"@acorex/components/form\";\nimport * as i7 from \"@acorex/components/tag-box\";\nimport * as i8 from \"@acorex/core/translation\";\nexport class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n this.injector = inject(Injector);\n this.entityResolver = inject(AXPEntityResolver);\n this.formatService = inject(AXFormatService);\n this.popupService = inject(AXPopupService);\n this.translateService = inject(AXTranslationService);\n this.expose = computed(() => this.options()['expose']);\n this.entity = computed(() => this.options()['entity']);\n this.disabled = computed(() => this.options()['disabled']);\n this.customFilter = computed(() => this.options()['filter']);\n this.multiple = computed(() => (this.options()['multiple'] ?? false));\n this.textField = computed(() => {\n return (this.entityDef()?.formats.lookup ?? this.entityDef()?.properties.find((c) => c.name != 'id')?.name ?? 'title');\n });\n this.valueField = computed(() => this.entityDef()?.properties.find((c) => c.name == 'id')?.name ?? 'id');\n this.entityDef = signal(null);\n this.searchTerm = signal(null);\n this.selectedItems = signal([]);\n this.textbox = viewChild(AXTagBoxComponent);\n this.isLoading = signal(false);\n this.isOpen = signal(false);\n this.vm = signal(null);\n this.placeholder = computed(() => {\n return this.selectedItems().length\n ? ''\n : this.translateService.translateSync('widget.lookup.search') + this.vm()?.inlineFiltersPlaceholders().join(', ');\n });\n this.#efEntity = effect(async () => {\n const [module, entity] = this.entity().split('.');\n this.entityDef.set(await this.entityResolver.get(module, entity));\n this.vm.set(new AXPLookupWidgetSelectorViewModel(this.injector, this.entityDef(), {\n parentFilters: this.filter,\n allowMultiple: this.multiple(),\n }));\n });\n this.#efValue = effect(() => {\n if (this.getValue()) {\n this.findByValue();\n }\n });\n }\n #efEntity;\n #efValue;\n async findByValue() {\n this.isLoading.set(true);\n const rawValue = this.getValue();\n const values = castArray(rawValue);\n const byKey = this.entityDef()?.queries.byKey?.execute;\n if (byKey && values.length) {\n if (this.multiple()) {\n const items = await Promise.all(values.map((value) => byKey(extractValue(value, this.valueField()))));\n this.setItems(items);\n }\n else {\n const id = extractValue(values[0], this.valueField());\n const item = await byKey(id);\n this.setItems(item);\n }\n }\n else {\n this.setItems([]);\n }\n this.isLoading.set(false);\n }\n handleOnClick(e) {\n this.showSelector();\n }\n showSelector() {\n this.isOpen.set(true);\n this.popupService\n .open(AXPLookupWidgetSelectorComponent, {\n title: `${this.translateService.translateSync('widget.lookup.search')} ${this.translateService.translateSync(this.entityDef()?.formats.plural ?? '')}`,\n size: (this.vm()?.columns().length ?? 0) > 3 ? 'lg' : 'md',\n data: {\n vm: new AXPLookupWidgetSelectorViewModel(this.injector, this.entityDef(), {\n customFilter: this.customFilter(),\n parentFilters: this.filter,\n allowMultiple: this.multiple(),\n }),\n searchTerm: this.searchTerm(),\n initialSelectedItems: this.selectedItems(),\n },\n })\n .then((e) => {\n this.isOpen.set(false);\n this.textbox()?.focus();\n if (e.data?.items) {\n this.setItems(e.data?.items);\n }\n });\n }\n handleValueChange(e) {\n if (e.isUserInteraction) {\n if (isNil(e.value) || isEmpty(e.value)) {\n this.clear();\n }\n else {\n this.setValue(this.singleOrMultiple(e.value));\n }\n }\n }\n handleOnBlur(e) {\n setTimeout(() => {\n if (!this.isOpen()) {\n this.clearInput();\n }\n }, 100);\n }\n async handleKeyUp(e) {\n const keyEvent = e.nativeEvent;\n const value = this.textbox()?.inputValue();\n this.searchTerm.set(value);\n if ((keyEvent.code == 'Enter' || keyEvent.code == 'NumpadEnter') && value) {\n this.isLoading.set(true);\n const result = await this.vm()?.find(value);\n if (result?.total == 1) {\n this.setItems(result.items[0]);\n }\n else {\n this.showSelector();\n }\n this.isLoading.set(false);\n }\n if (keyEvent.code == 'ArrowDown') {\n this.showSelector();\n }\n }\n setItems(items) {\n if (!items || items.length == 0) {\n this.selectedItems.set([]);\n return;\n }\n //\n items = castArray(items);\n this.clearInput();\n this.selectedItems.set(items);\n //\n const keys = items.map((item) => get(item, this.valueField()));\n //\n this.setValue(this.singleOrMultiple(keys));\n //\n // extract data from valueField and set context by expose path\n if (this.expose()) {\n const exposeValue = castArray(this.expose());\n const itemToExpose = {};\n //\n exposeValue.forEach((i) => {\n if (typeof i == 'string') {\n const values = items.map((item) => set({}, i, get(item, i)));\n //this.contextService.update(i, this.singleOrMultiple(values));\n setSmart(itemToExpose, i, this.singleOrMultiple(values));\n }\n else {\n // extract data from item by source path and set context by target path\n const values = this.multiple()\n ? items.map((item) => set({}, i.source, get(item, i.source)))\n : items.map((item) => get(item, i.source));\n setSmart(itemToExpose, i.target, this.singleOrMultiple(values));\n }\n });\n this.contextService.patch(itemToExpose);\n //this.contextService.update(i.target, this.singleOrMultiple(values));\n }\n }\n handleClearClick() {\n this.clear();\n }\n clear() {\n this.setValue(null);\n this.clearInput();\n this.selectedItems.set([]);\n }\n clearInput() {\n this.textbox()?.inputValue.set('');\n this.searchTerm.set('');\n }\n singleOrMultiple(values) {\n return this.multiple() ? values : values[0];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPLookupWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", type: AXPLookupWidgetEditComponent, isStandalone: true, selector: \"axp-lookup-widget-edit\", viewQueries: [{ propertyName: \"textbox\", first: true, predicate: AXTagBoxComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `\n <ax-tag-box\n [ngModel]=\"selectedItems()\"\n [textField]=\"textField()\"\n [valueField]=\"valueField()\"\n (onValueChanged)=\"handleValueChange($event)\"\n [placeholder]=\"placeholder() | translate | async\"\n [addOnEnter]=\"false\"\n [addOnComma]=\"false\"\n [disabled]=\"disabled()\"\n (onKeyUp)=\"handleKeyUp($event)\"\n (onBlur)=\"handleOnBlur($event)\"\n >\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validation.options?.message\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n @if (selectedItems().length > 1) {\n <ax-clear-button (click)=\"handleClearClick()\"></ax-clear-button>\n }\n\n <ax-suffix>\n <ax-button color=\"ghost\" look=\"blank\" [disabled]=\"isLoading() || disabled()\" (onClick)=\"handleOnClick($event)\">\n @if (isLoading()) {\n <ax-loading></ax-loading>\n } @else {\n <ax-icon icon=\"far fa-search\"> </ax-icon>\n }\n </ax-button>\n </ax-suffix>\n </ax-tag-box>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"pipe\", type: i1.AsyncPipe, name: \"async\" }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: \n //\n AXButtonModule }, { kind: \"component\", type: i3.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i4.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i4.AXDecoratorClearButtonComponent, selector: \"ax-clear-button\", inputs: [\"icon\"] }, { kind: \"component\", type: i4.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXLoadingModule }, { kind: \"component\", type: i5.AXLoadingComponent, selector: \"ax-loading\", inputs: [\"visible\", \"type\", \"context\"], outputs: [\"visibleChange\"] }, { kind: \"ngmodule\", type: AXValidationModule }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"directive\", type: i6.AXValidationRuleDirective, selector: \"ax-validation-rule\", inputs: [\"rule\", \"options\", \"message\", \"disabled\"] }, { kind: \"ngmodule\", type: AXTagBoxModule }, { kind: \"component\", type: i7.AXTagBoxComponent, selector: \"ax-tag-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"value\", \"state\", \"name\", \"id\", \"placeholder\", \"allowNull\", \"type\", \"look\", \"addOnComma\", \"addOnEnter\", \"valueField\", \"textField\", \"readonlyField\", \"allowDuplicateValues\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"stateChange\", \"onValueChanged\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: i8.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPLookupWidgetEditComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-lookup-widget-edit',\n template: `\n <ax-tag-box\n [ngModel]=\"selectedItems()\"\n [textField]=\"textField()\"\n [valueField]=\"valueField()\"\n (onValueChanged)=\"handleValueChange($event)\"\n [placeholder]=\"placeholder() | translate | async\"\n [addOnEnter]=\"false\"\n [addOnComma]=\"false\"\n [disabled]=\"disabled()\"\n (onKeyUp)=\"handleKeyUp($event)\"\n (onBlur)=\"handleOnBlur($event)\"\n >\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validation.options?.message\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n @if (selectedItems().length > 1) {\n <ax-clear-button (click)=\"handleClearClick()\"></ax-clear-button>\n }\n\n <ax-suffix>\n <ax-button color=\"ghost\" look=\"blank\" [disabled]=\"isLoading() || disabled()\" (onClick)=\"handleOnClick($event)\">\n @if (isLoading()) {\n <ax-loading></ax-loading>\n } @else {\n <ax-icon icon=\"far fa-search\"> </ax-icon>\n }\n </ax-button>\n </ax-suffix>\n </ax-tag-box>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n FormsModule,\n //\n AXButtonModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXValidationModule,\n AXFormModule,\n AXTagBoxModule,\n AXTranslationModule,\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvbG9va3VwLXdpZGdldC9sb29rdXAtd2lkZ2V0LWVkaXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQVEzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTdELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFF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d0JBQ0YsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsbUJBQW1CO3FCQUNwQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQge1xuICBBWENsaWNrRXZlbnQsXG4gIEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbixcbiAgQVhGb2N1c0V2ZW50LFxuICBBWEh0bWxFdmVudCxcbiAgQVhWYWx1ZUNoYW5nZWRFdmVudCxcbn0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhGb3JtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhQb3B1cFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wdXAnO1xuaW1wb3J0IHsgQVhUYWdCb3hDb21wb25lbnQsIEFYVGFnQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhZy1ib3gnO1xuaW1wb3J0IHsgQVhGb3JtYXRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2Zvcm1hdCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTW9kdWxlLCBBWFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFZhbGlkYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBBWFBFbnRpdHksIEFYUFF1ZXJ5RmlsdGVyIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbmplY3RvcixcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBzaWduYWwsXG4gIHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNhc3RBcnJheSwgZ2V0LCBpc0VtcHR5LCBpc05pbCwgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFYUEVudGl0eVJlc29sdmVyIH0gZnJvbSAnLi4vLi4vZW50aXR5LmNvbmZpZyc7XG5pbXBvcnQgeyBBWFBMb29rdXBXaWRnZXRTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4vbG9va3VwLXdpZGdldC1zZWxlY3Rvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQTG9va3VwV2lkZ2V0U2VsZWN0b3JWaWV3TW9kZWwgfSBmcm9tICcuL2xvb2t1cC13aWRnZXQtc2VsZWN0b3Iudmlld21vZGVsJztcbmltcG9ydCB7IGV4dHJhY3RWYWx1ZSwgc2V0U21hcnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtbG9va3VwLXdpZGdldC1lZGl0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YXgtdGFnLWJveFxuICAgICAgW25nTW9kZWxdPVwic2VsZWN0ZWRJdGVtcygpXCJcbiAgICAgIFt0ZXh0RmllbGRdPVwidGV4dEZpZWxkKClcIlxuICAgICAgW3ZhbHVlRmllbGRdPVwidmFsdWVGaWVsZCgpXCJcbiAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJoYW5kbGVWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgW2FkZE9uRW50ZXJdPVwiZmFsc2VcIlxuICAgICAgW2FkZE9uQ29tbWFdPVwiZmFsc2VcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgKG9uS2V5VXApPVwiaGFuZGxlS2V5VXAoJGV2ZW50KVwiXG4gICAgICAob25CbHVyKT1cImhhbmRsZU9uQmx1cigkZXZlbnQpXCJcbiAgICA+XG4gICAgICBAZm9yICh2YWxpZGF0aW9uIG9mIHZhbGlkYXRpb25SdWxlcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGF4LXZhbGlkYXRpb24tcnVsZVxuICAgICAgICAgIFtydWxlXT1cInZhbGlkYXRpb24ucnVsZVwiXG4gICAgICAgICAgW21lc3NhZ2VdPVwidmFsaWRhdGlvbi5vcHRpb25zPy5tZXNzYWdlXCJcbiAgICAgICAgICBbb3B0aW9uc109XCJ2YWxpZGF0aW9uLm9wdGlvbnNcIlxuICAgICAgICA+PC9heC12YWxpZGF0aW9uLXJ1bGU+XG4gICAgICB9XG4gICAgICBAaWYgKHNlbGVjdGVkSXRlbXMoKS5sZW5ndGggPiAxKSB7XG4gICAgICAgIDxheC1jbGVhci1idXR0b24gKGNsaWNrKT1cImhhbmRsZUNsZWFyQ2xpY2soKVwiPjwvYXgtY2xlYXItYnV0dG9uPlxuICAgICAgfVxuXG4gICAgICA8YXgtc3VmZml4PlxuICAgICAgICA8YXgtYnV0dG9uIGNvbG9yPVwiZ2hvc3RcIiBsb29rPVwiYmxhbmtcIiBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nKCkgfHwgZGlzYWJsZWQoKVwiIChvbkNsaWNrKT1cImhhbmRsZU9uQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgIEBpZiAoaXNMb2FkaW5nKCkpIHtcbiAgICAgICAgICAgIDxheC1sb2FkaW5nPjwvYXgtbG9hZGluZz5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxheC1pY29uIGljb249XCJmYXIgZmEtc2VhcmNoXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgPC9heC1zdWZmaXg+XG4gICAgPC9heC10YWctYm94PlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICAvL1xuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYTG9hZGluZ01vZHVsZSxcbiAgICBBWFZhbGlkYXRpb25Nb2R1bGUsXG4gICAgQVhGb3JtTW9kdWxlLFxuICAgIEFYVGFnQm94TW9kdWxlLFxuICAgIEFYVHJhbnNsYXRpb25Nb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUExvb2t1cFdpZGdldEVkaXRDb21wb25lbnQgZXh0ZW5kcyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudDxhbnk+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVudGl0eVJlc29sdmVyID0gaW5qZWN0KEFYUEVudGl0eVJlc29sdmVyKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvcm1hdFNlcnZpY2UgPSBpbmplY3QoQVhGb3JtYXRTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlID0gaW5qZWN0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgZXhwb3NlID0gY29tcHV0ZWQ8c3RyaW5nIHwgdW5kZWZpbmVkIHwgYW55W10+KCgpID0+IHRoaXMub3B0aW9ucygpWydleHBvc2UnXSBhcyBzdHJpbmcpO1xuICBwcm90ZWN0ZWQgZW50aXR5ID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnZW50aXR5J10gYXMgc3RyaW5nKTtcbiAgcHJvdGVjdGVkIGRpc2FibGVkID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnZGlzYWJsZWQnXSBhcyBzdHJpbmcpO1xuICBwcm90ZWN0ZWQgY3VzdG9tRmlsdGVyID0gY29tcHV0ZWQ8QVhEYXRhU291cmNlRmlsdGVyT3B0aW9uPihcbiAgICAoKSA9PiB0aGlzLm9wdGlvbnMoKVsnZmlsdGVyJ10gYXMgQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uLFxuICApO1xuXG4gIHByb3RlY3RlZCBtdWx0aXBsZSA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLm9wdGlvbnMoKVsnbXVsdGlwbGUnXSA/PyBmYWxzZSkgYXMgYm9vbGVhbik7XG5cbiAgcHJvdGVjdGVkIHRleHRGaWVsZCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmVudGl0eURlZigpPy5mb3JtYXRzLmxvb2t1cCA/PyB0aGlzLmVudGl0eURlZigpPy5wcm9wZXJ0aWVzLmZpbmQoKGMpID0+IGMubmFtZSAhPSAnaWQnKT8ubmFtZSA/PyAndGl0bGUnXG4gICAgKTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHZhbHVlRmllbGQgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHRoaXMuZW50aXR5RGVmKCk/LnByb3BlcnRpZXMuZmluZCgoYykgPT4gYy5uYW1lID09ICdpZCcpPy5uYW1lID8/ICdpZCcpO1xuXG4gIHByb3RlY3RlZCBjb25kaXRpb25zPzogQVhQUXVlcnlGaWx0ZXJbXTtcblxuICBwcm90ZWN0ZWQgZmlsdGVyOiBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24gfCBudWxsO1xuXG4gIHByaXZhdGUgZW50aXR5RGVmID0gc2lnbmFsPEFYUEVudGl0eSB8IG51bGw+KG51bGwpO1xuXG4gIHByb3RlY3RlZCBzZWFyY2hUZXJtID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gIHByb3RlY3RlZCBzZWxlY3RlZEl0ZW1zID0gc2lnbmFsPGFueVtdPihbXSk7XG5cbiAgdGV4dGJveCA9IHZpZXdDaGlsZChBWFRhZ0JveENvbXBvbmVudCk7XG5cbiAgcHJvdGVjdGVkIGlzTG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcHJvdGVjdGVkIGlzT3BlbiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcHJvdGVjdGVkIHZtID0gc2lnbmFsPEFYUExvb2t1cFdpZGdldFNlbGVjdG9yVmlld01vZGVsIHwgbnVsbD4obnVsbCk7XG5cbiAgcHJvdGVjdGVkIHBsYWNlaG9sZGVyID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXMoKS5sZW5ndGhcbiAgICAgID8gJydcbiAgICAgIDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZVN5bmMoJ3dpZGdldC5sb29rdXAuc2VhcmNoJykgKyB0aGlzLnZtKCk/LmlubGluZUZpbHRlcnNQbGFjZWhvbGRlcnMoKS5qb2luKCcsICcpO1xuICB9KTtcblxuICAjZWZFbnRpdHkgPSBlZmZlY3QoYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IFttb2R1bGUsIGVudGl0eV0gPSB0aGlzLmVudGl0eSgpLnNwbGl0KCcuJyk7XG4gICAgdGhpcy5lbnRpdHlEZWYuc2V0KGF3YWl0IHRoaXMuZW50aXR5UmVzb2x2ZXIuZ2V0KG1vZHVsZSwgZW50aXR5KSk7XG4gICAgdGhpcy52bS5zZXQoXG4gICAgICBuZXcgQVhQTG9va3VwV2lkZ2V0U2VsZWN0b3JWaWV3TW9kZWwodGhpcy5pbmplY3RvciwgdGhpcy5lbnRpdHlEZWYoKSEsIHtcbiAgICAgICAgcGFyZW50RmlsdGVyczogdGhpcy5maWx0ZXIsXG4gICAgICAgIGFsbG93TXVsdGlwbGU6IHRoaXMubXVsdGlwbGUoKSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH0pO1xuXG4gICNlZlZhbHVlID0gZWZmZWN0KCgpID0+IHtcbiAgICBpZiAodGhpcy5nZXRWYWx1ZSgpKSB7XG4gICAgICB0aGlzLmZpbmRCeVZhbHVlKCk7XG4gICAgfVxuICB9KTtcblxuICBwcml2YXRlIGFzeW5jIGZpbmRCeVZhbHVlKCkge1xuICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcbiAgICBjb25zdCByYXdWYWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICBjb25zdCB2YWx1ZXMgPSBjYXN0QXJyYXkocmF3VmFsdWUpO1xuICAgIGNvbnN0IGJ5S2V5ID0gdGhpcy5lbnRpdHlEZWYoKT8ucXVlcmllcy5ieUtleT8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICBpZiAoYnlLZXkgJiYgdmFsdWVzLmxlbmd0aCkge1xuICAgICAgaWYgKHRoaXMubXVsdGlwbGUoKSkge1xuICAgICAgICBjb25zdCBpdGVtcyA9IGF3YWl0IFByb21pc2UuYWxsKHZhbHVlcy5tYXAoKHZhbHVlKSA9PiBieUtleShleHRyYWN0VmFsdWUodmFsdWUsIHRoaXMudmFsdWVGaWVsZCgpKSkpKTtcbiAgICAgICAgdGhpcy5zZXRJdGVtcyhpdGVtcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBpZCA9IGV4dHJhY3RWYWx1ZSh2YWx1ZXNbMF0sIHRoaXMudmFsdWVGaWVsZCgpKTtcbiAgICAgICAgY29uc3QgaXRlbSA9IGF3YWl0IGJ5S2V5KGlkKTtcbiAgICAgICAgdGhpcy5zZXRJdGVtcyhpdGVtKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRJdGVtcyhbXSk7XG4gICAgfVxuICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlT25DbGljayhlOiBBWENsaWNrRXZlbnQpIHtcbiAgICB0aGlzLnNob3dTZWxlY3RvcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93U2VsZWN0b3IoKSB7XG4gICAgdGhpcy5pc09wZW4uc2V0KHRydWUpO1xuICAgIHRoaXMucG9wdXBTZXJ2aWNlXG4gICAgICAub3BlbihBWFBMb29rdXBXaWRnZXRTZWxlY3RvckNvbXBvbmVudCwge1xuICAgICAgICB0aXRsZTogYCR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZVN5bmMoJ3dpZGdldC5sb29rdXAuc2VhcmNoJyl9ICR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZVN5bmMoXG4gICAgICAgICAgdGhpcy5lbnRpdHlEZWYoKT8uZm9ybWF0cy5wbHVyYWwgPz8gJycsXG4gICAgICAgICl9YCxcblxuICAgICAgICBzaXplOiAodGhpcy52bSgpPy5jb2x1bW5zKCkubGVuZ3RoID8/IDApID4gMyA/ICdsZycgOiAnbWQnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdm06IG5ldyBBWFBMb29rdXBXaWRnZXRTZWxlY3RvclZpZXdNb2RlbCh0aGlzLmluamVjdG9yLCB0aGlzLmVudGl0eURlZigpISwge1xuICAgICAgICAgICAgY3VzdG9tRmlsdGVyOiB0aGlzLmN1c3RvbUZpbHRlcigpLFxuICAgICAgICAgICAgcGFyZW50RmlsdGVyczogdGhpcy5maWx0ZXIsXG4gICAgICAgICAgICBhbGxvd011bHRpcGxlOiB0aGlzLm11bHRpcGxlKCksXG4gICAgICAgICAgfSksXG4gICAgICAgICAgc2VhcmNoVGVybTogdGhpcy5zZWFyY2hUZXJtKCksXG4gICAgICAgICAgaW5pdGlhbFNlbGVjdGVkSXRlbXM6IHRoaXMuc2VsZWN0ZWRJdGVtcygpLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIC50aGVuKChlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5pc09wZW4uc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy50ZXh0Ym94KCk/LmZvY3VzKCk7XG4gICAgICAgIGlmIChlLmRhdGE/Lml0ZW1zKSB7XG4gICAgICAgICAgdGhpcy5zZXRJdGVtcyhlLmRhdGE/Lml0ZW1zKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlVmFsdWVDaGFuZ2UoZTogQVhWYWx1ZUNoYW5nZWRFdmVudCkge1xuICAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICBpZiAoaXNOaWwoZS52YWx1ZSkgfHwgaXNFbXB0eShlLnZhbHVlKSkge1xuICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNldFZhbHVlKHRoaXMuc2luZ2xlT3JNdWx0aXBsZShlLnZhbHVlKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU9uQmx1cihlOiBBWEZvY3VzRXZlbnQpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5pc09wZW4oKSkge1xuICAgICAgICB0aGlzLmNsZWFySW5wdXQoKTtcbiAgICAgIH1cbiAgICB9LCAxMDApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUtleVVwKGU6IEFYSHRtbEV2ZW50KSB7XG4gICAgY29uc3Qga2V5RXZlbnQgPSBlLm5hdGl2ZUV2ZW50IGFzIEtleWJvYXJkRXZlbnQ7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnRleHRib3goKT8uaW5wdXRWYWx1ZSgpITtcbiAgICB0aGlzLnNlYXJjaFRlcm0uc2V0KHZhbHVlKTtcbiAgICBpZiAoKGtleUV2ZW50LmNvZGUgPT0gJ0VudGVyJyB8fCBrZXlFdmVudC5jb2RlID09ICdOdW1wYWRFbnRlcicpICYmIHZhbHVlKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnZtKCk/LmZpbmQodmFsdWUpO1xuICAgICAgaWYgKHJlc3VsdD8udG90YWwgPT0gMSkge1xuICAgICAgICB0aGlzLnNldEl0ZW1zKHJlc3VsdC5pdGVtc1swXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNob3dTZWxlY3RvcigpO1xuICAgICAgfVxuICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICB9XG4gICAgaWYgKGtleUV2ZW50LmNvZGUgPT0gJ0Fycm93RG93bicpIHtcbiAgICAgIHRoaXMuc2hvd1NlbGVjdG9yKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRJdGVtcyhpdGVtczogYW55W10pIHtcbiAgICBpZiAoIWl0ZW1zIHx8IGl0ZW1zLmxlbmd0aCA9PSAwKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc2V0KFtdKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy9cbiAgICBpdGVtcyA9IGNhc3RBcnJheShpdGVtcyk7XG4gICAgdGhpcy5jbGVhcklucHV0KCk7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNldChpdGVtcyk7XG4gICAgLy9cbiAgICBjb25zdCBrZXlzID0gaXRlbXMubWFwKChpdGVtKSA9PiBnZXQoaXRlbSwgdGhpcy52YWx1ZUZpZWxkKCkpKTtcbiAgICAvL1xuICAgIHRoaXMuc2V0VmFsdWUodGhpcy5zaW5nbGVPck11bHRpcGxlKGtleXMpKTtcbiAgICAvL1xuICAgIC8vIGV4dHJhY3QgZGF0YSBmcm9tIHZhbHVlRmllbGQgYW5kIHNldCBjb250ZXh0IGJ5IGV4cG9zZSBwYXRoXG4gICAgaWYgKHRoaXMuZXhwb3NlKCkpIHtcbiAgICAgIGNvbnN0IGV4cG9zZVZhbHVlID0gY2FzdEFycmF5KHRoaXMuZXhwb3NlKCkpO1xuICAgICAgY29uc3QgaXRlbVRvRXhwb3NlOiBhbnkgPSB7fTtcbiAgICAgIC8vXG4gICAgICBleHBvc2VWYWx1ZS5mb3JFYWNoKChpKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgaSA9PSAnc3RyaW5nJykge1xuICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IGl0ZW1zLm1hcCgoaXRlbSkgPT4gc2V0KHt9LCBpIGFzIHN0cmluZywgZ2V0KGl0ZW0sIGkpKSk7XG4gICAgICAgICAgLy90aGlzLmNvbnRleHRTZXJ2aWNlLnVwZGF0ZShpLCB0aGlzLnNpbmdsZU9yTXVsdGlwbGUodmFsdWVzKSk7XG4gICAgICAgICAgc2V0U21hcnQoaXRlbVRvRXhwb3NlLCBpLCB0aGlzLnNpbmdsZU9yTXVsdGlwbGUodmFsdWVzKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gZXh0cmFjdCBkYXRhIGZyb20gaXRlbSBieSBzb3VyY2UgcGF0aCBhbmQgc2V0IGNvbnRleHQgYnkgdGFyZ2V0IHBhdGhcbiAgICAgICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLm11bHRpcGxlKClcbiAgICAgICAgICAgID8gaXRlbXMubWFwKChpdGVtKSA9PiBzZXQoe30sIGkuc291cmNlLCBnZXQoaXRlbSwgaS5zb3VyY2UpKSlcbiAgICAgICAgICAgIDogaXRlbXMubWFwKChpdGVtKSA9PiBnZXQoaXRlbSwgaS5zb3VyY2UpKTtcbiAgICAgICAgICBzZXRTbWFydChpdGVtVG9FeHBvc2UsIGkudGFyZ2V0LCB0aGlzLnNpbmdsZU9yTXVsdGlwbGUodmFsdWVzKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5jb250ZXh0U2VydmljZS5wYXRjaChpdGVtVG9FeHBvc2UpO1xuICAgICAgLy90aGlzLmNvbnRleHRTZXJ2aWNlLnVwZGF0ZShpLnRhcmdldCwgdGhpcy5zaW5nbGVPck11bHRpcGxlKHZhbHVlcykpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDbGVhckNsaWNrKCkge1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcigpIHtcbiAgICB0aGlzLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMuY2xlYXJJbnB1dCgpO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5zZXQoW10pO1xuICB9XG5cbiAgcHVibGljIGNsZWFySW5wdXQoKSB7XG4gICAgdGhpcy50ZXh0Ym94KCk/LmlucHV0VmFsdWUuc2V0KCcnKTtcbiAgICB0aGlzLnNlYXJjaFRlcm0uc2V0KCcnKTtcbiAgfVxuXG4gIHByaXZhdGUgc2luZ2xlT3JNdWx0aXBsZSh2YWx1ZXM6IGFueVtdKTogYW55IHwgYW55W10ge1xuICAgIHJldHVybiB0aGlzLm11bHRpcGxlKCkgPyB2YWx1ZXMgOiB2YWx1ZXNbMF07XG4gIH1cbn1cbiJdfQ==","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXPColumnWidgetComponent } from '@acorex/platform/layout/builder';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport { castArray } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/badge\";\nexport class AXPLookupWidgetColumnComponent extends AXPColumnWidgetComponent {\n constructor() {\n super(...arguments);\n this.valueField = this.options['valueField'] ?? 'id';\n this.textField = this.options['textField'] ?? 'title';\n this.displayItems = computed(() => castArray(this.rawValue).map((item) => this.extractItem(item)));\n }\n extractItem(item) {\n return typeof item == 'object'\n ? {\n [this.valueField]: item?.[this.valueField],\n [this.textField]: item?.[this.textField],\n }\n : {\n [this.valueField]: item,\n [this.textField]: item,\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPLookupWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", type: AXPLookupWidgetColumnComponent, isStandalone: true, selector: \"ng-component\", inputs: { rawValue: \"rawValue\", rowData: \"rowData\" }, usesInheritance: true, ngImport: i0, template: `\n <div class=\"ax-flex ax-gap-1\">\n @for (item of displayItems(); track $index) {\n <ax-badge [text]=\"item[this.textField]\" color=\"primary\"></ax-badge>\n }\n </div>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXBadgeModule }, { kind: \"component\", type: i1.AXBadgeComponent, selector: \"ax-badge\", inputs: [\"color\", \"text\", \"look\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPLookupWidgetColumnComponent, decorators: [{\n type: Component,\n args: [{\n template: `\n <div class=\"ax-flex ax-gap-1\">\n @for (item of displayItems(); track $index) {\n <ax-badge [text]=\"item[this.textField]\" color=\"primary\"></ax-badge>\n }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXBadgeModule],\n inputs: ['rawValue', 'rowData'],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd2lkZ2V0cy9sb29rdXAtd2lkZ2V0L2xvb2t1cC13aWRnZXQtY29sdW1uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFM0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBYXRDLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSx3QkFBNkI7SUFaakY7O1FBYVksZUFBVSxHQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ3hELGNBQVMsR0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLE9BQU8sQ0FBQztRQUV6RCxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FhOUc7SUFYUyxXQUFXLENBQUMsSUFBUztRQUMzQixPQUFPLE9BQU8sSUFBSSxJQUFJLFFBQVE7WUFDNUIsQ0FBQyxDQUFDO2dCQUNBLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7Z0JBQzFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7YUFDekM7WUFDRCxDQUFDLENBQUM7Z0JBQ0EsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSTtnQkFDdkIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSTthQUN2QixDQUFDO0lBQ04sQ0FBQzs4R0FoQlUsOEJBQThCO2tHQUE5Qiw4QkFBOEIscUpBWC9COzs7Ozs7R0FNVCwyREFFUyxhQUFhOzsyRkFHWiw4QkFBOEI7a0JBWjFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFOzs7Ozs7R0FNVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUN4QixNQUFNLEVBQUUsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDO2lCQUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQVhQQ29sdW1uV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjYXN0QXJyYXkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTFcIj5cbiAgICAgIEBmb3IgKGl0ZW0gb2YgZGlzcGxheUl0ZW1zKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGF4LWJhZGdlIFt0ZXh0XT1cIml0ZW1bdGhpcy50ZXh0RmllbGRdXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9heC1iYWRnZT5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtBWEJhZGdlTW9kdWxlXSxcbiAgaW5wdXRzOiBbJ3Jhd1ZhbHVlJywgJ3Jvd0RhdGEnXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQTG9va3VwV2lkZ2V0Q29sdW1uQ29tcG9uZW50IGV4dGVuZHMgQVhQQ29sdW1uV2lkZ2V0Q29tcG9uZW50PGFueT4ge1xuICBwcm90ZWN0ZWQgdmFsdWVGaWVsZDogc3RyaW5nID0gdGhpcy5vcHRpb25zWyd2YWx1ZUZpZWxkJ10gPz8gJ2lkJztcbiAgcHJvdGVjdGVkIHRleHRGaWVsZDogc3RyaW5nID0gdGhpcy5vcHRpb25zWyd0ZXh0RmllbGQnXSA/PyAndGl0bGUnO1xuXG4gIHByb3RlY3RlZCBkaXNwbGF5SXRlbXMgPSBjb21wdXRlZCgoKSA9PiBjYXN0QXJyYXkodGhpcy5yYXdWYWx1ZSkubWFwKChpdGVtOiBhbnkpID0+IHRoaXMuZXh0cmFjdEl0ZW0oaXRlbSkpKTtcblxuICBwcml2YXRlIGV4dHJhY3RJdGVtKGl0ZW06IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIHR5cGVvZiBpdGVtID09ICdvYmplY3QnXG4gICAgICA/IHtcbiAgICAgICAgW3RoaXMudmFsdWVGaWVsZF06IGl0ZW0/Llt0aGlzLnZhbHVlRmllbGRdLFxuICAgICAgICBbdGhpcy50ZXh0RmllbGRdOiBpdGVtPy5bdGhpcy50ZXh0RmllbGRdLFxuICAgICAgfVxuICAgICAgOiB7XG4gICAgICAgIFt0aGlzLnZhbHVlRmllbGRdOiBpdGVtLFxuICAgICAgICBbdGhpcy50ZXh0RmllbGRdOiBpdGVtLFxuICAgICAgfTtcbiAgfVxufVxuIl19","import { AXPWidgetGroupEnum, AXPWidgetsCatalog } from '@acorex/platform/layout/builder';\nimport { AXP_ALLOW_MULTIPLE_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DATA_PROPERTY_GROUP, AXP_DISABLED_PROPERTY } from '@acorex/platform/widgets';\nexport const AXPLookupWidget = {\n name: 'lookup-editor',\n title: 'Lookup',\n categories: [],\n groups: [AXPWidgetGroupEnum.EntityWidget],\n defaultFilterWidgetName: 'lookup-filter',\n type: 'editor',\n properties: [\n AXP_DISABLED_PROPERTY,\n AXP_DATA_PATH_PROPERTY,\n {\n name: 'expose',\n title: 'Expose',\n group: AXP_DATA_PROPERTY_GROUP,\n schema: {\n dataType: 'string',\n interface: {\n name: 'expose',\n path: 'options.expose',\n type: AXPWidgetsCatalog.select,\n },\n },\n visible: true,\n },\n {\n name: 'entity',\n title: 'Entity',\n group: AXP_DATA_PROPERTY_GROUP,\n schema: {\n dataType: 'string',\n interface: {\n name: 'entity',\n path: 'options.entity',\n type: AXPWidgetsCatalog.text,\n },\n },\n visible: true,\n },\n AXP_ALLOW_MULTIPLE_PROPERTY\n ],\n components: {\n view: {\n component: () => import('./lookup-widget-view.component').then((c) => c.AXPLookupWidgetViewComponent),\n },\n edit: {\n component: () => import('./lookup-widget-edit.component').then((c) => c.AXPLookupWidgetEditComponent),\n },\n column: {\n component: () => import('./lookup-widget-column.component').then((c) => c.AXPLookupWidgetColumnComponent),\n },\n designer: {\n component: () => import('./lookup-widget-edit.component').then((c) => c.AXPLookupWidgetEditComponent),\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL2xvb2t1cC13aWRnZXQvbG9va3VwLXdpZGdldC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRS9JLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBb0I7SUFDOUMsSUFBSSxFQUFFLGVBQWU7SUFDckIsS0FBSyxFQUFFLFFBQVE7SUFDZixVQUFVLEVBQUUsRUFBRTtJQUNkLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQztJQUN6Qyx1QkFBdUIsRUFBRSxlQUFlO0lBQ3hDLElBQUksRUFBRSxRQUFRO0lBQ2QsVUFBVSxFQUFFO1FBQ1YscUJBQXFCO1FBQ3JCLHNCQUFzQjtRQUN0QjtZQUNFLElBQUksRUFBRSxRQUFRO1lBQ2QsS0FBSyxFQUFFLFFBQVE7WUFDZixLQUFLLEVBQUUsdUJBQXVCO1lBQzlCLE1BQU0sRUFBRTtnQkFDTixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsU0FBUyxFQUFFO29CQUNULElBQUksRUFBRSxRQUFRO29CQUNkLElBQUksRUFBRSxnQkFBZ0I7b0JBQ3RCLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxNQUFNO2lCQUMvQjthQUNGO1lBQ0QsT0FBTyxFQUFFLElBQUk7U0FDZDtRQUNEO1lBQ0UsSUFBSSxFQUFFLFFBQVE7WUFDZCxLQUFLLEVBQUUsUUFBUTtZQUNmLEtBQUssRUFBRSx1QkFBdUI7WUFDOUIsTUFBTSxFQUFFO2dCQUNOLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixTQUFTLEVBQUU7b0JBQ1QsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsSUFBSSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQzdCO2FBQ0Y7WUFDRCxPQUFPLEVBQUUsSUFBSTtTQUNkO1FBQ0QsMkJBQTJCO0tBQzVCO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDO1NBQ3RHO1FBQ0QsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDO1NBQ3RHO1FBQ0QsTUFBTSxFQUFFO1lBQ04sU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDhCQUE4QixDQUFDO1NBQzFHO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDO1NBQ3RHO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQRXhwcmVzc2lvbiB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRDb25maWcsIEFYUFdpZGdldEdyb3VwRW51bSwgQVhQV2lkZ2V0c0NhdGFsb2cgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IEFYUF9BTExPV19NVUxUSVBMRV9QUk9QRVJUWSwgQVhQX0RBVEFfUEFUSF9QUk9QRVJUWSwgQVhQX0RBVEFfUFJPUEVSVFlfR1JPVVAsIEFYUF9ESVNBQkxFRF9QUk9QRVJUWSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd2lkZ2V0cyc7XG5cbmV4cG9ydCBjb25zdCBBWFBMb29rdXBXaWRnZXQ6IEFYUFdpZGdldENvbmZpZyA9IHtcbiAgbmFtZTogJ2xvb2t1cC1lZGl0b3InLFxuICB0aXRsZTogJ0xvb2t1cCcsXG4gIGNhdGVnb3JpZXM6IFtdLFxuICBncm91cHM6IFtBWFBXaWRnZXRHcm91cEVudW0uRW50aXR5V2lkZ2V0XSxcbiAgZGVmYXVsdEZpbHRlcldpZGdldE5hbWU6ICdsb29rdXAtZmlsdGVyJyxcbiAgdHlwZTogJ2VkaXRvcicsXG4gIHByb3BlcnRpZXM6IFtcbiAgICBBWFBfRElTQUJMRURfUFJPUEVSVFksXG4gICAgQVhQX0RBVEFfUEFUSF9QUk9QRVJUWSxcbiAgICB7XG4gICAgICBuYW1lOiAnZXhwb3NlJyxcbiAgICAgIHRpdGxlOiAnRXhwb3NlJyxcbiAgICAgIGdyb3VwOiBBWFBfREFUQV9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICdleHBvc2UnLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLmV4cG9zZScsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cuc2VsZWN0LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnZW50aXR5JyxcbiAgICAgIHRpdGxlOiAnRW50aXR5JyxcbiAgICAgIGdyb3VwOiBBWFBfREFUQV9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICdlbnRpdHknLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLmVudGl0eScsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudGV4dCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gICAgQVhQX0FMTE9XX01VTFRJUExFX1BST1BFUlRZXG4gIF0sXG4gIGNvbXBvbmVudHM6IHtcbiAgICB2aWV3OiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9sb29rdXAtd2lkZ2V0LXZpZXcuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWFBMb29rdXBXaWRnZXRWaWV3Q29tcG9uZW50KSxcbiAgICB9LFxuICAgIGVkaXQ6IHtcbiAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL2xvb2t1cC13aWRnZXQtZWRpdC5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUExvb2t1cFdpZGdldEVkaXRDb21wb25lbnQpLFxuICAgIH0sXG4gICAgY29sdW1uOiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9sb29rdXAtd2lkZ2V0LWNvbHVtbi5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUExvb2t1cFdpZGdldENvbHVtbkNvbXBvbmVudCksXG4gICAgfSxcbiAgICBkZXNpZ25lcjoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vbG9va3VwLXdpZGdldC1lZGl0LmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQTG9va3VwV2lkZ2V0RWRpdENvbXBvbmVudCksXG4gICAgfSxcbiAgfSxcbn07XG5cblxuZXhwb3J0IGludGVyZmFjZSBBWFBMb29rdXBXaWRnZXRPcHRpb25zIHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuIHwgQVhQRXhwcmVzc2lvbjtcbiAgcmVhZG9ubHk/OiBib29sZWFuIHwgQVhQRXhwcmVzc2lvbjtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIGV4cG9zZT86IHN0cmluZyB8IHN0cmluZ1tdO1xufSBcbiJdfQ==","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/badge\";\nexport class AXPTagableBoxWidgetColumnComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n this.internalValue = computed(() => (Array.isArray(this.getValue()) ? this.getValue() : [this.getValue()]));\n this.multiple = computed(() => this.options()['multiple']);\n // ویژگی‌های مرتبط با SelectBox\n this.useSelectBox = computed(() => this.options()['useSelectBox']);\n this.textField = computed(() => this.options()['textField'] ?? 'title');\n // استخراج داده‌ها برای نمایش\n this.getData = computed(() => {\n if (!this.useSelectBox()) {\n return [];\n }\n const value = this.getValue();\n if (!value) {\n return [];\n }\n return Array.isArray(value) ? value : [value];\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPTagableBoxWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", type: AXPTagableBoxWidgetColumnComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: `\n <div class=\"ax-flex ax-gap-1 ax-flex-wrap\">\n @if (useSelectBox() && getData().length > 0) { @for (item of getData(); track $index) {\n <ax-badge [look]=\"'twotone'\" [text]=\"item[textField()]\" color=\"primary\"></ax-badge>\n } } @else { @if(multiple()) { @for (item of internalValue(); track $index) {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-inline-block\">{{ item }}</span>\n } } @else {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-inline-block\">{{ internalValue()[0] }}</span>\n } }\n </div>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXBadgeModule }, { kind: \"component\", type: i1.AXBadgeComponent, selector: \"ax-badge\", inputs: [\"color\", \"text\", \"look\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPTagableBoxWidgetColumnComponent, decorators: [{\n type: Component,\n args: [{\n template: `\n <div class=\"ax-flex ax-gap-1 ax-flex-wrap\">\n @if (useSelectBox() && getData().length > 0) { @for (item of getData(); track $index) {\n <ax-badge [look]=\"'twotone'\" [text]=\"item[textField()]\" color=\"primary\"></ax-badge>\n } } @else { @if(multiple()) { @for (item of internalValue(); track $index) {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-inline-block\">{{ item }}</span>\n } } @else {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-inline-block\">{{ internalValue()[0] }}</span>\n } }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXBadgeModule],\n inputs: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYWJsZS1ib3gtd2lkZ2V0LWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL3RhZ2FibGUtYm94L3RhZ2FibGUtYm94LXdpZGdldC1jb2x1bW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUxRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBa0I3RSxNQUFNLE9BQU8sa0NBQW1DLFNBQVEsdUJBQTRCO0lBaEJwRjs7UUFpQlksa0JBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXZHLGFBQVEsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBWSxDQUFDLENBQUM7UUFFcEYsK0JBQStCO1FBQ3JCLGlCQUFZLEdBQUcsUUFBUSxDQUFVLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQVksQ0FBQyxDQUFDO1FBQ2xGLGNBQVMsR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFLENBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBWSxJQUFJLE9BQU8sQ0FBQyxDQUFDO1FBRWpHLDZCQUE2QjtRQUNuQixZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7Z0JBQ3pCLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1gsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBRUQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7S0FDSjs4R0F0Qlksa0NBQWtDO2tHQUFsQyxrQ0FBa0MsK0ZBZm5DOzs7Ozs7Ozs7O0dBVVQsMkRBRVMsYUFBYTs7MkZBR1osa0NBQWtDO2tCQWhCOUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7R0FVVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUN4QixNQUFNLEVBQUUsRUFBRTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTEgYXgtZmxleC13cmFwXCI+XG4gICAgICBAaWYgKHVzZVNlbGVjdEJveCgpICYmIGdldERhdGEoKS5sZW5ndGggPiAwKSB7IEBmb3IgKGl0ZW0gb2YgZ2V0RGF0YSgpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxheC1iYWRnZSBbbG9va109XCIndHdvdG9uZSdcIiBbdGV4dF09XCJpdGVtW3RleHRGaWVsZCgpXVwiIGNvbG9yPVwicHJpbWFyeVwiPjwvYXgtYmFkZ2U+XG4gICAgICB9IH0gQGVsc2UgeyBAaWYobXVsdGlwbGUoKSkgeyBAZm9yIChpdGVtIG9mIGludGVybmFsVmFsdWUoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8c3BhbiBjbGFzcz1cImF4LWJnLXNsYXRlLTEwMCBheC1weC0yIGF4LXB5LTEgYXgtcm91bmRlZCBheC1pbmxpbmUtYmxvY2tcIj57eyBpdGVtIH19PC9zcGFuPlxuICAgICAgfSB9IEBlbHNlIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwiYXgtYmctc2xhdGUtMTAwIGF4LXB4LTIgYXgtcHktMSBheC1yb3VuZGVkIGF4LWlubGluZS1ibG9ja1wiPnt7IGludGVybmFsVmFsdWUoKVswXSB9fTwvc3Bhbj5cbiAgICAgIH0gfVxuICAgIDwvZGl2PlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0FYQmFkZ2VNb2R1bGVdLFxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBUYWdhYmxlQm94V2lkZ2V0Q29sdW1uQ29tcG9uZW50IGV4dGVuZHMgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQ8YW55PiB7XG4gIHByb3RlY3RlZCBpbnRlcm5hbFZhbHVlID0gY29tcHV0ZWQoKCkgPT4gKEFycmF5LmlzQXJyYXkodGhpcy5nZXRWYWx1ZSgpKSA/IHRoaXMuZ2V0VmFsdWUoKSA6IFt0aGlzLmdldFZhbHVlKCldKSk7XG5cbiAgcHJvdGVjdGVkIG11bHRpcGxlID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ211bHRpcGxlJ10gYXMgYm9vbGVhbik7XG5cbiAgLy8g2YjbjNqY2q/bjOKAjNmH2KfbjCDZhdix2KrYqNi3INio2KcgU2VsZWN0Qm94XG4gIHByb3RlY3RlZCB1c2VTZWxlY3RCb3ggPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsndXNlU2VsZWN0Qm94J10gYXMgYm9vbGVhbik7XG4gIHByb3RlY3RlZCB0ZXh0RmllbGQgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+ICh0aGlzLm9wdGlvbnMoKVsndGV4dEZpZWxkJ10gYXMgc3RyaW5nKSA/PyAndGl0bGUnKTtcblxuICAvLyDYp9iz2KrYrtix2KfYrCDYr9in2K/Zh+KAjNmH2Kcg2KjYsdin24wg2YbZhdin24zYtFxuICBwcm90ZWN0ZWQgZ2V0RGF0YSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAoIXRoaXMudXNlU2VsZWN0Qm94KCkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xuICB9KTtcbn1cbiJdfQ==","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDataSource } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\n// import { AXTagBoxModule } from '@acorex/components/tag-box';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { ChangeDetectionStrategy, Component, HostBinding, computed, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXPEntityResolver } from '../../entity.config';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/form\";\nimport * as i3 from \"@acorex/components/decorators\";\nimport * as i4 from \"@acorex/components/button\";\nimport * as i5 from \"@acorex/components/select-box\";\nimport * as i6 from \"@acorex/components/search-box\";\nexport class AXPTagableBoxWidgetEditComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n this.entityResolver = inject(AXPEntityResolver);\n this.hasClearButton = computed(() => this.options()['hasClearButton']);\n this.disabled = computed(() => this.options()['disabled']);\n this.placeholder = computed(() => this.options()['placeholder']);\n // پارامترهای SelectBox\n this.moduleName = computed(() => this.options()['module']);\n this.entityName = computed(() => this.options()['entity']);\n this.allowSearch = computed(() => this.options()['allowSearch']);\n // منبع داده برای SelectBox\n this._dataSource = new AXDataSource({\n load: async (e) => {\n const entity = await this.entityResolver.get(this.moduleName(), this.entityName());\n const func = entity?.queries.list?.execute;\n const result = await func(e);\n console.log(result);\n return {\n items: result?.items || [],\n total: result?.total || 0,\n };\n },\n pageSize: 10,\n });\n }\n handleSelectValueChange(e) {\n if (e.isUserInteraction) {\n this.setValue(e.value);\n }\n }\n addItem() { }\n get __class() {\n const cls = {};\n cls[`ax-block`] = true;\n cls[`ax-flex-1`] = true;\n return cls;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPTagableBoxWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", type: AXPTagableBoxWidgetEditComponent, isStandalone: true, selector: \"axp-tagable-box-widget\", host: { properties: { \"class\": \"this.__class\" } }, usesInheritance: true, ngImport: i0, template: `\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n <!-- نمایش Select Box با دکمه اضافه کردن آیتم -->\n <ax-select-box\n class=\"ax-col-span-12\"\n [placeholder]=\"placeholder()\"\n [dataSource]=\"_dataSource\"\n [ngModel]=\"getValue()\"\n [valueField]=\"'name'\"\n [textField]=\"'title'\"\n [multiple]=\"true\"\n (onValueChanged)=\"handleSelectValueChange($event)\"\n >\n @if (allowSearch()) {\n <ax-search-box><ax-clear-button></ax-clear-button></ax-search-box>\n }\n @if (hasClearButton()) {\n <ax-clear-button></ax-clear-button>\n }\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validation.options?.message\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-select-box>\n <ax-button\n [text]=\"'افزودن آیتم جدید'\"\n look=\"twotone\"\n [disabled]=\"disabled()\"\n (onClick)=\"addItem()\"\n class=\"ax-col-start-8 md:ax-col-start-9 2xl:ax-col-start-10 ax-col-end-13\"\n >\n <ax-prefix>\n <ax-icon class=\"fa-solid fa-add\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXTextBoxModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"directive\", type: i2.AXValidationRuleDirective, selector: \"ax-validation-rule\", inputs: [\"rule\", \"options\", \"message\", \"disabled\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i3.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i3.AXDecoratorClearButtonComponent, selector: \"ax-clear-button\", inputs: [\"icon\"] }, { kind: \"component\", type: i3.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXValidationModule }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i4.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXSelectBoxModule }, { kind: \"component\", type: i5.AXSelectBoxComponent, selector: \"ax-select-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"minValue\", \"maxValue\", \"value\", \"state\", \"name\", \"id\", \"type\", \"look\", \"multiple\", \"valueField\", \"textField\", \"disabledField\", \"textTemplate\", \"selectedItems\", \"dataSource\", \"minRecordsForSearch\", \"caption\", \"itemTemplate\", \"selectedTemplate\", \"emptyTemplate\", \"loadingTemplate\", \"dropdownWidth\", \"searchBoxAutoFocus\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onOpened\", \"onClosed\"] }, { kind: \"ngmodule\", type: AXSearchBoxModule }, { kind: \"component\", type: i6.AXSearchBoxComponent, selector: \"ax-search-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"class\", \"delayTime\", \"type\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPTagableBoxWidgetEditComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-tagable-box-widget',\n template: `\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n <!-- نمایش Select Box با دکمه اضافه کردن آیتم -->\n <ax-select-box\n class=\"ax-col-span-12\"\n [placeholder]=\"placeholder()\"\n [dataSource]=\"_dataSource\"\n [ngModel]=\"getValue()\"\n [valueField]=\"'name'\"\n [textField]=\"'title'\"\n [multiple]=\"true\"\n (onValueChanged)=\"handleSelectValueChange($event)\"\n >\n @if (allowSearch()) {\n <ax-search-box><ax-clear-button></ax-clear-button></ax-search-box>\n }\n @if (hasClearButton()) {\n <ax-clear-button></ax-clear-button>\n }\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validation.options?.message\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-select-box>\n <ax-button\n [text]=\"'افزودن آیتم جدید'\"\n look=\"twotone\"\n [disabled]=\"disabled()\"\n (onClick)=\"addItem()\"\n class=\"ax-col-start-8 md:ax-col-start-9 2xl:ax-col-start-10 ax-col-end-13\"\n >\n <ax-prefix>\n <ax-icon class=\"fa-solid fa-add\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AXTextBoxModule,\n FormsModule,\n AXFormModule,\n AXDecoratorModule,\n AXValidationModule,\n AXButtonModule,\n AXSelectBoxModule,\n AXSearchBoxModule\n ],\n inputs: [],\n }]\n }], propDecorators: { __class: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYWJsZS1ib3gtd2lkZ2V0LWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd2lkZ2V0cy90YWdhYmxlLWJveC90YWdhYmxlLWJveC13aWRnZXQtZWRpdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQXVCLE1BQU0sb0JBQW9CLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLCtEQUErRDtBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7O0FBeUR4RCxNQUFNLE9BQU8sZ0NBQWlDLFNBQVEsdUJBQTRCO0lBdkRsRjs7UUF3RFksbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENB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d0JBQ2pCLGlCQUFpQjtxQkFDcEI7b0JBQ0MsTUFBTSxFQUFFLEVBQUU7aUJBQ1g7OEJBcUNhLE9BQU87c0JBRGxCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERhdGFTb3VyY2UsIEFYVmFsdWVDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWFNlYXJjaEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWFyY2gtYm94Jztcbi8vIGltcG9ydCB7IEFYVGFnQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhZy1ib3gnO1xuaW1wb3J0IHsgQVhTZWxlY3RCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VsZWN0LWJveCc7XG5pbXBvcnQgeyBBWFRleHRCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGV4dC1ib3gnO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQVhQRW50aXR5UmVzb2x2ZXIgfSBmcm9tICcuLi8uLi9lbnRpdHkuY29uZmlnJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhwLXRhZ2FibGUtYm94LXdpZGdldCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImF4LWdyaWQgYXgtZ3JpZC1jb2xzLTEyIGF4LWdhcC00XCI+XG4gICAgICA8IS0tINmG2YXYp9uM2LQgU2VsZWN0IEJveCDYqNinINiv2qnZhdmHINin2LbYp9mB2Ycg2qnYsdiv2YYg2KLbjNiq2YUgLS0+XG4gICAgICA8YXgtc2VsZWN0LWJveFxuICAgICAgICBjbGFzcz1cImF4LWNvbC1zcGFuLTEyXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIlxuICAgICAgICBbZGF0YVNvdXJjZV09XCJfZGF0YVNvdXJjZVwiXG4gICAgICAgIFtuZ01vZGVsXT1cImdldFZhbHVlKClcIlxuICAgICAgICBbdmFsdWVGaWVsZF09XCInbmFtZSdcIlxuICAgICAgICBbdGV4dEZpZWxkXT1cIid0aXRsZSdcIlxuICAgICAgICBbbXVsdGlwbGVdPVwidHJ1ZVwiXG4gICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJoYW5kbGVTZWxlY3RWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgQGlmIChhbGxvd1NlYXJjaCgpKSB7XG4gICAgICAgICAgPGF4LXNlYXJjaC1ib3g+PGF4LWNsZWFyLWJ1dHRvbj48L2F4LWNsZWFyLWJ1dHRvbj48L2F4LXNlYXJjaC1ib3g+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChoYXNDbGVhckJ1dHRvbigpKSB7XG4gICAgICAgICAgPGF4LWNsZWFyLWJ1dHRvbj48L2F4LWNsZWFyLWJ1dHRvbj5cbiAgICAgICAgfVxuICAgICAgICBAZm9yICh2YWxpZGF0aW9uIG9mIHZhbGlkYXRpb25SdWxlcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICA8YXgtdmFsaWRhdGlvbi1ydWxlXG4gICAgICAgICAgICBbcnVsZV09XCJ2YWxpZGF0aW9uLnJ1bGVcIlxuICAgICAgICAgICAgW21lc3NhZ2VdPVwidmFsaWRhdGlvbi5vcHRpb25zPy5tZXNzYWdlXCJcbiAgICAgICAgICAgIFtvcHRpb25zXT1cInZhbGlkYXRpb24ub3B0aW9uc1wiXG4gICAgICAgICAgPjwvYXgtdmFsaWRhdGlvbi1ydWxlPlxuICAgICAgICB9XG4gICAgICA8L2F4LXNlbGVjdC1ib3g+XG4gICAgICA8YXgtYnV0dG9uXG4gICAgICAgIFt0ZXh0XT1cIifYp9mB2LLZiNiv2YYg2KLbjNiq2YUg2KzYr9uM2K8nXCJcbiAgICAgICAgbG9vaz1cInR3b3RvbmVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICAgIChvbkNsaWNrKT1cImFkZEl0ZW0oKVwiXG4gICAgICAgIGNsYXNzPVwiYXgtY29sLXN0YXJ0LTggbWQ6YXgtY29sLXN0YXJ0LTkgMnhsOmF4LWNvbC1zdGFydC0xMCBheC1jb2wtZW5kLTEzXCJcbiAgICAgID5cbiAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLWFkZFwiPjwvYXgtaWNvbj5cbiAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICA8L2F4LWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBBWFRleHRCb3hNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQVhGb3JtTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYVmFsaWRhdGlvbk1vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWFNlbGVjdEJveE1vZHVsZSxcbiAgICBBWFNlYXJjaEJveE1vZHVsZVxuXSxcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGFnYWJsZUJveFdpZGdldEVkaXRDb21wb25lbnQgZXh0ZW5kcyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudDxhbnk+IHtcbiAgcHJvdGVjdGVkIGVudGl0eVJlc29sdmVyID0gaW5qZWN0KEFYUEVudGl0eVJlc29sdmVyKTtcblxuICBwcm90ZWN0ZWQgaGFzQ2xlYXJCdXR0b24gPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnaGFzQ2xlYXJCdXR0b24nXSBhcyBib29sZWFuKTtcbiAgcHJvdGVjdGVkIGRpc2FibGVkID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ2Rpc2FibGVkJ10gYXMgYm9vbGVhbik7XG4gIHByb3RlY3RlZCBwbGFjZWhvbGRlciA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ3BsYWNlaG9sZGVyJ10gYXMgc3RyaW5nKTtcblxuICAvLyDZvtin2LHYp9mF2KrYsdmH2KfbjCBTZWxlY3RCb3hcbiAgcHJvdGVjdGVkIG1vZHVsZU5hbWUgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHRoaXMub3B0aW9ucygpWydtb2R1bGUnXSBhcyBzdHJpbmcpO1xuICBwcm90ZWN0ZWQgZW50aXR5TmFtZSA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ2VudGl0eSddIGFzIHN0cmluZyk7XG4gIHByb3RlY3RlZCBhbGxvd1NlYXJjaCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMub3B0aW9ucygpWydhbGxvd1NlYXJjaCddIGFzIGJvb2xlYW4pO1xuXG4gIC8vINmF2YbYqNi5INiv2KfYr9mHINio2LHYp9uMIFNlbGVjdEJveFxuICBwcm90ZWN0ZWQgX2RhdGFTb3VyY2U6IEFYRGF0YVNvdXJjZTxhbnk+ID0gbmV3IEFYRGF0YVNvdXJjZSh7XG4gICAgbG9hZDogYXN5bmMgKGU6IGFueSkgPT4ge1xuICAgICAgY29uc3QgZW50aXR5ID0gYXdhaXQgdGhpcy5lbnRpdHlSZXNvbHZlci5nZXQodGhpcy5tb2R1bGVOYW1lKCksIHRoaXMuZW50aXR5TmFtZSgpKTtcbiAgICAgIGNvbnN0IGZ1bmMgPSBlbnRpdHk/LnF1ZXJpZXMubGlzdD8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZ1bmMoZSk7XG4gICAgICBjb25zb2xlLmxvZyhyZXN1bHQpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaXRlbXM6IHJlc3VsdD8uaXRlbXMgfHwgW10sXG4gICAgICAgIHRvdGFsOiByZXN1bHQ/LnRvdGFsIHx8IDAsXG4gICAgICB9O1xuICAgIH0sXG4gICAgcGFnZVNpemU6IDEwLFxuICB9KTtcblxuICBwcm90ZWN0ZWQgaGFuZGxlU2VsZWN0VmFsdWVDaGFuZ2UoZTogQVhWYWx1ZUNoYW5nZWRFdmVudCkge1xuICAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICB0aGlzLnNldFZhbHVlKGUudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhZGRJdGVtKCkge31cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHJpdmF0ZSBnZXQgX19jbGFzcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNsczogYW55ID0ge307XG4gICAgY2xzW2BheC1ibG9ja2BdID0gdHJ1ZTtcbiAgICBjbHNbYGF4LWZsZXgtMWBdID0gdHJ1ZTtcbiAgICByZXR1cm4gY2xzO1xuICB9XG59XG4iXX0=","import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport * as i0 from \"@angular/core\";\nexport class AXPTagableBoxWidgetFilterComponent extends AXPValueWidgetComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPTagableBoxWidgetFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", type: AXPTagableBoxWidgetFilterComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: \"ngmodule\", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPTagableBoxWidgetFilterComponent, decorators: [{\n type: Component,\n args: [{\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule],\n inputs: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYWJsZS1ib3gtd2lkZ2V0LWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL3RhZ2FibGUtYm94L3RhZ2FibGUtYm94LXdpZGdldC1maWx0ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQVE3QyxNQUFNLE9BQU8sa0NBQW1DLFNBQVEsdUJBQTRCOzhHQUF2RSxrQ0FBa0M7a0dBQWxDLGtDQUFrQywrRkFMbkMsRUFBRSwyREFFRixXQUFXOzsyRkFHVixrQ0FBa0M7a0JBTjlDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztvQkFDdEIsTUFBTSxFQUFFLEVBQUU7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtGb3Jtc01vZHVsZV0sXG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUFRhZ2FibGVCb3hXaWRnZXRGaWx0ZXJDb21wb25lbnQgZXh0ZW5kcyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudDxhbnk+IHsgfVxuIl19","import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPTagableBoxWidgetPrintComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n this.internalValue = computed(() => (Array.isArray(this.getValue()) ? this.getValue() : [this.getValue()]));\n this.multiple = computed(() => this.options()['multiple']);\n // ویژگی‌های مرتبط با SelectBox\n this.useSelectBox = computed(() => this.options()['useSelectBox']);\n this.textField = computed(() => this.options()['textField'] ?? 'title');\n // استخراج داده‌ها برای نمایش\n this.getData = computed(() => {\n if (!this.useSelectBox()) {\n return [];\n }\n const value = this.getValue();\n if (!value) {\n return [];\n }\n return Array.isArray(value) ? value : [value];\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPTagableBoxWidgetPrintComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", type: AXPTagableBoxWidgetPrintComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: `\n <div>\n @if (useSelectBox() && getData().length > 0) { @for (item of getData(); track $index) {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-mr-2 ax-mb-2 ax-inline-block\">{{\n item[textField()]\n }}</span>\n } } @else { @if(multiple()) { @for (item of internalValue(); track $index) {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-mr-2 ax-mb-2 ax-inline-block\">{{ item }}</span>\n } } @else {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-mr-2 ax-mb-2 ax-inline-block\">{{\n internalValue()[0]\n }}</span>\n } }\n </div>\n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPTagableBoxWidgetPrintComponent, decorators: [{\n type: Component,\n args: [{\n template: `\n <div>\n @if (useSelectBox() && getData().length > 0) { @for (item of getData(); track $index) {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-mr-2 ax-mb-2 ax-inline-block\">{{\n item[textField()]\n }}</span>\n } } @else { @if(multiple()) { @for (item of internalValue(); track $index) {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-mr-2 ax-mb-2 ax-inline-block\">{{ item }}</span>\n } } @else {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-mr-2 ax-mb-2 ax-inline-block\">{{\n internalValue()[0]\n }}</span>\n } }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n inputs: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYWJsZS1ib3gtd2lkZ2V0LXByaW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvdGFnYWJsZS1ib3gvdGFnYWJsZS1ib3gtd2lkZ2V0LXByaW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUxRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFzQjdFLE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSx1QkFBNEI7SUFwQm5GOztRQXFCWSxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdkcsYUFBUSxHQUFHLFFBQVEsQ0FBVSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFZLENBQUMsQ0FBQztRQUVwRiwrQkFBK0I7UUFDckIsaUJBQVksR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBWSxDQUFDLENBQUM7UUFDbEYsY0FBUyxHQUFHLFFBQVEsQ0FBUyxHQUFHLEVBQUUsQ0FBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFZLElBQUksT0FBTyxDQUFDLENBQUM7UUFFakcsNkJBQTZCO1FBQ25CLFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDWCxPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7WUFFRCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztLQUNKOzhHQXRCWSxpQ0FBaUM7a0dBQWpDLGlDQUFpQywrRkFuQmxDOzs7Ozs7Ozs7Ozs7OztHQWNUOzsyRkFLVSxpQ0FBaUM7a0JBcEI3QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7R0FjVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsTUFBTSxFQUFFLEVBQUU7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2PlxuICAgICAgQGlmICh1c2VTZWxlY3RCb3goKSAmJiBnZXREYXRhKCkubGVuZ3RoID4gMCkgeyBAZm9yIChpdGVtIG9mIGdldERhdGEoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8c3BhbiBjbGFzcz1cImF4LWJnLXNsYXRlLTEwMCBheC1weC0yIGF4LXB5LTEgYXgtcm91bmRlZCBheC1tci0yIGF4LW1iLTIgYXgtaW5saW5lLWJsb2NrXCI+e3tcbiAgICAgICAgaXRlbVt0ZXh0RmllbGQoKV1cbiAgICAgIH19PC9zcGFuPlxuICAgICAgfSB9IEBlbHNlIHsgQGlmKG11bHRpcGxlKCkpIHsgQGZvciAoaXRlbSBvZiBpbnRlcm5hbFZhbHVlKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJheC1iZy1zbGF0ZS0xMDAgYXgtcHgtMiBheC1weS0xIGF4LXJvdW5kZWQgYXgtbXItMiBheC1tYi0yIGF4LWlubGluZS1ibG9ja1wiPnt7IGl0ZW0gfX08L3NwYW4+XG4gICAgICB9IH0gQGVsc2Uge1xuICAgICAgPHNwYW4gY2xhc3M9XCJheC1iZy1zbGF0ZS0xMDAgYXgtcHgtMiBheC1weS0xIGF4LXJvdW5kZWQgYXgtbXItMiBheC1tYi0yIGF4LWlubGluZS1ibG9ja1wiPnt7XG4gICAgICAgIGludGVybmFsVmFsdWUoKVswXVxuICAgICAgfX08L3NwYW4+XG4gICAgICB9IH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtdLFxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBUYWdhYmxlQm94V2lkZ2V0UHJpbnRDb21wb25lbnQgZXh0ZW5kcyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudDxhbnk+IHtcbiAgcHJvdGVjdGVkIGludGVybmFsVmFsdWUgPSBjb21wdXRlZCgoKSA9PiAoQXJyYXkuaXNBcnJheSh0aGlzLmdldFZhbHVlKCkpID8gdGhpcy5nZXRWYWx1ZSgpIDogW3RoaXMuZ2V0VmFsdWUoKV0pKTtcblxuICBwcm90ZWN0ZWQgbXVsdGlwbGUgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnbXVsdGlwbGUnXSBhcyBib29sZWFuKTtcblxuICAvLyDZiNuM2pjar9uM4oCM2YfYp9uMINmF2LHYqtio2Lcg2KjYpyBTZWxlY3RCb3hcbiAgcHJvdGVjdGVkIHVzZVNlbGVjdEJveCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMub3B0aW9ucygpWyd1c2VTZWxlY3RCb3gnXSBhcyBib29sZWFuKTtcbiAgcHJvdGVjdGVkIHRleHRGaWVsZCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gKHRoaXMub3B0aW9ucygpWyd0ZXh0RmllbGQnXSBhcyBzdHJpbmcpID8/ICd0aXRsZScpO1xuXG4gIC8vINin2LPYqtiu2LHYp9isINiv2KfYr9mH4oCM2YfYpyDYqNix2KfbjCDZhtmF2KfbjNi0XG4gIHByb3RlY3RlZCBnZXREYXRhID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICghdGhpcy51c2VTZWxlY3RCb3goKSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gIH0pO1xufVxuIl19","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/badge\";\nexport class AXPTagableBoxWidgetViewComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n this.internalValue = computed(() => (Array.isArray(this.getValue()) ? this.getValue() : [this.getValue()]));\n this.multiple = computed(() => this.options()['multiple']);\n // ویژگی‌های مرتبط با SelectBox\n this.useSelectBox = computed(() => this.options()['useSelectBox']);\n this.textField = computed(() => this.options()['textField'] ?? 'title');\n // استخراج داده‌ها برای نمایش\n this.getData = computed(() => {\n if (!this.useSelectBox()) {\n return [];\n }\n const value = this.getValue();\n if (!value) {\n return [];\n }\n return Array.isArray(value) ? value : [value];\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPTagableBoxWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", type: AXPTagableBoxWidgetViewComponent, isStandalone: true, selector: \"axp-tagable-box-widget\", usesInheritance: true, ngImport: i0, template: `\n @for (item of internalValue(); track $index) {\n <ax-badge [look]=\"'twotone'\" [text]=\"item\" color=\"primary\"></ax-badge>\n }\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXBadgeModule }, { kind: \"component\", type: i1.AXBadgeComponent, selector: \"ax-badge\", inputs: [\"color\", \"text\", \"look\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPTagableBoxWidgetViewComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-tagable-box-widget',\n template: `\n @for (item of internalValue(); track $index) {\n <ax-badge [look]=\"'twotone'\" [text]=\"item\" color=\"primary\"></ax-badge>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXBadgeModule],\n inputs: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYWJsZS1ib3gtd2lkZ2V0LXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd2lkZ2V0cy90YWdhYmxlLWJveC90YWdhYmxlLWJveC13aWRnZXQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFhN0UsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLHVCQUE0QjtJQVhsRjs7UUFZWSxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdkcsYUFBUSxHQUFHLFFBQVEsQ0FBVSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFZLENBQUMsQ0FBQztRQUVwRiwrQkFBK0I7UUFDckIsaUJBQVksR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBWSxDQUFDLENBQUM7UUFDbEYsY0FBUyxHQUFHLFFBQVEsQ0FBUyxHQUFHLEVBQUUsQ0FBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFZLElBQUksT0FBTyxDQUFDLENBQUM7UUFFakcsNkJBQTZCO1FBQ25CLFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDWCxPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7WUFFRCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztLQUNKOzhHQXRCWSxnQ0FBZ0M7a0dBQWhDLGdDQUFnQyx5R0FUakM7Ozs7R0FJVCwyREFFUyxhQUFhOzsyRkFHWixnQ0FBZ0M7a0JBWDVDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsUUFBUSxFQUFFOzs7O0dBSVQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDeEIsTUFBTSxFQUFFLEVBQUU7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2JhZGdlJztcbmltcG9ydCB7IEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC10YWdhYmxlLWJveC13aWRnZXQnLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBmb3IgKGl0ZW0gb2YgaW50ZXJuYWxWYWx1ZSgpOyB0cmFjayAkaW5kZXgpIHtcbiAgICA8YXgtYmFkZ2UgW2xvb2tdPVwiJ3R3b3RvbmUnXCIgW3RleHRdPVwiaXRlbVwiIGNvbG9yPVwicHJpbWFyeVwiPjwvYXgtYmFkZ2U+XG4gICAgfVxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0FYQmFkZ2VNb2R1bGVdLFxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBUYWdhYmxlQm94V2lkZ2V0Vmlld0NvbXBvbmVudCBleHRlbmRzIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50PGFueT4ge1xuICBwcm90ZWN0ZWQgaW50ZXJuYWxWYWx1ZSA9IGNvbXB1dGVkKCgpID0+IChBcnJheS5pc0FycmF5KHRoaXMuZ2V0VmFsdWUoKSkgPyB0aGlzLmdldFZhbHVlKCkgOiBbdGhpcy5nZXRWYWx1ZSgpXSkpO1xuXG4gIHByb3RlY3RlZCBtdWx0aXBsZSA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMub3B0aW9ucygpWydtdWx0aXBsZSddIGFzIGJvb2xlYW4pO1xuXG4gIC8vINmI24zamNqv24zigIzZh9in24wg2YXYsdiq2KjYtyDYqNinIFNlbGVjdEJveFxuICBwcm90ZWN0ZWQgdXNlU2VsZWN0Qm94ID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ3VzZVNlbGVjdEJveCddIGFzIGJvb2xlYW4pO1xuICBwcm90ZWN0ZWQgdGV4dEZpZWxkID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiAodGhpcy5vcHRpb25zKClbJ3RleHRGaWVsZCddIGFzIHN0cmluZykgPz8gJ3RpdGxlJyk7XG5cbiAgLy8g2KfYs9iq2K7Ysdin2Kwg2K/Yp9iv2YfigIzZh9inINio2LHYp9uMINmG2YXYp9uM2LRcbiAgcHJvdGVjdGVkIGdldERhdGEgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKCF0aGlzLnVzZVNlbGVjdEJveCgpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgfSk7XG59XG4iXX0=","import { AXP_WIDGETS_EDITOR_CATEGORY } from '@acorex/platform/layout/builder';\nimport { AXP_DATA_PATH_PROPERTY, AXP_NAME_PROPERTY } from '@acorex/platform/widgets';\nexport const AXPTagableBoxWidget = {\n name: 'tagable-editor',\n title: 'Tagable Box',\n icon: 'fa-light fa-tags',\n description: 'Inputs text with tags',\n categories: AXP_WIDGETS_EDITOR_CATEGORY,\n type: 'editor',\n defaultFilterWidgetName: 'string-filter',\n properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY],\n components: {\n view: {\n component: () => import('./tagable-box-widget-view.component').then((c) => c.AXPTagableBoxWidgetViewComponent),\n },\n edit: {\n component: () => import('./tagable-box-widget-edit.component').then((c) => c.AXPTagableBoxWidgetEditComponent),\n },\n filter: {\n component: () => import('./tagable-box-widget-filter.component').then((c) => c.AXPTagableBoxWidgetFilterComponent),\n },\n column: {\n component: () => import('./tagable-box-widget-column.component').then((c) => c.AXPTagableBoxWidgetColumnComponent),\n },\n print: {\n component: () => import('./tagable-box-widget-print.component').then((c) => c.AXPTagableBoxWidgetPrintComponent),\n },\n designer: {\n component: () => import('./tagable-box-widget-edit.component').then((c) => c.AXPTagableBoxWidgetEditComponent),\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYWJsZS1ib3gtd2lkZ2V0LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvdGFnYWJsZS1ib3gvdGFnYWJsZS1ib3gtd2lkZ2V0LmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQW1CLE1BQU0saUNBQWlDLENBQUM7QUFFL0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFckYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQW9CO0lBQ2xELElBQUksRUFBRSxnQkFBZ0I7SUFDdEIsS0FBSyxFQUFFLGFBQWE7SUFDcEIsSUFBSSxFQUFFLGtCQUFrQjtJQUN4QixXQUFXLEVBQUUsdUJBQXVCO0lBQ3BDLFVBQVUsRUFBRSwyQkFBMkI7SUFDdkMsSUFBSSxFQUFFLFFBQVE7SUFDZCx1QkFBdUIsRUFBRSxlQUFlO0lBQ3hDLFVBQVUsRUFBRSxDQUFDLGlCQUFpQixFQUFFLHNCQUFzQixDQUFDO0lBQ3ZELFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRTtZQUNKLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMscUNBQXFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQztTQUMvRztRQUNELElBQUksRUFBRTtZQUNKLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMscUNBQXFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQztTQUMvRztRQUNELE1BQU0sRUFBRTtZQUNOLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FDZCxNQUFNLENBQUMsdUNBQXVDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQ0FBa0MsQ0FBQztTQUNwRztRQUNELE1BQU0sRUFBRTtZQUNOLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FDZCxNQUFNLENBQUMsdUNBQXVDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQ0FBa0MsQ0FBQztTQUNwRztRQUNELEtBQUssRUFBRTtZQUNMLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsc0NBQXNDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxpQ0FBaUMsQ0FBQztTQUNqSDtRQUNELFFBQVEsRUFBRTtZQUNSLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMscUNBQXFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQztTQUMvRztLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUF9XSURHRVRTX0VESVRPUl9DQVRFR09SWSwgQVhQV2lkZ2V0Q29uZmlnIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5cbmltcG9ydCB7IEFYUF9EQVRBX1BBVEhfUFJPUEVSVFksIEFYUF9OQU1FX1BST1BFUlRZIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93aWRnZXRzJztcblxuZXhwb3J0IGNvbnN0IEFYUFRhZ2FibGVCb3hXaWRnZXQ6IEFYUFdpZGdldENvbmZpZyA9IHtcbiAgbmFtZTogJ3RhZ2FibGUtZWRpdG9yJyxcbiAgdGl0bGU6ICdUYWdhYmxlIEJveCcsXG4gIGljb246ICdmYS1saWdodCBmYS10YWdzJyxcbiAgZGVzY3JpcHRpb246ICdJbnB1dHMgdGV4dCB3aXRoIHRhZ3MnLFxuICBjYXRlZ29yaWVzOiBBWFBfV0lER0VUU19FRElUT1JfQ0FURUdPUlksXG4gIHR5cGU6ICdlZGl0b3InLFxuICBkZWZhdWx0RmlsdGVyV2lkZ2V0TmFtZTogJ3N0cmluZy1maWx0ZXInLFxuICBwcm9wZXJ0aWVzOiBbQVhQX05BTUVfUFJPUEVSVFksIEFYUF9EQVRBX1BBVEhfUFJPUEVSVFldLFxuICBjb21wb25lbnRzOiB7XG4gICAgdmlldzoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vdGFnYWJsZS1ib3gtd2lkZ2V0LXZpZXcuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWFBUYWdhYmxlQm94V2lkZ2V0Vmlld0NvbXBvbmVudCksXG4gICAgfSxcbiAgICBlZGl0OiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi90YWdhYmxlLWJveC13aWRnZXQtZWRpdC5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUFRhZ2FibGVCb3hXaWRnZXRFZGl0Q29tcG9uZW50KSxcbiAgICB9LFxuICAgIGZpbHRlcjoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PlxuICAgICAgICBpbXBvcnQoJy4vdGFnYWJsZS1ib3gtd2lkZ2V0LWZpbHRlci5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUFRhZ2FibGVCb3hXaWRnZXRGaWx0ZXJDb21wb25lbnQpLFxuICAgIH0sXG4gICAgY29sdW1uOiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+XG4gICAgICAgIGltcG9ydCgnLi90YWdhYmxlLWJveC13aWRnZXQtY29sdW1uLmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQVGFnYWJsZUJveFdpZGdldENvbHVtbkNvbXBvbmVudCksXG4gICAgfSxcbiAgICBwcmludDoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vdGFnYWJsZS1ib3gtd2lkZ2V0LXByaW50LmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQVGFnYWJsZUJveFdpZGdldFByaW50Q29tcG9uZW50KSxcbiAgICB9LFxuICAgIGRlc2lnbmVyOiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi90YWdhYmxlLWJveC13aWRnZXQtZWRpdC5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUFRhZ2FibGVCb3hXaWRnZXRFZGl0Q29tcG9uZW50KSxcbiAgICB9LFxuICB9LFxufTtcbmRlY2xhcmUgbW9kdWxlICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJyB7XG4gIGludGVyZmFjZSBBWFBXaWRnZXRUeXBlc01hcCB7XG4gICAgdGFnYWJsZTogJ3RhZ2FibGUtZWRpdG9yJztcbiAgfVxufVxuIl19","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTextBoxComponent, AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { AXPValueWidgetComponent, AXPWidgetRegistryService, } from '@acorex/platform/layout/builder';\nimport { AXPWidgetPropertyViewerComponent } from '@acorex/platform/layout/designer';\nimport { ChangeDetectionStrategy, Component, computed, inject, signal, ViewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { sortBy } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/text-box\";\nimport * as i3 from \"@acorex/components/button\";\nimport * as i4 from \"@acorex/components/decorators\";\nimport * as i5 from \"@acorex/components/form\";\nexport class AXPWidgetSelectorWidgetEditComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n this.popupService = inject(AXPopupService);\n this.widgetRegisteryService = inject(AXPWidgetRegistryService);\n this.searchTerm = signal(null);\n this.isOpen = signal(false);\n this.textField = signal('');\n this.displayText = computed(() => this.getValue()?.title || '');\n this.selectedWidgetNode = signal(null);\n this.selectedItem = signal(null);\n this.placeholder = computed(() => this.options()['placeholder'] ?? '');\n this.loading = computed(() => this.options()['loading'] ?? false);\n }\n ngAfterViewInit() {\n if (this.getValue()) {\n this.selectedWidgetNode.set(this.getValue());\n }\n }\n async showSelector() {\n const com = await import('@acorex/platform/layout/designer').then((c) => c.AXPDesignerWidgetPickerComponent);\n const result = await this.popupService.open(com, {\n title: 'Widget Gallery',\n size: 'md',\n closeButton: true,\n data: {\n widgets: sortBy(this.widgetRegisteryService.all(), (c) => c.title),\n },\n });\n if ((result.data?.widgets ?? []).length) {\n const selected = result.data?.widgets;\n const selectedNode = this.convertWidgetConfigToNode(selected[0]);\n this.selectedWidgetNode.set(selectedNode);\n }\n }\n convertWidgetConfigToNode(config) {\n return {\n type: config.name,\n };\n }\n handleChangeWidget(e) {\n const widget = this.widgetRegisteryService.resolve(e.values.type);\n this.setValue({ title: widget?.title, ...e.values });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPWidgetSelectorWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", type: AXPWidgetSelectorWidgetEditComponent, isStandalone: true, selector: \"ng-component\", viewQueries: [{ propertyName: \"textbox\", first: true, predicate: AXTextBoxComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: `\n <ax-text-box [ngModel]=\"displayText()\" [placeholder]=\"placeholder()\" [readonly]=\"true\">\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validation.options?.message\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n <ax-suffix>\n <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"showSelector()\">\n <ax-icon icon=\"far fa-search\"> </ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-text-box>\n @if(selectedWidgetNode()){\n <axp-widget-property-viewer [widget]=\"selectedWidgetNode()!\" (onChanged)=\"handleChangeWidget($event)\">\n </axp-widget-property-viewer>\n }\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: AXSelectBoxModule }, { kind: \"ngmodule\", type: AXTextBoxModule }, { kind: \"component\", type: i2.AXTextBoxComponent, selector: \"ax-text-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"value\", \"state\", \"name\", \"id\", \"placeholder\", \"maxLength\", \"allowNull\", \"type\", \"autoComplete\", \"look\", \"mask-options\", \"class\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"stateChange\", \"onValueChanged\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i3.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i4.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i4.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXLoadingModule }, { kind: \"ngmodule\", type: AXValidationModule }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"directive\", type: i5.AXValidationRuleDirective, selector: \"ax-validation-rule\", inputs: [\"rule\", \"options\", \"message\", \"disabled\"] }, { kind: \"component\", type: AXPWidgetPropertyViewerComponent, selector: \"axp-widget-property-viewer\", inputs: [\"widget\", \"mode\"], outputs: [\"onChanged\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPWidgetSelectorWidgetEditComponent, decorators: [{\n type: Component,\n args: [{\n template: `\n <ax-text-box [ngModel]=\"displayText()\" [placeholder]=\"placeholder()\" [readonly]=\"true\">\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validation.options?.message\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n <ax-suffix>\n <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"showSelector()\">\n <ax-icon icon=\"far fa-search\"> </ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-text-box>\n @if(selectedWidgetNode()){\n <axp-widget-property-viewer [widget]=\"selectedWidgetNode()!\" (onChanged)=\"handleChangeWidget($event)\">\n </axp-widget-property-viewer>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n AXSelectBoxModule,\n AXTextBoxModule,\n AXButtonModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXValidationModule,\n AXFormModule,\n AXPWidgetPropertyViewerComponent\n ]\n }]\n }], propDecorators: { textbox: [{\n type: ViewChild,\n args: [AXTextBoxComponent]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXNlbGVjdG9yLXdpZGdldC1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvd2lkZ2V0LXNlbGVjdG9yL3dpZGdldC1zZWxlY3Rvci13aWRnZXQtZWRpdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU3RCxPQUFPLEVBQ0wsdUJBQXVCLEVBR3ZCLHdCQUF3QixHQUV6QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBbUMsZ0NBQWdDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVySCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7OztBQW9DbkMs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Q25COzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJULDJEQUdDLFdBQVcsOFZBQ1gsaUJBQWlCLDhCQUNqQixlQUFlLHFiQUNmLGNBQWMsNlhBQ2QsaUJBQWlCLHNWQUNqQixlQUFlLDhCQUNmLGtCQUFrQiw4QkFDbEIsWUFBWSw4S0FDWixnQ0FBZ0M7OzJGQUd2QixvQ0FBb0M7a0JBbENoRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFO3dCQUNQLFdBQVc7d0JBQ1gsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsWUFBWTt3QkFDWixnQ0FBZ0M7cUJBQ25DO2lCQUNBOzhCQU1DLE9BQU87c0JBRE4sU0FBUzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWExvYWRpbmdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBBWFNlbGVjdEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWxlY3QtYm94JztcbmltcG9ydCB7IEFYVGV4dEJveENvbXBvbmVudCwgQVhUZXh0Qm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RleHQtYm94JztcbmltcG9ydCB7IEFYVmFsaWRhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS92YWxpZGF0aW9uJztcbmltcG9ydCB7IEFYUFZhbGlkYXRpb25SdWxlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7XG4gIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50LFxuICBBWFBXaWRnZXRDb25maWcsXG4gIEFYUFdpZGdldE5vZGUsXG4gIEFYUFdpZGdldFJlZ2lzdHJ5U2VydmljZSxcbiAgQVhQV2lkZ2V0VHlwZXNNYXAsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQVhQV2lkZ2V0UHJvcGVydGllc0NoYW5nZWRFdmVudCwgQVhQV2lkZ2V0UHJvcGVydHlWaWV3ZXJDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9kZXNpZ25lcic7XG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHNvcnRCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYFxuICAgIDxheC10ZXh0LWJveCBbbmdNb2RlbF09XCJkaXNwbGF5VGV4dCgpXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIiBbcmVhZG9ubHldPVwidHJ1ZVwiPlxuICAgICAgQGZvciAodmFsaWRhdGlvbiBvZiB2YWxpZGF0aW9uUnVsZXMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8YXgtdmFsaWRhdGlvbi1ydWxlXG4gICAgICAgIFtydWxlXT1cInZhbGlkYXRpb24ucnVsZVwiXG4gICAgICAgIFttZXNzYWdlXT1cInZhbGlkYXRpb24ub3B0aW9ucz8ubWVzc2FnZVwiXG4gICAgICAgIFtvcHRpb25zXT1cInZhbGlkYXRpb24ub3B0aW9uc1wiXG4gICAgICA+PC9heC12YWxpZGF0aW9uLXJ1bGU+XG4gICAgICB9XG4gICAgICA8YXgtc3VmZml4PlxuICAgICAgICA8YXgtYnV0dG9uIGNvbG9yPVwiZ2hvc3RcIiBsb29rPVwidHdvdG9uZVwiIChvbkNsaWNrKT1cInNob3dTZWxlY3RvcigpXCI+XG4gICAgICAgICAgPGF4LWljb24gaWNvbj1cImZhciBmYS1zZWFyY2hcIj4gPC9heC1pY29uPlxuICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgIDwvYXgtc3VmZml4PlxuICAgIDwvYXgtdGV4dC1ib3g+XG4gICAgQGlmKHNlbGVjdGVkV2lkZ2V0Tm9kZSgpKXtcbiAgICA8YXhwLXdpZGdldC1wcm9wZXJ0eS12aWV3ZXIgW3dpZGdldF09XCJzZWxlY3RlZFdpZGdldE5vZGUoKSFcIiAob25DaGFuZ2VkKT1cImhhbmRsZUNoYW5nZVdpZGdldCgkZXZlbnQpXCI+XG4gICAgPC9heHAtd2lkZ2V0LXByb3BlcnR5LXZpZXdlcj5cbiAgICB9XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQVhTZWxlY3RCb3hNb2R1bGUsXG4gICAgQVhUZXh0Qm94TW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYTG9hZGluZ01vZHVsZSxcbiAgICBBWFZhbGlkYXRpb25Nb2R1bGUsXG4gICAgQVhGb3JtTW9kdWxlLFxuICAgIEFYUFdpZGdldFByb3BlcnR5Vmlld2VyQ29tcG9uZW50XG5dXG59KVxuZXhwb3J0IGNsYXNzIEFYUFdpZGdldFNlbGVjdG9yV2lkZ2V0RWRpdENvbXBvbmVudCBleHRlbmRzIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50PGFueT4ge1xuICBwcml2YXRlIHBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XG4gIHByaXZhdGUgd2lkZ2V0UmVnaXN0ZXJ5U2VydmljZSA9IGluamVjdChBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UpO1xuXG4gIEBWaWV3Q2hpbGQoQVhUZXh0Qm94Q29tcG9uZW50KVxuICB0ZXh0Ym94OiBBWFRleHRCb3hDb21wb25lbnQ7XG5cbiAgcHJvdGVjdGVkIHNlYXJjaFRlcm0gPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCBpc09wZW4gPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgdGV4dEZpZWxkID0gc2lnbmFsPHN0cmluZz4oJycpO1xuXG4gIHByb3RlY3RlZCBkaXNwbGF5VGV4dCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZ2V0VmFsdWUoKT8udGl0bGUgfHwgJycpO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRXaWRnZXROb2RlID0gc2lnbmFsPEFYUFdpZGdldE5vZGUgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkSXRlbSA9IHNpZ25hbDxhbnkgfCBudWxsPihudWxsKTtcblxuICBwcm90ZWN0ZWQgcGxhY2Vob2xkZXIgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKVsncGxhY2Vob2xkZXInXSA/PyAnJyk7XG4gIHByb3RlY3RlZCBsb2FkaW5nID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ2xvYWRpbmcnXSA/PyBmYWxzZSk7XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmdldFZhbHVlKCkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXROb2RlLnNldCh0aGlzLmdldFZhbHVlKCkpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNob3dTZWxlY3RvcigpIHtcbiAgICBjb25zdCBjb20gPSBhd2FpdCBpbXBvcnQoJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyJykudGhlbigoYykgPT4gYy5BWFBEZXNpZ25lcldpZGdldFBpY2tlckNvbXBvbmVudCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5wb3B1cFNlcnZpY2Uub3Blbihjb20sIHtcbiAgICAgIHRpdGxlOiAnV2lkZ2V0IEdhbGxlcnknLFxuICAgICAgc2l6ZTogJ21kJyxcbiAgICAgIGNsb3NlQnV0dG9uOiB0cnVlLFxuICAgICAgZGF0YToge1xuICAgICAgICB3aWRnZXRzOiBzb3J0QnkoXG4gICAgICAgICAgdGhpcy53aWRnZXRSZWdpc3RlcnlTZXJ2aWNlLmFsbCgpLFxuICAgICAgICAgIChjKSA9PiBjLnRpdGxlXG4gICAgICAgICksXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGlmICgocmVzdWx0LmRhdGE/LndpZGdldHMgPz8gW10pLmxlbmd0aCkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWQgPSByZXN1bHQuZGF0YT8ud2lkZ2V0cyBhcyBBWFBXaWRnZXRDb25maWdbXTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkTm9kZSA9IHRoaXMuY29udmVydFdpZGdldENvbmZpZ1RvTm9kZShzZWxlY3RlZFswXSk7XG4gICAgICB0aGlzLnNlbGVjdGVkV2lkZ2V0Tm9kZS5zZXQoc2VsZWN0ZWROb2RlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY29udmVydFdpZGdldENvbmZpZ1RvTm9kZShjb25maWc6IEFYUFdpZGdldENvbmZpZyk6IEFYUFdpZGdldE5vZGUge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBjb25maWcubmFtZSBhcyAoa2V5b2YgQVhQV2lkZ2V0VHlwZXNNYXApLFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2hhbmdlV2lkZ2V0KGU6IEFYUFdpZGdldFByb3BlcnRpZXNDaGFuZ2VkRXZlbnQpIHtcbiAgICBjb25zdCB3aWRnZXQgPSB0aGlzLndpZGdldFJlZ2lzdGVyeVNlcnZpY2UucmVzb2x2ZShlLnZhbHVlcy50eXBlKTtcbiAgICB0aGlzLnNldFZhbHVlKHsgdGl0bGU6IHdpZGdldD8udGl0bGUsIC4uLmUudmFsdWVzIH0pO1xuICB9XG59XG4iXX0=","import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPWidgetSelectorWidgetViewComponent extends AXPValueWidgetComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPWidgetSelectorWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", type: AXPWidgetSelectorWidgetViewComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: `{{ getValue()?.title }}`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPWidgetSelectorWidgetViewComponent, decorators: [{\n type: Component,\n args: [{\n template: `{{ getValue()?.title }}`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: []\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXNlbGVjdG9yLXdpZGdldC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvd2lkZ2V0LXNlbGVjdG9yL3dpZGdldC1zZWxlY3Rvci13aWRnZXQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPbkUsTUFBTSxPQUFPLG9DQUFxQyxTQUFRLHVCQUE0Qjs4R0FBekUsb0NBQW9DO2tHQUFwQyxvQ0FBb0MsK0ZBSm5DLHlCQUF5Qjs7MkZBSTFCLG9DQUFvQztrQkFMaEQsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlOiBge3sgZ2V0VmFsdWUoKT8udGl0bGUgfX1gLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGltcG9ydHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEFYUFdpZGdldFNlbGVjdG9yV2lkZ2V0Vmlld0NvbXBvbmVudCBleHRlbmRzIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50PGFueT4geyB9XG4iXX0=","import { AXP_WIDGETS_EDITOR_CATEGORY } from '@acorex/platform/layout/builder';\nimport { AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY, AXP_NAME_PROPERTY } from '@acorex/platform/widgets';\nexport const AXPWidgetSelectorWidget = {\n name: 'widget-selector',\n title: 'Widget Selector',\n categories: AXP_WIDGETS_EDITOR_CATEGORY,\n type: 'editor',\n icon: 'fa-light fa-square',\n properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],\n components: {\n view: {\n component: () => import('./widget-selector-widget-view.component').then((c) => c.AXPWidgetSelectorWidgetViewComponent),\n },\n edit: {\n component: () => import('./widget-selector-widget-edit.component').then((c) => c.AXPWidgetSelectorWidgetEditComponent),\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXNlbGVjdG9yLXdpZGdldC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL3dpZGdldC1zZWxlY3Rvci93aWRnZXQtc2VsZWN0b3Itd2lkZ2V0LmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQW1CLE1BQU0saUNBQWlDLENBQUM7QUFDL0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFNUcsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQW9CO0lBQ3RELElBQUksRUFBRSxpQkFBaUI7SUFDdkIsS0FBSyxFQUFFLGlCQUFpQjtJQUN4QixVQUFVLEVBQUUsMkJBQTJCO0lBQ3ZDLElBQUksRUFBRSxRQUFRO0lBQ2QsSUFBSSxFQUFFLG9CQUFvQjtJQUMxQixVQUFVLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSxxQkFBcUIsQ0FBQztJQUM5RSxVQUFVLEVBQUU7UUFDVixJQUFJLEVBQUU7WUFDSixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQ2QsTUFBTSxDQUFDLHlDQUF5QyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0NBQW9DLENBQUM7U0FDeEc7UUFDRCxJQUFJLEVBQUU7WUFDSixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQ2QsTUFBTSxDQUFDLHlDQUF5QyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0NBQW9DLENBQUM7U0FDeEc7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBfV0lER0VUU19FRElUT1JfQ0FURUdPUlksIEFYUFdpZGdldENvbmZpZyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQVhQX0RBVEFfUEFUSF9QUk9QRVJUWSwgQVhQX0RJU0FCTEVEX1BST1BFUlRZLCBBWFBfTkFNRV9QUk9QRVJUWSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd2lkZ2V0cyc7XG5cbmV4cG9ydCBjb25zdCBBWFBXaWRnZXRTZWxlY3RvcldpZGdldDogQVhQV2lkZ2V0Q29uZmlnID0ge1xuICBuYW1lOiAnd2lkZ2V0LXNlbGVjdG9yJyxcbiAgdGl0bGU6ICdXaWRnZXQgU2VsZWN0b3InLFxuICBjYXRlZ29yaWVzOiBBWFBfV0lER0VUU19FRElUT1JfQ0FURUdPUlksXG4gIHR5cGU6ICdlZGl0b3InLFxuICBpY29uOiAnZmEtbGlnaHQgZmEtc3F1YXJlJyxcbiAgcHJvcGVydGllczogW0FYUF9OQU1FX1BST1BFUlRZLCBBWFBfREFUQV9QQVRIX1BST1BFUlRZLCBBWFBfRElTQUJMRURfUFJPUEVSVFldLFxuICBjb21wb25lbnRzOiB7XG4gICAgdmlldzoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PlxuICAgICAgICBpbXBvcnQoJy4vd2lkZ2V0LXNlbGVjdG9yLXdpZGdldC12aWV3LmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQV2lkZ2V0U2VsZWN0b3JXaWRnZXRWaWV3Q29tcG9uZW50KSxcbiAgICB9LFxuICAgIGVkaXQ6IHtcbiAgICAgIGNvbXBvbmVudDogKCkgPT5cbiAgICAgICAgaW1wb3J0KCcuL3dpZGdldC1zZWxlY3Rvci13aWRnZXQtZWRpdC5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUFdpZGdldFNlbGVjdG9yV2lkZ2V0RWRpdENvbXBvbmVudCksXG4gICAgfSxcbiAgfSxcbn07XG5cbmRlY2xhcmUgbW9kdWxlICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJyB7XG4gIGludGVyZmFjZSBBWFBXaWRnZXRUeXBlc01hcCB7XG4gICAgd2lkZ2V0U2VsZWN0b3I6ICd3aWRnZXQtc2VsZWN0b3InO1xuICB9XG59XG4iXX0=","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflowAction, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityCreateViewModelFactory } from '../entity-master-create.viewmodel';\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\nimport { AXP_ENTITY_CONFIG_TOKEN } from '../entity.config';\nimport * as i0 from \"@angular/core\";\nexport const AXPEntityCreateEvent = createWorkFlowEvent('[Entity] Created!');\nexport class AXPEntityCreatePopupAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.entityRegistery = inject(AXPEntityDefinitionRegistryService);\n this.popupService = inject(AXPopupService);\n this.platform = inject(AXPlatform);\n this.factory = inject(AXPEntityCreateViewModelFactory);\n this.config = inject(AXP_ENTITY_CONFIG_TOKEN);\n this.translateService = inject(AXTranslationService);\n }\n async execute(context) {\n const [module, entity] = context.getVariable('entity').split('.');\n const data = context.getVariable('data');\n const options = context.getVariable('options');\n console.log('data', data);\n const process = options?.['process'];\n const decoration = options?.['decoration'];\n const layout = options?.['layout'];\n const headerTitle = decoration?.header?.title;\n const size = layout?.size;\n const entityRef = await this.entityRegistery.resolve(module, entity);\n const com = await this.config.viewers.master.create();\n if (entityRef.parentKey) {\n context.setVariable('parentKey', entityRef.parentKey);\n }\n const result = await this.popupService.open(com, {\n title: headerTitle\n ? headerTitle\n : `${await this.translateService.translateAsync('create-new')} ${await this.translateService.translateAsync(entityRef.formats.individual)}`,\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : size ? size : 'md',\n data: {\n vm: await this.factory.create(module, entity, data, options),\n entity,\n },\n });\n context.setOutput('result', false);\n if (result.data?.save) {\n context.setOutput('result', true);\n const prevData = context.getVariable('data');\n const prevMeta = context.getVariable('meta');\n context.setVariable('data', { ...prevData, ...result.data.item });\n if (entityRef.parentKey && result.data.item[entityRef.parentKey]) {\n context.setVariable('meta', { ...prevMeta, refreshTargetId: result.data.item[entityRef.parentKey] });\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityCreatePopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityCreatePopupAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityCreatePopupAction, decorators: [{\n type: Injectable\n }] });\nexport class AXPEntityCreateSubmittedAction extends AXPWorkflowAction {\n async execute(context) {\n this.dispatch(AXPEntityCreateEvent({ entity: context.getVariable('entity'), meta: context.getVariable('meta') }));\n this.dispatch(AXPRefreshEvent({ entity: context.getVariable('entity'), meta: context.getVariable('meta') }));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityCreateSubmittedAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityCreateSubmittedAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityCreateSubmittedAction, decorators: [{\n type: Injectable\n }] });\nexport const AXPCreateEntityWorkflow = {\n startStepId: 'show-popup',\n steps: {\n 'show-popup': {\n action: 'AXPEntityCreatePopupAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\n nextStepId: 'show-toast',\n },\n ],\n },\n 'show-toast': {\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-created',\n content: 'workflow.entity-created-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'dispatch-event',\n },\n ],\n },\n 'dispatch-event': {\n action: 'AXPEntityCreateSubmittedAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getVariable(\"options\")?.process?.redirect != false' }],\n nextStepId: 'show-entity',\n },\n ],\n },\n 'show-entity': {\n action: 'AXPShowDetailViewAction',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWVudGl0eS53b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dvcmtmbG93cy9jcmVhdGUtZW50aXR5LndvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBZSxpQkFBaUIsRUFBc0IsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRixPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFM0QsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsbUJBQW1CLENBQWlDLG1CQUFtQixDQUFDLENBQUM7QUFHN0csTUFBTSxPQUFPLDBCQUEyQixTQUFRLGlCQUFpQjtJQURqRTs7UUFFVSxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQzdELGlCQUFZLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RDLGFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUIsWUFBTyxHQUFHLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ2xELFdBQU0s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LFVBQVUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUscUNBQXFDLEVBQUUsQ0FBQztvQkFDbkYsVUFBVSxFQUFFLFlBQVk7aUJBQ3pCO2FBQ0Y7U0FDRjtRQUNELFlBQVksRUFBRTtZQUNaLE1BQU0sRUFBRSxnQkFBZ0I7WUFDeEIsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxTQUFTO2dCQUNoQixLQUFLLEVBQUUseUJBQXlCO2dCQUNoQyxPQUFPLEVBQUUsOEJBQThCO2FBQ3hDO1lBQ0QsU0FBUyxFQUFFO2dCQUNUO29CQUNFLFVBQVUsRUFBRSxFQUFFO29CQUNkLFVBQVUsRUFBRSxnQkFBZ0I7aUJBQzdCO2FBQ0Y7U0FDRjtRQUNELGdCQUFnQixFQUFFO1lBQ2hCLE1BQU0sRUFBRSxnQ0FBZ0M7WUFDeEMsU0FBUyxFQUFFO2dCQUNUO29CQUNFLFVBQVUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsNERBQTRELEVBQUUsQ0FBQztvQkFDMUcsVUFBVSxFQUFFLGFBQWE7aUJBQzFCO2FBQ0Y7U0FDRjtRQUNELGFBQWEsRUFBRTtZQUNiLE1BQU0sRUFBRSx5QkFBeUI7U0FDbEM7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBBWFBsYXRmb3JtIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYUFJlZnJlc2hFdmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUFdvcmtmbG93LCBBWFBXb3JrZmxvd0FjdGlvbiwgQVhQV29ya2Zsb3dDb250ZXh0LCBjcmVhdGVXb3JrRmxvd0V2ZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEVudGl0eUNyZWF0ZVZpZXdNb2RlbEZhY3RvcnkgfSBmcm9tICcuLi9lbnRpdHktbWFzdGVyLWNyZWF0ZS52aWV3bW9kZWwnO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4uL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBfRU5USVRZX0NPTkZJR19UT0tFTiB9IGZyb20gJy4uL2VudGl0eS5jb25maWcnO1xuXG5leHBvcnQgY29uc3QgQVhQRW50aXR5Q3JlYXRlRXZlbnQgPSBjcmVhdGVXb3JrRmxvd0V2ZW50PHsgZW50aXR5OiBzdHJpbmc7IG1ldGE/OiBhbnkgfT4oJ1tFbnRpdHldIENyZWF0ZWQhJyk7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlDcmVhdGVQb3B1cEFjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgcHJpdmF0ZSBlbnRpdHlSZWdpc3RlcnkgPSBpbmplY3QoQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSk7XG4gIHByaXZhdGUgcG9wdXBTZXJ2aWNlID0gaW5qZWN0KEFYUG9wdXBTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBwbGF0Zm9ybSA9IGluamVjdChBWFBsYXRmb3JtKTtcbiAgcHJpdmF0ZSBmYWN0b3J5ID0gaW5qZWN0KEFYUEVudGl0eUNyZWF0ZVZpZXdNb2RlbEZhY3RvcnkpO1xuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChBWFBfRU5USVRZX0NPTkZJR19UT0tFTik7XG4gIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG5cbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBbbW9kdWxlLCBlbnRpdHldID0gY29udGV4dC5nZXRWYXJpYWJsZTxzdHJpbmc+KCdlbnRpdHknKS5zcGxpdCgnLicpO1xuICAgIGNvbnN0IGRhdGEgPSBjb250ZXh0LmdldFZhcmlhYmxlPGFueT4oJ2RhdGEnKTtcbiAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5nZXRWYXJpYWJsZTxhbnk+KCdvcHRpb25zJyk7XG5cbiAgICBjb25zb2xlLmxvZygnZGF0YScsIGRhdGEpO1xuXG4gICAgY29uc3QgcHJvY2VzcyA9IG9wdGlvbnM/LlsncHJvY2VzcyddO1xuICAgIGNvbnN0IGRlY29yYXRpb24gPSBvcHRpb25zPy5bJ2RlY29yYXRpb24nXTtcbiAgICBjb25zdCBsYXlvdXQgPSBvcHRpb25zPy5bJ2xheW91dCddO1xuXG4gICAgY29uc3QgaGVhZGVyVGl0bGUgPSBkZWNvcmF0aW9uPy5oZWFkZXI/LnRpdGxlO1xuXG4gICAgY29uc3Qgc2l6ZSA9IGxheW91dD8uc2l6ZTtcblxuICAgIGNvbnN0IGVudGl0eVJlZiA9IGF3YWl0IHRoaXMuZW50aXR5UmVnaXN0ZXJ5LnJlc29sdmUobW9kdWxlLCBlbnRpdHkpO1xuICAgIGNvbnN0IGNvbSA9IGF3YWl0IHRoaXMuY29uZmlnLnZpZXdlcnMubWFzdGVyLmNyZWF0ZSgpO1xuXG4gICAgaWYgKGVudGl0eVJlZi5wYXJlbnRLZXkpIHtcbiAgICAgIGNvbnRleHQuc2V0VmFyaWFibGUoJ3BhcmVudEtleScsIGVudGl0eVJlZi5wYXJlbnRLZXkpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMucG9wdXBTZXJ2aWNlLm9wZW4oY29tLCB7XG4gICAgICB0aXRsZTogaGVhZGVyVGl0bGVcbiAgICAgICAgPyBoZWFkZXJUaXRsZVxuICAgICAgICA6IGAke2F3YWl0IHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVBc3luYygnY3JlYXRlLW5ldycpfSAke2F3YWl0IHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVBc3luYyhcbiAgICAgICAgICAgIGVudGl0eVJlZi5mb3JtYXRzLmluZGl2aWR1YWxcbiAgICAgICAgICApfWAsXG4gICAgICBzaXplOiB0aGlzLnBsYXRmb3JtLmlzKCdNb2JpbGUnKSB8fCB0aGlzLnBsYXRmb3JtLmlzKCdTTScpID8gJ2Z1bGwnIDogc2l6ZSA/IHNpemUgOiAnbWQnLFxuICAgICAgZGF0YToge1xuICAgICAgICB2bTogYXdhaXQgdGhpcy5mYWN0b3J5LmNyZWF0ZShtb2R1bGUsIGVudGl0eSwgZGF0YSwgb3B0aW9ucyksXG4gICAgICAgIGVudGl0eSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgY29udGV4dC5zZXRPdXRwdXQoJ3Jlc3VsdCcsIGZhbHNlKTtcbiAgICBpZiAocmVzdWx0LmRhdGE/LnNhdmUpIHtcbiAgICAgIGNvbnRleHQuc2V0T3V0cHV0KCdyZXN1bHQnLCB0cnVlKTtcbiAgICAgIGNvbnN0IHByZXZEYXRhID0gY29udGV4dC5nZXRWYXJpYWJsZSgnZGF0YScpO1xuICAgICAgY29uc3QgcHJldk1ldGEgPSBjb250ZXh0LmdldFZhcmlhYmxlKCdtZXRhJyk7XG5cbiAgICAgIGNvbnRleHQuc2V0VmFyaWFibGUoJ2RhdGEnLCB7IC4uLnByZXZEYXRhLCAuLi5yZXN1bHQuZGF0YS5pdGVtIH0pO1xuICAgICAgaWYgKGVudGl0eVJlZi5wYXJlbnRLZXkgJiYgcmVzdWx0LmRhdGEuaXRlbVtlbnRpdHlSZWYucGFyZW50S2V5XSkge1xuICAgICAgICBjb250ZXh0LnNldFZhcmlhYmxlKCdtZXRhJywgeyAuLi5wcmV2TWV0YSwgcmVmcmVzaFRhcmdldElkOiByZXN1bHQuZGF0YS5pdGVtW2VudGl0eVJlZi5wYXJlbnRLZXldIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuQEluamVjdGFibGUoKSAvL2F2b2lkIERFUFJFQ0FURUQ6IERJIGlzIGluc3RhbnRpYXRpbmcgYSB0b2tlbiBcIkFYUEVudGl0eUNyZWF0ZVN1Ym1pdHRlZEFjdGlvblwiIHRoYXQgaW5oZXJpdHMgaXRzIEBJbmplY3RhYmxlIGRlY29yYXRvciBidXQgZG9lcyBub3QgcHJvdmlkZSBvbmUgaXRzZWxmLiBUaGlzIHdpbGwgYmVjb21lIGFuIGVycm9yIGluIGEgZnV0dXJlIHZlcnNpb24gb2YgQW5ndWxhci4gUGxlYXNlIGFkZCBASW5qZWN0YWJsZSgpIHRvIHRoZSBcIkFYUEVudGl0eUNyZWF0ZVN1Ym1pdHRlZEFjdGlvblwiIGNsYXNzLlxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUNyZWF0ZVN1Ym1pdHRlZEFjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmRpc3BhdGNoKFxuICAgICAgQVhQRW50aXR5Q3JlYXRlRXZlbnQoeyBlbnRpdHk6IGNvbnRleHQuZ2V0VmFyaWFibGU8c3RyaW5nPignZW50aXR5JyksIG1ldGE6IGNvbnRleHQuZ2V0VmFyaWFibGUoJ21ldGEnKSB9KVxuICAgICk7XG4gICAgdGhpcy5kaXNwYXRjaChcbiAgICAgIEFYUFJlZnJlc2hFdmVudCh7IGVudGl0eTogY29udGV4dC5nZXRWYXJpYWJsZTxzdHJpbmc+KCdlbnRpdHknKSwgbWV0YTogY29udGV4dC5nZXRWYXJpYWJsZSgnbWV0YScpIH0pXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgQVhQQ3JlYXRlRW50aXR5V29ya2Zsb3c6IEFYUFdvcmtmbG93ID0ge1xuICBzdGFydFN0ZXBJZDogJ3Nob3ctcG9wdXAnLFxuICBzdGVwczoge1xuICAgICdzaG93LXBvcHVwJzoge1xuICAgICAgYWN0aW9uOiAnQVhQRW50aXR5Q3JlYXRlUG9wdXBBY3Rpb24nLFxuICAgICAgbmV4dFN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb25kaXRpb25zOiBbeyB0eXBlOiAnU0lOR0xFJywgZXhwcmVzc2lvbjogJ2NvbnRleHQuZ2V0T3V0cHV0KFwicmVzdWx0XCIpID09IHRydWUnIH1dLFxuICAgICAgICAgIG5leHRTdGVwSWQ6ICdzaG93LXRvYXN0JyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICAnc2hvdy10b2FzdCc6IHtcbiAgICAgIGFjdGlvbjogJ0FYUFRvYXN0QWN0aW9uJyxcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIGNvbG9yOiAnc3VjY2VzcycsXG4gICAgICAgIHRpdGxlOiAnd29ya2Zsb3cuZW50aXR5LWNyZWF0ZWQnLFxuICAgICAgICBjb250ZW50OiAnd29ya2Zsb3cuZW50aXR5LWNyZWF0ZWQtYm9keScsXG4gICAgICB9LFxuICAgICAgbmV4dFN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb25kaXRpb25zOiBbXSxcbiAgICAgICAgICBuZXh0U3RlcElkOiAnZGlzcGF0Y2gtZXZlbnQnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgICdkaXNwYXRjaC1ldmVudCc6IHtcbiAgICAgIGFjdGlvbjogJ0FYUEVudGl0eUNyZWF0ZVN1Ym1pdHRlZEFjdGlvbicsXG4gICAgICBuZXh0U3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNvbmRpdGlvbnM6IFt7IHR5cGU6ICdTSU5HTEUnLCBleHByZXNzaW9uOiAnY29udGV4dC5nZXRWYXJpYWJsZShcIm9wdGlvbnNcIik/LnByb2Nlc3M/LnJlZGlyZWN0ICE9IGZhbHNlJyB9XSxcbiAgICAgICAgICBuZXh0U3RlcElkOiAnc2hvdy1lbnRpdHknLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgICdzaG93LWVudGl0eSc6IHtcbiAgICAgIGFjdGlvbjogJ0FYUFNob3dEZXRhaWxWaWV3QWN0aW9uJyxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPWorkflowAction } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { AXPEntityMasterUpdateViewModelFactory } from '../entity-master-update.viewmodel';\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\nimport { AXP_ENTITY_CONFIG_TOKEN } from '../entity.config';\nimport * as i0 from \"@angular/core\";\nexport class AXPQuickEntityModifyPopupAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.popupService = inject(AXPopupService);\n this.platform = inject(AXPlatform);\n this.translateService = inject(AXTranslationService);\n this.entityRegistery = inject(AXPEntityDefinitionRegistryService);\n this.config = inject(AXP_ENTITY_CONFIG_TOKEN);\n this.factory = inject(AXPEntityMasterUpdateViewModelFactory);\n }\n async execute(context) {\n const [moduleName, entityName] = context.getVariable('entity').split('.');\n const data = context.getVariable('data');\n const entityRef = await this.entityRegistery.resolve(moduleName, entityName);\n const { parentKey } = entityRef;\n const { id } = data;\n const { interfaces, title } = entityRef;\n const properties = interfaces?.master?.update?.properties?.map((p) => p.name) || [];\n const vm = await this.factory.create(moduleName, entityName, id, properties);\n const options = context.getVariable('options');\n const decoration = options?.['decoration'];\n const headerTitle = decoration?.header?.title;\n const layout = options?.['layout'];\n const size = layout?.size;\n if (parentKey) {\n context.setVariable('parentKey', parentKey);\n }\n const com = await this.config.viewers.master.modify();\n const popup = await this.popupService.open(com, {\n title: headerTitle\n ? headerTitle\n : title ??\n `${this.translateService.translateSync('entity.modify')} ${this.translateService.translateSync(entityRef.formats.individual)}`,\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : size ? size : 'md',\n data: {\n vm,\n properties,\n entity: entityRef,\n },\n });\n context.setOutput('result', false);\n if (popup.data?.result == true) {\n context.setOutput('result', true);\n context.setVariable('data', cloneDeep(popup.data.context));\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPQuickEntityModifyPopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPQuickEntityModifyPopupAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPQuickEntityModifyPopupAction, decorators: [{\n type: Injectable\n }] });\nexport const AXPQuickModifyEntityWorkflow = {\n startStepId: 'modifyPopup',\n steps: {\n modifyPopup: {\n id: 'modifyPopup',\n action: 'AXPQuickEntityModifyPopupAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\n nextStepId: 'successToast',\n },\n ],\n },\n successToast: {\n id: 'successToast',\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-modified-title',\n content: 'workflow.entity-modified-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'modifyConfirmed',\n },\n ],\n },\n modifyConfirmed: {\n id: 'modifyConfirmed',\n action: 'AXPEntityModifyConfirmedAction',\n },\n },\n};\nexport class AXPEntityApplyUpdatesAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.entityRegistery = inject(AXPEntityDefinitionRegistryService);\n }\n async execute(context) {\n try {\n const [moduleName, entityName] = context.getVariable('entity').split('.');\n const data = context.getVariable('data');\n const entityRef = await this.entityRegistery.resolve(moduleName, entityName);\n const exec = entityRef.commands?.update?.execute;\n const result = await exec(data);\n context.setVariable('data', result);\n context.setOutput('result', true);\n }\n catch (error) {\n context.setOutput('result', false);\n context.setOutput('error', error);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityApplyUpdatesAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityApplyUpdatesAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityApplyUpdatesAction, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kaWZ5LWVudGl0eS53b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dvcmtmbG93cy9tb2RpZnktZW50aXR5LndvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFlLGlCQUFpQixFQUFzQixNQUFNLDJCQUEyQixDQUFDO0FBQy9GLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRzNELE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxpQkFBaUI7SUFEdEU7O1FBRVUsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QixxQkFBZ0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNoRCxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQzdELFdBQU0sR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUN6QyxZQUFPLEdBQUcsTUFBTSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7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QUFDLENBQUM7WUFDbEYsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6QyxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUM3RSxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFtQixDQUFDO1lBQzdELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hDLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3BDLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbkMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7OEdBaEJVLDJCQUEyQjtrSEFBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQUR2QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQb3B1cFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wdXAnO1xuaW1wb3J0IHsgQVhQbGF0Zm9ybSB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBXb3JrZmxvdywgQVhQV29ya2Zsb3dBY3Rpb24sIEFYUFdvcmtmbG93Q29udGV4dCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQRW50aXR5TWFzdGVyVXBkYXRlVmlld01vZGVsRmFjdG9yeSB9IGZyb20gJy4uL2VudGl0eS1tYXN0ZXItdXBkYXRlLnZpZXdtb2RlbCc7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUF9FTlRJVFlfQ09ORklHX1RPS0VOIH0gZnJvbSAnLi4vZW50aXR5LmNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWFBRdWlja0VudGl0eU1vZGlmeVBvcHVwQWN0aW9uIGV4dGVuZHMgQVhQV29ya2Zsb3dBY3Rpb24ge1xuICBwcml2YXRlIHBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XG4gIHByaXZhdGUgcGxhdGZvcm0gPSBpbmplY3QoQVhQbGF0Zm9ybSk7XG4gIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgZW50aXR5UmVnaXN0ZXJ5ID0gaW5qZWN0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChBWFBfRU5USVRZX0NPTkZJR19UT0tFTik7XG4gIHByaXZhdGUgZmFjdG9yeSA9IGluamVjdChBWFBFbnRpdHlNYXN0ZXJVcGRhdGVWaWV3TW9kZWxGYWN0b3J5KTtcblxuICBhc3luYyBleGVjdXRlKGNvbnRleHQ6IEFYUFdvcmtmbG93Q29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IFttb2R1bGVOYW1lLCBlbnRpdHlOYW1lXSA9IGNvbnRleHQuZ2V0VmFyaWFibGU8c3RyaW5nPignZW50aXR5Jykuc3BsaXQoJy4nKTtcbiAgICBjb25zdCBkYXRhID0gY29udGV4dC5nZXRWYXJpYWJsZSgnZGF0YScpO1xuICAgIGNvbnN0IGVudGl0eVJlZiA9IGF3YWl0IHRoaXMuZW50aXR5UmVnaXN0ZXJ5LnJlc29sdmUobW9kdWxlTmFtZSwgZW50aXR5TmFtZSk7XG4gICAgY29uc3QgeyBwYXJlbnRLZXkgfSA9IGVudGl0eVJlZjtcblxuICAgIGNvbnN0IHsgaWQgfSA9IGRhdGE7XG4gICAgY29uc3QgeyBpbnRlcmZhY2VzLCB0aXRsZSB9ID0gZW50aXR5UmVmO1xuICAgIGNvbnN0IHByb3BlcnRpZXMgPSBpbnRlcmZhY2VzPy5tYXN0ZXI/LnVwZGF0ZT8ucHJvcGVydGllcz8ubWFwKChwKSA9PiBwLm5hbWUpIHx8IFtdO1xuXG4gICAgY29uc3Qgdm0gPSBhd2FpdCB0aGlzLmZhY3RvcnkuY3JlYXRlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUsIGlkLCBwcm9wZXJ0aWVzKTtcblxuICAgIGNvbnN0IG9wdGlvbnMgPSBjb250ZXh0LmdldFZhcmlhYmxlPGFueT4oJ29wdGlvbnMnKTtcbiAgICBjb25zdCBkZWNvcmF0aW9uID0gb3B0aW9ucz8uWydkZWNvcmF0aW9uJ107XG4gICAgY29uc3QgaGVhZGVyVGl0bGUgPSBkZWNvcmF0aW9uPy5oZWFkZXI/LnRpdGxlO1xuXG4gICAgY29uc3QgbGF5b3V0ID0gb3B0aW9ucz8uWydsYXlvdXQnXTtcbiAgICBjb25zdCBzaXplID0gbGF5b3V0Py5zaXplO1xuXG4gICAgaWYgKHBhcmVudEtleSkge1xuICAgICAgY29udGV4dC5zZXRWYXJpYWJsZSgncGFyZW50S2V5JywgcGFyZW50S2V5KTtcbiAgICB9XG5cbiAgICBjb25zdCBjb20gPSBhd2FpdCB0aGlzLmNvbmZpZy52aWV3ZXJzLm1hc3Rlci5tb2RpZnkoKTtcbiAgICBjb25zdCBwb3B1cCA9IGF3YWl0IHRoaXMucG9wdXBTZXJ2aWNlLm9wZW4oY29tLCB7XG4gICAgICB0aXRsZTogaGVhZGVyVGl0bGVcbiAgICAgICAgPyBoZWFkZXJUaXRsZVxuICAgICAgICA6IHRpdGxlID8/XG4gICAgICAgIGAke3RoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVTeW5jKCdlbnRpdHkubW9kaWZ5Jyl9ICR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZVN5bmMoXG4gICAgICAgICAgZW50aXR5UmVmLmZvcm1hdHMuaW5kaXZpZHVhbFxuICAgICAgICApfWAsXG4gICAgICAgIHNpemU6IHRoaXMucGxhdGZvcm0uaXMoJ01vYmlsZScpIHx8IHRoaXMucGxhdGZvcm0uaXMoJ1NNJykgPyAnZnVsbCcgOiBzaXplID8gc2l6ZSA6ICdtZCcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHZtLFxuICAgICAgICBwcm9wZXJ0aWVzLFxuICAgICAgICBlbnRpdHk6IGVudGl0eVJlZixcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgY29udGV4dC5zZXRPdXRwdXQoJ3Jlc3VsdCcsIGZhbHNlKTtcbiAgICBpZiAocG9wdXAuZGF0YT8ucmVzdWx0ID09IHRydWUpIHtcbiAgICAgIGNvbnRleHQuc2V0T3V0cHV0KCdyZXN1bHQnLCB0cnVlKTtcbiAgICAgIGNvbnRleHQuc2V0VmFyaWFibGUoJ2RhdGEnLCBjbG9uZURlZXAocG9wdXAuZGF0YS5jb250ZXh0KSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBBWFBRdWlja01vZGlmeUVudGl0eVdvcmtmbG93OiBBWFBXb3JrZmxvdyA9IHtcbiAgc3RhcnRTdGVwSWQ6ICdtb2RpZnlQb3B1cCcsXG4gIHN0ZXBzOiB7XG4gICAgbW9kaWZ5UG9wdXA6IHtcbiAgICAgIGlkOiAnbW9kaWZ5UG9wdXAnLFxuICAgICAgYWN0aW9uOiAnQVhQUXVpY2tFbnRpdHlNb2RpZnlQb3B1cEFjdGlvbicsXG4gICAgICBuZXh0U3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNvbmRpdGlvbnM6IFt7IHR5cGU6ICdTSU5HTEUnLCBleHByZXNzaW9uOiAnY29udGV4dC5nZXRPdXRwdXQoXCJyZXN1bHRcIikgPT0gdHJ1ZScgfV0sXG4gICAgICAgICAgbmV4dFN0ZXBJZDogJ3N1Y2Nlc3NUb2FzdCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgc3VjY2Vzc1RvYXN0OiB7XG4gICAgICBpZDogJ3N1Y2Nlc3NUb2FzdCcsXG4gICAgICBhY3Rpb246ICdBWFBUb2FzdEFjdGlvbicsXG4gICAgICBpbnB1dDoge1xuICAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgICAgICB0aXRsZTogJ3dvcmtmbG93LmVudGl0eS1tb2RpZmllZC10aXRsZScsXG4gICAgICAgIGNvbnRlbnQ6ICd3b3JrZmxvdy5lbnRpdHktbW9kaWZpZWQtYm9keScsXG4gICAgICB9LFxuICAgICAgbmV4dFN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb25kaXRpb25zOiBbXSxcbiAgICAgICAgICBuZXh0U3RlcElkOiAnbW9kaWZ5Q29uZmlybWVkJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBtb2RpZnlDb25maXJtZWQ6IHtcbiAgICAgIGlkOiAnbW9kaWZ5Q29uZmlybWVkJyxcbiAgICAgIGFjdGlvbjogJ0FYUEVudGl0eU1vZGlmeUNvbmZpcm1lZEFjdGlvbicsXG4gICAgfSxcbiAgfSxcbn07XG5cblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5QXBwbHlVcGRhdGVzQWN0aW9uIGV4dGVuZHMgQVhQV29ya2Zsb3dBY3Rpb24ge1xuICBwcml2YXRlIGVudGl0eVJlZ2lzdGVyeSA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcblxuICBhc3luYyBleGVjdXRlKGNvbnRleHQ6IEFYUFdvcmtmbG93Q29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBbbW9kdWxlTmFtZSwgZW50aXR5TmFtZV0gPSBjb250ZXh0LmdldFZhcmlhYmxlPHN0cmluZz4oJ2VudGl0eScpLnNwbGl0KCcuJyk7XG4gICAgICBjb25zdCBkYXRhID0gY29udGV4dC5nZXRWYXJpYWJsZSgnZGF0YScpO1xuICAgICAgY29uc3QgZW50aXR5UmVmID0gYXdhaXQgdGhpcy5lbnRpdHlSZWdpc3RlcnkucmVzb2x2ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcbiAgICAgIGNvbnN0IGV4ZWMgPSBlbnRpdHlSZWYuY29tbWFuZHM/LnVwZGF0ZT8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGV4ZWMoZGF0YSk7XG4gICAgICBjb250ZXh0LnNldFZhcmlhYmxlKCdkYXRhJywgcmVzdWx0KTtcbiAgICAgIGNvbnRleHQuc2V0T3V0cHV0KCdyZXN1bHQnLCB0cnVlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29udGV4dC5zZXRPdXRwdXQoJ3Jlc3VsdCcsIGZhbHNlKTtcbiAgICAgIGNvbnRleHQuc2V0T3V0cHV0KCdlcnJvcicsIGVycm9yKTtcbiAgICB9XG4gIH1cbn0gIl19","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPWorkflowNavigateAction } from '@acorex/platform/common';\nimport { AXPWorkflowAction } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPShowDetailViewAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.navigation = inject(AXPWorkflowNavigateAction);\n this.sessionService = inject(AXPSessionService);\n }\n async execute(context) {\n const [module, entity] = context.getVariable('entity').split(\".\");\n const { id } = context.getVariable('data');\n const newPayload = {\n commands: `/${this.sessionService.application?.name}/m/${module}/e/${entity}/${id}/view`,\n };\n context.setVariable('payload', newPayload);\n this.navigation.execute(context);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPShowDetailViewAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPShowDetailViewAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPShowDetailViewAction, decorators: [{\n type: Injectable\n }] });\nexport const AXPShowDetailsViewWorkflow = {\n startStepId: 'showDetailView',\n steps: {\n showDetailView: {\n action: 'AXPShowDetailViewAction',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1kZXRhaWxzLndvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd29ya2Zsb3dzL3Nob3ctZGV0YWlscy53b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRSxPQUFPLEVBQWUsaUJBQWlCLEVBQXNCLE1BQU0sMkJBQTJCLENBQUM7QUFDL0YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR25ELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7SUFEOUQ7O1FBRVUsZUFBVSxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQy9DLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FXcEQ7SUFUQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQTJCO1FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEUsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0MsTUFBTSxVQUFVLEdBQUc7WUFDakIsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLElBQUksRUFBRSxPQUFPO1NBQ3pGLENBQUM7UUFDRixPQUFPLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDOzhHQVpVLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVOztBQWlCWCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBZ0I7SUFDckQsV0FBVyxFQUFFLGdCQUFnQjtJQUM3QixLQUFLLEVBQUU7UUFDTCxjQUFjLEVBQUU7WUFDZCxNQUFNLEVBQUUseUJBQXlCO1NBQ2xDO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQU2Vzc2lvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2F1dGgnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dOYXZpZ2F0ZUFjdGlvbiB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUFdvcmtmbG93LCBBWFBXb3JrZmxvd0FjdGlvbiwgQVhQV29ya2Zsb3dDb250ZXh0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUFNob3dEZXRhaWxWaWV3QWN0aW9uIGV4dGVuZHMgQVhQV29ya2Zsb3dBY3Rpb24ge1xuICBwcml2YXRlIG5hdmlnYXRpb24gPSBpbmplY3QoQVhQV29ya2Zsb3dOYXZpZ2F0ZUFjdGlvbik7XG4gIHByaXZhdGUgc2Vzc2lvblNlcnZpY2UgPSBpbmplY3QoQVhQU2Vzc2lvblNlcnZpY2UpO1xuXG4gIGFzeW5jIGV4ZWN1dGUoY29udGV4dDogQVhQV29ya2Zsb3dDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgW21vZHVsZSwgZW50aXR5XSA9IGNvbnRleHQuZ2V0VmFyaWFibGUoJ2VudGl0eScpLnNwbGl0KFwiLlwiKTtcbiAgICBjb25zdCB7IGlkIH0gPSBjb250ZXh0LmdldFZhcmlhYmxlKCdkYXRhJyk7XG4gICAgY29uc3QgbmV3UGF5bG9hZCA9IHtcbiAgICAgIGNvbW1hbmRzOiBgLyR7dGhpcy5zZXNzaW9uU2VydmljZS5hcHBsaWNhdGlvbj8ubmFtZX0vbS8ke21vZHVsZX0vZS8ke2VudGl0eX0vJHtpZH0vdmlld2AsXG4gICAgfTtcbiAgICBjb250ZXh0LnNldFZhcmlhYmxlKCdwYXlsb2FkJywgbmV3UGF5bG9hZCk7XG4gICAgdGhpcy5uYXZpZ2F0aW9uLmV4ZWN1dGUoY29udGV4dCk7XG4gIH1cbn1cblxuXG5leHBvcnQgY29uc3QgQVhQU2hvd0RldGFpbHNWaWV3V29ya2Zsb3c6IEFYUFdvcmtmbG93ID0ge1xuICBzdGFydFN0ZXBJZDogJ3Nob3dEZXRhaWxWaWV3JyxcbiAgc3RlcHM6IHtcbiAgICBzaG93RGV0YWlsVmlldzoge1xuICAgICAgYWN0aW9uOiAnQVhQU2hvd0RldGFpbFZpZXdBY3Rpb24nLFxuICAgIH0sXG4gIH0sXG59O1xuIl19","import { inject, Injectable } from '@angular/core';\nimport { AXPWorkflowAction } from '@acorex/platform/workflow';\nimport { AXPFileUploaderWidgetService } from '@acorex/platform/widgets';\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\nimport { cloneDeep } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nexport class AXPShowFileUploaderPopupAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.fileUploaderWidgetService = inject(AXPFileUploaderWidgetService);\n this.entityRegistryService = inject(AXPEntityDefinitionRegistryService);\n }\n async execute(context) {\n // *********** get options ***********\n const key = context.getVariable('options.key');\n const readOnly = context.getVariable('options.readOnly');\n const multiple = context.getVariable('options.multiple');\n const accept = context.getVariable('options.accept');\n const maxFileSize = context.getVariable('options.maxFileSize');\n const files = context.getVariable('options.files');\n // *********** show file list ***********\n const res = await this.fileUploaderWidgetService.showFileList({\n files: files,\n readOnly: readOnly,\n multiple: multiple,\n accept: accept,\n });\n // Handle case when result is undefined or empty array\n if (!res || res.length === 0) {\n context.setOutput('result', false);\n return;\n }\n // *********** save files to entity ***********\n const [module, entity] = context.getVariable('entity').split('.');\n const entityDefinition = await this.entityRegistryService.resolve(module, entity);\n if (entityDefinition) {\n const updateExec = entityDefinition.commands?.update?.execute;\n const entityData = await updateExec({\n id: context.getVariable('options.id'),\n [key]: res,\n });\n context.setOutput('result', true);\n context.setVariable('data', cloneDeep(entityData));\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPShowFileUploaderPopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPShowFileUploaderPopupAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPShowFileUploaderPopupAction, decorators: [{\n type: Injectable\n }] });\nexport const AXPShowFileUploaderPopupWorkflow = {\n startStepId: 'show-popup',\n steps: {\n 'show-popup': {\n action: 'AXPShowFileUploaderPopupAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\n nextStepId: 'successToast',\n },\n ],\n },\n successToast: {\n id: 'successToast',\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-modified-title',\n content: 'workflow.entity-modified-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'modifyConfirmed',\n },\n ],\n },\n modifyConfirmed: {\n id: 'modifyConfirmed',\n action: 'AXPEntityModifyConfirmedAction',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1maWxlLXVwbG9hZGVyLXBvcHVwLndvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd29ya2Zsb3dzL3Nob3ctZmlsZS11cGxvYWRlci1wb3B1cC53b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWUsaUJBQWlCLEVBQXNCLE1BQU0sMkJBQTJCLENBQUM7QUFFL0YsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFHdEMsTUFBTSxPQUFPLDhCQUErQixTQUFRLGlCQUFpQjtJQURyRTs7UUFFVSw4QkFBeUIsR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNqRSwwQkFBcUIsR0FBRyxNQUFNLENBQUMsa0NBQWtDLENBQUMsQ0FBQztLQXdDNUU7SUF0Q0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUEyQjtRQUV2QyxzQ0FBc0M7UUFDdEMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBUyxhQUFhLENBQUMsQ0FBQztRQUN2RCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFVLGtCQUFrQixDQUFDLENBQUM7UUFDbEUsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBVSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQVMsZ0JBQWdCLENBQUMsQ0FBQztRQUM3RCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFTLHFCQUFxQixDQUFDLENBQUM7UUFDdkUsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBb0IsZUFBZSxDQUFDLENBQUM7UUFFdEUseUNBQXlDO1FBQ3pDLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLHlCQUF5QixDQUFDLFlBQVksQ0FBQztZQUM1RCxLQUFLLEVBQUUsS0FBSztZQUNaLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLE1BQU0sRUFBRSxNQUFNO1NBQ2YsQ0FBQyxDQUFDO1FBQ0gsc0RBQXNEO1FBQ3RELElBQUksQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNuQyxPQUFPO1FBQ1QsQ0FBQztRQUVHLCtDQUErQztRQUMvQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQVMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVsRixJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDckIsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFtQixDQUFDO1lBRTFFLE1BQU0sVUFBVSxHQUFHLE1BQU0sVUFBVSxDQUFDO2dCQUNsQyxFQUFFLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBUyxZQUFZLENBQUM7Z0JBQzdDLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRzthQUNYLENBQUMsQ0FBQztZQUNILE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2xDLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDTCxDQUFDOzhHQXpDVSw4QkFBOEI7a0hBQTlCLDhCQUE4Qjs7MkZBQTlCLDhCQUE4QjtrQkFEMUMsVUFBVTs7QUE2Q1gsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQWdCO0lBQzNELFdBQVcsRUFBRSxZQUFZO0lBQ3pCLEtBQUssRUFBRTtRQUNMLFlBQVksRUFBRTtZQUNaLE1BQU0sRUFBRSxnQ0FBZ0M7WUFDeEMsU0FBUyxFQUFFO2dCQUNUO29CQUNFLFVBQVUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUscUNBQXFDLEVBQUUsQ0FBQztvQkFDbkYsVUFBVSxFQUFFLGNBQWM7aUJBQzNCO2FBQ0Y7U0FDRjtRQUNELFlBQVksRUFBRTtZQUNaLEVBQUUsRUFBRSxjQUFjO1lBQ2xCLE1BQU0sRUFBRSxnQkFBZ0I7WUFDeEIsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxTQUFTO2dCQUNoQixLQUFLLEVBQUUsZ0NBQWdDO2dCQUN2QyxPQUFPLEVBQUUsK0JBQStCO2FBQ3pDO1lBQ0QsU0FBUyxFQUFFO2dCQUNUO29CQUNFLFVBQVUsRUFBRSxFQUFFO29CQUNkLFVBQVUsRUFBRSxpQkFBaUI7aUJBQzlCO2FBQ0Y7U0FDRjtRQUNELGVBQWUsRUFBRTtZQUNmLEVBQUUsRUFBRSxpQkFBaUI7WUFDckIsTUFBTSxFQUFFLGdDQUFnQztTQUN6QztLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3csIEFYUFdvcmtmbG93QWN0aW9uLCBBWFBXb3JrZmxvd0NvbnRleHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEFYUEZpbGVMaXN0SXRlbSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBGaWxlVXBsb2FkZXJXaWRnZXRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93aWRnZXRzJztcbmltcG9ydCB7IEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuLi9lbnRpdHktcmVnaXN0ZXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUFNob3dGaWxlVXBsb2FkZXJQb3B1cEFjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgcHJpdmF0ZSBmaWxlVXBsb2FkZXJXaWRnZXRTZXJ2aWNlID0gaW5qZWN0KEFYUEZpbGVVcGxvYWRlcldpZGdldFNlcnZpY2UpO1xuICBwcml2YXRlIGVudGl0eVJlZ2lzdHJ5U2VydmljZSA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcblxuICBhc3luYyBleGVjdXRlKGNvbnRleHQ6IEFYUFdvcmtmbG93Q29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xuXG4gICAgLy8gKioqKioqKioqKiogZ2V0IG9wdGlvbnMgKioqKioqKioqKipcbiAgICBjb25zdCBrZXkgPSBjb250ZXh0LmdldFZhcmlhYmxlPHN0cmluZz4oJ29wdGlvbnMua2V5Jyk7XG4gICAgY29uc3QgcmVhZE9ubHkgPSBjb250ZXh0LmdldFZhcmlhYmxlPGJvb2xlYW4+KCdvcHRpb25zLnJlYWRPbmx5Jyk7XG4gICAgY29uc3QgbXVsdGlwbGUgPSBjb250ZXh0LmdldFZhcmlhYmxlPGJvb2xlYW4+KCdvcHRpb25zLm11bHRpcGxlJyk7XG4gICAgY29uc3QgYWNjZXB0ID0gY29udGV4dC5nZXRWYXJpYWJsZTxzdHJpbmc+KCdvcHRpb25zLmFjY2VwdCcpO1xuICAgIGNvbnN0IG1heEZpbGVTaXplID0gY29udGV4dC5nZXRWYXJpYWJsZTxudW1iZXI+KCdvcHRpb25zLm1heEZpbGVTaXplJyk7XG4gICAgY29uc3QgZmlsZXMgPSBjb250ZXh0LmdldFZhcmlhYmxlPEFYUEZpbGVMaXN0SXRlbVtdPignb3B0aW9ucy5maWxlcycpO1xuICAgIFxuICAgIC8vICoqKioqKioqKioqIHNob3cgZmlsZSBsaXN0ICoqKioqKioqKioqXG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5maWxlVXBsb2FkZXJXaWRnZXRTZXJ2aWNlLnNob3dGaWxlTGlzdCh7XG4gICAgICBmaWxlczogZmlsZXMsXG4gICAgICByZWFkT25seTogcmVhZE9ubHksXG4gICAgICBtdWx0aXBsZTogbXVsdGlwbGUsXG4gICAgICBhY2NlcHQ6IGFjY2VwdCxcbiAgICB9KTtcbiAgICAvLyBIYW5kbGUgY2FzZSB3aGVuIHJlc3VsdCBpcyB1bmRlZmluZWQgb3IgZW1wdHkgYXJyYXlcbiAgICBpZiAoIXJlcyB8fCByZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb250ZXh0LnNldE91dHB1dCgncmVzdWx0JywgZmFsc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgICAgICAvLyAqKioqKioqKioqKiBzYXZlIGZpbGVzIHRvIGVudGl0eSAqKioqKioqKioqKlxuICAgICAgICBjb25zdCBbbW9kdWxlLCBlbnRpdHldID0gY29udGV4dC5nZXRWYXJpYWJsZTxzdHJpbmc+KCdlbnRpdHknKS5zcGxpdCgnLicpO1xuICAgICAgICBjb25zdCBlbnRpdHlEZWZpbml0aW9uID0gYXdhaXQgdGhpcy5lbnRpdHlSZWdpc3RyeVNlcnZpY2UucmVzb2x2ZShtb2R1bGUsIGVudGl0eSk7XG4gICAgXG4gICAgICAgIGlmIChlbnRpdHlEZWZpbml0aW9uKSB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlRXhlYyA9IGVudGl0eURlZmluaXRpb24uY29tbWFuZHM/LnVwZGF0ZT8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICBcbiAgICAgICAgICBjb25zdCBlbnRpdHlEYXRhID0gYXdhaXQgdXBkYXRlRXhlYyh7XG4gICAgICAgICAgICBpZDogY29udGV4dC5nZXRWYXJpYWJsZTxzdHJpbmc+KCdvcHRpb25zLmlkJyksXG4gICAgICAgICAgICBba2V5XTogcmVzLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNvbnRleHQuc2V0T3V0cHV0KCdyZXN1bHQnLCB0cnVlKTtcbiAgICAgICAgICBjb250ZXh0LnNldFZhcmlhYmxlKCdkYXRhJywgY2xvbmVEZWVwKGVudGl0eURhdGEpKTtcbiAgICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgQVhQU2hvd0ZpbGVVcGxvYWRlclBvcHVwV29ya2Zsb3c6IEFYUFdvcmtmbG93ID0ge1xuICBzdGFydFN0ZXBJZDogJ3Nob3ctcG9wdXAnLFxuICBzdGVwczoge1xuICAgICdzaG93LXBvcHVwJzoge1xuICAgICAgYWN0aW9uOiAnQVhQU2hvd0ZpbGVVcGxvYWRlclBvcHVwQWN0aW9uJyxcbiAgICAgIG5leHRTdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgY29uZGl0aW9uczogW3sgdHlwZTogJ1NJTkdMRScsIGV4cHJlc3Npb246ICdjb250ZXh0LmdldE91dHB1dChcInJlc3VsdFwiKSA9PSB0cnVlJyB9XSxcbiAgICAgICAgICBuZXh0U3RlcElkOiAnc3VjY2Vzc1RvYXN0JyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBzdWNjZXNzVG9hc3Q6IHtcbiAgICAgIGlkOiAnc3VjY2Vzc1RvYXN0JyxcbiAgICAgIGFjdGlvbjogJ0FYUFRvYXN0QWN0aW9uJyxcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIGNvbG9yOiAnc3VjY2VzcycsXG4gICAgICAgIHRpdGxlOiAnd29ya2Zsb3cuZW50aXR5LW1vZGlmaWVkLXRpdGxlJyxcbiAgICAgICAgY29udGVudDogJ3dvcmtmbG93LmVudGl0eS1tb2RpZmllZC1ib2R5JyxcbiAgICAgIH0sXG4gICAgICBuZXh0U3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNvbmRpdGlvbnM6IFtdLFxuICAgICAgICAgIG5leHRTdGVwSWQ6ICdtb2RpZnlDb25maXJtZWQnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIG1vZGlmeUNvbmZpcm1lZDoge1xuICAgICAgaWQ6ICdtb2RpZnlDb25maXJtZWQnLFxuICAgICAgYWN0aW9uOiAnQVhQRW50aXR5TW9kaWZ5Q29uZmlybWVkQWN0aW9uJyxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPWorkflowNavigateAction } from '@acorex/platform/common';\nimport { AXPWorkflowAction } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPShowListViewAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.navigation = inject(AXPWorkflowNavigateAction);\n this.sessionService = inject(AXPSessionService);\n }\n async execute(context) {\n const [moduleName, entityName] = context.getVariable('entity').split(\".\");\n const newPayload = {\n commands: `/${this.sessionService.application?.name}/m/${moduleName}/e/${entityName}/list`,\n };\n context.setVariable('payload', newPayload);\n this.navigation.execute(context);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPShowListViewAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPShowListViewAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPShowListViewAction, decorators: [{\n type: Injectable\n }] });\nexport const AXPShowListViewWorkflow = {\n startStepId: 'showListView',\n steps: {\n showListView: {\n id: 'showListView',\n action: 'AXPShowListViewAction',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1saXN0LndvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd29ya2Zsb3dzL3Nob3ctbGlzdC53b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRSxPQUFPLEVBQWUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJbkQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGlCQUFpQjtJQUQ1RDs7UUFFVSxlQUFVLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDL0MsbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztLQVNwRDtJQVJDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBYTtRQUN6QixNQUFNLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sVUFBVSxHQUFHO1lBQ2pCLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLElBQUksTUFBTSxVQUFVLE1BQU0sVUFBVSxPQUFPO1NBQzNGLENBQUM7UUFDRixPQUFPLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDOzhHQVZVLHFCQUFxQjtrSEFBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVOztBQWNYLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFnQjtJQUNsRCxXQUFXLEVBQUUsY0FBYztJQUMzQixLQUFLLEVBQUU7UUFDTCxZQUFZLEVBQUU7WUFDWixFQUFFLEVBQUUsY0FBYztZQUNsQixNQUFNLEVBQUUsdUJBQXVCO1NBQ2hDO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQU2Vzc2lvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2F1dGgnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dOYXZpZ2F0ZUFjdGlvbiB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUFdvcmtmbG93LCBBWFBXb3JrZmxvd0FjdGlvbiB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUFNob3dMaXN0Vmlld0FjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgcHJpdmF0ZSBuYXZpZ2F0aW9uID0gaW5qZWN0KEFYUFdvcmtmbG93TmF2aWdhdGVBY3Rpb24pO1xuICBwcml2YXRlIHNlc3Npb25TZXJ2aWNlID0gaW5qZWN0KEFYUFNlc3Npb25TZXJ2aWNlKTtcbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0PzogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgW21vZHVsZU5hbWUsIGVudGl0eU5hbWVdID0gY29udGV4dC5nZXRWYXJpYWJsZSgnZW50aXR5Jykuc3BsaXQoXCIuXCIpO1xuICAgIGNvbnN0IG5ld1BheWxvYWQgPSB7XG4gICAgICBjb21tYW5kczogYC8ke3RoaXMuc2Vzc2lvblNlcnZpY2UuYXBwbGljYXRpb24/Lm5hbWV9L20vJHttb2R1bGVOYW1lfS9lLyR7ZW50aXR5TmFtZX0vbGlzdGAsXG4gICAgfTtcbiAgICBjb250ZXh0LnNldFZhcmlhYmxlKCdwYXlsb2FkJywgbmV3UGF5bG9hZCk7XG4gICAgdGhpcy5uYXZpZ2F0aW9uLmV4ZWN1dGUoY29udGV4dCk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEFYUFNob3dMaXN0Vmlld1dvcmtmbG93OiBBWFBXb3JrZmxvdyA9IHtcbiAgc3RhcnRTdGVwSWQ6ICdzaG93TGlzdFZpZXcnLFxuICBzdGVwczoge1xuICAgIHNob3dMaXN0Vmlldzoge1xuICAgICAgaWQ6ICdzaG93TGlzdFZpZXcnLFxuICAgICAgYWN0aW9uOiAnQVhQU2hvd0xpc3RWaWV3QWN0aW9uJyxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==","import { AXPAuthGuard } from '@acorex/platform/auth';\nimport { AXPToastAction, AXPWorkflowNavigateAction, AXP_SEARCH_DEFINITION_PROVIDER } from '@acorex/platform/common';\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\nimport { AXPAppStartUpService } from '@acorex/platform/core';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { Injector, NgModule, inject } from '@angular/core';\nimport { ROUTES, RouterModule } from '@angular/router';\nimport { AXPEntityListViewModelResolver } from './entity-master-list.viewmodel';\nimport { AXPEntityDetailViewModelResolver } from './entity-master-single.viewmodel';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\nimport { AXP_ENTITY_CONFIG_TOKEN } from './entity.config';\nimport { AXPEntityCommandSearchDefinitionProvider } from './search-definition-command.provider';\nimport { AXPEntitySearchDefinitionProvider } from './search-definition.provider';\nimport { AXPLookupWidget } from './widgets/lookup-widget';\nimport { AXPTagableBoxWidget } from './widgets/tagable-box';\nimport { AXPWidgetSelectorWidget } from './widgets/widget-selector';\nimport { AXPCreateEntityWorkflow, AXPEntityCreatePopupAction, AXPEntityCreateSubmittedAction, } from './workflows/create-entity.workflow';\nimport { AXPDeleteEntityWorkflow, AXPEntityPerformDeleteAction } from './workflows/delete-entity.workflow';\nimport { AXPEntityApplyUpdatesAction, AXPQuickEntityModifyPopupAction, AXPQuickModifyEntityWorkflow, } from './workflows/modify-entity.workflow';\nimport { AXPEntityModifyConfirmedAction, AXPEntityModifySectionPopupAction, AXPModifyEntitySectionWorkflow, } from './workflows/modify-section.workflow';\nimport { AXPShowDetailViewAction, AXPShowDetailsViewWorkflow } from './workflows/show-details.workflow';\nimport { AXPShowFileUploaderPopupAction, AXPShowFileUploaderPopupWorkflow, } from './workflows/show-file-uploader-popup.workflow';\nimport { AXPShowListViewAction, AXPShowListViewWorkflow } from './workflows/show-list.workflow';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/platform/core\";\nimport * as i2 from \"@acorex/platform/workflow\";\nimport * as i3 from \"@acorex/platform/layout/builder\";\nfunction routesFacory() {\n const config = inject(AXP_ENTITY_CONFIG_TOKEN);\n let routes = [];\n routes = [\n {\n path: ':app/m',\n loadComponent: () => {\n return config.viewers.root();\n },\n canActivate: [AXPAuthGuard],\n children: [\n {\n path: ':module',\n children: [\n {\n path: 'e/:entity/list',\n loadComponent: () => {\n return config.viewers.master.list();\n },\n resolve: {\n vm: AXPEntityListViewModelResolver,\n },\n data: { reuse: false },\n },\n {\n path: 'e/:entity/:id/view',\n resolve: { vm: AXPEntityDetailViewModelResolver },\n loadComponent: () => {\n return config.viewers.master.single();\n },\n data: { reuse: false },\n },\n {\n path: 'e/:entity/:id',\n redirectTo: 'e/:entity/:id/view',\n pathMatch: 'full',\n },\n {\n path: 'e/:entity',\n redirectTo: ':entity/list',\n pathMatch: 'full',\n },\n ],\n },\n ],\n },\n ];\n return routes;\n}\nexport class AXPEntityModule {\n constructor(appInitService, injector) {\n const service = injector.get(AXPEntityDefinitionRegistryService);\n appInitService.registerTask({\n name: 'layout-theme',\n statusText: 'Preload entities ...',\n priority: 100,\n run: async () => {\n // load in background\n service.preload();\n },\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityModule, deps: [{ token: i1.AXPAppStartUpService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityModule, imports: [RouterModule, i2.AXPWorkflowModule, i3.AXPLayoutBuilderModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityModule, providers: [\n // CUSTOMER_MODIFIER_PROVIDER,\n {\n provide: ROUTES,\n multi: true,\n useFactory: routesFacory,\n },\n {\n provide: AXP_SEARCH_DEFINITION_PROVIDER,\n useClass: AXPEntitySearchDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_DEFINITION_PROVIDER,\n useClass: AXPEntityCommandSearchDefinitionProvider,\n multi: true,\n },\n ], imports: [RouterModule,\n AXPWorkflowModule.forChild({\n actions: {\n AXPEntityCreatePopupAction,\n AXPEntityPerformDeleteAction,\n AXPWorkflowNavigateAction,\n 'entity-perform-delete': AXPEntityPerformDeleteAction,\n AXPEntityModifySectionPopupAction,\n AXPQuickEntityModifyPopupAction,\n AXPEntityModifyConfirmedAction,\n AXPToastAction,\n AXPShowDetailViewAction,\n AXPEntityCreateSubmittedAction,\n AXPShowListViewAction,\n 'entity-apply-updates': AXPEntityApplyUpdatesAction,\n AXPShowFileUploaderPopupAction,\n },\n workflows: {\n 'create-entity': AXPCreateEntityWorkflow,\n 'delete-entity': AXPDeleteEntityWorkflow,\n 'modify-entity-section': AXPModifyEntitySectionWorkflow,\n 'quick-modify-entity': AXPQuickModifyEntityWorkflow,\n 'open-entity': AXPShowDetailsViewWorkflow,\n 'show-list-view': AXPShowListViewWorkflow,\n 'show-file-uploader-popup': AXPShowFileUploaderPopupWorkflow,\n },\n functions: {},\n }),\n AXPLayoutBuilderModule.forChild({\n widgets: [AXPLookupWidget, AXPWidgetSelectorWidget, AXPTagableBoxWidget],\n })] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n RouterModule,\n AXPWorkflowModule.forChild({\n actions: {\n AXPEntityCreatePopupAction,\n AXPEntityPerformDeleteAction,\n AXPWorkflowNavigateAction,\n 'entity-perform-delete': AXPEntityPerformDeleteAction,\n AXPEntityModifySectionPopupAction,\n AXPQuickEntityModifyPopupAction,\n AXPEntityModifyConfirmedAction,\n AXPToastAction,\n AXPShowDetailViewAction,\n AXPEntityCreateSubmittedAction,\n AXPShowListViewAction,\n 'entity-apply-updates': AXPEntityApplyUpdatesAction,\n AXPShowFileUploaderPopupAction,\n },\n workflows: {\n 'create-entity': AXPCreateEntityWorkflow,\n 'delete-entity': AXPDeleteEntityWorkflow,\n 'modify-entity-section': AXPModifyEntitySectionWorkflow,\n 'quick-modify-entity': AXPQuickModifyEntityWorkflow,\n 'open-entity': AXPShowDetailsViewWorkflow,\n 'show-list-view': AXPShowListViewWorkflow,\n 'show-file-uploader-popup': AXPShowFileUploaderPopupWorkflow,\n },\n functions: {},\n }),\n AXPLayoutBuilderModule.forChild({\n widgets: [AXPLookupWidget, AXPWidgetSelectorWidget, AXPTagableBoxWidget],\n }),\n ],\n exports: [],\n declarations: [],\n providers: [\n // CUSTOMER_MODIFIER_PROVIDER,\n {\n provide: ROUTES,\n multi: true,\n useFactory: routesFacory,\n },\n {\n provide: AXP_SEARCH_DEFINITION_PROVIDER,\n useClass: AXPEntitySearchDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_DEFINITION_PROVIDER,\n useClass: AXPEntityCommandSearchDefinitionProvider,\n multi: true,\n },\n ],\n }]\n }], ctorParameters: () => [{ type: i1.AXPAppStartUpService }, { type: i0.Injector }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUseUJBQXlCLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwSCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNoRyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHVC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RjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUEF1dGhHdWFyZCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vYXV0aCc7XG5pbXBvcnQgeyBBWFBUb2FzdEFjdGlvbiwgQVhQV29ya2Zsb3dOYXZpZ2F0ZUFjdGlvbiwgQVhQX1NFQVJDSF9ERUZJTklUSU9OX1BST1ZJREVSIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuXG5pbXBvcnQgeyBBWFBBcHBTdGFydFVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd01vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgSW5qZWN0b3IsIE5nTW9kdWxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJPVVRFUywgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQVhQRW50aXR5TGlzdFZpZXdNb2RlbFJlc29sdmVyIH0gZnJvbSAnLi9lbnRpdHktbWFzdGVyLWxpc3Qudmlld21vZGVsJztcbmltcG9ydCB7IEFYUEVudGl0eURldGFpbFZpZXdNb2RlbFJlc29sdmVyIH0gZnJvbSAnLi9lbnRpdHktbWFzdGVyLXNpbmdsZS52aWV3bW9kZWwnO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUF9FTlRJVFlfQ09ORklHX1RPS0VOIH0gZnJvbSAnLi9lbnRpdHkuY29uZmlnJztcbmltcG9ydCB7IEFYUEVudGl0eUNvbW1hbmRTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIgfSBmcm9tICcuL3NlYXJjaC1kZWZpbml0aW9uLWNvbW1hbmQucHJvdmlkZXInO1xuaW1wb3J0IHsgQVhQRW50aXR5U2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyIH0gZnJvbSAnLi9zZWFyY2gtZGVmaW5pdGlvbi5wcm92aWRlcic7XG5pbXBvcnQgeyBBWFBMb29rdXBXaWRnZXQgfSBmcm9tICcuL3dpZGdldHMvbG9va3VwLXdpZGdldCc7XG5pbXBvcnQgeyBBWFBUYWdhYmxlQm94V2lkZ2V0IH0gZnJvbSAnLi93aWRnZXRzL3RhZ2FibGUtYm94JztcbmltcG9ydCB7IEFYUFdpZGdldFNlbGVjdG9yV2lkZ2V0IH0gZnJvbSAnLi93aWRnZXRzL3dpZGdldC1zZWxlY3Rvcic7XG5pbXBvcnQge1xuICBBWFBDcmVhdGVFbnRpdHlXb3JrZmxvdyxcbiAgQVhQRW50aXR5Q3JlYXRlUG9wdXBBY3Rpb24sXG4gIEFYUEVudGl0eUNyZWF0ZVN1Ym1pdHRlZEFjdGlvbixcbn0gZnJvbSAnLi93b3JrZmxvd3MvY3JlYXRlLWVudGl0eS53b3JrZmxvdyc7XG5pbXBvcnQgeyBBWFBEZWxldGVFbnRpdHlXb3JrZmxvdywgQVhQRW50aXR5UGVyZm9ybURlbGV0ZUFjdGlvbiB9IGZyb20gJy4vd29ya2Zsb3dzL2RlbGV0ZS1lbnRpdHkud29ya2Zsb3cnO1xuaW1wb3J0IHtcbiAgQVhQRW50aXR5QXBwbHlVcGRhdGVzQWN0aW9uLFxuICBBWFBRdWlja0VudGl0eU1vZGlmeVBvcHVwQWN0aW9uLFxuICBBWFBRdWlja01vZGlmeUVudGl0eVdvcmtmbG93LFxufSBmcm9tICcuL3dvcmtmbG93cy9tb2RpZnktZW50aXR5LndvcmtmbG93JztcbmltcG9ydCB7XG4gIEFYUEVudGl0eU1vZGlmeUNvbmZpcm1lZEFjdGlvbixcbiAgQVhQRW50aXR5TW9kaWZ5U2VjdGlvblBvcHVwQWN0aW9uLFxuICBBWFBNb2RpZnlFbnRpdHlTZWN0aW9uV29ya2Zsb3csXG59IGZyb20gJy4vd29ya2Zsb3dzL21vZGlmeS1zZWN0aW9uLndvcmtmbG93JztcbmltcG9ydCB7IEFYUFNob3dEZXRhaWxWaWV3QWN0aW9uLCBBWFBTaG93RGV0YWlsc1ZpZXdXb3JrZmxvdyB9IGZyb20gJy4vd29ya2Zsb3dzL3Nob3ctZGV0YWlscy53b3JrZmxvdyc7XG5pbXBvcnQge1xuICBBWFBTaG93RmlsZVVwbG9hZGVyUG9wdXBBY3Rpb24sXG4gIEFYUFNob3dGaWxlVXBsb2FkZXJQb3B1cFdvcmtmbG93LFxufSBmcm9tICcuL3dvcmtmbG93cy9zaG93LWZpbGUtdXBsb2FkZXItcG9wdXAud29ya2Zsb3cnO1xuaW1wb3J0IHsgQVhQU2hvd0xpc3RWaWV3QWN0aW9uLCBBWFBTaG93TGlzdFZpZXdXb3JrZmxvdyB9IGZyb20gJy4vd29ya2Zsb3dzL3Nob3ctbGlzdC53b3JrZmxvdyc7XG5cbmZ1bmN0aW9uIHJvdXRlc0ZhY29yeSgpIHtcbiAgY29uc3QgY29uZmlnID0gaW5qZWN0KEFYUF9FTlRJVFlfQ09ORklHX1RPS0VOKTtcbiAgbGV0IHJvdXRlczogUm91dGVzID0gW107XG4gIHJvdXRlcyA9IFtcbiAgICB7XG4gICAgICBwYXRoOiAnOmFwcC9tJyxcbiAgICAgIGxvYWRDb21wb25lbnQ6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy52aWV3ZXJzLnJvb3QoKTtcbiAgICAgIH0sXG4gICAgICBjYW5BY3RpdmF0ZTogW0FYUEF1dGhHdWFyZF0sXG4gICAgICBjaGlsZHJlbjogW1xuICAgICAgICB7XG4gICAgICAgICAgcGF0aDogJzptb2R1bGUnLFxuICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHBhdGg6ICdlLzplbnRpdHkvbGlzdCcsXG4gICAgICAgICAgICAgIGxvYWRDb21wb25lbnQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29uZmlnLnZpZXdlcnMubWFzdGVyLmxpc3QoKTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcmVzb2x2ZToge1xuICAgICAgICAgICAgICAgIHZtOiBBWFBFbnRpdHlMaXN0Vmlld01vZGVsUmVzb2x2ZXIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGRhdGE6IHsgcmV1c2U6IGZhbHNlIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwYXRoOiAnZS86ZW50aXR5LzppZC92aWV3JyxcbiAgICAgICAgICAgICAgcmVzb2x2ZTogeyB2bTogQVhQRW50aXR5RGV0YWlsVmlld01vZGVsUmVzb2x2ZXIgfSxcbiAgICAgICAgICAgICAgbG9hZENvbXBvbmVudDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb25maWcudmlld2Vycy5tYXN0ZXIuc2luZ2xlKCk7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGRhdGE6IHsgcmV1c2U6IGZhbHNlIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwYXRoOiAnZS86ZW50aXR5LzppZCcsXG4gICAgICAgICAgICAgIHJlZGlyZWN0VG86ICdlLzplbnRpdHkvOmlkL3ZpZXcnLFxuICAgICAgICAgICAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHBhdGg6ICdlLzplbnRpdHknLFxuICAgICAgICAgICAgICByZWRpcmVjdFRvOiAnOmVudGl0eS9saXN0JyxcbiAgICAgICAgICAgICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF07XG4gIHJldHVybiByb3V0ZXM7XG59XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgQVhQV29ya2Zsb3dNb2R1bGUuZm9yQ2hpbGQoe1xuICAgICAgYWN0aW9uczoge1xuICAgICAgICBBWFBFbnRpdHlDcmVhdGVQb3B1cEFjdGlvbixcbiAgICAgICAgQVhQRW50aXR5UGVyZm9ybURlbGV0ZUFjdGlvbixcbiAgICAgICAgQVhQV29ya2Zsb3dOYXZpZ2F0ZUFjdGlvbixcbiAgICAgICAgJ2VudGl0eS1wZXJmb3JtLWRlbGV0ZSc6IEFYUEVudGl0eVBlcmZvcm1EZWxldGVBY3Rpb24sXG4gICAgICAgIEFYUEVudGl0eU1vZGlmeVNlY3Rpb25Qb3B1cEFjdGlvbixcbiAgICAgICAgQVhQUXVpY2tFbnRpdHlNb2RpZnlQb3B1cEFjdGlvbixcbiAgICAgICAgQVhQRW50aXR5TW9kaWZ5Q29uZmlybWVkQWN0aW9uLFxuICAgICAgICBBWFBUb2FzdEFjdGlvbixcbiAgICAgICAgQVhQU2hvd0RldGFpbFZpZXdBY3Rpb24sXG4gICAgICAgIEFYUEVudGl0eUNyZWF0ZVN1Ym1pdHRlZEFjdGlvbixcbiAgICAgICAgQVhQU2hvd0xpc3RWaWV3QWN0aW9uLFxuICAgICAgICAnZW50aXR5LWFwcGx5LXVwZGF0ZXMnOiBBWFBFbnRpdHlBcHBseVVwZGF0ZXNBY3Rpb24sXG4gICAgICAgIEFYUFNob3dGaWxlVXBsb2FkZXJQb3B1cEFjdGlvbixcbiAgICAgIH0sXG4gICAgICB3b3JrZmxvd3M6IHtcbiAgICAgICAgJ2NyZWF0ZS1lbnRpdHknOiBBWFBDcmVhdGVFbnRpdHlXb3JrZmxvdyxcbiAgICAgICAgJ2RlbGV0ZS1lbnRpdHknOiBBWFBEZWxldGVFbnRpdHlXb3JrZmxvdyxcbiAgICAgICAgJ21vZGlmeS1lbnRpdHktc2VjdGlvbic6IEFYUE1vZGlmeUVudGl0eVNlY3Rpb25Xb3JrZmxvdyxcbiAgICAgICAgJ3F1aWNrLW1vZGlmeS1lbnRpdHknOiBBWFBRdWlja01vZGlmeUVudGl0eVdvcmtmbG93LFxuICAgICAgICAnb3Blbi1lbnRpdHknOiBBWFBTaG93RGV0YWlsc1ZpZXdXb3JrZmxvdyxcbiAgICAgICAgJ3Nob3ctbGlzdC12aWV3JzogQVhQU2hvd0xpc3RWaWV3V29ya2Zsb3csXG4gICAgICAgICdzaG93LWZpbGUtdXBsb2FkZXItcG9wdXAnOiBBWFBTaG93RmlsZVVwbG9hZGVyUG9wdXBXb3JrZmxvdyxcbiAgICAgIH0sXG4gICAgICBmdW5jdGlvbnM6IHt9LFxuICAgIH0pLFxuICAgIEFYUExheW91dEJ1aWxkZXJNb2R1bGUuZm9yQ2hpbGQoe1xuICAgICAgd2lkZ2V0czogW0FYUExvb2t1cFdpZGdldCwgQVhQV2lkZ2V0U2VsZWN0b3JXaWRnZXQsIEFYUFRhZ2FibGVCb3hXaWRnZXRdLFxuICAgIH0pLFxuICBdLFxuICBleHBvcnRzOiBbXSxcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgLy8gQ1VTVE9NRVJfTU9ESUZJRVJfUFJPVklERVIsXG4gICAge1xuICAgICAgcHJvdmlkZTogUk9VVEVTLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VGYWN0b3J5OiByb3V0ZXNGYWNvcnksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFBfU0VBUkNIX0RFRklOSVRJT05fUFJPVklERVIsXG4gICAgICB1c2VDbGFzczogQVhQRW50aXR5U2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFBfU0VBUkNIX0RFRklOSVRJT05fUFJPVklERVIsXG4gICAgICB1c2VDbGFzczogQVhQRW50aXR5Q29tbWFuZFNlYXJjaERlZmluaXRpb25Qcm92aWRlcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKGFwcEluaXRTZXJ2aWNlOiBBWFBBcHBTdGFydFVwU2VydmljZSwgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgY29uc3Qgc2VydmljZSA9IGluamVjdG9yLmdldChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcbiAgICBhcHBJbml0U2VydmljZS5yZWdpc3RlclRhc2soe1xuICAgICAgbmFtZTogJ2xheW91dC10aGVtZScsXG4gICAgICBzdGF0dXNUZXh0OiAnUHJlbG9hZCBlbnRpdGllcyAuLi4nLFxuICAgICAgcHJpb3JpdHk6IDEwMCxcbiAgICAgIHJ1bjogYXN5bmMgKCkgPT4ge1xuICAgICAgICAvLyBsb2FkIGluIGJhY2tncm91bmRcbiAgICAgICAgc2VydmljZS5wcmVsb2FkKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { AXPSessionService } from '@acorex/platform/auth';\nimport { inject, Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityService {\n constructor() {\n this.sessionService = inject(AXPSessionService);\n }\n createPath(module, entity, path = 'list') {\n return `/${this.sessionService.application?.name}/m/${module}/e/${entity}/${path}`;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPEntityService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi9lbnRpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHbkQsTUFBTSxPQUFPLGdCQUFnQjtJQUQ3QjtRQUVVLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FLcEQ7SUFIQyxVQUFVLENBQUMsTUFBYyxFQUFFLE1BQWMsRUFBRSxPQUFlLE1BQU07UUFDOUQsT0FBTyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3JGLENBQUM7OEdBTFUsZ0JBQWdCO2tIQUFoQixnQkFBZ0IsY0FESCxNQUFNOzsyRkFDbkIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eVNlcnZpY2Uge1xuICBwcml2YXRlIHNlc3Npb25TZXJ2aWNlID0gaW5qZWN0KEFYUFNlc3Npb25TZXJ2aWNlKTtcblxuICBjcmVhdGVQYXRoKG1vZHVsZTogc3RyaW5nLCBlbnRpdHk6IHN0cmluZywgcGF0aDogc3RyaW5nID0gJ2xpc3QnKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYC8ke3RoaXMuc2Vzc2lvblNlcnZpY2UuYXBwbGljYXRpb24/Lm5hbWV9L20vJHttb2R1bGV9L2UvJHtlbnRpdHl9LyR7cGF0aH1gO1xuICB9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLWxheW91dC1lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2Fjb3JleC1wbGF0Zm9ybS1sYXlvdXQtZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i2","i1","i5","i6","i7","i3","i4"],"mappings":"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"}