@acorex/platform 18.0.0 → 18.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1162) hide show
  1. package/README.md +7 -7
  2. package/auth/README.md +3 -3
  3. package/auth/lib/auth.strategy.d.ts +6 -3
  4. package/common/README.md +3 -3
  5. package/common/index.d.ts +5 -3
  6. package/common/lib/app/application.types.d.ts +234 -0
  7. package/common/lib/app/index.d.ts +2 -0
  8. package/common/lib/common.module.d.ts +6 -4
  9. package/common/lib/configs/app.config.d.ts +1 -1
  10. package/common/lib/layout/beardcrumb.type.d.ts +6 -0
  11. package/common/lib/layout/grid-layout/grid-layout.directive.d.ts +15 -0
  12. package/common/lib/layout/grid-layout/grid-layout.types.d.ts +19 -0
  13. package/common/lib/layout/grid-layout/index.d.ts +2 -0
  14. package/common/lib/layout/index.d.ts +9 -0
  15. package/common/lib/layout/logo/index.d.ts +2 -0
  16. package/common/lib/layout/sticky.directive.d.ts +25 -0
  17. package/common/lib/layout/theme/components/slots/index.d.ts +3 -0
  18. package/common/lib/layout/theme/components/slots/navbar-slot.component.d.ts +10 -0
  19. package/common/lib/layout/theme/store/admin-layout.selectors.d.ts +5 -0
  20. package/common/lib/schema/entity/entity.class.d.ts +155 -0
  21. package/common/lib/schema/index.d.ts +8 -0
  22. package/common/lib/schema/schema.types.d.ts +15 -0
  23. package/common/lib/schema/widget/index.d.ts +5 -0
  24. package/common/lib/schema/widget/widget-base.d.ts +45 -0
  25. package/common/lib/schema/widget/widget-token.d.ts +16 -0
  26. package/common/lib/schema/widgets/avatar/avatar-widget-edit.component.d.ts +16 -0
  27. package/common/lib/schema/widgets/avatar/avatar-widget-view.component.d.ts +13 -0
  28. package/common/lib/schema/widgets/checkbox/checkbox-widget-column.component.d.ts +11 -0
  29. package/common/lib/schema/widgets/checkbox/checkbox-widget-edit.component.d.ts +6 -0
  30. package/common/lib/schema/widgets/checkbox/checkbox-widget-view.component.d.ts +11 -0
  31. package/common/lib/schema/widgets/common-widget-filter/boolean-widget-filter.component.d.ts +18 -0
  32. package/common/lib/schema/widgets/common-widget-filter/number-widget-filter.component.d.ts +12 -0
  33. package/common/lib/schema/widgets/common-widget-filter/string-widget-filter.component.d.ts +12 -0
  34. package/common/lib/schema/widgets/common-widgets.module.d.ts +32 -0
  35. package/common/lib/schema/widgets/dateTime/dateTime-widget-column.component.d.ts +11 -0
  36. package/common/lib/schema/widgets/dateTime/dateTime-widget-edit.component.d.ts +26 -0
  37. package/common/lib/schema/widgets/dateTime/dateTime-widget-filter.component.d.ts +16 -0
  38. package/common/lib/schema/widgets/dateTime/dateTime-widget-view.component.d.ts +11 -0
  39. package/common/lib/schema/widgets/email/email-widget-column.component.d.ts +16 -0
  40. package/common/lib/schema/widgets/email/email-widget-edit.component.d.ts +28 -0
  41. package/common/lib/schema/widgets/email/email-widget-view.component.d.ts +16 -0
  42. package/common/lib/schema/widgets/file/file-widget-column.component.d.ts +8 -0
  43. package/common/lib/schema/widgets/file/file-widget-edit.component.d.ts +17 -0
  44. package/common/lib/schema/widgets/file/file-widget-filter.component.d.ts +6 -0
  45. package/common/lib/schema/widgets/file/file-widget-view.component.d.ts +17 -0
  46. package/common/lib/schema/widgets/gallery/gallery-widget-edit.component.d.ts +15 -0
  47. package/common/lib/schema/widgets/gallery/gallery-widget-filter.component.d.ts +6 -0
  48. package/common/lib/schema/widgets/gallery/gallery-widget-view.component.d.ts +16 -0
  49. package/common/lib/schema/widgets/lookup/lookup-widget-column.component.d.ts +17 -0
  50. package/common/lib/schema/widgets/lookup/lookup-widget-edit.component.d.ts +15 -0
  51. package/common/lib/schema/widgets/lookup/lookup-widget-filter.component.d.ts +17 -0
  52. package/common/lib/schema/widgets/lookup/lookup-widget-view.component.d.ts +17 -0
  53. package/common/lib/schema/widgets/map/map-widget-edit.component.d.ts +15 -0
  54. package/common/lib/schema/widgets/map/map-widget-view.component.d.ts +17 -0
  55. package/common/lib/schema/widgets/messenger/messenger-widget-column.component.d.ts +15 -0
  56. package/common/lib/schema/widgets/messenger/messenger-widget-edit.component.d.ts +14 -0
  57. package/common/lib/schema/widgets/messenger/messenger-widget-view.component.d.ts +17 -0
  58. package/common/lib/schema/widgets/number/number-widget-edit.component.d.ts +7 -0
  59. package/common/lib/schema/widgets/number/number-widget-view.component.d.ts +8 -0
  60. package/common/lib/schema/widgets/password/password-widget-column.component.d.ts +14 -0
  61. package/common/lib/schema/widgets/password/password-widget-edit.component.d.ts +6 -0
  62. package/common/lib/schema/widgets/password/password-widget-view.component.d.ts +18 -0
  63. package/common/lib/schema/widgets/phone/phone-widget-column.component.d.ts +15 -0
  64. package/common/lib/schema/widgets/phone/phone-widget-edit.component.d.ts +29 -0
  65. package/common/lib/schema/widgets/phone/phone-widget-view.component.d.ts +18 -0
  66. package/common/lib/schema/widgets/rich-text/rich-text-widget-column.component.d.ts +11 -0
  67. package/common/lib/schema/widgets/rich-text/rich-text-widget-edit.component.d.ts +33 -0
  68. package/common/lib/schema/widgets/rich-text/rich-text-widget-view.component.d.ts +10 -0
  69. package/common/lib/schema/widgets/selection-list/selection-list-widget-column.component.d.ts +16 -0
  70. package/common/lib/schema/widgets/selection-list/selection-list-widget-edit.component.d.ts +12 -0
  71. package/common/lib/schema/widgets/selection-list/selection-list-widget-filter.component.d.ts +9 -0
  72. package/common/lib/schema/widgets/selection-list/selection-list-widget-view.component.d.ts +15 -0
  73. package/common/lib/schema/widgets/signature-pad/signature-pad-widget-edit.component.d.ts +19 -0
  74. package/common/lib/schema/widgets/signature-pad/signature-pad-widget-view.component.d.ts +8 -0
  75. package/common/lib/schema/widgets/text/largetext-widget-edit.component.d.ts +6 -0
  76. package/common/lib/schema/widgets/text/text-widget-column.component.d.ts +12 -0
  77. package/common/lib/schema/widgets/text/text-widget-edit.component.d.ts +23 -0
  78. package/common/lib/schema/widgets/text/text-widget-view.component.d.ts +11 -0
  79. package/common/lib/schema/widgets/toggle/toggle-widget-column.component.d.ts +11 -0
  80. package/common/lib/schema/widgets/toggle/toggle-widget-edit.component.d.ts +6 -0
  81. package/common/lib/schema/widgets/toggle/toggle-widget-view.component.d.ts +11 -0
  82. package/common/lib/store/common.actions.d.ts +1 -0
  83. package/common/lib/utils/data-generator.d.ts +12 -0
  84. package/common/lib/utils/index.d.ts +1 -1
  85. package/common/lib/utils/router-util.service.d.ts +1 -1
  86. package/common/lib/workflows/common.workflow.d.ts +38 -0
  87. package/common/lib/workflows/error-handler.d.ts +8 -0
  88. package/esm2022/auth/index.mjs +1 -1
  89. package/esm2022/auth/lib/application/application.loader.mjs +1 -1
  90. package/esm2022/auth/lib/application/application.types.mjs +1 -1
  91. package/esm2022/auth/lib/auth-registry.service.mjs +1 -1
  92. package/esm2022/auth/lib/auth.guard.mjs +1 -1
  93. package/esm2022/auth/lib/auth.module.mjs +1 -1
  94. package/esm2022/auth/lib/auth.strategy.mjs +1 -1
  95. package/esm2022/auth/lib/errors.types.mjs +1 -1
  96. package/esm2022/auth/lib/feature/feature.directive.mjs +1 -1
  97. package/esm2022/auth/lib/feature/feature.guard.mjs +1 -1
  98. package/esm2022/auth/lib/feature/feature.loader.mjs +1 -1
  99. package/esm2022/auth/lib/feature/feature.types.mjs +1 -1
  100. package/esm2022/auth/lib/feature/index.mjs +1 -1
  101. package/esm2022/auth/lib/permission/index.mjs +1 -1
  102. package/esm2022/auth/lib/permission/permission.directive.mjs +1 -1
  103. package/esm2022/auth/lib/permission/permission.guard.mjs +1 -1
  104. package/esm2022/auth/lib/permission/permission.loader.mjs +1 -1
  105. package/esm2022/auth/lib/permission/permission.types.mjs +1 -1
  106. package/esm2022/auth/lib/session.service.mjs +4 -2
  107. package/esm2022/auth/lib/session.types.mjs +1 -1
  108. package/esm2022/auth/lib/tenant/tenant.loader.mjs +1 -1
  109. package/esm2022/auth/lib/tenant/tenant.types.mjs +1 -1
  110. package/esm2022/auth/lib/user/user.types.mjs +1 -1
  111. package/esm2022/common/index.mjs +6 -4
  112. package/esm2022/common/lib/app/application.types.mjs +39 -0
  113. package/esm2022/common/lib/app/index.mjs +3 -0
  114. package/esm2022/common/lib/app/operators.mjs +50 -0
  115. package/esm2022/common/lib/common.module.mjs +20 -44
  116. package/esm2022/common/lib/configs/app.config.mjs +2 -2
  117. package/esm2022/common/lib/configs/config.types.mjs +3 -0
  118. package/esm2022/common/lib/data/data-provider.types.mjs +1 -1
  119. package/esm2022/common/lib/errors/error-handler-registry.service.mjs +1 -1
  120. package/esm2022/common/lib/errors/error-handler.types.mjs +1 -1
  121. package/esm2022/common/lib/errors/global-error-handler.mjs +1 -1
  122. package/esm2022/common/lib/errors/index.mjs +1 -1
  123. package/esm2022/common/lib/layout/beardcrumb.type.mjs +2 -0
  124. package/esm2022/common/lib/layout/component-slot/component-slot-loader.service.mjs +56 -0
  125. package/esm2022/common/lib/layout/component-slot/component-slot-registery.service.mjs +28 -0
  126. package/esm2022/common/lib/layout/component-slot/component-slot.directive.mjs +24 -0
  127. package/esm2022/common/lib/layout/component-slot/component-slot.module.mjs +72 -0
  128. package/esm2022/common/lib/layout/component-slot/component-slot.types.mjs +2 -0
  129. package/esm2022/common/lib/layout/component-slot/index.mjs +6 -0
  130. package/esm2022/common/lib/layout/grid-layout/grid-layout.directive.mjs +61 -0
  131. package/esm2022/common/lib/layout/grid-layout/grid-layout.types.mjs +2 -0
  132. package/esm2022/common/lib/layout/grid-layout/index.mjs +3 -0
  133. package/esm2022/common/lib/layout/index.mjs +10 -0
  134. package/esm2022/common/lib/layout/layout.service.mjs +79 -0
  135. package/esm2022/common/lib/layout/logo/index.mjs +3 -0
  136. package/esm2022/common/lib/layout/logo/logo.component.mjs +38 -0
  137. package/esm2022/common/lib/layout/logo/logo.types.mjs +21 -0
  138. package/esm2022/common/lib/layout/menu/index.mjs +3 -0
  139. package/esm2022/common/lib/layout/menu/menu.loader.mjs +39 -0
  140. package/esm2022/common/lib/layout/menu/menu.types.mjs +2 -0
  141. package/esm2022/common/lib/layout/sticky.directive.mjs +78 -0
  142. package/esm2022/common/lib/layout/theme/components/slots/footer-text-slot.component.mjs +20 -0
  143. package/esm2022/common/lib/layout/theme/components/slots/index.mjs +4 -0
  144. package/esm2022/common/lib/layout/theme/components/slots/navbar-slot.component.mjs +36 -0
  145. package/esm2022/common/lib/layout/theme/components/slots/theme-slot.component.mjs +48 -0
  146. package/esm2022/common/lib/layout/theme/store/admin-layout.actions.mjs +12 -0
  147. package/esm2022/common/lib/layout/theme/store/admin-layout.effects.mjs +29 -0
  148. package/esm2022/common/lib/layout/theme/store/admin-layout.reducers.mjs +60 -0
  149. package/esm2022/common/lib/layout/theme/store/admin-layout.selectors.mjs +8 -0
  150. package/esm2022/common/lib/layout/theme/store/admin-layout.state.mjs +16 -0
  151. package/esm2022/common/lib/layout/theme/store/index.mjs +6 -0
  152. package/esm2022/common/lib/schema/component-loader.mjs +2 -0
  153. package/esm2022/common/lib/schema/entity/entity-registery.service.mjs +70 -0
  154. package/esm2022/common/lib/schema/entity/entity.class.mjs +32 -0
  155. package/esm2022/common/lib/schema/entity/entity.loader.mjs +13 -0
  156. package/esm2022/common/lib/schema/entity/index.mjs +4 -0
  157. package/esm2022/common/lib/schema/formats.mjs +2 -0
  158. package/esm2022/common/lib/schema/index.mjs +9 -0
  159. package/esm2022/common/lib/schema/schema-registery.service.mjs +33 -0
  160. package/esm2022/common/lib/schema/schema.module.mjs +23 -0
  161. package/esm2022/common/lib/schema/schema.types.mjs +2 -0
  162. package/esm2022/common/lib/schema/widget/index.mjs +6 -0
  163. package/esm2022/common/lib/schema/widget/widget-base.mjs +113 -0
  164. package/esm2022/common/lib/schema/widget/widget-column-renderer.mjs +118 -0
  165. package/esm2022/common/lib/schema/widget/widget-filter-renderer.mjs +133 -0
  166. package/esm2022/common/lib/schema/widget/widget-renderer.mjs +144 -0
  167. package/esm2022/common/lib/schema/widget/widget-token.mjs +3 -0
  168. package/esm2022/common/lib/schema/widgets/avatar/avatar-widget-edit.component.mjs +160 -0
  169. package/esm2022/common/lib/schema/widgets/avatar/avatar-widget-view.component.mjs +63 -0
  170. package/esm2022/common/lib/schema/widgets/checkbox/checkbox-widget-column.component.mjs +53 -0
  171. package/esm2022/common/lib/schema/widgets/checkbox/checkbox-widget-edit.component.mjs +22 -0
  172. package/esm2022/common/lib/schema/widgets/checkbox/checkbox-widget-view.component.mjs +47 -0
  173. package/esm2022/common/lib/schema/widgets/common-widget-filter/boolean-widget-filter.component.mjs +147 -0
  174. package/esm2022/common/lib/schema/widgets/common-widget-filter/number-widget-filter.component.mjs +135 -0
  175. package/esm2022/common/lib/schema/widgets/common-widget-filter/string-widget-filter.component.mjs +125 -0
  176. package/esm2022/common/lib/schema/widgets/common-widgets.module.mjs +505 -0
  177. package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-column.component.mjs +44 -0
  178. package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-edit.component.mjs +178 -0
  179. package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-filter.component.mjs +213 -0
  180. package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-view.component.mjs +71 -0
  181. package/esm2022/common/lib/schema/widgets/email/email-widget-column.component.mjs +73 -0
  182. package/esm2022/common/lib/schema/widgets/email/email-widget-edit.component.mjs +249 -0
  183. package/esm2022/common/lib/schema/widgets/email/email-widget-view.component.mjs +108 -0
  184. package/esm2022/common/lib/schema/widgets/file/file-widget-column.component.mjs +27 -0
  185. package/esm2022/common/lib/schema/widgets/file/file-widget-edit.component.mjs +200 -0
  186. package/esm2022/common/lib/schema/widgets/file/file-widget-filter.component.mjs +27 -0
  187. package/esm2022/common/lib/schema/widgets/file/file-widget-view.component.mjs +153 -0
  188. package/esm2022/common/lib/schema/widgets/gallery/gallery-widget-edit.component.mjs +189 -0
  189. package/esm2022/common/lib/schema/widgets/gallery/gallery-widget-filter.component.mjs +27 -0
  190. package/esm2022/common/lib/schema/widgets/gallery/gallery-widget-types.mjs +2 -0
  191. package/esm2022/common/lib/schema/widgets/gallery/gallery-widget-view.component.mjs +173 -0
  192. package/esm2022/common/lib/schema/widgets/index.mjs +2 -0
  193. package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-column.component.mjs +43 -0
  194. package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-edit.component.mjs +74 -0
  195. package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-filter.component.mjs +115 -0
  196. package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-view.component.mjs +54 -0
  197. package/esm2022/common/lib/schema/widgets/map/map-widget-edit.component.mjs +91 -0
  198. package/esm2022/common/lib/schema/widgets/map/map-widget-view.component.mjs +63 -0
  199. package/esm2022/common/lib/schema/widgets/messenger/messenger-widget-column.component.mjs +71 -0
  200. package/esm2022/common/lib/schema/widgets/messenger/messenger-widget-edit.component.mjs +136 -0
  201. package/esm2022/common/lib/schema/widgets/messenger/messenger-widget-view.component.mjs +132 -0
  202. package/esm2022/common/lib/schema/widgets/number/number-widget-edit.component.mjs +46 -0
  203. package/esm2022/common/lib/schema/widgets/number/number-widget-view.component.mjs +30 -0
  204. package/esm2022/common/lib/schema/widgets/password/change-password.component.mjs +174 -0
  205. package/esm2022/common/lib/schema/widgets/password/password-widget-column.component.mjs +67 -0
  206. package/esm2022/common/lib/schema/widgets/password/password-widget-edit.component.mjs +41 -0
  207. package/esm2022/common/lib/schema/widgets/password/password-widget-view.component.mjs +109 -0
  208. package/esm2022/common/lib/schema/widgets/phone/phone-widget-column.component.mjs +91 -0
  209. package/esm2022/common/lib/schema/widgets/phone/phone-widget-edit.component.mjs +245 -0
  210. package/esm2022/common/lib/schema/widgets/phone/phone-widget-view.component.mjs +123 -0
  211. package/esm2022/common/lib/schema/widgets/rich-text/rich-text-widget-column.component.mjs +61 -0
  212. package/esm2022/common/lib/schema/widgets/rich-text/rich-text-widget-edit.component.mjs +67 -0
  213. package/esm2022/common/lib/schema/widgets/rich-text/rich-text-widget-view.component.mjs +34 -0
  214. package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-column.component.mjs +45 -0
  215. package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-edit.component.mjs +53 -0
  216. package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-filter.component.mjs +41 -0
  217. package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-view.component.mjs +45 -0
  218. package/esm2022/common/lib/schema/widgets/signature-pad/signature-pad-widget-edit.component.mjs +128 -0
  219. package/esm2022/common/lib/schema/widgets/signature-pad/signature-pad-widget-view.component.mjs +41 -0
  220. package/esm2022/common/lib/schema/widgets/text/largetext-widget-edit.component.mjs +37 -0
  221. package/esm2022/common/lib/schema/widgets/text/text-widget-column.component.mjs +46 -0
  222. package/esm2022/common/lib/schema/widgets/text/text-widget-edit.component.mjs +162 -0
  223. package/esm2022/common/lib/schema/widgets/text/text-widget-view.component.mjs +66 -0
  224. package/esm2022/common/lib/schema/widgets/toggle/toggle-widget-column.component.mjs +57 -0
  225. package/esm2022/common/lib/schema/widgets/toggle/toggle-widget-edit.component.mjs +25 -0
  226. package/esm2022/common/lib/schema/widgets/toggle/toggle-widget-view.component.mjs +49 -0
  227. package/esm2022/common/lib/settings/index.mjs +1 -1
  228. package/esm2022/common/lib/settings/settings.loader.mjs +1 -1
  229. package/esm2022/common/lib/settings/settings.service.mjs +1 -1
  230. package/esm2022/common/lib/settings/settings.types.mjs +1 -1
  231. package/esm2022/common/lib/store/common.actions.mjs +2 -1
  232. package/esm2022/common/lib/store/common.effects.mjs +1 -1
  233. package/esm2022/common/lib/store/index.mjs +1 -1
  234. package/esm2022/common/lib/utils/clipboard-service.mjs +1 -1
  235. package/esm2022/common/lib/utils/data-generator.mjs +47 -0
  236. package/esm2022/common/lib/utils/index.mjs +2 -2
  237. package/esm2022/common/lib/utils/router-util.service.mjs +1 -1
  238. package/esm2022/common/lib/workflows/common.workflow.mjs +68 -0
  239. package/esm2022/common/lib/workflows/error-handler.mjs +24 -0
  240. package/esm2022/common/lib/workflows/index.mjs +3 -0
  241. package/esm2022/index.mjs +1 -1
  242. package/esm2022/layout/builder/acorex-platform-layout-builder.mjs +5 -0
  243. package/esm2022/layout/builder/index.mjs +2 -0
  244. package/esm2022/layout/builder/lib/builder/builder.module.mjs +67 -0
  245. package/esm2022/layout/builder/lib/builder/builder.service.mjs +81 -0
  246. package/esm2022/layout/builder/lib/builder/index.mjs +9 -0
  247. package/esm2022/layout/builder/lib/builder/layout.types.mjs +2 -0
  248. package/esm2022/layout/builder/lib/builder/widget-column-renderer.mjs +110 -0
  249. package/esm2022/layout/builder/lib/builder/widget-container.component.mjs +55 -0
  250. package/esm2022/layout/builder/lib/builder/widget-registery.service.mjs +33 -0
  251. package/esm2022/layout/builder/lib/builder/widget-renderer.component.mjs +293 -0
  252. package/esm2022/layout/builder/lib/builder/widget.types.mjs +74 -0
  253. package/esm2022/layout/entity/acorex-platform-layout-entity.mjs +5 -0
  254. package/esm2022/layout/entity/index.mjs +2 -0
  255. package/esm2022/layout/entity/lib/entity-detail-list.viewmodel.mjs +154 -0
  256. package/esm2022/layout/entity/lib/entity-master-create.viewmodel.mjs +128 -0
  257. package/esm2022/layout/entity/lib/entity-master-list.viewmodel.mjs +278 -0
  258. package/esm2022/layout/entity/lib/entity-master-single.viewmodel.mjs +230 -0
  259. package/esm2022/layout/entity/lib/entity-master-update.viewmodel.mjs +101 -0
  260. package/esm2022/layout/entity/lib/entity-registery.service.mjs +69 -0
  261. package/esm2022/layout/entity/lib/entity.config.mjs +4 -0
  262. package/esm2022/layout/entity/lib/entity.module.mjs +134 -0
  263. package/esm2022/layout/entity/lib/entity.viewmodel.mjs +32 -0
  264. package/esm2022/layout/entity/lib/index.mjs +9 -0
  265. package/esm2022/layout/entity/lib/widgets/lookup-widget/index.mjs +8 -0
  266. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-column.component.mjs +19 -0
  267. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-designer.component.mjs +19 -0
  268. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.mjs +127 -0
  269. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-filter.component.mjs +20 -0
  270. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-print.component.mjs +19 -0
  271. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.mjs +105 -0
  272. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.mjs +85 -0
  273. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.mjs +19 -0
  274. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget.config.mjs +24 -0
  275. package/esm2022/layout/entity/lib/workflows/create-entity.workflow.mjs +93 -0
  276. package/esm2022/layout/entity/lib/workflows/delete-entity.workflow.mjs +123 -0
  277. package/esm2022/layout/entity/lib/workflows/modify-section.workflow.mjs +104 -0
  278. package/esm2022/layout/entity/lib/workflows/show-details.workflow.mjs +36 -0
  279. package/esm2022/layouts/index.mjs +1 -3
  280. package/esm2022/layouts/lib/admin/admin.module.mjs +9 -17
  281. package/esm2022/layouts/lib/admin/admin.routes.mjs +7 -8
  282. package/esm2022/layouts/lib/admin/custom-reuse.strategy.mjs +1 -1
  283. package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.component.mjs +6 -6
  284. package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.config.mjs +3 -2
  285. package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/detail-view.config.mjs +3 -2
  286. package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.mjs +8 -11
  287. package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/index.mjs +1 -1
  288. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/entity-custom-view/entity-custom-view.component.mjs +5 -5
  289. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/index.mjs +1 -1
  290. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-columns/list-view-option-columns.component.mjs +4 -4
  291. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-conditions.component.mjs +6 -9
  292. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-filter-operator.component.mjs +19 -19
  293. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-sorting/list-view-option-sorting.component.mjs +6 -8
  294. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.mjs +6 -7
  295. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/index.mjs +1 -1
  296. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/list-view.config.mjs +3 -3
  297. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/list-view.module.mjs +2 -3
  298. package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.component.mjs +5 -5
  299. package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.config.mjs +3 -2
  300. package/esm2022/layouts/lib/admin/entity-layout/entity-quick-view/entity-quick-view.component.mjs +5 -6
  301. package/esm2022/layouts/lib/admin/entity-layout/index.mjs +1 -1
  302. package/esm2022/layouts/lib/admin/entity-layout/workflows/create-entity.workflow.mjs +2 -2
  303. package/esm2022/layouts/lib/admin/entity-layout/workflows/delete-entity.workflow.mjs +2 -2
  304. package/esm2022/layouts/lib/admin/entity-layout/workflows/index.mjs +4 -1
  305. package/esm2022/layouts/lib/admin/entity-layout/workflows/modify-entity.workflow.mjs +2 -2
  306. package/esm2022/layouts/lib/admin/entity-layout/workflows/modify-section.workflow.mjs +85 -0
  307. package/esm2022/layouts/lib/admin/entity-layout/workflows/show-details.workflow.mjs +27 -1
  308. package/esm2022/layouts/lib/admin/entity-layout/workflows/show-list.workflow.mjs +26 -1
  309. package/esm2022/layouts/lib/admin/entity-layout/workflows/show-quick-view.workflow.mjs +41 -1
  310. package/esm2022/layouts/lib/admin/entity.resolver.mjs +1 -1
  311. package/esm2022/layouts/lib/admin/index.mjs +1 -3
  312. package/esm2022/layouts/lib/layout.module.mjs +9 -14
  313. package/esm2022/mocks/index.mjs +1 -1
  314. package/esm2022/mocks/lib/mocks.module.mjs +1 -1
  315. package/esm2022/mocks/lib/services/mocker.service.mjs +1 -1
  316. package/esm2022/mocks/lib/storage/storage.mock.service.mjs +1 -1
  317. package/esm2022/native/index.mjs +1 -1
  318. package/esm2022/native/lib/native.service.mjs +1 -1
  319. package/esm2022/widgets/index.mjs +1 -1
  320. package/esm2022/widgets/lib/editors/checkbox/checkbox-widget-column.component.mjs +45 -0
  321. package/esm2022/widgets/lib/editors/checkbox/checkbox-widget-edit.component.mjs +10 -10
  322. package/esm2022/widgets/lib/editors/checkbox/checkbox-widget-view.component.mjs +54 -0
  323. package/esm2022/widgets/lib/editors/checkbox/checkbox-widget.config.mjs +10 -4
  324. package/esm2022/widgets/lib/editors/checkbox/index.mjs +1 -1
  325. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-column.component.mjs +32 -7
  326. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-designer.component.mjs +2 -2
  327. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-edit.component.mjs +54 -54
  328. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-filter.component.mjs +2 -2
  329. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-print.component.mjs +2 -2
  330. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-view.component.mjs +18 -18
  331. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget.config.mjs +1 -1
  332. package/esm2022/widgets/lib/editors/date-time-box-widget/index.mjs +1 -1
  333. package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-column.component.mjs +54 -7
  334. package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-designer.component.mjs +2 -2
  335. package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-edit.component.mjs +173 -141
  336. package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-filter.component.mjs +2 -2
  337. package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-print.component.mjs +2 -2
  338. package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-view.component.mjs +70 -70
  339. package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget.config.mjs +1 -1
  340. package/esm2022/widgets/lib/editors/email-box-widget/index.mjs +1 -1
  341. package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-column.component.mjs +2 -2
  342. package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-designer.component.mjs +2 -2
  343. package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-edit.component.mjs +112 -112
  344. package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-filter.component.mjs +2 -2
  345. package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-print.component.mjs +2 -2
  346. package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-view.component.mjs +64 -64
  347. package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget.config.mjs +1 -1
  348. package/esm2022/widgets/lib/editors/file-box-widget/index.mjs +1 -1
  349. package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-column.component.mjs +2 -2
  350. package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-designer.component.mjs +2 -2
  351. package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-edit.component.mjs +108 -108
  352. package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-filter.component.mjs +2 -2
  353. package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-print.component.mjs +2 -2
  354. package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-types.mjs +1 -1
  355. package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-view.component.mjs +98 -98
  356. package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget.config.mjs +1 -1
  357. package/esm2022/widgets/lib/editors/gallery-widget/index.mjs +1 -1
  358. package/esm2022/widgets/lib/editors/map-box-widget/index.mjs +1 -1
  359. package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-column.component.mjs +2 -2
  360. package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-designer.component.mjs +2 -2
  361. package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-edit.component.mjs +6 -6
  362. package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-filter.component.mjs +2 -2
  363. package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-print.component.mjs +2 -2
  364. package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-view.component.mjs +6 -6
  365. package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget.config.mjs +1 -1
  366. package/esm2022/widgets/lib/editors/number-box-widget/index.mjs +1 -1
  367. package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-column.component.mjs +26 -7
  368. package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-designer.component.mjs +2 -2
  369. package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-edit.component.mjs +68 -68
  370. package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-filter.component.mjs +2 -2
  371. package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-print.component.mjs +2 -2
  372. package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-view.component.mjs +33 -19
  373. package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget.config.mjs +4 -1
  374. package/esm2022/widgets/lib/editors/password-box-widget/index.mjs +1 -1
  375. package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-column.component.mjs +2 -2
  376. package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-designer.component.mjs +2 -2
  377. package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-edit.component.mjs +10 -10
  378. package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-filter.component.mjs +2 -2
  379. package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-print.component.mjs +2 -2
  380. package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-view.component.mjs +46 -46
  381. package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget.config.mjs +1 -1
  382. package/esm2022/widgets/lib/editors/phone-box-widget/index.mjs +1 -1
  383. package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-column.component.mjs +54 -7
  384. package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-designer.component.mjs +2 -2
  385. package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-edit.component.mjs +162 -134
  386. package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-filter.component.mjs +2 -2
  387. package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-print.component.mjs +2 -2
  388. package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-view.component.mjs +70 -70
  389. package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget.config.mjs +1 -1
  390. package/esm2022/widgets/lib/editors/rich-text-widget/index.mjs +1 -1
  391. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-column.component.mjs +2 -2
  392. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-designer.component.mjs +2 -2
  393. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-edit.component.mjs +10 -10
  394. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-filter.component.mjs +2 -2
  395. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-print.component.mjs +2 -2
  396. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-view.component.mjs +10 -10
  397. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget.config.mjs +1 -1
  398. package/esm2022/widgets/lib/editors/select-box-widget/index.mjs +1 -1
  399. package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-column.component.mjs +5 -5
  400. package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-designer.component.mjs +2 -2
  401. package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-edit.component.mjs +26 -26
  402. package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-filter.component.mjs +2 -2
  403. package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-print.component.mjs +2 -2
  404. package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-view.component.mjs +24 -18
  405. package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget.config.mjs +1 -1
  406. package/esm2022/widgets/lib/editors/selection-list-widget/index.mjs +1 -1
  407. package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-column.component.mjs +30 -8
  408. package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-designer.component.mjs +2 -2
  409. package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-edit.component.mjs +32 -32
  410. package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-filter.component.mjs +2 -2
  411. package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-print.component.mjs +2 -2
  412. package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-view.component.mjs +29 -8
  413. package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget.config.mjs +1 -1
  414. package/esm2022/widgets/lib/editors/signature-pad-widget/index.mjs +1 -1
  415. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-column.component.mjs +2 -2
  416. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-designer.component.mjs +2 -2
  417. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-edit.component.mjs +56 -56
  418. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-filter.component.mjs +2 -2
  419. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-print.component.mjs +2 -2
  420. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-view.component.mjs +18 -18
  421. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget.config.mjs +1 -1
  422. package/esm2022/widgets/lib/editors/text-box-widget/index.mjs +1 -1
  423. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-column.component.mjs +7 -6
  424. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-designer.component.mjs +2 -2
  425. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-edit.component.mjs +62 -62
  426. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-filter.component.mjs +2 -2
  427. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-print.component.mjs +2 -2
  428. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-view.component.mjs +18 -18
  429. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget.config.mjs +2 -1
  430. package/esm2022/widgets/lib/editors/toggle-widget/index.mjs +8 -0
  431. package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget-column.component.mjs +47 -0
  432. package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget-designer.component.mjs +19 -0
  433. package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget-edit.component.mjs +27 -0
  434. package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget-filter.component.mjs +20 -0
  435. package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget-print.component.mjs +19 -0
  436. package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget-view.component.mjs +47 -0
  437. package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget.config.mjs +24 -0
  438. package/esm2022/widgets/lib/layout/block-widget/block-widget.component.mjs +14 -14
  439. package/esm2022/widgets/lib/layout/block-widget/block-widget.config.mjs +1 -1
  440. package/esm2022/widgets/lib/layout/block-widget/index.mjs +1 -1
  441. package/esm2022/widgets/lib/widgets.module.mjs +6 -3
  442. package/esm2022/workflow/index.mjs +1 -1
  443. package/esm2022/workflow/lib/errors.types.mjs +1 -1
  444. package/esm2022/workflow/lib/workflow-event-dispatcher.service.mjs +1 -1
  445. package/esm2022/workflow/lib/workflow-registery.service.mjs +1 -1
  446. package/esm2022/workflow/lib/workflow.module.mjs +1 -1
  447. package/esm2022/workflow/lib/workflow.service.mjs +1 -1
  448. package/esm2022/workflow/lib/workflow.types.mjs +1 -1
  449. package/fesm2022/acorex-platform-auth.mjs +3 -1
  450. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  451. package/fesm2022/acorex-platform-common-avatar-widget-edit.component-DAmNXjDm.mjs +178 -0
  452. package/fesm2022/acorex-platform-common-avatar-widget-edit.component-DAmNXjDm.mjs.map +1 -0
  453. package/fesm2022/acorex-platform-common-avatar-widget-view.component-BlA_cFkP.mjs +85 -0
  454. package/fesm2022/acorex-platform-common-avatar-widget-view.component-BlA_cFkP.mjs.map +1 -0
  455. package/fesm2022/acorex-platform-common-boolean-widget-filter.component-CEqibiML.mjs +169 -0
  456. package/fesm2022/acorex-platform-common-boolean-widget-filter.component-CEqibiML.mjs.map +1 -0
  457. package/fesm2022/acorex-platform-common-change-password.component-NvrMMq9e.mjs +177 -0
  458. package/fesm2022/acorex-platform-common-change-password.component-NvrMMq9e.mjs.map +1 -0
  459. package/fesm2022/acorex-platform-common-checkbox-widget-column.component-BiUHPDqV.mjs +76 -0
  460. package/fesm2022/acorex-platform-common-checkbox-widget-column.component-BiUHPDqV.mjs.map +1 -0
  461. package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-BVG9_XXh.mjs +46 -0
  462. package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-BVG9_XXh.mjs.map +1 -0
  463. package/fesm2022/acorex-platform-common-checkbox-widget-view.component-CfGkMcDi.mjs +70 -0
  464. package/fesm2022/acorex-platform-common-checkbox-widget-view.component-CfGkMcDi.mjs.map +1 -0
  465. package/fesm2022/acorex-platform-common-dateTime-widget-column.component-BlXTU887.mjs +66 -0
  466. package/fesm2022/acorex-platform-common-dateTime-widget-column.component-BlXTU887.mjs.map +1 -0
  467. package/fesm2022/acorex-platform-common-dateTime-widget-edit.component-B0s6FN-g.mjs +198 -0
  468. package/fesm2022/acorex-platform-common-dateTime-widget-edit.component-B0s6FN-g.mjs.map +1 -0
  469. package/fesm2022/acorex-platform-common-dateTime-widget-filter.component-B7KBCsUt.mjs +233 -0
  470. package/fesm2022/acorex-platform-common-dateTime-widget-filter.component-B7KBCsUt.mjs.map +1 -0
  471. package/fesm2022/acorex-platform-common-dateTime-widget-view.component-Dy7pAkGG.mjs +93 -0
  472. package/fesm2022/acorex-platform-common-dateTime-widget-view.component-Dy7pAkGG.mjs.map +1 -0
  473. package/fesm2022/acorex-platform-common-email-widget-column.component-D_UNn2dW.mjs +97 -0
  474. package/fesm2022/acorex-platform-common-email-widget-column.component-D_UNn2dW.mjs.map +1 -0
  475. package/fesm2022/acorex-platform-common-email-widget-edit.component-DWT24mCM.mjs +269 -0
  476. package/fesm2022/acorex-platform-common-email-widget-edit.component-DWT24mCM.mjs.map +1 -0
  477. package/fesm2022/acorex-platform-common-email-widget-view.component-B6puyycL.mjs +130 -0
  478. package/fesm2022/acorex-platform-common-email-widget-view.component-B6puyycL.mjs.map +1 -0
  479. package/fesm2022/acorex-platform-common-file-widget-column.component-C1faGR4K.mjs +49 -0
  480. package/fesm2022/acorex-platform-common-file-widget-column.component-C1faGR4K.mjs.map +1 -0
  481. package/fesm2022/acorex-platform-common-file-widget-edit.component-CTvS9ls8.mjs +221 -0
  482. package/fesm2022/acorex-platform-common-file-widget-edit.component-CTvS9ls8.mjs.map +1 -0
  483. package/fesm2022/acorex-platform-common-file-widget-filter.component-D4AMg5M0.mjs +51 -0
  484. package/fesm2022/acorex-platform-common-file-widget-filter.component-D4AMg5M0.mjs.map +1 -0
  485. package/fesm2022/acorex-platform-common-file-widget-view.component-CHI4VCvt.mjs +174 -0
  486. package/fesm2022/acorex-platform-common-file-widget-view.component-CHI4VCvt.mjs.map +1 -0
  487. package/fesm2022/acorex-platform-common-gallery-widget-edit.component-CAOctYzV.mjs +209 -0
  488. package/fesm2022/acorex-platform-common-gallery-widget-edit.component-CAOctYzV.mjs.map +1 -0
  489. package/fesm2022/acorex-platform-common-gallery-widget-filter.component-lgaYDZeD.mjs +50 -0
  490. package/fesm2022/acorex-platform-common-gallery-widget-filter.component-lgaYDZeD.mjs.map +1 -0
  491. package/fesm2022/acorex-platform-common-gallery-widget-view.component-Ci50jeO5.mjs +193 -0
  492. package/fesm2022/acorex-platform-common-gallery-widget-view.component-Ci50jeO5.mjs.map +1 -0
  493. package/fesm2022/acorex-platform-common-largetext-widget-edit.component-DFKG-kum.mjs +60 -0
  494. package/fesm2022/acorex-platform-common-largetext-widget-edit.component-DFKG-kum.mjs.map +1 -0
  495. package/fesm2022/acorex-platform-common-lookup-widget-column.component-CFzCGcqA.mjs +66 -0
  496. package/fesm2022/acorex-platform-common-lookup-widget-column.component-CFzCGcqA.mjs.map +1 -0
  497. package/fesm2022/acorex-platform-common-lookup-widget-edit.component-CYTSeEOq.mjs +96 -0
  498. package/fesm2022/acorex-platform-common-lookup-widget-edit.component-CYTSeEOq.mjs.map +1 -0
  499. package/fesm2022/acorex-platform-common-lookup-widget-filter.component-BkxT9_Hh.mjs +135 -0
  500. package/fesm2022/acorex-platform-common-lookup-widget-filter.component-BkxT9_Hh.mjs.map +1 -0
  501. package/fesm2022/acorex-platform-common-lookup-widget-view.component-5YeixMp7.mjs +77 -0
  502. package/fesm2022/acorex-platform-common-lookup-widget-view.component-5YeixMp7.mjs.map +1 -0
  503. package/fesm2022/acorex-platform-common-map-widget-edit.component-CE3QQBmX.mjs +114 -0
  504. package/fesm2022/acorex-platform-common-map-widget-edit.component-CE3QQBmX.mjs.map +1 -0
  505. package/fesm2022/acorex-platform-common-map-widget-view.component-Cv4OCTxz.mjs +86 -0
  506. package/fesm2022/acorex-platform-common-map-widget-view.component-Cv4OCTxz.mjs.map +1 -0
  507. package/fesm2022/acorex-platform-common-messenger-widget-column.component-CJdh6TKb.mjs +95 -0
  508. package/fesm2022/acorex-platform-common-messenger-widget-column.component-CJdh6TKb.mjs.map +1 -0
  509. package/fesm2022/acorex-platform-common-messenger-widget-edit.component-kiEHxJia.mjs +157 -0
  510. package/fesm2022/acorex-platform-common-messenger-widget-edit.component-kiEHxJia.mjs.map +1 -0
  511. package/fesm2022/acorex-platform-common-messenger-widget-view.component-DzbjgZA7.mjs +154 -0
  512. package/fesm2022/acorex-platform-common-messenger-widget-view.component-DzbjgZA7.mjs.map +1 -0
  513. package/fesm2022/acorex-platform-common-number-widget-edit.component-BRuIP96Y.mjs +68 -0
  514. package/fesm2022/acorex-platform-common-number-widget-edit.component-BRuIP96Y.mjs.map +1 -0
  515. package/fesm2022/acorex-platform-common-number-widget-filter.component-jQ4DaFQH.mjs +157 -0
  516. package/fesm2022/acorex-platform-common-number-widget-filter.component-jQ4DaFQH.mjs.map +1 -0
  517. package/fesm2022/acorex-platform-common-number-widget-view.component-BzUWjT8m.mjs +54 -0
  518. package/fesm2022/acorex-platform-common-number-widget-view.component-BzUWjT8m.mjs.map +1 -0
  519. package/fesm2022/acorex-platform-common-password-widget-column.component-BRzyuK5c.mjs +89 -0
  520. package/fesm2022/acorex-platform-common-password-widget-column.component-BRzyuK5c.mjs.map +1 -0
  521. package/fesm2022/acorex-platform-common-password-widget-edit.component-q6R2dw5k.mjs +64 -0
  522. package/fesm2022/acorex-platform-common-password-widget-edit.component-q6R2dw5k.mjs.map +1 -0
  523. package/fesm2022/acorex-platform-common-password-widget-view.component-CKaQItON.mjs +128 -0
  524. package/fesm2022/acorex-platform-common-password-widget-view.component-CKaQItON.mjs.map +1 -0
  525. package/fesm2022/acorex-platform-common-phone-widget-column.component-BD7BScjW.mjs +115 -0
  526. package/fesm2022/acorex-platform-common-phone-widget-column.component-BD7BScjW.mjs.map +1 -0
  527. package/fesm2022/acorex-platform-common-phone-widget-edit.component-D8tGKfNj.mjs +265 -0
  528. package/fesm2022/acorex-platform-common-phone-widget-edit.component-D8tGKfNj.mjs.map +1 -0
  529. package/fesm2022/acorex-platform-common-phone-widget-view.component-CFiMsGOB.mjs +145 -0
  530. package/fesm2022/acorex-platform-common-phone-widget-view.component-CFiMsGOB.mjs.map +1 -0
  531. package/fesm2022/acorex-platform-common-rich-text-widget-column.component-BPzwY_8L.mjs +85 -0
  532. package/fesm2022/acorex-platform-common-rich-text-widget-column.component-BPzwY_8L.mjs.map +1 -0
  533. package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-CA2xRfVg.mjs +89 -0
  534. package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-CA2xRfVg.mjs.map +1 -0
  535. package/fesm2022/acorex-platform-common-rich-text-widget-view.component-DYfTZ64H.mjs +58 -0
  536. package/fesm2022/acorex-platform-common-rich-text-widget-view.component-DYfTZ64H.mjs.map +1 -0
  537. package/fesm2022/acorex-platform-common-selection-list-widget-column.component-_MglaOmo.mjs +69 -0
  538. package/fesm2022/acorex-platform-common-selection-list-widget-column.component-_MglaOmo.mjs.map +1 -0
  539. package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-QKw_tyOd.mjs +76 -0
  540. package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-QKw_tyOd.mjs.map +1 -0
  541. package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-DRToTnHQ.mjs +65 -0
  542. package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-DRToTnHQ.mjs.map +1 -0
  543. package/fesm2022/acorex-platform-common-selection-list-widget-view.component-CjDiuUdj.mjs +69 -0
  544. package/fesm2022/acorex-platform-common-selection-list-widget-view.component-CjDiuUdj.mjs.map +1 -0
  545. package/fesm2022/acorex-platform-common-signature-pad-widget-edit.component-DF29uWl2.mjs +148 -0
  546. package/fesm2022/acorex-platform-common-signature-pad-widget-edit.component-DF29uWl2.mjs.map +1 -0
  547. package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-BWzoR4HM.mjs +63 -0
  548. package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-BWzoR4HM.mjs.map +1 -0
  549. package/fesm2022/acorex-platform-common-string-widget-filter.component-Di_GFHme.mjs +147 -0
  550. package/fesm2022/acorex-platform-common-string-widget-filter.component-Di_GFHme.mjs.map +1 -0
  551. package/fesm2022/acorex-platform-common-text-widget-column.component-BSYd1CbC.mjs +70 -0
  552. package/fesm2022/acorex-platform-common-text-widget-column.component-BSYd1CbC.mjs.map +1 -0
  553. package/fesm2022/acorex-platform-common-text-widget-edit.component-K9z9N1qw.mjs +183 -0
  554. package/fesm2022/acorex-platform-common-text-widget-edit.component-K9z9N1qw.mjs.map +1 -0
  555. package/fesm2022/acorex-platform-common-text-widget-view.component-WbZtm_bf.mjs +90 -0
  556. package/fesm2022/acorex-platform-common-text-widget-view.component-WbZtm_bf.mjs.map +1 -0
  557. package/fesm2022/acorex-platform-common-toggle-widget-column.component-ZCBSYMuz.mjs +80 -0
  558. package/fesm2022/acorex-platform-common-toggle-widget-column.component-ZCBSYMuz.mjs.map +1 -0
  559. package/fesm2022/acorex-platform-common-toggle-widget-edit.component-rkDfLA-J.mjs +46 -0
  560. package/fesm2022/acorex-platform-common-toggle-widget-edit.component-rkDfLA-J.mjs.map +1 -0
  561. package/fesm2022/acorex-platform-common-toggle-widget-view.component-DLDIrci1.mjs +72 -0
  562. package/fesm2022/acorex-platform-common-toggle-widget-view.component-DLDIrci1.mjs.map +1 -0
  563. package/fesm2022/acorex-platform-common.mjs +2056 -246
  564. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  565. package/fesm2022/acorex-platform-layout-builder.mjs +687 -0
  566. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -0
  567. package/fesm2022/acorex-platform-layout-entity.mjs +1848 -0
  568. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -0
  569. package/fesm2022/acorex-platform-layouts-entity-create-view.component-BmSMt95H.mjs +107 -0
  570. package/fesm2022/acorex-platform-layouts-entity-create-view.component-BmSMt95H.mjs.map +1 -0
  571. package/fesm2022/acorex-platform-layouts-entity-modify-view.component-D1h1xORH.mjs +88 -0
  572. package/fesm2022/acorex-platform-layouts-entity-modify-view.component-D1h1xORH.mjs.map +1 -0
  573. package/fesm2022/acorex-platform-layouts.mjs +1058 -2553
  574. package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
  575. package/fesm2022/acorex-platform-mocks.mjs.map +1 -1
  576. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  577. package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-Cx6WLV3_.mjs +48 -0
  578. package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-Cx6WLV3_.mjs.map +1 -0
  579. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-C_68pr-9.mjs +57 -0
  580. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-C_68pr-9.mjs.map +1 -0
  581. package/fesm2022/acorex-platform-widgets.mjs +1755 -1293
  582. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  583. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  584. package/fesm2022/acorex-platform.mjs.map +1 -1
  585. package/layout/builder/README.md +4 -0
  586. package/layout/builder/index.d.ts +1 -0
  587. package/layout/builder/lib/builder/builder.module.d.ts +23 -0
  588. package/layout/builder/lib/builder/builder.service.d.ts +27 -0
  589. package/layout/builder/lib/builder/index.d.ts +8 -0
  590. package/layout/builder/lib/builder/layout.types.d.ts +30 -0
  591. package/layout/builder/lib/builder/widget-column-renderer.d.ts +31 -0
  592. package/layout/builder/lib/builder/widget-container.component.d.ts +15 -0
  593. package/layout/builder/lib/builder/widget-renderer.component.d.ts +43 -0
  594. package/layout/builder/lib/builder/widget.types.d.ts +74 -0
  595. package/layout/entity/README.md +4 -0
  596. package/layout/entity/index.d.ts +1 -0
  597. package/layout/entity/lib/entity-detail-list.viewmodel.d.ts +32 -0
  598. package/layout/entity/lib/entity-master-create.viewmodel.d.ts +49 -0
  599. package/layout/entity/lib/entity-master-list.viewmodel.d.ts +82 -0
  600. package/layout/entity/lib/entity-master-single.viewmodel.d.ts +62 -0
  601. package/layout/entity/lib/entity-master-update.viewmodel.d.ts +39 -0
  602. package/layout/entity/lib/entity-registery.service.d.ts +34 -0
  603. package/layout/entity/lib/entity.config.d.ts +21 -0
  604. package/layout/entity/lib/entity.module.d.ts +9 -0
  605. package/layout/entity/lib/entity.viewmodel.d.ts +22 -0
  606. package/layout/entity/lib/index.d.ts +8 -0
  607. package/layout/entity/lib/widgets/lookup-widget/index.d.ts +7 -0
  608. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-column.component.d.ts +6 -0
  609. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-designer.component.d.ts +6 -0
  610. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +27 -0
  611. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-filter.component.d.ts +6 -0
  612. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-print.component.d.ts +6 -0
  613. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.d.ts +13 -0
  614. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.d.ts +15 -0
  615. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.d.ts +6 -0
  616. package/layout/entity/lib/widgets/lookup-widget/lookup-widget.config.d.ts +2 -0
  617. package/layout/entity/lib/workflows/create-entity.workflow.d.ts +29 -0
  618. package/layout/entity/lib/workflows/delete-entity.workflow.d.ts +26 -0
  619. package/layout/entity/lib/workflows/modify-section.workflow.d.ts +34 -0
  620. package/layout/entity/lib/workflows/show-details.workflow.d.ts +10 -0
  621. package/layouts/README.md +3 -3
  622. package/layouts/index.d.ts +0 -2
  623. package/layouts/lib/admin/admin.module.d.ts +3 -6
  624. package/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.component.d.ts +1 -1
  625. package/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.config.d.ts +3 -3
  626. package/layouts/lib/admin/entity-layout/entity-details-view/detail-view.config.d.ts +3 -3
  627. package/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.d.ts +1 -1
  628. package/layouts/lib/admin/entity-layout/entity-list-view/components/entity-custom-view/entity-custom-view.component.d.ts +2 -3
  629. package/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-columns/list-view-option-columns.component.d.ts +1 -1
  630. package/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-conditions.component.d.ts +4 -6
  631. package/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-filter-operator.component.d.ts +1 -1
  632. package/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-sorting/list-view-option-sorting.component.d.ts +3 -4
  633. package/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.d.ts +6 -6
  634. package/layouts/lib/admin/entity-layout/entity-list-view/list-view.config.d.ts +5 -6
  635. package/layouts/lib/admin/entity-layout/entity-list-view/list-view.module.d.ts +3 -4
  636. package/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.component.d.ts +1 -1
  637. package/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.config.d.ts +3 -3
  638. package/layouts/lib/admin/entity-layout/entity-quick-view/entity-quick-view.component.d.ts +2 -2
  639. package/layouts/lib/admin/entity-layout/workflows/index.d.ts +3 -0
  640. package/layouts/lib/admin/entity-layout/workflows/modify-section.workflow.d.ts +12 -0
  641. package/layouts/lib/admin/entity-layout/workflows/show-details.workflow.d.ts +9 -1
  642. package/layouts/lib/admin/entity-layout/workflows/show-list.workflow.d.ts +9 -1
  643. package/layouts/lib/admin/entity-layout/workflows/show-quick-view.workflow.d.ts +11 -1
  644. package/layouts/lib/admin/index.d.ts +0 -2
  645. package/layouts/lib/layout.module.d.ts +4 -4
  646. package/mocks/README.md +3 -3
  647. package/package.json +13 -19
  648. package/widgets/README.md +3 -3
  649. package/widgets/lib/editors/checkbox/checkbox-widget-column.component.d.ts +9 -0
  650. package/widgets/lib/editors/checkbox/checkbox-widget-edit.component.d.ts +1 -1
  651. package/widgets/lib/editors/checkbox/checkbox-widget-view.component.d.ts +9 -0
  652. package/widgets/lib/editors/checkbox/checkbox-widget.config.d.ts +1 -1
  653. package/widgets/lib/editors/date-time-box-widget/date-time-box-widget-column.component.d.ts +11 -3
  654. package/widgets/lib/editors/date-time-box-widget/date-time-box-widget-designer.component.d.ts +1 -1
  655. package/widgets/lib/editors/date-time-box-widget/date-time-box-widget-edit.component.d.ts +1 -1
  656. package/widgets/lib/editors/date-time-box-widget/date-time-box-widget-filter.component.d.ts +1 -1
  657. package/widgets/lib/editors/date-time-box-widget/date-time-box-widget-print.component.d.ts +1 -1
  658. package/widgets/lib/editors/date-time-box-widget/date-time-box-widget-view.component.d.ts +1 -1
  659. package/widgets/lib/editors/date-time-box-widget/date-time-box-widget.config.d.ts +1 -1
  660. package/widgets/lib/editors/email-box-widget/email-box-widget-column.component.d.ts +13 -3
  661. package/widgets/lib/editors/email-box-widget/email-box-widget-designer.component.d.ts +1 -1
  662. package/widgets/lib/editors/email-box-widget/email-box-widget-edit.component.d.ts +7 -1
  663. package/widgets/lib/editors/email-box-widget/email-box-widget-filter.component.d.ts +1 -1
  664. package/widgets/lib/editors/email-box-widget/email-box-widget-print.component.d.ts +1 -1
  665. package/widgets/lib/editors/email-box-widget/email-box-widget-view.component.d.ts +1 -1
  666. package/widgets/lib/editors/email-box-widget/email-box-widget.config.d.ts +1 -1
  667. package/widgets/lib/editors/file-box-widget/file-box-widget-column.component.d.ts +1 -1
  668. package/widgets/lib/editors/file-box-widget/file-box-widget-designer.component.d.ts +1 -1
  669. package/widgets/lib/editors/file-box-widget/file-box-widget-edit.component.d.ts +1 -1
  670. package/widgets/lib/editors/file-box-widget/file-box-widget-filter.component.d.ts +1 -1
  671. package/widgets/lib/editors/file-box-widget/file-box-widget-print.component.d.ts +1 -1
  672. package/widgets/lib/editors/file-box-widget/file-box-widget-view.component.d.ts +1 -1
  673. package/widgets/lib/editors/file-box-widget/file-box-widget.config.d.ts +1 -1
  674. package/widgets/lib/editors/gallery-widget/gallery-widget-column.component.d.ts +1 -1
  675. package/widgets/lib/editors/gallery-widget/gallery-widget-designer.component.d.ts +1 -1
  676. package/widgets/lib/editors/gallery-widget/gallery-widget-edit.component.d.ts +1 -1
  677. package/widgets/lib/editors/gallery-widget/gallery-widget-filter.component.d.ts +1 -1
  678. package/widgets/lib/editors/gallery-widget/gallery-widget-print.component.d.ts +1 -1
  679. package/widgets/lib/editors/gallery-widget/gallery-widget-view.component.d.ts +1 -1
  680. package/widgets/lib/editors/gallery-widget/gallery-widget.config.d.ts +1 -1
  681. package/widgets/lib/editors/map-box-widget/map-box-widget-column.component.d.ts +1 -1
  682. package/widgets/lib/editors/map-box-widget/map-box-widget-designer.component.d.ts +1 -1
  683. package/widgets/lib/editors/map-box-widget/map-box-widget-edit.component.d.ts +1 -1
  684. package/widgets/lib/editors/map-box-widget/map-box-widget-filter.component.d.ts +1 -1
  685. package/widgets/lib/editors/map-box-widget/map-box-widget-print.component.d.ts +1 -1
  686. package/widgets/lib/editors/map-box-widget/map-box-widget-view.component.d.ts +1 -1
  687. package/widgets/lib/editors/map-box-widget/map-box-widget.config.d.ts +1 -1
  688. package/widgets/lib/editors/number-box-widget/number-box-widget-column.component.d.ts +5 -3
  689. package/widgets/lib/editors/number-box-widget/number-box-widget-designer.component.d.ts +1 -1
  690. package/widgets/lib/editors/number-box-widget/number-box-widget-edit.component.d.ts +2 -2
  691. package/widgets/lib/editors/number-box-widget/number-box-widget-filter.component.d.ts +1 -1
  692. package/widgets/lib/editors/number-box-widget/number-box-widget-print.component.d.ts +1 -1
  693. package/widgets/lib/editors/number-box-widget/number-box-widget-view.component.d.ts +8 -2
  694. package/widgets/lib/editors/number-box-widget/number-box-widget.config.d.ts +1 -1
  695. package/widgets/lib/editors/password-box-widget/password-box-widget-column.component.d.ts +1 -1
  696. package/widgets/lib/editors/password-box-widget/password-box-widget-designer.component.d.ts +1 -1
  697. package/widgets/lib/editors/password-box-widget/password-box-widget-edit.component.d.ts +1 -1
  698. package/widgets/lib/editors/password-box-widget/password-box-widget-filter.component.d.ts +1 -1
  699. package/widgets/lib/editors/password-box-widget/password-box-widget-print.component.d.ts +1 -1
  700. package/widgets/lib/editors/password-box-widget/password-box-widget-view.component.d.ts +1 -1
  701. package/widgets/lib/editors/password-box-widget/password-box-widget.config.d.ts +1 -1
  702. package/widgets/lib/editors/phone-box-widget/phone-box-widget-column.component.d.ts +13 -3
  703. package/widgets/lib/editors/phone-box-widget/phone-box-widget-designer.component.d.ts +1 -1
  704. package/widgets/lib/editors/phone-box-widget/phone-box-widget-edit.component.d.ts +6 -1
  705. package/widgets/lib/editors/phone-box-widget/phone-box-widget-filter.component.d.ts +1 -1
  706. package/widgets/lib/editors/phone-box-widget/phone-box-widget-print.component.d.ts +1 -1
  707. package/widgets/lib/editors/phone-box-widget/phone-box-widget-view.component.d.ts +1 -1
  708. package/widgets/lib/editors/phone-box-widget/phone-box-widget.config.d.ts +1 -1
  709. package/widgets/lib/editors/rich-text-widget/rich-text-widget-column.component.d.ts +1 -1
  710. package/widgets/lib/editors/rich-text-widget/rich-text-widget-designer.component.d.ts +1 -1
  711. package/widgets/lib/editors/rich-text-widget/rich-text-widget-edit.component.d.ts +1 -1
  712. package/widgets/lib/editors/rich-text-widget/rich-text-widget-filter.component.d.ts +1 -1
  713. package/widgets/lib/editors/rich-text-widget/rich-text-widget-print.component.d.ts +1 -1
  714. package/widgets/lib/editors/rich-text-widget/rich-text-widget-view.component.d.ts +1 -1
  715. package/widgets/lib/editors/rich-text-widget/rich-text-widget.config.d.ts +1 -1
  716. package/widgets/lib/editors/select-box-widget/select-box-widget-column.component.d.ts +3 -3
  717. package/widgets/lib/editors/select-box-widget/select-box-widget-designer.component.d.ts +1 -1
  718. package/widgets/lib/editors/select-box-widget/select-box-widget-edit.component.d.ts +1 -1
  719. package/widgets/lib/editors/select-box-widget/select-box-widget-filter.component.d.ts +1 -1
  720. package/widgets/lib/editors/select-box-widget/select-box-widget-print.component.d.ts +1 -1
  721. package/widgets/lib/editors/select-box-widget/select-box-widget-view.component.d.ts +1 -1
  722. package/widgets/lib/editors/select-box-widget/select-box-widget.config.d.ts +1 -1
  723. package/widgets/lib/editors/selection-list-widget/selection-list-widget-column.component.d.ts +11 -3
  724. package/widgets/lib/editors/selection-list-widget/selection-list-widget-designer.component.d.ts +1 -1
  725. package/widgets/lib/editors/selection-list-widget/selection-list-widget-edit.component.d.ts +1 -1
  726. package/widgets/lib/editors/selection-list-widget/selection-list-widget-filter.component.d.ts +1 -1
  727. package/widgets/lib/editors/selection-list-widget/selection-list-widget-print.component.d.ts +1 -1
  728. package/widgets/lib/editors/selection-list-widget/selection-list-widget-view.component.d.ts +7 -2
  729. package/widgets/lib/editors/selection-list-widget/selection-list-widget.config.d.ts +1 -1
  730. package/widgets/lib/editors/signature-pad-widget/signature-pad-widget-column.component.d.ts +1 -1
  731. package/widgets/lib/editors/signature-pad-widget/signature-pad-widget-designer.component.d.ts +1 -1
  732. package/widgets/lib/editors/signature-pad-widget/signature-pad-widget-edit.component.d.ts +1 -1
  733. package/widgets/lib/editors/signature-pad-widget/signature-pad-widget-filter.component.d.ts +1 -1
  734. package/widgets/lib/editors/signature-pad-widget/signature-pad-widget-print.component.d.ts +1 -1
  735. package/widgets/lib/editors/signature-pad-widget/signature-pad-widget-view.component.d.ts +1 -1
  736. package/widgets/lib/editors/signature-pad-widget/signature-pad-widget.config.d.ts +1 -1
  737. package/widgets/lib/editors/text-box-widget/text-box-widget-column.component.d.ts +3 -3
  738. package/widgets/lib/editors/text-box-widget/text-box-widget-designer.component.d.ts +1 -1
  739. package/widgets/lib/editors/text-box-widget/text-box-widget-edit.component.d.ts +2 -2
  740. package/widgets/lib/editors/text-box-widget/text-box-widget-filter.component.d.ts +1 -1
  741. package/widgets/lib/editors/text-box-widget/text-box-widget-print.component.d.ts +1 -1
  742. package/widgets/lib/editors/text-box-widget/text-box-widget-view.component.d.ts +1 -1
  743. package/widgets/lib/editors/text-box-widget/text-box-widget.config.d.ts +1 -1
  744. package/widgets/lib/editors/toggle-widget/index.d.ts +7 -0
  745. package/widgets/lib/editors/toggle-widget/toggle-widget-column.component.d.ts +9 -0
  746. package/widgets/lib/editors/toggle-widget/toggle-widget-designer.component.d.ts +6 -0
  747. package/widgets/lib/editors/toggle-widget/toggle-widget-edit.component.d.ts +7 -0
  748. package/widgets/lib/editors/toggle-widget/toggle-widget-filter.component.d.ts +6 -0
  749. package/widgets/lib/editors/toggle-widget/toggle-widget-print.component.d.ts +6 -0
  750. package/widgets/lib/editors/toggle-widget/toggle-widget-view.component.d.ts +9 -0
  751. package/widgets/lib/editors/toggle-widget/toggle-widget.config.d.ts +2 -0
  752. package/widgets/lib/layout/block-widget/block-widget.component.d.ts +2 -2
  753. package/widgets/lib/layout/block-widget/block-widget.config.d.ts +1 -1
  754. package/widgets/lib/widgets.module.d.ts +1 -1
  755. package/workflow/README.md +3 -3
  756. package/workflow/lib/workflow.types.d.ts +2 -2
  757. package/common/lib/shared/state-persistence/index.d.ts +0 -3
  758. package/common/lib/shared/state-persistence/state-persistence.actions.d.ts +0 -1
  759. package/common/lib/shared/state-persistence/state-persistence.module.d.ts +0 -8
  760. package/common/lib/shared/state-persistence/state-persistence.reducers.d.ts +0 -3
  761. package/common/lib/utils/sticky.directive.d.ts +0 -24
  762. package/core/README.md +0 -4
  763. package/core/index.d.ts +0 -4
  764. package/core/lib/app/application.types.d.ts +0 -144
  765. package/core/lib/core.module.d.ts +0 -6
  766. package/esm2022/common/lib/menu/index.mjs +0 -3
  767. package/esm2022/common/lib/menu/menu.loader.mjs +0 -39
  768. package/esm2022/common/lib/menu/menu.types.mjs +0 -2
  769. package/esm2022/common/lib/shared/logo.types.mjs +0 -21
  770. package/esm2022/common/lib/shared/state-persistence/index.mjs +0 -4
  771. package/esm2022/common/lib/shared/state-persistence/state-persistence.actions.mjs +0 -3
  772. package/esm2022/common/lib/shared/state-persistence/state-persistence.module.mjs +0 -36
  773. package/esm2022/common/lib/shared/state-persistence/state-persistence.reducers.mjs +0 -30
  774. package/esm2022/common/lib/utils/sticky.directive.mjs +0 -74
  775. package/esm2022/core/acorex-platform-core.mjs +0 -5
  776. package/esm2022/core/index.mjs +0 -5
  777. package/esm2022/core/lib/app/application.types.mjs +0 -19
  778. package/esm2022/core/lib/app/operators.mjs +0 -50
  779. package/esm2022/core/lib/configs/config.types.mjs +0 -3
  780. package/esm2022/core/lib/core.module.mjs +0 -16
  781. package/esm2022/layout/acorex-platform-layout.mjs +0 -5
  782. package/esm2022/layout/index.mjs +0 -3
  783. package/esm2022/layout/lib/builder/builder.module.mjs +0 -66
  784. package/esm2022/layout/lib/builder/context.service.mjs +0 -64
  785. package/esm2022/layout/lib/builder/index.mjs +0 -8
  786. package/esm2022/layout/lib/builder/widget-column-renderer.mjs +0 -75
  787. package/esm2022/layout/lib/builder/widget-container.mjs +0 -45
  788. package/esm2022/layout/lib/builder/widget-registery.service.mjs +0 -33
  789. package/esm2022/layout/lib/builder/widget-renderer.mjs +0 -279
  790. package/esm2022/layout/lib/builder/widget.types.mjs +0 -49
  791. package/esm2022/layout/lib/component-slot/component-slot-loader.service.mjs +0 -56
  792. package/esm2022/layout/lib/component-slot/component-slot-registery.service.mjs +0 -28
  793. package/esm2022/layout/lib/component-slot/component-slot.directive.mjs +0 -24
  794. package/esm2022/layout/lib/component-slot/component-slot.module.mjs +0 -72
  795. package/esm2022/layout/lib/component-slot/component-slot.types.mjs +0 -2
  796. package/esm2022/layout/lib/component-slot/index.mjs +0 -6
  797. package/esm2022/layouts/lib/admin/admin-child-layout/admin-child-features-list.component.mjs +0 -58
  798. package/esm2022/layouts/lib/admin/admin-child-layout/admin-child-layout.component.mjs +0 -50
  799. package/esm2022/layouts/lib/admin/admin-child-layout/admin-child-layout.module.mjs +0 -57
  800. package/esm2022/layouts/lib/admin/admin-child-layout/index.mjs +0 -4
  801. package/esm2022/layouts/lib/admin/admin-root-layout/admin-root-layout.component.mjs +0 -74
  802. package/esm2022/layouts/lib/admin/admin-root-layout/admin-root-layout.module.mjs +0 -92
  803. package/esm2022/layouts/lib/admin/admin-root-layout/components/admin-footer/admin-footer.component.mjs +0 -14
  804. package/esm2022/layouts/lib/admin/admin-root-layout/components/admin-header/admin-header.component.mjs +0 -29
  805. package/esm2022/layouts/lib/admin/admin-root-layout/index.mjs +0 -5
  806. package/esm2022/layouts/lib/admin/store/admin-layout.actions.mjs +0 -12
  807. package/esm2022/layouts/lib/admin/store/admin-layout.effects.mjs +0 -29
  808. package/esm2022/layouts/lib/admin/store/admin-layout.reducers.mjs +0 -60
  809. package/esm2022/layouts/lib/admin/store/admin-layout.selectors.mjs +0 -8
  810. package/esm2022/layouts/lib/admin/store/admin-layout.state.mjs +0 -16
  811. package/esm2022/layouts/lib/admin/store/index.mjs +0 -6
  812. package/esm2022/layouts/lib/layout.routes.mjs +0 -15
  813. package/esm2022/layouts/lib/shared/components/content-view/content-view.page.mjs +0 -64
  814. package/esm2022/layouts/lib/shared/components/content-view/content-view.type.mjs +0 -2
  815. package/esm2022/layouts/lib/shared/components/error-401/error-401.component.mjs +0 -28
  816. package/esm2022/layouts/lib/shared/components/error-404/error-404.component.mjs +0 -22
  817. package/esm2022/layouts/lib/shared/components/error-offline/error-offline.component.mjs +0 -16
  818. package/esm2022/layouts/lib/shared/components/index.mjs +0 -10
  819. package/esm2022/layouts/lib/shared/components/logo/logo.component.mjs +0 -38
  820. package/esm2022/layouts/lib/shared/components/slots/footer-text-slot.component.mjs +0 -20
  821. package/esm2022/layouts/lib/shared/components/slots/navbar-slot.component.mjs +0 -36
  822. package/esm2022/layouts/lib/shared/components/slots/theme-slot.component.mjs +0 -48
  823. package/esm2022/layouts/lib/shared/entity/entity-registery.service.mjs +0 -70
  824. package/esm2022/layouts/lib/shared/entity/entity.class.mjs +0 -32
  825. package/esm2022/layouts/lib/shared/entity/entity.loader.mjs +0 -13
  826. package/esm2022/layouts/lib/shared/entity/index.mjs +0 -4
  827. package/esm2022/layouts/lib/shared/index.mjs +0 -5
  828. package/esm2022/layouts/lib/shared/services/index.mjs +0 -2
  829. package/esm2022/layouts/lib/shared/services/layout.service.mjs +0 -79
  830. package/esm2022/layouts/lib/shared/workflows/common.workflow.mjs +0 -147
  831. package/esm2022/layouts/lib/shared/workflows/error-handler.mjs +0 -24
  832. package/esm2022/layouts/lib/shared/workflows/index.mjs +0 -3
  833. package/esm2022/layouts/lib/themes/default/entity-layouts/entity-details-view/entity-details-view.component.mjs +0 -73
  834. package/esm2022/layouts/lib/themes/default/entity-layouts/entity-details.viewmodel.mjs +0 -99
  835. package/esm2022/layouts/lib/themes/default/index.mjs +0 -3
  836. package/esm2022/layouts/lib/widgets/avatar/avatar-widget-edit.component.mjs +0 -160
  837. package/esm2022/layouts/lib/widgets/avatar/avatar-widget-view.component.mjs +0 -61
  838. package/esm2022/layouts/lib/widgets/checkbox/checkbox-widget-column.component.mjs +0 -53
  839. package/esm2022/layouts/lib/widgets/checkbox/checkbox-widget-edit.component.mjs +0 -22
  840. package/esm2022/layouts/lib/widgets/checkbox/checkbox-widget-view.component.mjs +0 -47
  841. package/esm2022/layouts/lib/widgets/common-widget-filter/boolean-widget-filter.component.mjs +0 -147
  842. package/esm2022/layouts/lib/widgets/common-widget-filter/number-widget-filter.component.mjs +0 -135
  843. package/esm2022/layouts/lib/widgets/common-widget-filter/string-widget-filter.component.mjs +0 -125
  844. package/esm2022/layouts/lib/widgets/common-widgets.module.mjs +0 -504
  845. package/esm2022/layouts/lib/widgets/dateTime/dateTime-widget-column.component.mjs +0 -44
  846. package/esm2022/layouts/lib/widgets/dateTime/dateTime-widget-edit.component.mjs +0 -178
  847. package/esm2022/layouts/lib/widgets/dateTime/dateTime-widget-filter.component.mjs +0 -214
  848. package/esm2022/layouts/lib/widgets/dateTime/dateTime-widget-view.component.mjs +0 -71
  849. package/esm2022/layouts/lib/widgets/email/email-widget-column.component.mjs +0 -73
  850. package/esm2022/layouts/lib/widgets/email/email-widget-edit.component.mjs +0 -249
  851. package/esm2022/layouts/lib/widgets/email/email-widget-view.component.mjs +0 -108
  852. package/esm2022/layouts/lib/widgets/file/file-widget-column.component.mjs +0 -27
  853. package/esm2022/layouts/lib/widgets/file/file-widget-edit.component.mjs +0 -200
  854. package/esm2022/layouts/lib/widgets/file/file-widget-filter.component.mjs +0 -27
  855. package/esm2022/layouts/lib/widgets/file/file-widget-view.component.mjs +0 -153
  856. package/esm2022/layouts/lib/widgets/gallery/gallery-widget-edit.component.mjs +0 -189
  857. package/esm2022/layouts/lib/widgets/gallery/gallery-widget-filter.component.mjs +0 -27
  858. package/esm2022/layouts/lib/widgets/gallery/gallery-widget-types.mjs +0 -2
  859. package/esm2022/layouts/lib/widgets/gallery/gallery-widget-view.component.mjs +0 -173
  860. package/esm2022/layouts/lib/widgets/index.mjs +0 -2
  861. package/esm2022/layouts/lib/widgets/lookup/lookup-widget-column.component.mjs +0 -43
  862. package/esm2022/layouts/lib/widgets/lookup/lookup-widget-edit.component.mjs +0 -74
  863. package/esm2022/layouts/lib/widgets/lookup/lookup-widget-filter.component.mjs +0 -115
  864. package/esm2022/layouts/lib/widgets/lookup/lookup-widget-view.component.mjs +0 -54
  865. package/esm2022/layouts/lib/widgets/map/map-widget-edit.component.mjs +0 -91
  866. package/esm2022/layouts/lib/widgets/map/map-widget-view.component.mjs +0 -63
  867. package/esm2022/layouts/lib/widgets/messenger/messenger-widget-column.component.mjs +0 -71
  868. package/esm2022/layouts/lib/widgets/messenger/messenger-widget-edit.component.mjs +0 -136
  869. package/esm2022/layouts/lib/widgets/messenger/messenger-widget-view.component.mjs +0 -132
  870. package/esm2022/layouts/lib/widgets/number/number-widget-edit.component.mjs +0 -46
  871. package/esm2022/layouts/lib/widgets/number/number-widget-view.component.mjs +0 -30
  872. package/esm2022/layouts/lib/widgets/password/change-password.component.mjs +0 -175
  873. package/esm2022/layouts/lib/widgets/password/password-widget-column.component.mjs +0 -67
  874. package/esm2022/layouts/lib/widgets/password/password-widget-edit.component.mjs +0 -41
  875. package/esm2022/layouts/lib/widgets/password/password-widget-view.component.mjs +0 -109
  876. package/esm2022/layouts/lib/widgets/phone/phone-widget-column.component.mjs +0 -91
  877. package/esm2022/layouts/lib/widgets/phone/phone-widget-edit.component.mjs +0 -231
  878. package/esm2022/layouts/lib/widgets/phone/phone-widget-view.component.mjs +0 -123
  879. package/esm2022/layouts/lib/widgets/rich-text/rich-text-widget-column.component.mjs +0 -61
  880. package/esm2022/layouts/lib/widgets/rich-text/rich-text-widget-edit.component.mjs +0 -67
  881. package/esm2022/layouts/lib/widgets/rich-text/rich-text-widget-view.component.mjs +0 -34
  882. package/esm2022/layouts/lib/widgets/selection-list/selection-list-widget-column.component.mjs +0 -43
  883. package/esm2022/layouts/lib/widgets/selection-list/selection-list-widget-edit.component.mjs +0 -53
  884. package/esm2022/layouts/lib/widgets/selection-list/selection-list-widget-filter.component.mjs +0 -41
  885. package/esm2022/layouts/lib/widgets/selection-list/selection-list-widget-view.component.mjs +0 -45
  886. package/esm2022/layouts/lib/widgets/signature-pad/signature-pad-widget-edit.component.mjs +0 -128
  887. package/esm2022/layouts/lib/widgets/signature-pad/signature-pad-widget-view.component.mjs +0 -41
  888. package/esm2022/layouts/lib/widgets/text/largetext-widget-edit.component.mjs +0 -37
  889. package/esm2022/layouts/lib/widgets/text/text-widget-column.component.mjs +0 -46
  890. package/esm2022/layouts/lib/widgets/text/text-widget-edit.component.mjs +0 -162
  891. package/esm2022/layouts/lib/widgets/text/text-widget-view.component.mjs +0 -66
  892. package/esm2022/layouts/lib/widgets/toggle/toggle-widget-column.component.mjs +0 -57
  893. package/esm2022/layouts/lib/widgets/toggle/toggle-widget-edit.component.mjs +0 -25
  894. package/esm2022/layouts/lib/widgets/toggle/toggle-widget-view.component.mjs +0 -49
  895. package/esm2022/schema/acorex-platform-schema.mjs +0 -5
  896. package/esm2022/schema/index.mjs +0 -14
  897. package/esm2022/schema/lib/component-loader.mjs +0 -2
  898. package/esm2022/schema/lib/formats.mjs +0 -2
  899. package/esm2022/schema/lib/operators.mjs +0 -50
  900. package/esm2022/schema/lib/schema-registery.service.mjs +0 -33
  901. package/esm2022/schema/lib/schema.module.mjs +0 -23
  902. package/esm2022/schema/lib/schema.types.mjs +0 -2
  903. package/esm2022/schema/lib/widget/widget-base.mjs +0 -113
  904. package/esm2022/schema/lib/widget/widget-column-renderer.mjs +0 -118
  905. package/esm2022/schema/lib/widget/widget-filter-renderer.mjs +0 -133
  906. package/esm2022/schema/lib/widget/widget-renderer.mjs +0 -144
  907. package/esm2022/schema/lib/widget/widget-token.mjs +0 -3
  908. package/fesm2022/acorex-platform-core.mjs +0 -94
  909. package/fesm2022/acorex-platform-core.mjs.map +0 -1
  910. package/fesm2022/acorex-platform-layout.mjs +0 -756
  911. package/fesm2022/acorex-platform-layout.mjs.map +0 -1
  912. package/fesm2022/acorex-platform-layouts-avatar-widget-edit.component-a_eCmVu5.mjs +0 -162
  913. package/fesm2022/acorex-platform-layouts-avatar-widget-edit.component-a_eCmVu5.mjs.map +0 -1
  914. package/fesm2022/acorex-platform-layouts-avatar-widget-view.component-wwI7L0Kc.mjs +0 -64
  915. package/fesm2022/acorex-platform-layouts-avatar-widget-view.component-wwI7L0Kc.mjs.map +0 -1
  916. package/fesm2022/acorex-platform-layouts-boolean-widget-filter.component-CHW4rgxA.mjs +0 -150
  917. package/fesm2022/acorex-platform-layouts-boolean-widget-filter.component-CHW4rgxA.mjs.map +0 -1
  918. package/fesm2022/acorex-platform-layouts-change-password.component-vUZy2W_B.mjs +0 -178
  919. package/fesm2022/acorex-platform-layouts-change-password.component-vUZy2W_B.mjs.map +0 -1
  920. package/fesm2022/acorex-platform-layouts-checkbox-widget-column.component-BNEtAS7g.mjs +0 -56
  921. package/fesm2022/acorex-platform-layouts-checkbox-widget-column.component-BNEtAS7g.mjs.map +0 -1
  922. package/fesm2022/acorex-platform-layouts-checkbox-widget-edit.component-Cqn_QBcv.mjs +0 -25
  923. package/fesm2022/acorex-platform-layouts-checkbox-widget-edit.component-Cqn_QBcv.mjs.map +0 -1
  924. package/fesm2022/acorex-platform-layouts-checkbox-widget-view.component-DQLggJ9x.mjs +0 -50
  925. package/fesm2022/acorex-platform-layouts-checkbox-widget-view.component-DQLggJ9x.mjs.map +0 -1
  926. package/fesm2022/acorex-platform-layouts-dateTime-widget-column.component-D0eNN66F.mjs +0 -47
  927. package/fesm2022/acorex-platform-layouts-dateTime-widget-column.component-D0eNN66F.mjs.map +0 -1
  928. package/fesm2022/acorex-platform-layouts-dateTime-widget-edit.component-BLqAWdRX.mjs +0 -181
  929. package/fesm2022/acorex-platform-layouts-dateTime-widget-edit.component-BLqAWdRX.mjs.map +0 -1
  930. package/fesm2022/acorex-platform-layouts-dateTime-widget-filter.component-tvc-cTos.mjs +0 -217
  931. package/fesm2022/acorex-platform-layouts-dateTime-widget-filter.component-tvc-cTos.mjs.map +0 -1
  932. package/fesm2022/acorex-platform-layouts-dateTime-widget-view.component-CjChqiJw.mjs +0 -74
  933. package/fesm2022/acorex-platform-layouts-dateTime-widget-view.component-CjChqiJw.mjs.map +0 -1
  934. package/fesm2022/acorex-platform-layouts-email-widget-column.component-CUnxKERe.mjs +0 -76
  935. package/fesm2022/acorex-platform-layouts-email-widget-column.component-CUnxKERe.mjs.map +0 -1
  936. package/fesm2022/acorex-platform-layouts-email-widget-edit.component-DqnNien2.mjs +0 -252
  937. package/fesm2022/acorex-platform-layouts-email-widget-edit.component-DqnNien2.mjs.map +0 -1
  938. package/fesm2022/acorex-platform-layouts-email-widget-view.component-BZsLYW2w.mjs +0 -111
  939. package/fesm2022/acorex-platform-layouts-email-widget-view.component-BZsLYW2w.mjs.map +0 -1
  940. package/fesm2022/acorex-platform-layouts-entity-create-view.component-C3TUCnB2.mjs +0 -108
  941. package/fesm2022/acorex-platform-layouts-entity-create-view.component-C3TUCnB2.mjs.map +0 -1
  942. package/fesm2022/acorex-platform-layouts-entity-modify-view.component-BnSfJlc5.mjs +0 -89
  943. package/fesm2022/acorex-platform-layouts-entity-modify-view.component-BnSfJlc5.mjs.map +0 -1
  944. package/fesm2022/acorex-platform-layouts-file-widget-column.component-f54Z9E5C.mjs +0 -30
  945. package/fesm2022/acorex-platform-layouts-file-widget-column.component-f54Z9E5C.mjs.map +0 -1
  946. package/fesm2022/acorex-platform-layouts-file-widget-edit.component-CW9ESi46.mjs +0 -203
  947. package/fesm2022/acorex-platform-layouts-file-widget-edit.component-CW9ESi46.mjs.map +0 -1
  948. package/fesm2022/acorex-platform-layouts-file-widget-filter.component-K3mC1xLX.mjs +0 -30
  949. package/fesm2022/acorex-platform-layouts-file-widget-filter.component-K3mC1xLX.mjs.map +0 -1
  950. package/fesm2022/acorex-platform-layouts-file-widget-view.component-DVlbi33v.mjs +0 -156
  951. package/fesm2022/acorex-platform-layouts-file-widget-view.component-DVlbi33v.mjs.map +0 -1
  952. package/fesm2022/acorex-platform-layouts-gallery-widget-edit.component-BUlkUU5u.mjs +0 -192
  953. package/fesm2022/acorex-platform-layouts-gallery-widget-edit.component-BUlkUU5u.mjs.map +0 -1
  954. package/fesm2022/acorex-platform-layouts-gallery-widget-filter.component-BYFQSXOV.mjs +0 -30
  955. package/fesm2022/acorex-platform-layouts-gallery-widget-filter.component-BYFQSXOV.mjs.map +0 -1
  956. package/fesm2022/acorex-platform-layouts-gallery-widget-view.component-BqVO3rDH.mjs +0 -176
  957. package/fesm2022/acorex-platform-layouts-gallery-widget-view.component-BqVO3rDH.mjs.map +0 -1
  958. package/fesm2022/acorex-platform-layouts-largetext-widget-edit.component-CmH9daul.mjs +0 -40
  959. package/fesm2022/acorex-platform-layouts-largetext-widget-edit.component-CmH9daul.mjs.map +0 -1
  960. package/fesm2022/acorex-platform-layouts-lookup-widget-column.component-C4Bb5AYW.mjs +0 -46
  961. package/fesm2022/acorex-platform-layouts-lookup-widget-column.component-C4Bb5AYW.mjs.map +0 -1
  962. package/fesm2022/acorex-platform-layouts-lookup-widget-edit.component-B2Qyoi4Q.mjs +0 -120
  963. package/fesm2022/acorex-platform-layouts-lookup-widget-edit.component-B2Qyoi4Q.mjs.map +0 -1
  964. package/fesm2022/acorex-platform-layouts-lookup-widget-filter.component-JJzSun3D.mjs +0 -158
  965. package/fesm2022/acorex-platform-layouts-lookup-widget-filter.component-JJzSun3D.mjs.map +0 -1
  966. package/fesm2022/acorex-platform-layouts-lookup-widget-view.component-Bmp_zVcQ.mjs +0 -57
  967. package/fesm2022/acorex-platform-layouts-lookup-widget-view.component-Bmp_zVcQ.mjs.map +0 -1
  968. package/fesm2022/acorex-platform-layouts-map-widget-edit.component-EWlgQnx5.mjs +0 -94
  969. package/fesm2022/acorex-platform-layouts-map-widget-edit.component-EWlgQnx5.mjs.map +0 -1
  970. package/fesm2022/acorex-platform-layouts-map-widget-view.component-cB5Mq7G7.mjs +0 -66
  971. package/fesm2022/acorex-platform-layouts-map-widget-view.component-cB5Mq7G7.mjs.map +0 -1
  972. package/fesm2022/acorex-platform-layouts-messenger-widget-column.component-DWgWrdmz.mjs +0 -74
  973. package/fesm2022/acorex-platform-layouts-messenger-widget-column.component-DWgWrdmz.mjs.map +0 -1
  974. package/fesm2022/acorex-platform-layouts-messenger-widget-edit.component-C7VOe49a.mjs +0 -139
  975. package/fesm2022/acorex-platform-layouts-messenger-widget-edit.component-C7VOe49a.mjs.map +0 -1
  976. package/fesm2022/acorex-platform-layouts-messenger-widget-view.component-uciMJWYn.mjs +0 -135
  977. package/fesm2022/acorex-platform-layouts-messenger-widget-view.component-uciMJWYn.mjs.map +0 -1
  978. package/fesm2022/acorex-platform-layouts-number-widget-edit.component-CXTwKvM4.mjs +0 -49
  979. package/fesm2022/acorex-platform-layouts-number-widget-edit.component-CXTwKvM4.mjs.map +0 -1
  980. package/fesm2022/acorex-platform-layouts-number-widget-filter.component-ARH7BdkE.mjs +0 -138
  981. package/fesm2022/acorex-platform-layouts-number-widget-filter.component-ARH7BdkE.mjs.map +0 -1
  982. package/fesm2022/acorex-platform-layouts-number-widget-view.component-B0duuEhX.mjs +0 -33
  983. package/fesm2022/acorex-platform-layouts-number-widget-view.component-B0duuEhX.mjs.map +0 -1
  984. package/fesm2022/acorex-platform-layouts-password-widget-column.component-Cav_zCe4.mjs +0 -70
  985. package/fesm2022/acorex-platform-layouts-password-widget-column.component-Cav_zCe4.mjs.map +0 -1
  986. package/fesm2022/acorex-platform-layouts-password-widget-edit.component-Dm2E5zA_.mjs +0 -44
  987. package/fesm2022/acorex-platform-layouts-password-widget-edit.component-Dm2E5zA_.mjs.map +0 -1
  988. package/fesm2022/acorex-platform-layouts-password-widget-view.component-BaipF6fT.mjs +0 -112
  989. package/fesm2022/acorex-platform-layouts-password-widget-view.component-BaipF6fT.mjs.map +0 -1
  990. package/fesm2022/acorex-platform-layouts-phone-widget-column.component-BtZ5Qke0.mjs +0 -94
  991. package/fesm2022/acorex-platform-layouts-phone-widget-column.component-BtZ5Qke0.mjs.map +0 -1
  992. package/fesm2022/acorex-platform-layouts-phone-widget-edit.component-BugCYS-l.mjs +0 -234
  993. package/fesm2022/acorex-platform-layouts-phone-widget-edit.component-BugCYS-l.mjs.map +0 -1
  994. package/fesm2022/acorex-platform-layouts-phone-widget-view.component-C7EN8qDk.mjs +0 -126
  995. package/fesm2022/acorex-platform-layouts-phone-widget-view.component-C7EN8qDk.mjs.map +0 -1
  996. package/fesm2022/acorex-platform-layouts-rich-text-widget-column.component-B99s2Zhi.mjs +0 -64
  997. package/fesm2022/acorex-platform-layouts-rich-text-widget-column.component-B99s2Zhi.mjs.map +0 -1
  998. package/fesm2022/acorex-platform-layouts-rich-text-widget-edit.component-Di1P6EQV.mjs +0 -70
  999. package/fesm2022/acorex-platform-layouts-rich-text-widget-edit.component-Di1P6EQV.mjs.map +0 -1
  1000. package/fesm2022/acorex-platform-layouts-rich-text-widget-view.component-B_QG0YJc.mjs +0 -37
  1001. package/fesm2022/acorex-platform-layouts-rich-text-widget-view.component-B_QG0YJc.mjs.map +0 -1
  1002. package/fesm2022/acorex-platform-layouts-selection-list-widget-column.component-Cx9QqR9f.mjs +0 -46
  1003. package/fesm2022/acorex-platform-layouts-selection-list-widget-column.component-Cx9QqR9f.mjs.map +0 -1
  1004. package/fesm2022/acorex-platform-layouts-selection-list-widget-edit.component-DU-U-Af-.mjs +0 -56
  1005. package/fesm2022/acorex-platform-layouts-selection-list-widget-edit.component-DU-U-Af-.mjs.map +0 -1
  1006. package/fesm2022/acorex-platform-layouts-selection-list-widget-filter.component-B8y8heXR.mjs +0 -44
  1007. package/fesm2022/acorex-platform-layouts-selection-list-widget-filter.component-B8y8heXR.mjs.map +0 -1
  1008. package/fesm2022/acorex-platform-layouts-selection-list-widget-view.component-BDupWZy-.mjs +0 -48
  1009. package/fesm2022/acorex-platform-layouts-selection-list-widget-view.component-BDupWZy-.mjs.map +0 -1
  1010. package/fesm2022/acorex-platform-layouts-signature-pad-widget-edit.component-bEDsl8mg.mjs +0 -131
  1011. package/fesm2022/acorex-platform-layouts-signature-pad-widget-edit.component-bEDsl8mg.mjs.map +0 -1
  1012. package/fesm2022/acorex-platform-layouts-signature-pad-widget-view.component-DB903O2F.mjs +0 -44
  1013. package/fesm2022/acorex-platform-layouts-signature-pad-widget-view.component-DB903O2F.mjs.map +0 -1
  1014. package/fesm2022/acorex-platform-layouts-string-widget-filter.component-D3ZxVk6S.mjs +0 -128
  1015. package/fesm2022/acorex-platform-layouts-string-widget-filter.component-D3ZxVk6S.mjs.map +0 -1
  1016. package/fesm2022/acorex-platform-layouts-text-widget-column.component-D8WDAbQB.mjs +0 -49
  1017. package/fesm2022/acorex-platform-layouts-text-widget-column.component-D8WDAbQB.mjs.map +0 -1
  1018. package/fesm2022/acorex-platform-layouts-text-widget-edit.component-BrDbNXgJ.mjs +0 -165
  1019. package/fesm2022/acorex-platform-layouts-text-widget-edit.component-BrDbNXgJ.mjs.map +0 -1
  1020. package/fesm2022/acorex-platform-layouts-text-widget-view.component-XHN41M3T.mjs +0 -69
  1021. package/fesm2022/acorex-platform-layouts-text-widget-view.component-XHN41M3T.mjs.map +0 -1
  1022. package/fesm2022/acorex-platform-layouts-toggle-widget-column.component-BjIyTuZj.mjs +0 -60
  1023. package/fesm2022/acorex-platform-layouts-toggle-widget-column.component-BjIyTuZj.mjs.map +0 -1
  1024. package/fesm2022/acorex-platform-layouts-toggle-widget-edit.component-BKbBile6.mjs +0 -28
  1025. package/fesm2022/acorex-platform-layouts-toggle-widget-edit.component-BKbBile6.mjs.map +0 -1
  1026. package/fesm2022/acorex-platform-layouts-toggle-widget-view.component-CyjhQSiV.mjs +0 -52
  1027. package/fesm2022/acorex-platform-layouts-toggle-widget-view.component-CyjhQSiV.mjs.map +0 -1
  1028. package/fesm2022/acorex-platform-schema.mjs +0 -594
  1029. package/fesm2022/acorex-platform-schema.mjs.map +0 -1
  1030. package/layout/README.md +0 -4
  1031. package/layout/index.d.ts +0 -2
  1032. package/layout/lib/builder/builder.module.d.ts +0 -23
  1033. package/layout/lib/builder/context.service.d.ts +0 -17
  1034. package/layout/lib/builder/index.d.ts +0 -7
  1035. package/layout/lib/builder/widget-column-renderer.d.ts +0 -30
  1036. package/layout/lib/builder/widget-container.d.ts +0 -13
  1037. package/layout/lib/builder/widget-renderer.d.ts +0 -41
  1038. package/layout/lib/builder/widget.types.d.ts +0 -55
  1039. package/layouts/lib/admin/admin-child-layout/admin-child-features-list.component.d.ts +0 -22
  1040. package/layouts/lib/admin/admin-child-layout/admin-child-layout.component.d.ts +0 -21
  1041. package/layouts/lib/admin/admin-child-layout/admin-child-layout.module.d.ts +0 -17
  1042. package/layouts/lib/admin/admin-child-layout/index.d.ts +0 -3
  1043. package/layouts/lib/admin/admin-root-layout/admin-root-layout.component.d.ts +0 -30
  1044. package/layouts/lib/admin/admin-root-layout/admin-root-layout.module.d.ts +0 -25
  1045. package/layouts/lib/admin/admin-root-layout/components/admin-footer/admin-footer.component.d.ts +0 -5
  1046. package/layouts/lib/admin/admin-root-layout/components/admin-header/admin-header.component.d.ts +0 -10
  1047. package/layouts/lib/admin/admin-root-layout/index.d.ts +0 -4
  1048. package/layouts/lib/admin/store/admin-layout.selectors.d.ts +0 -5
  1049. package/layouts/lib/layout.routes.d.ts +0 -2
  1050. package/layouts/lib/shared/components/content-view/content-view.page.d.ts +0 -23
  1051. package/layouts/lib/shared/components/content-view/content-view.type.d.ts +0 -16
  1052. package/layouts/lib/shared/components/error-401/error-401.component.d.ts +0 -10
  1053. package/layouts/lib/shared/components/error-404/error-404.component.d.ts +0 -8
  1054. package/layouts/lib/shared/components/error-offline/error-offline.component.d.ts +0 -9
  1055. package/layouts/lib/shared/components/index.d.ts +0 -9
  1056. package/layouts/lib/shared/components/slots/navbar-slot.component.d.ts +0 -10
  1057. package/layouts/lib/shared/entity/entity.class.d.ts +0 -153
  1058. package/layouts/lib/shared/index.d.ts +0 -4
  1059. package/layouts/lib/shared/services/index.d.ts +0 -1
  1060. package/layouts/lib/shared/workflows/common.workflow.d.ts +0 -61
  1061. package/layouts/lib/shared/workflows/error-handler.d.ts +0 -8
  1062. package/layouts/lib/themes/default/entity-layouts/entity-details-view/entity-details-view.component.d.ts +0 -11
  1063. package/layouts/lib/themes/default/entity-layouts/entity-details.viewmodel.d.ts +0 -34
  1064. package/layouts/lib/themes/default/index.d.ts +0 -2
  1065. package/layouts/lib/widgets/avatar/avatar-widget-edit.component.d.ts +0 -16
  1066. package/layouts/lib/widgets/avatar/avatar-widget-view.component.d.ts +0 -13
  1067. package/layouts/lib/widgets/checkbox/checkbox-widget-column.component.d.ts +0 -11
  1068. package/layouts/lib/widgets/checkbox/checkbox-widget-edit.component.d.ts +0 -6
  1069. package/layouts/lib/widgets/checkbox/checkbox-widget-view.component.d.ts +0 -11
  1070. package/layouts/lib/widgets/common-widget-filter/boolean-widget-filter.component.d.ts +0 -17
  1071. package/layouts/lib/widgets/common-widget-filter/number-widget-filter.component.d.ts +0 -11
  1072. package/layouts/lib/widgets/common-widget-filter/string-widget-filter.component.d.ts +0 -11
  1073. package/layouts/lib/widgets/common-widgets.module.d.ts +0 -32
  1074. package/layouts/lib/widgets/dateTime/dateTime-widget-column.component.d.ts +0 -11
  1075. package/layouts/lib/widgets/dateTime/dateTime-widget-edit.component.d.ts +0 -26
  1076. package/layouts/lib/widgets/dateTime/dateTime-widget-filter.component.d.ts +0 -16
  1077. package/layouts/lib/widgets/dateTime/dateTime-widget-view.component.d.ts +0 -11
  1078. package/layouts/lib/widgets/email/email-widget-column.component.d.ts +0 -16
  1079. package/layouts/lib/widgets/email/email-widget-edit.component.d.ts +0 -28
  1080. package/layouts/lib/widgets/email/email-widget-view.component.d.ts +0 -16
  1081. package/layouts/lib/widgets/file/file-widget-column.component.d.ts +0 -8
  1082. package/layouts/lib/widgets/file/file-widget-edit.component.d.ts +0 -17
  1083. package/layouts/lib/widgets/file/file-widget-filter.component.d.ts +0 -6
  1084. package/layouts/lib/widgets/file/file-widget-view.component.d.ts +0 -17
  1085. package/layouts/lib/widgets/gallery/gallery-widget-edit.component.d.ts +0 -15
  1086. package/layouts/lib/widgets/gallery/gallery-widget-filter.component.d.ts +0 -6
  1087. package/layouts/lib/widgets/gallery/gallery-widget-view.component.d.ts +0 -16
  1088. package/layouts/lib/widgets/lookup/lookup-widget-column.component.d.ts +0 -16
  1089. package/layouts/lib/widgets/lookup/lookup-widget-edit.component.d.ts +0 -15
  1090. package/layouts/lib/widgets/lookup/lookup-widget-filter.component.d.ts +0 -16
  1091. package/layouts/lib/widgets/lookup/lookup-widget-view.component.d.ts +0 -17
  1092. package/layouts/lib/widgets/map/map-widget-edit.component.d.ts +0 -15
  1093. package/layouts/lib/widgets/map/map-widget-view.component.d.ts +0 -17
  1094. package/layouts/lib/widgets/messenger/messenger-widget-column.component.d.ts +0 -15
  1095. package/layouts/lib/widgets/messenger/messenger-widget-edit.component.d.ts +0 -14
  1096. package/layouts/lib/widgets/messenger/messenger-widget-view.component.d.ts +0 -17
  1097. package/layouts/lib/widgets/number/number-widget-edit.component.d.ts +0 -7
  1098. package/layouts/lib/widgets/number/number-widget-view.component.d.ts +0 -8
  1099. package/layouts/lib/widgets/password/password-widget-column.component.d.ts +0 -14
  1100. package/layouts/lib/widgets/password/password-widget-edit.component.d.ts +0 -6
  1101. package/layouts/lib/widgets/password/password-widget-view.component.d.ts +0 -18
  1102. package/layouts/lib/widgets/phone/phone-widget-column.component.d.ts +0 -15
  1103. package/layouts/lib/widgets/phone/phone-widget-edit.component.d.ts +0 -29
  1104. package/layouts/lib/widgets/phone/phone-widget-view.component.d.ts +0 -18
  1105. package/layouts/lib/widgets/rich-text/rich-text-widget-column.component.d.ts +0 -11
  1106. package/layouts/lib/widgets/rich-text/rich-text-widget-edit.component.d.ts +0 -33
  1107. package/layouts/lib/widgets/rich-text/rich-text-widget-view.component.d.ts +0 -10
  1108. package/layouts/lib/widgets/selection-list/selection-list-widget-column.component.d.ts +0 -16
  1109. package/layouts/lib/widgets/selection-list/selection-list-widget-edit.component.d.ts +0 -12
  1110. package/layouts/lib/widgets/selection-list/selection-list-widget-filter.component.d.ts +0 -9
  1111. package/layouts/lib/widgets/selection-list/selection-list-widget-view.component.d.ts +0 -15
  1112. package/layouts/lib/widgets/signature-pad/signature-pad-widget-edit.component.d.ts +0 -19
  1113. package/layouts/lib/widgets/signature-pad/signature-pad-widget-view.component.d.ts +0 -8
  1114. package/layouts/lib/widgets/text/largetext-widget-edit.component.d.ts +0 -6
  1115. package/layouts/lib/widgets/text/text-widget-column.component.d.ts +0 -12
  1116. package/layouts/lib/widgets/text/text-widget-edit.component.d.ts +0 -23
  1117. package/layouts/lib/widgets/text/text-widget-view.component.d.ts +0 -11
  1118. package/layouts/lib/widgets/toggle/toggle-widget-column.component.d.ts +0 -11
  1119. package/layouts/lib/widgets/toggle/toggle-widget-edit.component.d.ts +0 -6
  1120. package/layouts/lib/widgets/toggle/toggle-widget-view.component.d.ts +0 -11
  1121. package/schema/README.md +0 -3
  1122. package/schema/index.d.ts +0 -11
  1123. package/schema/lib/operators.d.ts +0 -22
  1124. package/schema/lib/schema.types.d.ts +0 -16
  1125. package/schema/lib/widget/widget-base.d.ts +0 -45
  1126. package/schema/lib/widget/widget-token.d.ts +0 -16
  1127. /package/{core → common}/lib/app/operators.d.ts +0 -0
  1128. /package/{core → common}/lib/configs/config.types.d.ts +0 -0
  1129. /package/{layout/lib → common/lib/layout}/component-slot/component-slot-loader.service.d.ts +0 -0
  1130. /package/{layout/lib → common/lib/layout}/component-slot/component-slot-registery.service.d.ts +0 -0
  1131. /package/{layout/lib → common/lib/layout}/component-slot/component-slot.directive.d.ts +0 -0
  1132. /package/{layout/lib → common/lib/layout}/component-slot/component-slot.module.d.ts +0 -0
  1133. /package/{layout/lib → common/lib/layout}/component-slot/component-slot.types.d.ts +0 -0
  1134. /package/{layout/lib → common/lib/layout}/component-slot/index.d.ts +0 -0
  1135. /package/{layouts/lib/shared/services → common/lib/layout}/layout.service.d.ts +0 -0
  1136. /package/{layouts/lib/shared/components → common/lib/layout}/logo/logo.component.d.ts +0 -0
  1137. /package/common/lib/{shared → layout/logo}/logo.types.d.ts +0 -0
  1138. /package/common/lib/{menu → layout/menu}/index.d.ts +0 -0
  1139. /package/common/lib/{menu → layout/menu}/menu.loader.d.ts +0 -0
  1140. /package/common/lib/{menu → layout/menu}/menu.types.d.ts +0 -0
  1141. /package/{layouts/lib/shared → common/lib/layout/theme}/components/slots/footer-text-slot.component.d.ts +0 -0
  1142. /package/{layouts/lib/shared → common/lib/layout/theme}/components/slots/theme-slot.component.d.ts +0 -0
  1143. /package/{layouts/lib/admin → common/lib/layout/theme}/store/admin-layout.actions.d.ts +0 -0
  1144. /package/{layouts/lib/admin → common/lib/layout/theme}/store/admin-layout.effects.d.ts +0 -0
  1145. /package/{layouts/lib/admin → common/lib/layout/theme}/store/admin-layout.reducers.d.ts +0 -0
  1146. /package/{layouts/lib/admin → common/lib/layout/theme}/store/admin-layout.state.d.ts +0 -0
  1147. /package/{layouts/lib/admin → common/lib/layout/theme}/store/index.d.ts +0 -0
  1148. /package/{schema/lib → common/lib/schema}/component-loader.d.ts +0 -0
  1149. /package/{layouts/lib/shared → common/lib/schema}/entity/entity-registery.service.d.ts +0 -0
  1150. /package/{layouts/lib/shared → common/lib/schema}/entity/entity.loader.d.ts +0 -0
  1151. /package/{layouts/lib/shared → common/lib/schema}/entity/index.d.ts +0 -0
  1152. /package/{schema/lib → common/lib/schema}/formats.d.ts +0 -0
  1153. /package/{schema/lib → common/lib/schema}/schema-registery.service.d.ts +0 -0
  1154. /package/{schema/lib → common/lib/schema}/schema.module.d.ts +0 -0
  1155. /package/{schema/lib → common/lib/schema}/widget/widget-column-renderer.d.ts +0 -0
  1156. /package/{schema/lib → common/lib/schema}/widget/widget-filter-renderer.d.ts +0 -0
  1157. /package/{schema/lib → common/lib/schema}/widget/widget-renderer.d.ts +0 -0
  1158. /package/{layouts/lib → common/lib/schema}/widgets/gallery/gallery-widget-types.d.ts +0 -0
  1159. /package/{layouts/lib → common/lib/schema}/widgets/index.d.ts +0 -0
  1160. /package/{layouts/lib → common/lib/schema}/widgets/password/change-password.component.d.ts +0 -0
  1161. /package/{layouts/lib/shared → common/lib}/workflows/index.d.ts +0 -0
  1162. /package/layout/{lib → builder/lib}/builder/widget-registery.service.d.ts +0 -0
@@ -1,1826 +1,834 @@
1
+ import { AXDialogService, AXDialogModule } from '@acorex/components/dialog';
2
+ import { AXBasePageComponent } from '@acorex/components/page';
3
+ import { AXToastService } from '@acorex/components/toast';
4
+ import * as i2$1 from '@acorex/core/utils';
5
+ import { AXUnsubscriber } from '@acorex/core/utils';
6
+ import * as i10$1 from '@acorex/platform/common';
7
+ import { AXPSchemaRegistryService, EQ_OPER, isSmallScreen, AXPEntityRegistryService, AXPLayoutService, AXP_MENU_LOADER, AXPLayoutChildDrawerToggle, convertPropertiesToColumns, AXPSchemaModule, AXPCommonWidgetModule, AXPEntityListViewConfigEmpty, AXPWorkflowNavigateAction, getChildDrawer, AXPLayoutChildDrawerClose, AXPStickyDirective, AXPCommonModule, AXMWorkflowErrorHandler, AXPDialogConfirmAction, AXPToastAction } from '@acorex/platform/common';
8
+ import * as i15 from '@angular/cdk/drag-drop';
9
+ import { moveItemInArray, CdkDropList, CdkDrag, CdkDragPlaceholder, CdkDragHandle } from '@angular/cdk/drag-drop';
1
10
  import * as i0 from '@angular/core';
2
- import { inject, Injectable, Component, ChangeDetectorRef, NgModule, ViewEncapsulation, signal, computed, Input, HostListener, InjectionToken, ViewChild, ChangeDetectionStrategy, EventEmitter, Output, Injector } from '@angular/core';
3
- import * as i1$6 from '@ngrx/store';
4
- import { createAction, createFeature, createReducer, on, createSelector, Store, StoreModule } from '@ngrx/store';
5
- import { fromEvent, debounceTime, map, withLatestFrom, mergeMap, of, filter, first, BehaviorSubject, timer, defaultIfEmpty, switchMap } from 'rxjs';
6
- import * as i2$5 from '@acorex/platform/common';
7
- import { AXPNavigateAction as AXPNavigateAction$1, AXPLoadInitState, AXP_MENU_LOADER, AXPRouteUtilityService, AXPComponentLogoConfig, AXPFontIconLogoConfig, AXPImageUrlLogoConfig, AXPTextLogoConfig, AXP_PLATFORM_CONFIG_TOKEN, AXPStickyDirective, AXPCommonModule } from '@acorex/platform/common';
8
- import * as i3$3 from '@acorex/core/platform';
9
- import { AXPlatform } from '@acorex/core/platform';
10
- import * as i1$5 from '@ngrx/effects';
11
- import { Actions, createEffect, ofType, EffectsModule } from '@ngrx/effects';
12
- import * as i1 from '@angular/router';
13
- import { ActivatedRoute, Router, RouterModule, RouteReuseStrategy } from '@angular/router';
14
- import * as i1$1 from '@angular/common';
11
+ import { inject, signal, computed, Component, ChangeDetectionStrategy, Input, EventEmitter, Output, ViewEncapsulation, ChangeDetectorRef, ViewChild, Injectable, NgModule, InjectionToken } from '@angular/core';
12
+ import { cloneDeep, assign } from 'lodash-es';
13
+ import * as i1 from '@angular/common';
15
14
  import { CommonModule, Location } from '@angular/common';
16
- import * as i1$2 from '@acorex/components/badge';
17
- import { AXBadgeModule } from '@acorex/components/badge';
18
- import * as i2$1 from '@acorex/components/button';
15
+ import * as i2 from '@angular/forms';
16
+ import { FormsModule } from '@angular/forms';
17
+ import * as i4 from '@acorex/components/button';
19
18
  import { AXButtonModule } from '@acorex/components/button';
20
- import * as i3 from '@acorex/components/decorators';
19
+ import * as i4$1 from '@acorex/components/decorators';
21
20
  import { AXDecoratorModule } from '@acorex/components/decorators';
22
- import { AXDialogModule, AXDialogService } from '@acorex/components/dialog';
23
- import * as i4 from '@acorex/components/drawer';
24
- import { AXDrawerModule } from '@acorex/components/drawer';
25
- import * as i3$2 from '@acorex/components/loading';
26
- import { AXLoadingModule } from '@acorex/components/loading';
27
- import * as i9 from '@acorex/components/tabs';
28
- import { AXTabsModule } from '@acorex/components/tabs';
29
- import * as i2 from '@acorex/platform/layout';
30
- import { AXPComponentSlotModule } from '@acorex/platform/layout';
31
- import * as i2$4 from '@acorex/core/utils';
32
- import { AXUnsubscriber } from '@acorex/core/utils';
33
- import { AXCollapseModule } from '@acorex/components/collapse';
34
- import * as i3$1 from '@acorex/components/nav';
35
- import { AXNavModule } from '@acorex/components/nav';
36
- import * as i8 from '@acorex/platform/auth';
37
- import { AXPSessionService, AXPAuthModule, AXPAuthGuard } from '@acorex/platform/auth';
38
- import * as i2$2 from '@acorex/components/image';
39
- import { AXImageModule } from '@acorex/components/image';
40
- import { merge, cloneDeep, assign } from 'lodash-es';
41
- import { AXPopupService } from '@acorex/components/popup';
42
- import { AXToastService, AXToastModule } from '@acorex/components/toast';
43
- import { AXFormatService } from '@acorex/core/format';
44
- import * as i3$5 from '@acorex/platform/workflow';
45
- import { createWorkFlowEvent, AXPWorkflowAction, AXPWorkflowError, AXPWorkflowFunction, AXPWorkflowService, ofType as ofType$1, AXPWorkflowModule } from '@acorex/platform/workflow';
46
- import * as i5 from '@acorex/components/side-menu';
47
- import { AXSideMenuModule } from '@acorex/components/side-menu';
48
- import { AXAvatarModule } from '@acorex/components/avatar';
49
- import * as i10 from '@acorex/components/dropdown';
50
- import { AXDropdownModule } from '@acorex/components/dropdown';
51
- import * as i5$1 from '@acorex/components/popover';
21
+ import * as i5 from '@acorex/components/badge';
22
+ import { AXBadgeModule } from '@acorex/components/badge';
23
+ import * as i6 from '@acorex/components/popover';
52
24
  import { AXPopoverModule } from '@acorex/components/popover';
53
- import { AXBasePageComponent } from '@acorex/components/page';
54
- import * as i1$3 from '@acorex/platform/schema';
55
- import { AXPSchemaRegistryService, EQ_OPER, STRING_OPERATORS, CONTAINS_OPER, NUMBER_OPERATORS, BETWEEN_OPER, DATE_OPERATORS, AXPSchemaModule } from '@acorex/platform/schema';
56
- import * as i15 from '@angular/cdk/drag-drop';
57
- import { moveItemInArray, CdkDropList, CdkDrag, CdkDragPlaceholder, CdkDragHandle } from '@angular/cdk/drag-drop';
58
- import * as i2$3 from '@angular/forms';
59
- import { FormsModule } from '@angular/forms';
60
- import * as i8$1 from '@acorex/components/switch';
25
+ import * as i7 from '@acorex/components/image';
26
+ import { AXImageModule } from '@acorex/components/image';
27
+ import * as i8 from '@acorex/components/switch';
61
28
  import { AXSwitchModule } from '@acorex/components/switch';
62
- import * as i6 from '@acorex/components/select-box';
29
+ import * as i9 from '@acorex/components/tabs';
30
+ import { AXTabsModule } from '@acorex/components/tabs';
31
+ import * as i10 from '@acorex/components/select-box';
63
32
  import { AXSelectBoxComponent, AXSelectBoxModule } from '@acorex/components/select-box';
64
- import * as i4$1 from '@acorex/components/text-box';
33
+ import * as i11 from '@acorex/components/text-box';
65
34
  import { AXTextBoxModule } from '@acorex/components/text-box';
66
- import * as i7 from '@acorex/components/label';
35
+ import * as i7$1 from '@acorex/components/label';
67
36
  import { AXLabelModule } from '@acorex/components/label';
68
- import * as i4$2 from '@acorex/components/selection-list';
37
+ import * as i13 from '@acorex/components/selection-list';
69
38
  import { AXSelectionListModule } from '@acorex/components/selection-list';
70
39
  import * as i14 from '@acorex/components/dropdown-button';
71
40
  import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
72
- import * as i1$4 from '@acorex/components/action-sheet';
41
+ import { Store } from '@ngrx/store';
42
+ import { of, first, map, BehaviorSubject, defaultIfEmpty, switchMap } from 'rxjs';
43
+ import { AXPopupService } from '@acorex/components/popup';
44
+ import * as i1$1 from '@acorex/components/action-sheet';
73
45
  import { AXActionSheetModule } from '@acorex/components/action-sheet';
74
46
  import * as i6$1 from '@acorex/components/data-table';
75
47
  import { AXDataTableModule } from '@acorex/components/data-table';
48
+ import * as i11$1 from '@acorex/components/drawer';
49
+ import { AXDrawerModule } from '@acorex/components/drawer';
50
+ import * as i3 from '@acorex/core/platform';
51
+ import { AXPlatform } from '@acorex/core/platform';
52
+ import { ActivatedRoute, Router, RouterModule, RouteReuseStrategy } from '@angular/router';
53
+ import * as i1$3 from '@acorex/platform/workflow';
54
+ import { createWorkFlowEvent, AXPWorkflowAction, AXPWorkflowFunction, AXPWorkflowService, ofType, AXPWorkflowModule } from '@acorex/platform/workflow';
55
+ import { AXFormatService } from '@acorex/core/format';
76
56
  import { AXLoadingDialogService } from '@acorex/components/loading-dialog';
57
+ import * as i10$2 from '@acorex/components/dropdown';
58
+ import { AXDropdownModule } from '@acorex/components/dropdown';
77
59
  import * as i12 from '@acorex/components/search-box';
78
60
  import { AXSearchBoxModule } from '@acorex/components/search-box';
61
+ import * as i14$1 from '@acorex/platform/auth';
62
+ import { AXPAuthModule, AXPSessionService, AXPAuthGuard } from '@acorex/platform/auth';
63
+ import { AXCollapseModule } from '@acorex/components/collapse';
79
64
  import { AXCommonModule, AXDataSource } from '@acorex/components/common';
80
- import * as i3$4 from '@acorex/components/form';
65
+ import * as i2$2 from '@acorex/components/form';
81
66
  import { AXFormModule } from '@acorex/components/form';
82
67
  import { AXListModule } from '@acorex/components/list';
68
+ import { AXLoadingModule } from '@acorex/components/loading';
83
69
  import { PortalModule } from '@angular/cdk/portal';
84
- import * as i6$2 from '@acorex/components/breadcrumbs';
70
+ import * as i1$2 from '@ngrx/effects';
71
+ import { ofType as ofType$1 } from '@ngrx/effects';
85
72
  import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
86
73
  import { AXTooltipModule } from '@acorex/components/tooltip';
87
74
 
88
- const AXPWindowResizeAction = createAction('[Layout] Resize');
89
- //
90
- const AXPLayoutRootDrawerClose = createAction('[Root Drawer] Close');
91
- const AXPLayoutRootDrawerToggle = createAction('[Root Drawer] Toggle');
92
- const AXPLayoutChildDrawerClose = createAction('[Child Drawer] Close');
93
- const AXPLayoutChildDrawerToggle = createAction('[Child Drawer] Toggle');
94
- //
95
- const AXPLayoutThemeDarkToggleAction = createAction('[Theme] Toggle Dark');
96
- const AXPLoadingShowAction = createAction('[Theme] Loading Show');
97
- const AXPLoadingHideAction = createAction('[Theme] Loading Hide');
98
-
99
- const platform$1 = new AXPlatform();
100
- const initialState = {
101
- theme: {
102
- dark: false,
103
- },
104
- screen: {
105
- small: platform$1.is('SM') || platform$1.is('MD'),
106
- },
107
- drawer: {
108
- root: !(platform$1.is('SM') || platform$1.is('MD')),
109
- child: !(platform$1.is('SM') || platform$1.is('MD'))
110
- },
111
- loading: false
112
- };
113
-
114
- const platform = new AXPlatform();
115
- const AXPLayoutFeature = createFeature({
116
- name: 'layout',
117
- reducer: createReducer(initialState,
118
- // close drawers on navigatin
119
- on(AXPNavigateAction$1, (state, action) => ({
120
- ...state,
121
- drawer: { ...state.drawer, root: platform.is('SM') ? false : state.drawer.root, child: platform.is('SM') ? false : state.drawer.child },
122
- })),
123
- // toggle root drawers
124
- on(AXPLayoutRootDrawerToggle, (state, action) => ({
125
- ...state,
126
- drawer: { ...state.drawer, root: !state.drawer.root, child: (!state.drawer.root && platform.is('SM')) ? false : state.drawer.child },
127
- })),
128
- // close root drawers
129
- on(AXPLayoutRootDrawerClose, (state) => ({
130
- ...state,
131
- drawer: { ...state.drawer, root: false },
132
- })),
133
- // toggle second level child drawers
134
- on(AXPLayoutChildDrawerToggle, (state) => ({
135
- ...state,
136
- drawer: { ...state.drawer, child: !state.drawer.child },
137
- })),
138
- // close second level child drawers
139
- on(AXPLayoutChildDrawerClose, (state) => ({
140
- ...state,
141
- drawer: { ...state.drawer, child: false },
142
- })),
143
- // close drawers on window resize event
144
- on(AXPWindowResizeAction, (state) => ({
145
- ...state,
146
- screen: { small: platform.is('SM') || platform.is('MD') },
147
- drawer: {
148
- ...state.drawer,
149
- root: platform.is('SM') || platform.is('MD') ? false : state.drawer.root,
150
- child: platform.is('SM') || platform.is('MD') ? false : state.drawer.child
151
- },
152
- })),
153
- // toggle dark mode of theme
154
- on(AXPLayoutThemeDarkToggleAction, (state) => ({
155
- ...state,
156
- theme: { dark: !state.theme?.dark },
157
- })),
158
- // Admin Root layout loading
159
- on(AXPLoadingShowAction, (state) => ({
160
- ...state,
161
- loading: true,
162
- })), on(AXPLoadingHideAction, (state) => ({
163
- ...state,
164
- loading: false,
165
- }))),
166
- });
167
- const { name, reducer, selectLayoutState, } = AXPLayoutFeature;
168
-
169
- const getRootDrawer = () => createSelector(selectLayoutState, (value) => value.drawer.root);
170
- const getChildDrawer = () => createSelector(selectLayoutState, (value) => value.drawer.child);
171
- const isSmallScreen = () => createSelector(selectLayoutState, (value) => value.screen.small);
172
- const isDarkTheme = () => createSelector(selectLayoutState, (value) => value.theme.dark);
173
- const isLoading = () => createSelector(selectLayoutState, (value) => value.loading);
174
-
175
- class AXPLayoutEffects {
176
- constructor() {
177
- this.platform = inject(AXPlatform);
178
- this.actions$ = inject(Actions);
179
- this.store$ = inject(Store);
180
- this.resize$ = createEffect(() => fromEvent(window, 'resize').pipe(debounceTime(300), map(() => AXPWindowResizeAction())));
181
- this.switchDark$ = createEffect(() => this.actions$.pipe(ofType(AXPLayoutThemeDarkToggleAction, AXPLoadInitState), withLatestFrom(this.store$.select(isDarkTheme())), mergeMap(([action, dark]) => {
182
- //TODO: replace with platform function;
183
- const html = document.getElementsByTagName('html')[0];
184
- dark ? html.classList.add('ax-dark') : html.classList.remove('ax-dark');
185
- return of();
186
- })), { dispatch: false });
187
- }
188
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPLayoutEffects, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
189
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPLayoutEffects }); }
190
- }
191
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPLayoutEffects, decorators: [{
192
- type: Injectable
193
- }] });
194
-
195
- class AXPAdminChildLayoutComponent {
75
+ class AXPEntityCreateCustomViewComponent extends AXBasePageComponent {
196
76
  constructor() {
197
- this.manuLoader = inject(AXP_MENU_LOADER);
198
- this.activeRoute = inject(ActivatedRoute);
199
- this.title = "";
200
- this.store = inject((Store));
201
- this.isSM = this.store.select(isSmallScreen());
202
- this.isOpen = this.store.select(getChildDrawer());
203
- this.menuItems$ = of();
204
- this.routeUtilService = inject(AXPRouteUtilityService);
205
- this.isActiveRoute = (item) => this.routeUtilService.isRouteActive(item);
206
- this.routeParamSub = this.activeRoute.params.subscribe(val => {
207
- const menu = this.manuLoader.currentMenuItem();
208
- if (menu?.parent) {
209
- this.title = menu.parent.text;
210
- this.menuItems$ = of(menu.parent.children ?? []);
211
- }
77
+ super(...arguments);
78
+ this.schemaRegistry = inject(AXPSchemaRegistryService);
79
+ this.toastService = inject(AXToastService);
80
+ this.dialogService = inject(AXDialogService);
81
+ this.subscriber = inject(AXUnsubscriber);
82
+ this.mode = 'create';
83
+ this.selectedView = {};
84
+ this.showNameInput = signal(false);
85
+ this.props = signal([]);
86
+ this.columns = signal([]);
87
+ this.visibleColumns = computed(() => this.columns().filter((c) => c.visible));
88
+ this.conditions = signal([]);
89
+ this.sorts = signal([]);
90
+ this.selectedConditionNames = [];
91
+ this.viewNames = [];
92
+ }
93
+ ngOnInit() {
94
+ this.props.set(cloneDeep(this.loader.entity.properties));
95
+ this.columns.set(cloneDeep(this.selectedView.columns));
96
+ this.conditions.set(cloneDeep(this.selectedView.conditions));
97
+ this.sorts.set(cloneDeep(this.selectedView.sorts));
98
+ this.loader.views$.pipe(this.subscriber.takeUntilDestroy).subscribe((views) => {
99
+ this.viewNames = views.map((v) => v.name);
212
100
  });
213
101
  }
214
- handleMenuClick(e, item) {
215
- if (item.command) {
216
- this.store.dispatch(item.command);
217
- }
218
- else if (item.path) {
219
- this.store.dispatch(AXPNavigateAction$1({ payload: { commands: item.path } }));
102
+ //****************** Columns ******************//
103
+ updateColumnItem(event, colName) {
104
+ if (event.isUserInteraction) {
105
+ this.columns.update((prevCols) => prevCols.map((col) => (col.name === colName ? { ...col, visible: event.value } : col)));
220
106
  }
221
107
  }
222
- handleCollapsedChange(value) {
223
- if (value)
224
- this.store.dispatch(AXPLayoutChildDrawerClose());
108
+ //****************** Sorts ******************//
109
+ updateSortItem(item) {
110
+ this.sorts.update((prevSorts) => prevSorts.map((sort) => (sort.name === item.name ? { ...sort, dir: sort.dir == 'asc' ? 'desc' : 'asc' } : sort)));
225
111
  }
226
- ngOnDestroy() {
227
- this.routeParamSub?.unsubscribe();
112
+ addSortItem() {
113
+ const sortNames = this.sorts().map((p) => p.name);
114
+ console.log(this.props(), sortNames);
115
+ const name = this.props().find((c) => !sortNames.includes(c.name))?.name || this.props()[0].name;
116
+ this.sorts.update((prevSorts) => [...prevSorts, { name, dir: 'asc' }]);
228
117
  }
229
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAdminChildLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
230
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXPAdminChildLayoutComponent, selector: "ng-component", ngImport: i0, template: "<!-- <ax-drawer-container>\n <ax-drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\" (isSM | async) ? 'overlay' : 'push'\"\n (collapsedChange)=\"handleCollapsedChange($event)\">\n <ax-content class=\" ax-border-e ax-p-6 ax-w-64\">\n <p class=\"ax-text-xl ax-font-bold ax-mb-6\">{{title}}</p>\n <ax-tabs look=\"with-line\" location=\"start\">\n <ax-tab-item [text]=\"tab.text\" *ngFor=\"let tab of menuItems$ | async\" [active]=\"isActiveRoute(tab)\"\n (onClick)=\"handleMenuClick($event,tab)\">\n </ax-tab-item>\n </ax-tabs>\n </ax-content>\n </ax-drawer>\n <ax-content>\n <router-outlet></router-outlet>\n </ax-content>\n</ax-drawer-container> -->\n<router-outlet></router-outlet>", dependencies: [{ kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
231
- }
232
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAdminChildLayoutComponent, decorators: [{
233
- type: Component,
234
- args: [{ template: "<!-- <ax-drawer-container>\n <ax-drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\" (isSM | async) ? 'overlay' : 'push'\"\n (collapsedChange)=\"handleCollapsedChange($event)\">\n <ax-content class=\" ax-border-e ax-p-6 ax-w-64\">\n <p class=\"ax-text-xl ax-font-bold ax-mb-6\">{{title}}</p>\n <ax-tabs look=\"with-line\" location=\"start\">\n <ax-tab-item [text]=\"tab.text\" *ngFor=\"let tab of menuItems$ | async\" [active]=\"isActiveRoute(tab)\"\n (onClick)=\"handleMenuClick($event,tab)\">\n </ax-tab-item>\n </ax-tabs>\n </ax-content>\n </ax-drawer>\n <ax-content>\n <router-outlet></router-outlet>\n </ax-content>\n</ax-drawer-container> -->\n<router-outlet></router-outlet>" }]
235
- }], ctorParameters: () => [] });
236
-
237
- class AXPAdminChildFeaturesListComponent {
238
- constructor() {
239
- this.manuLoader = inject(AXP_MENU_LOADER);
240
- this.router = inject(Router);
241
- this.activeRoute = inject(ActivatedRoute);
242
- this.cdr = inject(ChangeDetectorRef);
243
- this.store = inject((Store));
244
- this.isSM = this.store.select(isSmallScreen());
245
- this.isOpen = this.store.select(getChildDrawer());
246
- this.menuItems$ = of();
247
- this.title = "";
248
- this.routeParamSub = this.activeRoute.params.subscribe(val => {
249
- this.loadMenuItems();
250
- });
118
+ removeSortItem(item) {
119
+ this.sorts.update((prevSorts) => prevSorts.filter((sort) => item.name != sort.name));
251
120
  }
252
- loadMenuItems() {
253
- const menu = this.manuLoader.currentMenuItem();
254
- if (menu) {
255
- this.title = menu.text;
256
- }
257
- this.menuItems$ = of(this.manuLoader.currentMenuItem()?.children ?? []);
258
- this.firstMenuSub?.unsubscribe();
259
- this.firstMenuSub = this.menuItems$
260
- .pipe(withLatestFrom(this.isSM), filter(([_, isSM]) => !isSM), map(([menuItems, _]) => menuItems.find(c => c.path)), first())
261
- .subscribe(c => {
262
- if (c?.path) {
263
- this.store.dispatch(AXPNavigateAction$1({ payload: { commands: c.path, extras: { replaceUrl: true } } }));
264
- }
265
- });
121
+ //****************** Conditions ******************//
122
+ getSchema(name) {
123
+ return this.props().find((c) => c.name == name)?.schema ?? '';
266
124
  }
267
- handleMenuClick(e, item) {
268
- if (item.command) {
269
- this.store.dispatch(item.command);
270
- }
271
- else if (item.path) {
272
- this.store.dispatch(AXPNavigateAction$1({ payload: { commands: item.path } }));
273
- }
125
+ getOperators(name) {
126
+ const schemaName = this.props().find((c) => c.name == name)?.schema ?? '';
127
+ return this.schemaRegistry.resolve(schemaName)?.filterOptions?.operators ?? [];
274
128
  }
275
- ngOnDestroy() {
276
- this.routeParamSub?.unsubscribe();
277
- this.firstMenuSub?.unsubscribe();
129
+ getDefaultOperator(name) {
130
+ const schemaName = this.props().find((c) => c.name == name)?.schema ?? '';
131
+ return this.schemaRegistry.resolve(schemaName)?.filterOptions?.default ?? EQ_OPER;
278
132
  }
279
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAdminChildFeaturesListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
280
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXPAdminChildFeaturesListComponent, selector: "ng-component", ngImport: i0, template: "<div class=\"ax-flex ax-flex-col ax-overflow-hidden\">\n <div\n class=\"ax-flex md:ax-flex-col ax-gap-4 ax-justify-between ax-px-4 ax-py-3 md:ax-py-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n <div class=\"ax-text-xl ax-font-bold\">{{title}}</div>\n </div>\n </div>\n <div class=\"ax-flex-1 ax-px-6 ax-py-4 ax-flex ax-flex-col ax-gap-2 ax-divide-y ax-divide-solid\">\n <div *ngFor=\"let item of menuItems$ | async\"\n class=\"ax-py-2 ax-font-semibold ax-flex ax-justify-between ax-cursor-pointer ax-items-center\"\n (click)=\"handleMenuClick($event,item)\">\n <span>{{item.text}}</span>\n <i class=\"fa-solid fa-chevron-right ax-text-md ax-text-slate-400 \"></i>\n </div>\n\n </div>\n</div>", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }] }); }
281
- }
282
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAdminChildFeaturesListComponent, decorators: [{
283
- type: Component,
284
- args: [{ template: "<div class=\"ax-flex ax-flex-col ax-overflow-hidden\">\n <div\n class=\"ax-flex md:ax-flex-col ax-gap-4 ax-justify-between ax-px-4 ax-py-3 md:ax-py-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n <div class=\"ax-text-xl ax-font-bold\">{{title}}</div>\n </div>\n </div>\n <div class=\"ax-flex-1 ax-px-6 ax-py-4 ax-flex ax-flex-col ax-gap-2 ax-divide-y ax-divide-solid\">\n <div *ngFor=\"let item of menuItems$ | async\"\n class=\"ax-py-2 ax-font-semibold ax-flex ax-justify-between ax-cursor-pointer ax-items-center\"\n (click)=\"handleMenuClick($event,item)\">\n <span>{{item.text}}</span>\n <i class=\"fa-solid fa-chevron-right ax-text-md ax-text-slate-400 \"></i>\n </div>\n\n </div>\n</div>" }]
285
- }], ctorParameters: () => [] });
286
-
287
- class AXPAdminChildLayoutModule {
288
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAdminChildLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
289
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: AXPAdminChildLayoutModule, declarations: [AXPAdminChildLayoutComponent, AXPAdminChildFeaturesListComponent], imports: [CommonModule,
290
- RouterModule,
291
- AXButtonModule,
292
- AXDecoratorModule,
293
- AXBadgeModule,
294
- AXDrawerModule,
295
- AXDialogModule,
296
- AXLoadingModule,
297
- AXTabsModule,
298
- AXButtonModule] }); }
299
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAdminChildLayoutModule, imports: [CommonModule,
300
- RouterModule,
301
- AXButtonModule,
302
- AXDecoratorModule,
303
- AXBadgeModule,
304
- AXDrawerModule,
305
- AXDialogModule,
306
- AXLoadingModule,
307
- AXTabsModule,
308
- AXButtonModule] }); }
309
- }
310
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAdminChildLayoutModule, decorators: [{
311
- type: NgModule,
312
- args: [{
313
- imports: [
314
- CommonModule,
315
- RouterModule,
316
- AXButtonModule,
317
- AXDecoratorModule,
318
- AXBadgeModule,
319
- AXDrawerModule,
320
- AXDialogModule,
321
- AXLoadingModule,
322
- AXTabsModule,
323
- AXButtonModule,
324
- ],
325
- exports: [],
326
- declarations: [AXPAdminChildLayoutComponent, AXPAdminChildFeaturesListComponent],
327
- providers: [],
328
- }]
329
- }] });
330
-
331
- class AXPAdminHeaderComponent {
332
- constructor() {
333
- this.store = inject((Store));
334
- this.router = inject(Router);
335
- this.isOpen = this.store.select(getRootDrawer());
133
+ getOperatorTitle(schemaName, oprName) {
134
+ return this.getOperators(schemaName).find((c) => c.name == oprName)?.title || '';
336
135
  }
337
- menuClick() {
338
- this.store.dispatch(AXPLayoutRootDrawerToggle());
136
+ resetSelectedFieldNames() {
137
+ this.selectedConditionNames = this.conditions().map((c) => c.name);
339
138
  }
340
- logoClick() {
341
- this.router.navigate(['/']);
139
+ addCondition() {
140
+ const conditions = this.selectedConditionNames.map((c) => {
141
+ const opr = this.getDefaultOperator(c);
142
+ return {
143
+ name: c,
144
+ operator: opr.name,
145
+ };
146
+ });
147
+ this.conditions.set(conditions);
342
148
  }
343
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAdminHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
344
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXPAdminHeaderComponent, selector: "axp-dashboard-admin-header", host: { classAttribute: "ax-h-16 ax-flex ax-justify-between ax-px-4 md:ax-px-0 md:ax-pe-6 ax-py-4 ax-bg-surface ax-border-b" }, ngImport: i0, template: "<div class=\"ax-w-full ax-flex ax-justify-between\">\n <div class=\"ax-flex ax-items-center md:ax-hidden\">\n <i class=\"fa-solid fa-bars ax-text-lg ax-me-3\" (click)=\"menuClick()\"></i>\n </div>\n <div class=\"ax-flex ax-items-center\">\n <div\n class=\"ax-hidden md:ax-flex ax-items-center ax-justify-center ax-w-8 ax-h-8 ax-bg-on-surface ax-rounded ax-rounded-s-none ax-me-8 ax-cursor-pointer\"\n (click)=\"menuClick()\">\n <i class=\"fa-solid fa-chevrons-left ax-text-sm\" [ngClass]=\"{ 'ax-rotate-180': !(isOpen | async) }\"> </i>\n </div>\n <axp-component-slot name=\"header-start\"></axp-component-slot>\n </div>\n <div class=\"ax-flex ax-items-center\">\n <axp-component-slot name=\"header-end\"></axp-component-slot>\n </div>\n</div>", styles: [".profile-menus ul{margin-top:.5rem;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-color-border-default),var(--tw-border-opacity));padding-left:.5rem;padding-right:.5rem}.profile-menus ul:last-child{border-width:0px}.profile-menus ul li{display:flex;cursor:pointer;border-radius:.375rem;padding:.5rem}.profile-menus ul li:last-child{margin-bottom:.5rem}.profile-menus ul li:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity))}.profile-menus ul li:hover:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity))}.profile-menus ul li i{margin-inline-end:.75rem;display:grid;height:1.5rem;width:1.5rem;place-items:center;font-size:1.25rem;line-height:1.75rem}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.AXPComponentSlotDirective, selector: "axp-component-slot", inputs: ["name"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
345
- }
346
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAdminHeaderComponent, decorators: [{
347
- type: Component,
348
- args: [{ selector: 'axp-dashboard-admin-header', encapsulation: ViewEncapsulation.None, host: {
349
- class: 'ax-h-16 ax-flex ax-justify-between ax-px-4 md:ax-px-0 md:ax-pe-6 ax-py-4 ax-bg-surface ax-border-b',
350
- }, template: "<div class=\"ax-w-full ax-flex ax-justify-between\">\n <div class=\"ax-flex ax-items-center md:ax-hidden\">\n <i class=\"fa-solid fa-bars ax-text-lg ax-me-3\" (click)=\"menuClick()\"></i>\n </div>\n <div class=\"ax-flex ax-items-center\">\n <div\n class=\"ax-hidden md:ax-flex ax-items-center ax-justify-center ax-w-8 ax-h-8 ax-bg-on-surface ax-rounded ax-rounded-s-none ax-me-8 ax-cursor-pointer\"\n (click)=\"menuClick()\">\n <i class=\"fa-solid fa-chevrons-left ax-text-sm\" [ngClass]=\"{ 'ax-rotate-180': !(isOpen | async) }\"> </i>\n </div>\n <axp-component-slot name=\"header-start\"></axp-component-slot>\n </div>\n <div class=\"ax-flex ax-items-center\">\n <axp-component-slot name=\"header-end\"></axp-component-slot>\n </div>\n</div>", styles: [".profile-menus ul{margin-top:.5rem;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-color-border-default),var(--tw-border-opacity));padding-left:.5rem;padding-right:.5rem}.profile-menus ul:last-child{border-width:0px}.profile-menus ul li{display:flex;cursor:pointer;border-radius:.375rem;padding:.5rem}.profile-menus ul li:last-child{margin-bottom:.5rem}.profile-menus ul li:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity))}.profile-menus ul li:hover:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity))}.profile-menus ul li i{margin-inline-end:.75rem;display:grid;height:1.5rem;width:1.5rem;place-items:center;font-size:1.25rem;line-height:1.75rem}\n"] }]
351
- }] });
352
-
353
- class AXPContentViewComponent {
354
- constructor() {
355
- this.hasSidebar = true;
356
- this.router = inject(Router);
357
- this.route = inject(ActivatedRoute);
358
- this.isOpen = true;
359
- this.activeFragment = signal('');
360
- this.windowWidth = signal(window.innerWidth);
361
- this.isSM = computed(() => (this.windowWidth() < 768 ? true : false));
149
+ removeCondition(item) {
150
+ this.conditions.update((prevConditions) => prevConditions.filter((con) => con.name != item.name));
362
151
  }
363
- onResize() {
364
- this.windowWidth.set(window.innerWidth);
152
+ //****************** Common ******************//
153
+ drop(type, event) {
154
+ switch (type) {
155
+ case 'columns':
156
+ this.columns.update((prevCols) => {
157
+ const columns = prevCols;
158
+ moveItemInArray(columns, event.previousIndex, event.currentIndex);
159
+ return columns;
160
+ });
161
+ break;
162
+ case 'sorts':
163
+ this.sorts.update((prevSorts) => {
164
+ const sorts = prevSorts;
165
+ moveItemInArray(sorts, event.previousIndex, event.currentIndex);
166
+ return sorts;
167
+ });
168
+ break;
169
+ case 'conditions':
170
+ this.conditions.update((prevConditions) => {
171
+ const conditions = prevConditions;
172
+ moveItemInArray(conditions, event.previousIndex, event.currentIndex);
173
+ return conditions;
174
+ });
175
+ break;
176
+ default:
177
+ break;
178
+ }
365
179
  }
366
- ngOnInit() {
367
- this.fragmentSubscription = this.route.fragment.subscribe((fragment) => {
368
- if (fragment) {
369
- const element = document.getElementById(fragment);
370
- if (element)
371
- element.scrollIntoView({ behavior: 'smooth' });
372
- this.activeFragment.set(fragment);
373
- }
374
- });
180
+ changeViewNameToggle() {
181
+ this.showNameInput.update((prev) => !prev);
375
182
  }
376
- toggleCollapse(collapsed) {
377
- this.isOpen = !collapsed;
183
+ generateViewName(title) {
184
+ return title.replace(/\s+/g, '-').toLowerCase();
378
185
  }
379
- itemClick(fragment) {
380
- if (fragment) {
381
- this.router.navigate([], {
382
- relativeTo: this.route,
383
- fragment: fragment,
186
+ handleApplyClick() {
187
+ const updatedView = {
188
+ ...this.selectedView,
189
+ name: this.generateViewName(this.selectedView.title),
190
+ conditions: this.conditions(),
191
+ columns: this.columns(),
192
+ sorts: this.sorts(),
193
+ };
194
+ if (this.viewNames.includes(updatedView.name) && this.mode == 'create') {
195
+ this.toastService.show({
196
+ title: 'Invalid Title',
197
+ content: 'The title you have chosen already exists. Please choose a different title for your custom view.',
198
+ color: 'danger',
199
+ location: 'bottom-center',
200
+ closeButton: true,
201
+ timeOut: 3000,
384
202
  });
385
203
  }
204
+ else {
205
+ this.close({ save: true, updatedView });
206
+ }
386
207
  }
387
- ngOnDestroy() {
388
- this.fragmentSubscription.unsubscribe();
389
- }
390
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPContentViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
391
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPContentViewComponent, isStandalone: true, selector: "axp-content-view", inputs: { dataSource: "dataSource", hasSidebar: ["hasSideBar", "hasSidebar"] }, host: { listeners: { "window:resize": "onResize($event)" } }, ngImport: i0, template: "<div class=\"ax-relative ax-grid\" [class.ax-grid-cols-12]=\"hasSidebar\">\n @if(hasSidebar){\n <div class=\"ax-hidden ax-fixed lg:ax-block ax-w-72 ax-right-0\">\n <ax-nav class=\"ax-h-[calc(100vh-120px)] ax-px-2 ax-py-4\">\n @for (section of dataSource.sections; track $index) {\n <ng-container [ngTemplateOutlet]=\"navTemplate\" [ngTemplateOutletContext]=\"{ $implicit: section }\"> </ng-container>\n }\n <ng-template #navTemplate let-item>\n <ax-nav-item [active]=\"activeFragment()==item.fragment\" (onClick)=\"itemClick(item.fragment)\">\n <span>{{item.title}}</span>\n <ax-prefix>\n <ax-icon [class]=\"item.icon\"></ax-icon>\n </ax-prefix>\n @if(item.children){\n <ng-container>\n @for (child of item.children; track $index) {\n <ng-container [ngTemplateOutlet]=\"navTemplate\" [ngTemplateOutletContext]=\"{ $implicit: child }\">\n </ng-container>\n }\n </ng-container>\n }\n </ax-nav-item>\n </ng-template>\n </ax-nav>\n </div>\n }\n <div\n class=\"ax-col-start-1 ax-col-end-13 lg:ax-col-end-9 2xl:ax-col-end-11 ax-flex ax-flex-col ax-gap-0 md:ax-gap-4 ax-px-6 ax-py-4 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\"\n >\n <span class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{dataSource.title}}</span>\n @if(dataSource.subTitle){\n <span>{{dataSource.subTitle}}</span>\n } @for (section of dataSource.sections; track $index) {\n <ng-container\n [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: section }\"\n ></ng-container>\n }\n <ng-template #contentTemplate let-section>\n @if(section.title){\n <h1 [id]=\"section.fragment\" class=\"ax-font-bold ax-text-lg\">{{section.title}}</h1>\n } @if(section.children){ @for (subSection of section.children; track $index) {\n <ng-container\n [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: subSection }\"\n ></ng-container>\n } }@else { @for (item of section.content; track $index){ @if(item.type===\"paragraph\"){\n\n <p>{{item.text}}</p>\n }@else {\n <ul class=\"ax-list-disc ax-ps-10\">\n @for (option of item.text; track $index) {\n <li>{{option}}</li>\n }\n </ul>\n } } }\n </ng-template>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: AXCollapseModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", 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-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AXNavModule }, { kind: "component", type: i3$1.AXNavComponent, selector: "ax-nav" }, { kind: "component", type: i3$1.AXNavItemComponent, selector: "ax-nav-item", inputs: ["disabled", "color", "active"], outputs: ["onClick", "activeChange"] }] }); }
392
- }
393
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPContentViewComponent, decorators: [{
394
- type: Component,
395
- args: [{ selector: 'axp-content-view', standalone: true, imports: [AXCollapseModule, AXDecoratorModule, CommonModule, AXNavModule], template: "<div class=\"ax-relative ax-grid\" [class.ax-grid-cols-12]=\"hasSidebar\">\n @if(hasSidebar){\n <div class=\"ax-hidden ax-fixed lg:ax-block ax-w-72 ax-right-0\">\n <ax-nav class=\"ax-h-[calc(100vh-120px)] ax-px-2 ax-py-4\">\n @for (section of dataSource.sections; track $index) {\n <ng-container [ngTemplateOutlet]=\"navTemplate\" [ngTemplateOutletContext]=\"{ $implicit: section }\"> </ng-container>\n }\n <ng-template #navTemplate let-item>\n <ax-nav-item [active]=\"activeFragment()==item.fragment\" (onClick)=\"itemClick(item.fragment)\">\n <span>{{item.title}}</span>\n <ax-prefix>\n <ax-icon [class]=\"item.icon\"></ax-icon>\n </ax-prefix>\n @if(item.children){\n <ng-container>\n @for (child of item.children; track $index) {\n <ng-container [ngTemplateOutlet]=\"navTemplate\" [ngTemplateOutletContext]=\"{ $implicit: child }\">\n </ng-container>\n }\n </ng-container>\n }\n </ax-nav-item>\n </ng-template>\n </ax-nav>\n </div>\n }\n <div\n class=\"ax-col-start-1 ax-col-end-13 lg:ax-col-end-9 2xl:ax-col-end-11 ax-flex ax-flex-col ax-gap-0 md:ax-gap-4 ax-px-6 ax-py-4 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\"\n >\n <span class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{dataSource.title}}</span>\n @if(dataSource.subTitle){\n <span>{{dataSource.subTitle}}</span>\n } @for (section of dataSource.sections; track $index) {\n <ng-container\n [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: section }\"\n ></ng-container>\n }\n <ng-template #contentTemplate let-section>\n @if(section.title){\n <h1 [id]=\"section.fragment\" class=\"ax-font-bold ax-text-lg\">{{section.title}}</h1>\n } @if(section.children){ @for (subSection of section.children; track $index) {\n <ng-container\n [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: subSection }\"\n ></ng-container>\n } }@else { @for (item of section.content; track $index){ @if(item.type===\"paragraph\"){\n\n <p>{{item.text}}</p>\n }@else {\n <ul class=\"ax-list-disc ax-ps-10\">\n @for (option of item.text; track $index) {\n <li>{{option}}</li>\n }\n </ul>\n } } }\n </ng-template>\n </div>\n</div>\n" }]
396
- }], propDecorators: { dataSource: [{
397
- type: Input,
398
- args: ['dataSource']
399
- }], hasSidebar: [{
400
- type: Input,
401
- args: ['hasSideBar']
402
- }], onResize: [{
403
- type: HostListener,
404
- args: ['window:resize', ['$event']]
405
- }] } });
406
-
407
- class AXPError401Component {
408
- constructor() {
409
- this.sessionService = inject(AXPSessionService);
410
- this.router = inject(Router);
411
- this.isAuthorized$ = this.sessionService.isAuthorized$;
208
+ handleResetClick() {
209
+ this.conditions.set(cloneDeep(this.selectedView.conditions));
210
+ this.columns.set(cloneDeep(this.selectedView.columns));
211
+ this.sorts.set(cloneDeep(this.selectedView.sorts));
412
212
  }
413
- handleHomeClick() {
414
- this.router.navigate([`/${this.sessionService.application?.name}/home`]);
415
- }
416
- handleSignInClick() {
417
- this.router.navigate([`/auth/login`]);
418
- }
419
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPError401Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
420
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPError401Component, isStandalone: true, selector: "axp-error-401", ngImport: i0, template: "<div class=\"ax-h-full ax-flex ax-flex-col ax-gap-8 ax-items-center ax-justify-center\">\n <img class=\"ax-w-3/4 md:ax-w-1/2 lg:ax-w-1/3 xl:ax-w-1/4\" src=\"/assets/images/error/error-401.svg\"\n alt=\"Oops! Error 404. No result found.\">\n <div class=\"ax-flex ax-flex-col ax-items-center ax-gap-2 md:ax-gap-4\">\n <h1 class=\"ax-font-bold ax-text-2xl md:ax-text-4xl\">Hold on a second!</h1>\n <p class=\"md:ax-text-lg ax-text-neutral-400\">Sorry, but you are not authorized to view this page.</p>\n </div>\n <div class=\"ax-flex ax-flex-col ax-gap-2 md:ax-gap-4 md:ax-flex-row\">\n @if((isAuthorized$ | async))\n {\n <ax-button (onClick)=\"handleHomeClick()\" class=\"ax-px-4\" color=\"primary\" text=\"Go back to home\"></ax-button>\n } @else {\n <ax-button (onClick)=\"handleSignInClick()\" class=\"ax-px-4\" color=\"primary\" text=\"Sign Up / Sign In\"></ax-button>\n }\n <ax-button class=\"ax-px-4\" color=\"ghost\" text=\"Contact us\"></ax-button>\n </div>\n</div>", dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }] }); }
421
- }
422
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPError401Component, decorators: [{
423
- type: Component,
424
- args: [{ selector: 'axp-error-401', imports: [AXButtonModule, CommonModule], standalone: true, template: "<div class=\"ax-h-full ax-flex ax-flex-col ax-gap-8 ax-items-center ax-justify-center\">\n <img class=\"ax-w-3/4 md:ax-w-1/2 lg:ax-w-1/3 xl:ax-w-1/4\" src=\"/assets/images/error/error-401.svg\"\n alt=\"Oops! Error 404. No result found.\">\n <div class=\"ax-flex ax-flex-col ax-items-center ax-gap-2 md:ax-gap-4\">\n <h1 class=\"ax-font-bold ax-text-2xl md:ax-text-4xl\">Hold on a second!</h1>\n <p class=\"md:ax-text-lg ax-text-neutral-400\">Sorry, but you are not authorized to view this page.</p>\n </div>\n <div class=\"ax-flex ax-flex-col ax-gap-2 md:ax-gap-4 md:ax-flex-row\">\n @if((isAuthorized$ | async))\n {\n <ax-button (onClick)=\"handleHomeClick()\" class=\"ax-px-4\" color=\"primary\" text=\"Go back to home\"></ax-button>\n } @else {\n <ax-button (onClick)=\"handleSignInClick()\" class=\"ax-px-4\" color=\"primary\" text=\"Sign Up / Sign In\"></ax-button>\n }\n <ax-button class=\"ax-px-4\" color=\"ghost\" text=\"Contact us\"></ax-button>\n </div>\n</div>" }]
425
- }] });
426
-
427
- var error401_component = /*#__PURE__*/Object.freeze({
428
- __proto__: null,
429
- AXPError401Component: AXPError401Component
430
- });
431
-
432
- class AXPError404Component {
433
- constructor() {
434
- this.sessionService = inject(AXPSessionService);
435
- this.router = inject(Router);
213
+ handleDiscardClick() {
214
+ this.close({ save: false });
436
215
  }
437
- goHome() {
438
- this.router.navigate([`/${this.sessionService.application?.name}/home`]);
216
+ handleCancelClick() {
217
+ this.close({ save: false });
439
218
  }
440
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPError404Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
441
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXPError404Component, isStandalone: true, selector: "axp-error-404", ngImport: i0, template: "<div class=\"ax-h-full ax-flex ax-flex-col ax-gap-8 ax-items-center ax-justify-center\">\n <img class=\"ax-w-3/4 md:ax-w-1/2 lg:ax-w-1/3 xl:ax-w-1/3\" src=\" /assets/images/error/error-404.svg\"\n alt=\"Oops! Error 404. No result found.\">\n <div class=\"ax-flex ax-flex-col ax-items-center ax-gap-2 md:ax-gap-4\">\n <h1 class=\"ax-font-bold ax-text-2xl md:ax-text-4xl\">No Result Found.</h1>\n <p class=\"md:ax-text-lg ax-text-neutral-400\">Whoops! Looks like that page doesn't exist.</p>\n </div>\n <div class=\"ax-flex ax-flex-col ax-gap-2 md:ax-gap-4 md:ax-flex-row\">\n <ax-button (onClick)=\"goHome()\" class=\"ax-px-4\" color=\"primary\" text=\"Go back to home\"></ax-button>\n <ax-button class=\"ax-px-4\" color=\"ghost\" text=\"Contact us\"></ax-button>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }] }); }
442
- }
443
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPError404Component, decorators: [{
444
- type: Component,
445
- args: [{ selector: 'axp-error-404', imports: [AXButtonModule], standalone: true, template: "<div class=\"ax-h-full ax-flex ax-flex-col ax-gap-8 ax-items-center ax-justify-center\">\n <img class=\"ax-w-3/4 md:ax-w-1/2 lg:ax-w-1/3 xl:ax-w-1/3\" src=\" /assets/images/error/error-404.svg\"\n alt=\"Oops! Error 404. No result found.\">\n <div class=\"ax-flex ax-flex-col ax-items-center ax-gap-2 md:ax-gap-4\">\n <h1 class=\"ax-font-bold ax-text-2xl md:ax-text-4xl\">No Result Found.</h1>\n <p class=\"md:ax-text-lg ax-text-neutral-400\">Whoops! Looks like that page doesn't exist.</p>\n </div>\n <div class=\"ax-flex ax-flex-col ax-gap-2 md:ax-gap-4 md:ax-flex-row\">\n <ax-button (onClick)=\"goHome()\" class=\"ax-px-4\" color=\"primary\" text=\"Go back to home\"></ax-button>\n <ax-button class=\"ax-px-4\" color=\"ghost\" text=\"Contact us\"></ax-button>\n </div>\n</div>" }]
446
- }] });
447
-
448
- var error404_component = /*#__PURE__*/Object.freeze({
449
- __proto__: null,
450
- AXPError404Component: AXPError404Component
451
- });
452
-
453
- class AXPErrorOfflineComponent {
454
- constructor() { }
455
- ngOnInit() { }
456
- goHome() { }
457
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPErrorOfflineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
458
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXPErrorOfflineComponent, isStandalone: true, selector: "axp-error-offline", ngImport: i0, template: "<div class=\"ax-h-full ax-flex ax-flex-col ax-gap-8 ax-items-center ax-justify-center\">\n <img class=\"ax-w-3/4 md:ax-w-1/2 lg:ax-w-1/3 xl:ax-w-1/4\" src=\"/assets/images/error/error-offline.png\"\n alt=\"Oops! Error 404. No result found.\">\n <div class=\"ax-flex ax-flex-col ax-items-center ax-gap-2 md:ax-gap-4\">\n <h1 class=\"ax-font-bold ax-text-2xl md:ax-text-4xl\">Please check your connectivity!</h1>\n <p class=\"md:ax-text-lg ax-text-neutral-400\">Sorry, it seems you don't have access to the internet.</p>\n\n </div>\n <div class=\"ax-flex ax-flex-col ax-gap-2 md:ax-gap-4 md:ax-flex-row\">\n <ax-button (onClick)=\"goHome()\" class=\"ax-px-4\" color=\"primary\" text=\"Go back to home\"></ax-button>\n <ax-button class=\"ax-px-4\" color=\"ghost\" text=\"Contact us\"></ax-button>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }] }); }
459
- }
460
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPErrorOfflineComponent, decorators: [{
461
- type: Component,
462
- args: [{ selector: 'axp-error-offline', imports: [AXButtonModule], standalone: true, template: "<div class=\"ax-h-full ax-flex ax-flex-col ax-gap-8 ax-items-center ax-justify-center\">\n <img class=\"ax-w-3/4 md:ax-w-1/2 lg:ax-w-1/3 xl:ax-w-1/4\" src=\"/assets/images/error/error-offline.png\"\n alt=\"Oops! Error 404. No result found.\">\n <div class=\"ax-flex ax-flex-col ax-items-center ax-gap-2 md:ax-gap-4\">\n <h1 class=\"ax-font-bold ax-text-2xl md:ax-text-4xl\">Please check your connectivity!</h1>\n <p class=\"md:ax-text-lg ax-text-neutral-400\">Sorry, it seems you don't have access to the internet.</p>\n\n </div>\n <div class=\"ax-flex ax-flex-col ax-gap-2 md:ax-gap-4 md:ax-flex-row\">\n <ax-button (onClick)=\"goHome()\" class=\"ax-px-4\" color=\"primary\" text=\"Go back to home\"></ax-button>\n <ax-button class=\"ax-px-4\" color=\"ghost\" text=\"Contact us\"></ax-button>\n </div>\n</div>" }]
463
- }], ctorParameters: () => [] });
464
-
465
- var errorOffline_component = /*#__PURE__*/Object.freeze({
466
- __proto__: null,
467
- AXPErrorOfflineComponent: AXPErrorOfflineComponent
468
- });
469
-
470
- class AXPLogoComponent {
471
- ngOnInit() {
472
- switch (true) {
473
- case this.source instanceof AXPTextLogoConfig:
474
- this.logoType = 'text';
475
- break;
476
- case this.source instanceof AXPImageUrlLogoConfig:
477
- this.logoType = 'url';
478
- break;
479
- case this.source instanceof AXPFontIconLogoConfig:
480
- this.logoType = 'iconClass';
481
- break;
482
- case this.source instanceof AXPComponentLogoConfig:
483
- this.logoType = 'component';
484
- break;
485
- default:
486
- break;
487
- }
219
+ handleDeleteClick() {
220
+ this.dialogService
221
+ .confirm('Warning', 'Are you sure want to delete this view?', 'danger', 'horizontal')
222
+ .then((data) => {
223
+ if (data.result) {
224
+ this.close({ delete: true, viewName: this.selectedView.name });
225
+ }
226
+ });
488
227
  }
489
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPLogoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
490
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPLogoComponent, isStandalone: true, selector: "axp-logo", inputs: { source: "source" }, host: { classAttribute: "ax-flex ax-justify-center" }, ngImport: i0, template: "@switch (logoType) {\n@case ('text') {\n<span class=\"ax-font-bold ax-select-none\">{{ source.text }}</span>\n}\n@case ('url') {\n<ax-image [src]=\"source.url\"></ax-image>\n} @case ('iconClass') {\n<ax-icon class=\"{{ source.classIcon }}\"></ax-icon>\n} @case ('component') {\n<ng-container *ngComponentOutlet=\"source.component\"></ng-container>\n}\n}", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "component", type: i2$2.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }] }); }
228
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityCreateCustomViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
229
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPEntityCreateCustomViewComponent, selector: "ng-component", inputs: { loader: "loader", mode: "mode", selectedView: "selectedView" }, providers: [
230
+ {
231
+ provide: AXUnsubscriber,
232
+ },
233
+ ], usesInheritance: true, ngImport: i0, template: "<ax-header class=\"ax-p-4 ax-flex ax-justify-between ax-border-b\">\r\n <div class=\"ax-flex ax-items-center\">\r\n @if (showNameInput() && mode==='create') {\r\n <div class=\"ax-w-60\">\r\n <ax-text-box class=\"ax-sm\" [(ngModel)]=\"selectedView.title\">\r\n @if(showNameInput()){\r\n <ax-suffix>\r\n <ax-button (onClick)=\"changeViewNameToggle()\" look=\"default\">\r\n <ax-icon class=\"fa-sodild fas fa-check ax-text-sm\"> </ax-icon>\r\n </ax-button>\r\n </ax-suffix>\r\n }\r\n </ax-text-box>\r\n </div>\r\n }@else {\r\n <span class=\"ax-text-lg ax-font-semibold\">{{ selectedView.title }}</span>\r\n } @if (mode===\"create\") {\r\n <ax-button class=\"ax-xs\" (onClick)=\"changeViewNameToggle()\" color=\"default\">\r\n @if(!showNameInput() ){\r\n <ax-icon class=\"fa-regular fa-pen ax-text-sm ax-text-neutral-600\"> </ax-icon>\r\n }\r\n </ax-button>\r\n }\r\n </div>\r\n <ax-close-button></ax-close-button>\r\n</ax-header>\r\n<div class=\"ax-p-4\">\r\n <ax-tabs [content]=\"contents\" look=\"with-line\">\r\n <ax-tab-item text=\"Columns\">\r\n <ax-suffix>\r\n <ax-badge [text]=\"visibleColumns().length.toString()\" color=\"primary\"> </ax-badge>\r\n </ax-suffix>\r\n <ax-content>\r\n <div\r\n class=\"ax-flex ax-flex-col ax-gap-4 ax-p-4 ax-select-none ax-h-[400px]\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"drop('columns', $event)\"\r\n >\r\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-overflow-auto ax-pe-2\">\r\n <ng-container *ngFor=\"let item of columns()\">\r\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\r\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\r\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\r\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title }}</p>\r\n </div>\r\n <ax-switch\r\n class=\"ax-sm\"\r\n [(ngModel)]=\"item.visible\"\r\n (onValueChanged)=\"updateColumnItem($event, item.name)\"\r\n ></ax-switch>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ax-content>\r\n </ax-tab-item>\r\n <ax-tab-item text=\"Conditions\">\r\n <ax-suffix>\r\n <ax-badge [text]=\"conditions().length.toString()\" color=\"primary\"> </ax-badge>\r\n </ax-suffix>\r\n <ax-content>\r\n <div\r\n class=\"ax-flex ax-flex-col ax-justify-start ax-gap-4 ax-py-4 ax-select-none ax-h-[400px]\"\r\n [class.ax-justify-center]=\"!conditions().length\"\r\n >\r\n @if(!conditions().length){\r\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\r\n <ax-image src=\"assets/documents.svg\"></ax-image>\r\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Filters Selected</p>\r\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\"\r\n >Please select field(s) that you want to filter</span\r\n >\r\n </div>\r\n } @else {\r\n <div class=\"ax-sorted-list ax-px-4 ax-py-1 ax-overflow-auto\">\r\n <div cdkDropList (cdkDropListDropped)=\"drop('conditions', $event)\" class=\"ax-flex ax-flex-col ax-gap-2\">\r\n @for(item of conditions(); track item.name ){\r\n <div cdkDrag cdkDragBoundary=\".ax-sorted-list\">\r\n <div class=\"ax-ms-4 ax-flex ax-items-start ax-gap-2\">\r\n <ax-label>{{ loader.getProp(item.name)?.title }}</ax-label>\r\n @if(getOperatorTitle(item.name,item.operator)){\r\n <ax-badge\r\n class=\"ax-text-xs\"\r\n color=\"primary\"\r\n [look]=\"'twotone'\"\r\n [text]=\"getOperatorTitle(item.name, item.operator)\"\r\n ></ax-badge>\r\n }\r\n </div>\r\n <div class=\"ax-flex ax-group ax-items-center ax-gap-2\">\r\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\r\n <div class=\"ax-w-full\">\r\n <axp-widget-filter-renderer\r\n [schema]=\"getSchema(item.name)\"\r\n [prop]=\"loader.getProp(item.name)\"\r\n [(value)]=\"item.value\"\r\n [(operator)]=\"item.operator\"\r\n >\r\n </axp-widget-filter-renderer>\r\n </div>\r\n <ax-button look=\"blank\" color=\"danger\" class=\"ax-sm\" (onClick)=\"removeCondition(item)\">\r\n <ax-icon class=\"fa-solid fa-trash-can\"></ax-icon>\r\n </ax-button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n <div class=\"ax-flex ax-gap-2\">\r\n <div class=\"ax-w-full\" #addField>\r\n @if(conditions().length){\r\n <ax-button color=\"primary\" text=\"Add field\" look=\"blank\" class=\"ax-sm\"></ax-button>\r\n }@else {\r\n <div class=\"ax-flex ax-justify-center ax-w-full\">\r\n <ax-button color=\"primary\" text=\"Add field\" look=\"outline\" class=\"ax-md ax-w-56\"></ax-button>\r\n </div>\r\n }\r\n <ax-popover\r\n #conditionsPopover\r\n [target]=\"addField\"\r\n [placement]=\"conditions().length ? 'bottom-start' : 'bottom'\"\r\n [offsetY]=\"8\"\r\n [openOn]=\"'toggle'\"\r\n [closeOn]=\"'clickOut'\"\r\n [adaptivityEnabled]=\"true\"\r\n (onOpened)=\"resetSelectedFieldNames()\"\r\n >\r\n <div\r\n class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-[250px]\"\r\n >\r\n <div class=\"ax-border-b-[1px] ax-pb-2 ax-mb-2 ax-p-3\">\r\n <ax-title class=\"ax-font-bold\">Fields</ax-title>\r\n </div>\r\n <div class=\"ax-max-h-48 ax-overflow-auto\">\r\n <ax-selection-list\r\n [valueField]=\"'name'\"\r\n [textField]=\"'title'\"\r\n [(ngModel)]=\"selectedConditionNames\"\r\n [direction]=\"'vertical'\"\r\n [items]=\"props()\"\r\n [multiple]=\"true\"\r\n ></ax-selection-list>\r\n </div>\r\n <div class=\"ax-flex ax-justify-end ax-border-t-[1px] ax-p-3\">\r\n <ax-button\r\n (onClick)=\"addCondition(); conditionsPopover.close()\"\r\n class=\"ax-sm\"\r\n text=\"Confirm\"\r\n color=\"primary\"\r\n >\r\n </ax-button>\r\n </div>\r\n </div>\r\n </ax-popover>\r\n </div>\r\n </div>\r\n </div>\r\n </ax-content>\r\n </ax-tab-item>\r\n <ax-tab-item text=\"Sorting\">\r\n <ax-suffix>\r\n <ax-badge [text]=\"sorts().length.toString()\" color=\"primary\"> </ax-badge>\r\n </ax-suffix>\r\n <ax-content>\r\n <div\r\n class=\"ax-flex ax-p-4 ax-flex-col ax-justify-start ax-gap-4 ax-select-none ax-overflow-auto ax-h-[400px]\"\r\n [class.ax-justify-center]=\"!sorts().length\"\r\n >\r\n @if(!sorts().length){\r\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\r\n <ax-image src=\"assets/documents.svg\"></ax-image>\r\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Sorts Selected</p>\r\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\"\r\n >Please select field(s) that you want to sort</span\r\n >\r\n </div>\r\n }@else {\r\n <div\r\n cdkDropList\r\n (cdkDropListDropped)=\"drop('sorts', $event)\"\r\n class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-py-1 ax-overflow-auto\"\r\n >\r\n <ng-container *ngFor=\"let item of sorts()\">\r\n <div class=\"ax-flex ax-gap-2 ax-items-center\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\r\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\r\n <ax-select-box [dataSource]=\"props()\" valueField=\"name\" textField=\"title\" [(ngModel)]=\"item.name\">\r\n </ax-select-box>\r\n <ax-button [color]=\"'default'\" class=\"ax-sm\" (click)=\"updateSortItem(item)\">\r\n <ax-icon\r\n [class.ax-text-primary]=\"item.dir == 'asc'\"\r\n class=\"fa-solid fa-arrow-up-long ax-text-neutral-400\"\r\n ></ax-icon>\r\n <ax-icon\r\n [class.ax-text-primary]=\"item.dir == 'desc'\"\r\n class=\"fa-solid fa-arrow-down-long ax-text-neutral-400\"\r\n ></ax-icon>\r\n </ax-button>\r\n\r\n <ax-button look=\"blank\" (onClick)=\"removeSortItem(item)\">\r\n <ax-icon class=\"fa-solid fa-trash-can ax-text-danger-500\"></ax-icon>\r\n </ax-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n }\r\n\r\n <div class=\"ax-flex ax-gap-2\">\r\n <div class=\"ax-w-full\" #addField>\r\n @if(sorts().length){\r\n <ax-button\r\n (onClick)=\"addSortItem()\"\r\n color=\"primary\"\r\n text=\"Add field\"\r\n look=\"blank\"\r\n class=\"ax-sm\"\r\n ></ax-button>\r\n }@else {\r\n <div class=\"ax-flex ax-justify-center ax-w-full\">\r\n <ax-button\r\n (onClick)=\"addSortItem()\"\r\n color=\"primary\"\r\n text=\"Add field\"\r\n look=\"outline\"\r\n class=\"ax-md ax-w-56\"\r\n ></ax-button>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </ax-content>\r\n </ax-tab-item>\r\n </ax-tabs>\r\n <ng-template [axTabContent] #contents=\"axTabContent\"> </ng-template>\r\n</div>\r\n<ax-footer class=\"!ax-justify-end\">\r\n @if (mode===\"edit\") {\r\n <ax-dropdown-button text=\"Discard\" (onClick)=\"handleDiscardClick()\">\r\n <ax-button-item-list>\r\n <ax-button-item text=\"Reset\" (onClick)=\"handleResetClick()\">\r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-rotate-left fa-flip-horizontal\"></ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n <ax-button-item class=\"ax-text-danger\" text=\"Delete\" (onClick)=\"handleDeleteClick()\">\r\n <ax-prefix> <ax-icon icon=\"fas fa-trash fa-flip-horizontal\"></ax-icon> </ax-prefix\r\n ></ax-button-item>\r\n </ax-button-item-list>\r\n </ax-dropdown-button>\r\n } @else {\r\n <ax-button text=\"Cancel\" look=\"outline\" (onClick)=\"handleCancelClick()\"></ax-button>\r\n }\r\n <ax-button\r\n [text]=\"mode === 'create' ? 'Save' : 'Save Changes'\"\r\n color=\"primary\"\r\n (onClick)=\"handleApplyClick()\"\r\n ></ax-button>\r\n</ax-footer>\r\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "component", type: i4$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4$1.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "component", type: i4$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i5.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "component", type: i6.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i7.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "component", type: i8.AXSwitchComponent, selector: "ax-switch", inputs: ["disabled", "readonly", "color", "tabIndex", "value", "name", "isLoading"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged", "readonlyChange", "disabledChange"] }, { kind: "component", type: i9.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i9.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "directive", type: i9.AXTabContentDirective, selector: "[axTabContent]", inputs: ["axTabContent"], exportAs: ["axTabContent"] }, { kind: "component", type: i10.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "dataSource", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }, { kind: "component", type: i11.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: "component", type: i7$1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "component", type: i13.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "size", "value", "valueField", "textField", "hintField", "disabledField", "readonlyField", "multiple", "direction", "customTemplate", "showControl", "items", "look"], outputs: ["onValueChanged", "onBlur", "onFocus"] }, { kind: "component", type: i14.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "directive", type: i15.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i15.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i15.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i10$1.AXPWidgetFilterRendererComponent, selector: "axp-widget-filter-renderer", inputs: ["value", "operator", "prop", "schema"], outputs: ["valueChange", "operatorChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
491
234
  }
492
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPLogoComponent, decorators: [{
235
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityCreateCustomViewComponent, decorators: [{
493
236
  type: Component,
494
- args: [{ selector: 'axp-logo', standalone: true, imports: [CommonModule, AXImageModule, AXDecoratorModule], host: { 'class': 'ax-flex ax-justify-center' }, template: "@switch (logoType) {\n@case ('text') {\n<span class=\"ax-font-bold ax-select-none\">{{ source.text }}</span>\n}\n@case ('url') {\n<ax-image [src]=\"source.url\"></ax-image>\n} @case ('iconClass') {\n<ax-icon class=\"{{ source.classIcon }}\"></ax-icon>\n} @case ('component') {\n<ng-container *ngComponentOutlet=\"source.component\"></ng-container>\n}\n}" }]
495
- }], propDecorators: { source: [{
237
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, providers: [
238
+ {
239
+ provide: AXUnsubscriber,
240
+ },
241
+ ], template: "<ax-header class=\"ax-p-4 ax-flex ax-justify-between ax-border-b\">\r\n <div class=\"ax-flex ax-items-center\">\r\n @if (showNameInput() && mode==='create') {\r\n <div class=\"ax-w-60\">\r\n <ax-text-box class=\"ax-sm\" [(ngModel)]=\"selectedView.title\">\r\n @if(showNameInput()){\r\n <ax-suffix>\r\n <ax-button (onClick)=\"changeViewNameToggle()\" look=\"default\">\r\n <ax-icon class=\"fa-sodild fas fa-check ax-text-sm\"> </ax-icon>\r\n </ax-button>\r\n </ax-suffix>\r\n }\r\n </ax-text-box>\r\n </div>\r\n }@else {\r\n <span class=\"ax-text-lg ax-font-semibold\">{{ selectedView.title }}</span>\r\n } @if (mode===\"create\") {\r\n <ax-button class=\"ax-xs\" (onClick)=\"changeViewNameToggle()\" color=\"default\">\r\n @if(!showNameInput() ){\r\n <ax-icon class=\"fa-regular fa-pen ax-text-sm ax-text-neutral-600\"> </ax-icon>\r\n }\r\n </ax-button>\r\n }\r\n </div>\r\n <ax-close-button></ax-close-button>\r\n</ax-header>\r\n<div class=\"ax-p-4\">\r\n <ax-tabs [content]=\"contents\" look=\"with-line\">\r\n <ax-tab-item text=\"Columns\">\r\n <ax-suffix>\r\n <ax-badge [text]=\"visibleColumns().length.toString()\" color=\"primary\"> </ax-badge>\r\n </ax-suffix>\r\n <ax-content>\r\n <div\r\n class=\"ax-flex ax-flex-col ax-gap-4 ax-p-4 ax-select-none ax-h-[400px]\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"drop('columns', $event)\"\r\n >\r\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-overflow-auto ax-pe-2\">\r\n <ng-container *ngFor=\"let item of columns()\">\r\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\r\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\r\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\r\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title }}</p>\r\n </div>\r\n <ax-switch\r\n class=\"ax-sm\"\r\n [(ngModel)]=\"item.visible\"\r\n (onValueChanged)=\"updateColumnItem($event, item.name)\"\r\n ></ax-switch>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ax-content>\r\n </ax-tab-item>\r\n <ax-tab-item text=\"Conditions\">\r\n <ax-suffix>\r\n <ax-badge [text]=\"conditions().length.toString()\" color=\"primary\"> </ax-badge>\r\n </ax-suffix>\r\n <ax-content>\r\n <div\r\n class=\"ax-flex ax-flex-col ax-justify-start ax-gap-4 ax-py-4 ax-select-none ax-h-[400px]\"\r\n [class.ax-justify-center]=\"!conditions().length\"\r\n >\r\n @if(!conditions().length){\r\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\r\n <ax-image src=\"assets/documents.svg\"></ax-image>\r\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Filters Selected</p>\r\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\"\r\n >Please select field(s) that you want to filter</span\r\n >\r\n </div>\r\n } @else {\r\n <div class=\"ax-sorted-list ax-px-4 ax-py-1 ax-overflow-auto\">\r\n <div cdkDropList (cdkDropListDropped)=\"drop('conditions', $event)\" class=\"ax-flex ax-flex-col ax-gap-2\">\r\n @for(item of conditions(); track item.name ){\r\n <div cdkDrag cdkDragBoundary=\".ax-sorted-list\">\r\n <div class=\"ax-ms-4 ax-flex ax-items-start ax-gap-2\">\r\n <ax-label>{{ loader.getProp(item.name)?.title }}</ax-label>\r\n @if(getOperatorTitle(item.name,item.operator)){\r\n <ax-badge\r\n class=\"ax-text-xs\"\r\n color=\"primary\"\r\n [look]=\"'twotone'\"\r\n [text]=\"getOperatorTitle(item.name, item.operator)\"\r\n ></ax-badge>\r\n }\r\n </div>\r\n <div class=\"ax-flex ax-group ax-items-center ax-gap-2\">\r\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\r\n <div class=\"ax-w-full\">\r\n <axp-widget-filter-renderer\r\n [schema]=\"getSchema(item.name)\"\r\n [prop]=\"loader.getProp(item.name)\"\r\n [(value)]=\"item.value\"\r\n [(operator)]=\"item.operator\"\r\n >\r\n </axp-widget-filter-renderer>\r\n </div>\r\n <ax-button look=\"blank\" color=\"danger\" class=\"ax-sm\" (onClick)=\"removeCondition(item)\">\r\n <ax-icon class=\"fa-solid fa-trash-can\"></ax-icon>\r\n </ax-button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n <div class=\"ax-flex ax-gap-2\">\r\n <div class=\"ax-w-full\" #addField>\r\n @if(conditions().length){\r\n <ax-button color=\"primary\" text=\"Add field\" look=\"blank\" class=\"ax-sm\"></ax-button>\r\n }@else {\r\n <div class=\"ax-flex ax-justify-center ax-w-full\">\r\n <ax-button color=\"primary\" text=\"Add field\" look=\"outline\" class=\"ax-md ax-w-56\"></ax-button>\r\n </div>\r\n }\r\n <ax-popover\r\n #conditionsPopover\r\n [target]=\"addField\"\r\n [placement]=\"conditions().length ? 'bottom-start' : 'bottom'\"\r\n [offsetY]=\"8\"\r\n [openOn]=\"'toggle'\"\r\n [closeOn]=\"'clickOut'\"\r\n [adaptivityEnabled]=\"true\"\r\n (onOpened)=\"resetSelectedFieldNames()\"\r\n >\r\n <div\r\n class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-[250px]\"\r\n >\r\n <div class=\"ax-border-b-[1px] ax-pb-2 ax-mb-2 ax-p-3\">\r\n <ax-title class=\"ax-font-bold\">Fields</ax-title>\r\n </div>\r\n <div class=\"ax-max-h-48 ax-overflow-auto\">\r\n <ax-selection-list\r\n [valueField]=\"'name'\"\r\n [textField]=\"'title'\"\r\n [(ngModel)]=\"selectedConditionNames\"\r\n [direction]=\"'vertical'\"\r\n [items]=\"props()\"\r\n [multiple]=\"true\"\r\n ></ax-selection-list>\r\n </div>\r\n <div class=\"ax-flex ax-justify-end ax-border-t-[1px] ax-p-3\">\r\n <ax-button\r\n (onClick)=\"addCondition(); conditionsPopover.close()\"\r\n class=\"ax-sm\"\r\n text=\"Confirm\"\r\n color=\"primary\"\r\n >\r\n </ax-button>\r\n </div>\r\n </div>\r\n </ax-popover>\r\n </div>\r\n </div>\r\n </div>\r\n </ax-content>\r\n </ax-tab-item>\r\n <ax-tab-item text=\"Sorting\">\r\n <ax-suffix>\r\n <ax-badge [text]=\"sorts().length.toString()\" color=\"primary\"> </ax-badge>\r\n </ax-suffix>\r\n <ax-content>\r\n <div\r\n class=\"ax-flex ax-p-4 ax-flex-col ax-justify-start ax-gap-4 ax-select-none ax-overflow-auto ax-h-[400px]\"\r\n [class.ax-justify-center]=\"!sorts().length\"\r\n >\r\n @if(!sorts().length){\r\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\r\n <ax-image src=\"assets/documents.svg\"></ax-image>\r\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Sorts Selected</p>\r\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\"\r\n >Please select field(s) that you want to sort</span\r\n >\r\n </div>\r\n }@else {\r\n <div\r\n cdkDropList\r\n (cdkDropListDropped)=\"drop('sorts', $event)\"\r\n class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-py-1 ax-overflow-auto\"\r\n >\r\n <ng-container *ngFor=\"let item of sorts()\">\r\n <div class=\"ax-flex ax-gap-2 ax-items-center\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\r\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\r\n <ax-select-box [dataSource]=\"props()\" valueField=\"name\" textField=\"title\" [(ngModel)]=\"item.name\">\r\n </ax-select-box>\r\n <ax-button [color]=\"'default'\" class=\"ax-sm\" (click)=\"updateSortItem(item)\">\r\n <ax-icon\r\n [class.ax-text-primary]=\"item.dir == 'asc'\"\r\n class=\"fa-solid fa-arrow-up-long ax-text-neutral-400\"\r\n ></ax-icon>\r\n <ax-icon\r\n [class.ax-text-primary]=\"item.dir == 'desc'\"\r\n class=\"fa-solid fa-arrow-down-long ax-text-neutral-400\"\r\n ></ax-icon>\r\n </ax-button>\r\n\r\n <ax-button look=\"blank\" (onClick)=\"removeSortItem(item)\">\r\n <ax-icon class=\"fa-solid fa-trash-can ax-text-danger-500\"></ax-icon>\r\n </ax-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n }\r\n\r\n <div class=\"ax-flex ax-gap-2\">\r\n <div class=\"ax-w-full\" #addField>\r\n @if(sorts().length){\r\n <ax-button\r\n (onClick)=\"addSortItem()\"\r\n color=\"primary\"\r\n text=\"Add field\"\r\n look=\"blank\"\r\n class=\"ax-sm\"\r\n ></ax-button>\r\n }@else {\r\n <div class=\"ax-flex ax-justify-center ax-w-full\">\r\n <ax-button\r\n (onClick)=\"addSortItem()\"\r\n color=\"primary\"\r\n text=\"Add field\"\r\n look=\"outline\"\r\n class=\"ax-md ax-w-56\"\r\n ></ax-button>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </ax-content>\r\n </ax-tab-item>\r\n </ax-tabs>\r\n <ng-template [axTabContent] #contents=\"axTabContent\"> </ng-template>\r\n</div>\r\n<ax-footer class=\"!ax-justify-end\">\r\n @if (mode===\"edit\") {\r\n <ax-dropdown-button text=\"Discard\" (onClick)=\"handleDiscardClick()\">\r\n <ax-button-item-list>\r\n <ax-button-item text=\"Reset\" (onClick)=\"handleResetClick()\">\r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-rotate-left fa-flip-horizontal\"></ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n <ax-button-item class=\"ax-text-danger\" text=\"Delete\" (onClick)=\"handleDeleteClick()\">\r\n <ax-prefix> <ax-icon icon=\"fas fa-trash fa-flip-horizontal\"></ax-icon> </ax-prefix\r\n ></ax-button-item>\r\n </ax-button-item-list>\r\n </ax-dropdown-button>\r\n } @else {\r\n <ax-button text=\"Cancel\" look=\"outline\" (onClick)=\"handleCancelClick()\"></ax-button>\r\n }\r\n <ax-button\r\n [text]=\"mode === 'create' ? 'Save' : 'Save Changes'\"\r\n color=\"primary\"\r\n (onClick)=\"handleApplyClick()\"\r\n ></ax-button>\r\n</ax-footer>\r\n" }]
242
+ }], propDecorators: { loader: [{
496
243
  type: Input
497
- }] } });
498
-
499
- class AXPFooterTextSlotComponent {
500
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPFooterTextSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
501
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXPFooterTextSlotComponent, isStandalone: true, selector: "ng-component", inputs: { text: "text" }, ngImport: i0, template: `
502
- <small class="ax-text-sm ax-text-neutral-400" [innerHTML]="text"></small>
503
- `, isInline: true }); }
504
- }
505
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPFooterTextSlotComponent, decorators: [{
506
- type: Component,
507
- args: [{
508
- template: `
509
- <small class="ax-text-sm ax-text-neutral-400" [innerHTML]="text"></small>
510
- `,
511
- standalone: true
512
- }]
513
- }], propDecorators: { text: [{
244
+ }], mode: [{
514
245
  type: Input
515
- }] } });
516
-
517
- class AXPNavBarSlotComponent {
518
- constructor() {
519
- this.store = inject(Store);
520
- }
521
- handleCommand(action) {
522
- if (action)
523
- this.store.dispatch(action);
524
- }
525
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPNavBarSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
526
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXPNavBarSlotComponent, isStandalone: true, selector: "ng-component", inputs: { items: "items" }, ngImport: i0, template: `
527
- <div class="ax-flex ax-items-center ax-justify-between ax-gap-5">
528
- <a *ngFor="let link of items" (click)="handleCommand(link.command)" >{{ link.text }}</a>
529
- </div>
530
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], encapsulation: i0.ViewEncapsulation.None }); }
531
- }
532
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPNavBarSlotComponent, decorators: [{
533
- type: Component,
534
- args: [{
535
- template: `
536
- <div class="ax-flex ax-items-center ax-justify-between ax-gap-5">
537
- <a *ngFor="let link of items" (click)="handleCommand(link.command)" >{{ link.text }}</a>
538
- </div>
539
- `,
540
- standalone: true,
541
- imports: [CommonModule],
542
- encapsulation: ViewEncapsulation.None
543
- }]
544
- }], propDecorators: { items: [{
246
+ }], selectedView: [{
545
247
  type: Input
546
248
  }] } });
547
249
 
548
- class AXPThemeSlotComponent {
250
+ class AXPListViewOptionsColumnsComponent {
549
251
  constructor() {
550
252
  this.store = inject((Store));
551
- this.isDark = this.store.select(isDarkTheme());
552
- }
553
- switchMode() {
554
- this.store.dispatch(AXPLayoutThemeDarkToggleAction());
555
- }
556
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPThemeSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
557
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXPThemeSlotComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
558
- <ax-button color="default" look="blank" (onClick)="switchMode()">
559
- <ax-icon>
560
- <i class="fa-solid fa-brightness ax-text-slate-400 dark:ax-text-slate-200" *ngIf="isDark | async"></i>
561
- <i class="fa-solid fa-moon ax-text-slate-400 dark:ax-text-slate-200" *ngIf="!(isDark | async)"></i>
562
- </ax-icon>
563
- </ax-button>
564
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }] }); }
565
- }
566
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPThemeSlotComponent, decorators: [{
567
- type: Component,
568
- args: [{
569
- template: `
570
- <ax-button color="default" look="blank" (onClick)="switchMode()">
571
- <ax-icon>
572
- <i class="fa-solid fa-brightness ax-text-slate-400 dark:ax-text-slate-200" *ngIf="isDark | async"></i>
573
- <i class="fa-solid fa-moon ax-text-slate-400 dark:ax-text-slate-200" *ngIf="!(isDark | async)"></i>
574
- </ax-icon>
575
- </ax-button>
576
- `,
577
- standalone: true,
578
- imports: [
579
- CommonModule,
580
- AXButtonModule,
581
- AXDecoratorModule
582
- ]
583
- }]
584
- }] });
585
-
586
- const AXPEntityListViewConfigEmpty = {
587
- fixed: false,
588
- columns: [],
589
- conditions: [],
590
- sorts: [],
591
- name: 'empty',
592
- title: 'Empty',
593
- };
594
- function convertPropertyToColumn(property) {
595
- return {
596
- //TODO: merge format function
597
- schema: property.schema,
598
- name: property.name,
599
- title: property.title,
600
- visible: true,
601
- displayFormat: property.formats?.list ?? property.formats?.default,
602
- sortOptions: {
603
- enabled: property.canSort,
604
- property: property.name,
605
- },
606
- filterOptions: {
607
- enabled: property.canFilter,
608
- property: property.name,
609
- },
610
- options: merge(cloneDeep(property.component?.common?.options), property.component?.column?.options),
611
- };
612
- }
613
- function convertPropertiesToColumns(...propertis) {
614
- return propertis.map((p) => convertPropertyToColumn(p));
615
- }
616
-
617
- class AXEntityLoaderDefault {
618
- async get(moduleName, entityName) {
619
- return null;
620
- }
621
- }
622
- const AXP_ENTITY_LOADER = new InjectionToken('AXP_ENTITY_LOADER', {
623
- providedIn: 'root',
624
- factory: () => {
625
- return new AXEntityLoaderDefault();
626
- },
627
- });
628
-
629
- class AXPEntityRegistryService {
630
- constructor() {
631
- // Stores AXPEntityConfig objects, keyed by a combination of module and entity name.
632
- this.entities = new Map();
633
- // Entity loader service for dynamically loading entity configurations.
634
- this.loader = inject(AXP_ENTITY_LOADER); // Assuming AXPEntityLoader is the correct type
253
+ this.isSM = this.store.select(isSmallScreen());
254
+ this.columns$ = of([]);
255
+ this.onClosed = new EventEmitter();
635
256
  }
636
- /**
637
- * Registers a new entity configuration. Entities are identified uniquely by a combination
638
- * of their module and name.
639
- *
640
- * @param config The configuration object of the entity to be registered.
641
- */
642
- register(config) {
643
- const key = this.createEntityKey(config.module, config.name);
644
- this.entities.set(key, config);
257
+ ngOnInit() {
258
+ this.columns$ = this.loader.displayColumns$;
645
259
  }
646
- /**
647
- * Resolves an entity configuration based on module and entity name. If the configuration
648
- * is not already registered, attempts to load it dynamically. Throws an error if the
649
- * entity cannot be found or loaded.
650
- *
651
- * @param moduleName The module name of the entity.
652
- * @param entityName The name of the entity.
653
- * @returns A promise resolving to the entity configuration.
654
- * @throws Error if the entity configuration cannot be resolved.
655
- */
656
- async resolve(moduleName, entityName) {
657
- const key = this.createEntityKey(moduleName, entityName);
658
- let config = this.entities.get(key) ?? null;
659
- if (!config) {
660
- try {
661
- config = await this.loader.get(moduleName, entityName);
662
- if (config) {
663
- this.register(config);
664
- }
665
- }
666
- catch (error) {
667
- console.error(`Error loading entity '${key}':`, error);
668
- throw error; // Rethrow to allow error handling by caller
669
- }
670
- if (!config) {
671
- throw new Error(`Invalid Entity name: ${key}`);
672
- }
260
+ handleVisibilityChange(e, name) {
261
+ if (e.isUserInteraction) {
262
+ this.loader.setColumnVisibility(name, e.value);
673
263
  }
674
- return config;
675
264
  }
676
- /**
677
- * Creates a unique key for an entity based on its module and name.
678
- *
679
- * @param moduleName The module name of the entity.
680
- * @param entityName The name of the entity.
681
- * @returns The unique key for the entity.
682
- */
683
- createEntityKey(moduleName, entityName) {
684
- return `${moduleName}.${entityName}`;
265
+ drop(event) {
266
+ this.columns$.pipe(first()).subscribe((columns) => {
267
+ moveItemInArray(columns, event.previousIndex, event.currentIndex);
268
+ });
269
+ }
270
+ handleClose() {
271
+ this.onClosed.emit();
272
+ }
273
+ handleResetClick() {
274
+ this.loader.resetColumns();
685
275
  }
686
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
687
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityRegistryService, providedIn: 'root' }); }
276
+ handleApplyClick() {
277
+ this.columns$.pipe(first()).subscribe((data) => {
278
+ this.loader.updateColumns(data);
279
+ });
280
+ this.onClosed.emit();
281
+ }
282
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPListViewOptionsColumnsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
283
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXPListViewOptionsColumnsComponent, selector: "axp-list-view-option-columns", inputs: { loader: "loader" }, outputs: { onClosed: "onClosed" }, ngImport: i0, template: "<ax-header class=\"ax-flex ax-items-center\">\r\n <h2 class=\"ax-text-xl ax-font-bold\">Columns</h2>\r\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\r\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\r\n </ax-button>\r\n</ax-header>\r\n<div class=\"ax-flex ax-flex-col ax-gap-4 ax-p-4 ax-select-none\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-max-h-[calc(100vh-280px)] ax-overflow-auto\">\r\n <ng-container *ngFor=\"let item of columns$ | async\">\r\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\r\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\r\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\r\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title }}</p>\r\n </div>\r\n <ax-switch\r\n class=\"ax-sm\"\r\n [ngModel]=\"item.visible\"\r\n (onValueChanged)=\"handleVisibilityChange($event, item.name)\"\r\n ></ax-switch>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n<ax-footer class=\"!ax-justify-start ax-absolute ax-bottom-0 ax-w-full\">\r\n <ax-button text=\"Apply\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\r\n <ax-button text=\"Reset\" color=\"ghost\" (onClick)=\"handleResetClick()\"></ax-button>\r\n</ax-footer>\r\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i4$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i8.AXSwitchComponent, selector: "ax-switch", inputs: ["disabled", "readonly", "color", "tabIndex", "value", "name", "isLoading"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged", "readonlyChange", "disabledChange"] }, { kind: "directive", type: i15.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i15.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i15.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
688
284
  }
689
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityRegistryService, decorators: [{
690
- type: Injectable,
691
- args: [{
692
- providedIn: 'root',
693
- }]
694
- }] });
285
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPListViewOptionsColumnsComponent, decorators: [{
286
+ type: Component,
287
+ args: [{ selector: 'axp-list-view-option-columns', template: "<ax-header class=\"ax-flex ax-items-center\">\r\n <h2 class=\"ax-text-xl ax-font-bold\">Columns</h2>\r\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\r\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\r\n </ax-button>\r\n</ax-header>\r\n<div class=\"ax-flex ax-flex-col ax-gap-4 ax-p-4 ax-select-none\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-max-h-[calc(100vh-280px)] ax-overflow-auto\">\r\n <ng-container *ngFor=\"let item of columns$ | async\">\r\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\r\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\r\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\r\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title }}</p>\r\n </div>\r\n <ax-switch\r\n class=\"ax-sm\"\r\n [ngModel]=\"item.visible\"\r\n (onValueChanged)=\"handleVisibilityChange($event, item.name)\"\r\n ></ax-switch>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n<ax-footer class=\"!ax-justify-start ax-absolute ax-bottom-0 ax-w-full\">\r\n <ax-button text=\"Apply\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\r\n <ax-button text=\"Reset\" color=\"ghost\" (onClick)=\"handleResetClick()\"></ax-button>\r\n</ax-footer>\r\n" }]
288
+ }], propDecorators: { loader: [{
289
+ type: Input
290
+ }], onClosed: [{
291
+ type: Output
292
+ }] } });
695
293
 
696
- class AXPLayoutService {
294
+ class AXPListViewOptionConditionsComponent {
697
295
  constructor() {
698
- this.minimumDisplayTime = 500; // milliseconds
699
- //
700
- this.navigationLoadingSubject = new BehaviorSubject(false);
701
- this.navigationLoadingTaskCount = 0;
702
- this.navigationLoadingStateActive = false;
703
- //
704
- this.overlayLoadingSubject = new BehaviorSubject(false);
705
- this.overlayLoadingTaskCount = 0;
706
- this.overlayLoadingStateActive = false;
707
- }
708
- get navigationLoading$() {
709
- return this.navigationLoadingSubject.asObservable();
710
- }
711
- setNavigationLoading(value) {
712
- if (value) {
713
- this.navigationLoadingTaskCount++;
714
- this.updateNavigationLoadingState(true);
715
- }
716
- else {
717
- if (this.navigationLoadingTaskCount > 0) {
718
- this.navigationLoadingTaskCount--;
719
- }
720
- if (this.navigationLoadingTaskCount === 0) {
721
- // Start timer to keep loading state for minimum display time
722
- timer(this.minimumDisplayTime).subscribe(() => {
723
- if (this.navigationLoadingTaskCount === 0) {
724
- this.updateNavigationLoadingState(false);
725
- }
726
- });
727
- }
728
- }
296
+ this.onClosed = new EventEmitter();
297
+ this.schemaRegistery = inject(AXPSchemaRegistryService);
298
+ this.popopService = inject(AXPopupService);
299
+ this.isSM = false;
300
+ this.props$ = of([]);
301
+ this.props = [];
302
+ this.conditions$ = of([]);
303
+ this.selectedFieldNames = [];
729
304
  }
730
- updateNavigationLoadingState(state) {
731
- if (state !== this.navigationLoadingStateActive) {
732
- this.navigationLoadingStateActive = state;
733
- this.navigationLoadingSubject.next(state);
734
- }
305
+ onNameChange(item) {
306
+ console.log('onName changed!', item);
735
307
  }
736
- get overlayLoading$() {
737
- return this.overlayLoadingSubject.asObservable();
308
+ ngOnInit() {
309
+ this.props$ = this.loader.properties$.pipe(map((sorts) => sorts.filter((s) => s.canFilter != false)));
310
+ this.conditions$ = this.loader.conditions$;
311
+ this.conditions$.pipe(first()).subscribe((initialConditions) => {
312
+ this.selectedFieldNames = initialConditions.map((i) => i.name);
313
+ });
314
+ this.props$.pipe(first()).subscribe((data) => {
315
+ this.props = data;
316
+ });
738
317
  }
739
- setOverlayLoading(value) {
740
- if (value) {
741
- this.overlayLoadingTaskCount++;
742
- this.updateOverlayLoadingState(true);
743
- }
744
- else {
745
- if (this.overlayLoadingTaskCount > 0) {
746
- this.overlayLoadingTaskCount--;
747
- }
748
- if (this.overlayLoadingTaskCount === 0) {
749
- // Start timer to keep loading state for minimum display time
750
- timer(this.minimumDisplayTime).subscribe(() => {
751
- if (this.overlayLoadingTaskCount === 0) {
752
- this.updateOverlayLoadingState(false);
753
- }
754
- });
755
- }
756
- }
318
+ getOperators(name) {
319
+ const schemaName = this.props.find((c) => c.name == name)?.schema ?? '';
320
+ return this.schemaRegistery.resolve(schemaName)?.filterOptions?.operators ?? [];
757
321
  }
758
- updateOverlayLoadingState(state) {
759
- if (state !== this.overlayLoadingStateActive) {
760
- this.overlayLoadingStateActive = state;
761
- this.overlayLoadingSubject.next(state);
762
- }
322
+ getDefaultOperator(name) {
323
+ const schemaName = this.props.find((c) => c.name == name)?.schema ?? '';
324
+ return this.schemaRegistery.resolve(schemaName)?.filterOptions?.default ?? EQ_OPER;
763
325
  }
764
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPLayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
765
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPLayoutService, providedIn: 'root' }); }
766
- }
767
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPLayoutService, decorators: [{
768
- type: Injectable,
769
- args: [{ providedIn: 'root' }]
770
- }] });
771
-
772
- //TODO Loading, Redirect, Drawer, Show toast
773
- const AXPRedirectEvent = createWorkFlowEvent('Redirect Event Fired');
774
- class AXPNavigateAction extends AXPWorkflowAction {
775
- constructor() {
776
- super(...arguments);
777
- this.router = inject(Router);
326
+ getOperatorTitle(schemaName, oprName) {
327
+ return this.getOperators(schemaName).find((c) => c.name == oprName)?.title || '';
778
328
  }
779
- async execute(context) {
780
- const payload = context.getVariable('payload');
781
- if (Array.isArray(payload.commands))
782
- this.router.navigate(payload.commands, payload.extras);
783
- else {
784
- if (payload.commands.toLowerCase().startsWith('http'))
785
- window.open(payload.commands, '_blank');
786
- else
787
- this.router.navigate([payload.commands], payload.extras);
788
- }
329
+ getSchema(name) {
330
+ return this.props.find((c) => c.name == name)?.schema ?? '';
789
331
  }
790
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPNavigateAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
791
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPNavigateAction }); }
792
- }
793
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPNavigateAction, decorators: [{
794
- type: Injectable
795
- }] });
796
- class AXPDialogConfirmAction extends AXPWorkflowAction {
797
- constructor() {
798
- super(...arguments);
799
- this.dialogService = inject(AXDialogService);
332
+ drop(event) {
333
+ this.conditions$.pipe(first()).subscribe((conditions) => {
334
+ console.log('conditions: ', conditions);
335
+ moveItemInArray(conditions, event.previousIndex, event.currentIndex);
336
+ });
800
337
  }
801
- async execute(context) {
802
- context.setOutput('deleteConfirmed', false);
803
- const dialogResult = await this.dialogService.confirm(this.title, this.message, this.type);
804
- context.setOutput('deleteConfirmed', dialogResult.result);
338
+ handleClose() {
339
+ this.onClosed.emit();
805
340
  }
806
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPDialogConfirmAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
807
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPDialogConfirmAction }); }
808
- }
809
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPDialogConfirmAction, decorators: [{
810
- type: Injectable
811
- }] });
812
- class AXPToastAction extends AXPWorkflowAction {
813
- constructor() {
814
- super(...arguments);
815
- this.toastService = inject(AXToastService);
341
+ handleRemoveCondition(item) {
342
+ this.selectedFieldNames = this.selectedFieldNames.filter((i) => i !== item.name);
343
+ this.loader.removeCondition(item);
816
344
  }
817
- async execute(context) {
818
- this.toastService.show({
819
- color: this.color,
820
- title: this.title,
821
- content: this.content,
822
- closeButton: true,
823
- timeOut: 3000,
824
- timeOutProgress: true,
345
+ resetSelectedFieldNames() {
346
+ this.conditions$.pipe(first()).subscribe((initialConditions) => {
347
+ this.selectedFieldNames = initialConditions.map((i) => i.name);
825
348
  });
826
349
  }
827
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPToastAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
828
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPToastAction }); }
829
- }
830
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPToastAction, decorators: [{
831
- type: Injectable
832
- }] });
833
- class AXPShowDetailViewAction extends AXPWorkflowAction {
834
- constructor() {
835
- super(...arguments);
836
- this.navigation = inject(AXPNavigateAction);
837
- this.sessionService = inject(AXPSessionService);
350
+ handleResetClick() {
351
+ this.loader.resetConditions();
838
352
  }
839
- async execute(context) {
840
- const payload = context.getVariable('payload');
841
- const id = context.getVariable('id');
842
- const newPayload = {
843
- commands: `/${this.sessionService.application?.name}/${payload.module}/e/${payload.entity}/${id}/view`,
844
- };
845
- context.setVariable('payload', newPayload);
846
- this.navigation.execute(context);
353
+ onConfirmFields() {
354
+ const fileds = this.selectedFieldNames.map((c) => {
355
+ const opr = this.getDefaultOperator(c);
356
+ return {
357
+ name: c,
358
+ opr: opr.name,
359
+ };
360
+ });
361
+ this.loader.addCondition(fileds);
847
362
  }
848
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPShowDetailViewAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
849
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPShowDetailViewAction }); }
850
- }
851
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPShowDetailViewAction, decorators: [{
852
- type: Injectable
853
- }] });
854
- class AXPShowQuickViewAction extends AXPWorkflowAction {
855
- constructor() {
856
- super(...arguments);
857
- this.entityRegistery = inject(AXPEntityRegistryService);
858
- this.formatService = inject(AXFormatService);
859
- this.popupService = inject(AXPopupService);
860
- this.platform = inject(AXPlatform);
861
- }
862
- async execute(context) {
863
- const payload = context.getVariable('payload');
864
- const entity = await this.entityRegistery.resolve(payload.module, payload.entity);
865
- const suggestedProps = entity.properties.find((c) => ['title', 'name', 'code'].includes(c.name));
866
- let suggestedFormat = 'Item #{{id}}';
867
- if (suggestedProps)
868
- suggestedFormat = `{{${suggestedProps.name}}}`;
869
- const title = this.formatService.format(entity.formats?.header ?? entity.formats?.default ?? suggestedFormat, 'string', payload.data);
870
- //
871
- const com = await Promise.resolve().then(function () { return entityQuickView_component; });
872
- this.popupService.open(com.AXPEntityQuickViewComponent, {
873
- title: `${title} - Quick View`,
874
- size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',
875
- data: {
876
- entity: entity,
877
- data: payload.data,
878
- },
363
+ handleApplyClick() {
364
+ this.conditions$.pipe(first()).subscribe((data) => {
365
+ console.log(data);
366
+ this.loader.updateConditions(data);
879
367
  });
368
+ this.onClosed.emit();
880
369
  }
881
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPShowQuickViewAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
882
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPShowQuickViewAction }); }
883
- }
884
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPShowQuickViewAction, decorators: [{
885
- type: Injectable
886
- }] });
887
- class AXPShowListViewAction extends AXPWorkflowAction {
888
- constructor() {
889
- super(...arguments);
890
- this.navigation = inject(AXPNavigateAction);
891
- this.sessionService = inject(AXPSessionService);
892
- }
893
- async execute(context) {
894
- const payload = context.getVariable('payload');
895
- const newPayload = {
896
- commands: `/${this.sessionService.application?.name}/${payload.entity.module}/e/${payload.entity}/list`,
897
- };
898
- context.setVariable('payload', newPayload);
899
- this.navigation.execute(context);
900
- }
901
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPShowListViewAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
902
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPShowListViewAction }); }
370
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPListViewOptionConditionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
371
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPListViewOptionConditionsComponent, selector: "axp-list-view-option-conditions", inputs: { loader: "loader" }, outputs: { onClosed: "onClosed" }, ngImport: i0, template: "<ax-header class=\"ax-flex ax-items-center\">\r\n <h2 class=\"ax-text-xl ax-font-bold\">Filters</h2>\r\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\r\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\r\n </ax-button>\r\n</ax-header>\r\n<div\r\n class=\"ax-flex ax-flex-col ax-justify-center ax-gap-4 ax-py-4 ax-select-none\"\r\n [class.ax-h-[calc(100vh-310px)]]=\"!(conditions$ | async)?.length\"\r\n>\r\n @if(!(conditions$ | async)?.length){\r\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\r\n <ax-image src=\"assets/documents.svg\"></ax-image>\r\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Filters Selected</p>\r\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\">Please select field(s) that you want to filter</span>\r\n </div>\r\n } @else {\r\n <div class=\"ax-sorted-list ax-max-h-[calc(100vh-310px)] ax-px-4 ax-py-1 ax-overflow-auto\">\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\" class=\"ax-flex ax-flex-col ax-gap-2\">\r\n @for(item of conditions$ | async; track item.name ){\r\n <div cdkDrag cdkDragBoundary=\".ax-sorted-list\">\r\n <div class=\"ax-ms-4 ax-flex ax-items-start ax-gap-2\">\r\n <ax-label>{{ loader.getProp(item.name)?.title }}</ax-label>\r\n @if(getOperatorTitle(item.name,item.operator)){\r\n <ax-badge\r\n class=\"ax-text-xs\"\r\n color=\"primary\"\r\n [look]=\"'twotone'\"\r\n [text]=\"getOperatorTitle(item.name, item.operator)\"\r\n ></ax-badge>\r\n }\r\n </div>\r\n <div class=\"ax-flex ax-group ax-items-center ax-gap-2\">\r\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\r\n <div class=\"ax-w-full\">\r\n <!-- <ax-text-box [(ngModel)]=\"item.value\"></ax-text-box> -->\r\n <axp-widget-filter-renderer\r\n [schema]=\"getSchema(item.name)\"\r\n [prop]=\"loader.getProp(item.name)\"\r\n [(value)]=\"item.value\"\r\n [(operator)]=\"item.operator\"\r\n >\r\n </axp-widget-filter-renderer>\r\n </div>\r\n <ax-button look=\"blank\" color=\"danger\" class=\"ax-sm\" (onClick)=\"handleRemoveCondition(item)\">\r\n <ax-icon class=\"fa-solid fa-trash-can\"></ax-icon>\r\n </ax-button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n <div class=\"ax-flex ax-gap-2\">\r\n <div class=\"ax-w-full\" #addField>\r\n @if((conditions$ | async)?.length){\r\n <ax-button color=\"primary\" text=\"Add field\" look=\"blank\" class=\"ax-sm\"></ax-button>\r\n }@else {\r\n <div class=\"ax-flex ax-justify-center ax-w-full\">\r\n <ax-button color=\"primary\" text=\"Add field\" look=\"outline\" class=\"ax-md ax-w-56\"></ax-button>\r\n </div>\r\n }\r\n </div>\r\n <ax-popover\r\n #fieldsPopover\r\n [target]=\"addField\"\r\n [openOn]=\"'toggle'\"\r\n [closeOn]=\"'clickOut'\"\r\n [adaptivityEnabled]=\"true\"\r\n (onOpened)=\"resetSelectedFieldNames()\"\r\n [offsetX]=\"15\"\r\n >\r\n <div class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-[250px]\">\r\n <div class=\"ax-border-b-[1px] ax-pb-2 ax-mb-2 ax-p-3\">\r\n <ax-title class=\"ax-font-bold\">Fields</ax-title>\r\n </div>\r\n <div class=\"ax-max-h-72 2xl:ax-max-h-80 ax-overflow-auto\">\r\n <ax-selection-list\r\n [valueField]=\"'name'\"\r\n [textField]=\"'title'\"\r\n [(ngModel)]=\"selectedFieldNames\"\r\n [direction]=\"'vertical'\"\r\n [items]=\"props\"\r\n [multiple]=\"true\"\r\n ></ax-selection-list>\r\n </div>\r\n <div class=\"ax-flex ax-justify-end ax-border-t-[1px] ax-p-3\">\r\n <ax-button (onClick)=\"onConfirmFields(); fieldsPopover.close()\" class=\"ax-sm\" text=\"Confirm\" color=\"primary\">\r\n </ax-button>\r\n </div>\r\n </div>\r\n </ax-popover>\r\n </div>\r\n</div>\r\n<ax-footer class=\"!ax-justify-start ax-absolute ax-bottom-0 ax-w-full\">\r\n <ax-button text=\"Apply\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\r\n <ax-button text=\"Reset\" color=\"ghost\" (onClick)=\"handleResetClick()\"></ax-button>\r\n</ax-footer>\r\n", dependencies: [{ 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: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i4$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i5.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "component", type: i6.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i7.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "component", type: i7$1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "component", type: i13.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "size", "value", "valueField", "textField", "hintField", "disabledField", "readonlyField", "multiple", "direction", "customTemplate", "showControl", "items", "look"], outputs: ["onValueChanged", "onBlur", "onFocus"] }, { kind: "directive", type: i15.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i15.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i15.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i10$1.AXPWidgetFilterRendererComponent, selector: "axp-widget-filter-renderer", inputs: ["value", "operator", "prop", "schema"], outputs: ["valueChange", "operatorChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
903
372
  }
904
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPShowListViewAction, decorators: [{
905
- type: Injectable
906
- }] });
373
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPListViewOptionConditionsComponent, decorators: [{
374
+ type: Component,
375
+ args: [{ selector: 'axp-list-view-option-conditions', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ax-header class=\"ax-flex ax-items-center\">\r\n <h2 class=\"ax-text-xl ax-font-bold\">Filters</h2>\r\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\r\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\r\n </ax-button>\r\n</ax-header>\r\n<div\r\n class=\"ax-flex ax-flex-col ax-justify-center ax-gap-4 ax-py-4 ax-select-none\"\r\n [class.ax-h-[calc(100vh-310px)]]=\"!(conditions$ | async)?.length\"\r\n>\r\n @if(!(conditions$ | async)?.length){\r\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\r\n <ax-image src=\"assets/documents.svg\"></ax-image>\r\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Filters Selected</p>\r\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\">Please select field(s) that you want to filter</span>\r\n </div>\r\n } @else {\r\n <div class=\"ax-sorted-list ax-max-h-[calc(100vh-310px)] ax-px-4 ax-py-1 ax-overflow-auto\">\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\" class=\"ax-flex ax-flex-col ax-gap-2\">\r\n @for(item of conditions$ | async; track item.name ){\r\n <div cdkDrag cdkDragBoundary=\".ax-sorted-list\">\r\n <div class=\"ax-ms-4 ax-flex ax-items-start ax-gap-2\">\r\n <ax-label>{{ loader.getProp(item.name)?.title }}</ax-label>\r\n @if(getOperatorTitle(item.name,item.operator)){\r\n <ax-badge\r\n class=\"ax-text-xs\"\r\n color=\"primary\"\r\n [look]=\"'twotone'\"\r\n [text]=\"getOperatorTitle(item.name, item.operator)\"\r\n ></ax-badge>\r\n }\r\n </div>\r\n <div class=\"ax-flex ax-group ax-items-center ax-gap-2\">\r\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\r\n <div class=\"ax-w-full\">\r\n <!-- <ax-text-box [(ngModel)]=\"item.value\"></ax-text-box> -->\r\n <axp-widget-filter-renderer\r\n [schema]=\"getSchema(item.name)\"\r\n [prop]=\"loader.getProp(item.name)\"\r\n [(value)]=\"item.value\"\r\n [(operator)]=\"item.operator\"\r\n >\r\n </axp-widget-filter-renderer>\r\n </div>\r\n <ax-button look=\"blank\" color=\"danger\" class=\"ax-sm\" (onClick)=\"handleRemoveCondition(item)\">\r\n <ax-icon class=\"fa-solid fa-trash-can\"></ax-icon>\r\n </ax-button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n <div class=\"ax-flex ax-gap-2\">\r\n <div class=\"ax-w-full\" #addField>\r\n @if((conditions$ | async)?.length){\r\n <ax-button color=\"primary\" text=\"Add field\" look=\"blank\" class=\"ax-sm\"></ax-button>\r\n }@else {\r\n <div class=\"ax-flex ax-justify-center ax-w-full\">\r\n <ax-button color=\"primary\" text=\"Add field\" look=\"outline\" class=\"ax-md ax-w-56\"></ax-button>\r\n </div>\r\n }\r\n </div>\r\n <ax-popover\r\n #fieldsPopover\r\n [target]=\"addField\"\r\n [openOn]=\"'toggle'\"\r\n [closeOn]=\"'clickOut'\"\r\n [adaptivityEnabled]=\"true\"\r\n (onOpened)=\"resetSelectedFieldNames()\"\r\n [offsetX]=\"15\"\r\n >\r\n <div class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-[250px]\">\r\n <div class=\"ax-border-b-[1px] ax-pb-2 ax-mb-2 ax-p-3\">\r\n <ax-title class=\"ax-font-bold\">Fields</ax-title>\r\n </div>\r\n <div class=\"ax-max-h-72 2xl:ax-max-h-80 ax-overflow-auto\">\r\n <ax-selection-list\r\n [valueField]=\"'name'\"\r\n [textField]=\"'title'\"\r\n [(ngModel)]=\"selectedFieldNames\"\r\n [direction]=\"'vertical'\"\r\n [items]=\"props\"\r\n [multiple]=\"true\"\r\n ></ax-selection-list>\r\n </div>\r\n <div class=\"ax-flex ax-justify-end ax-border-t-[1px] ax-p-3\">\r\n <ax-button (onClick)=\"onConfirmFields(); fieldsPopover.close()\" class=\"ax-sm\" text=\"Confirm\" color=\"primary\">\r\n </ax-button>\r\n </div>\r\n </div>\r\n </ax-popover>\r\n </div>\r\n</div>\r\n<ax-footer class=\"!ax-justify-start ax-absolute ax-bottom-0 ax-w-full\">\r\n <ax-button text=\"Apply\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\r\n <ax-button text=\"Reset\" color=\"ghost\" (onClick)=\"handleResetClick()\"></ax-button>\r\n</ax-footer>\r\n" }]
376
+ }], ctorParameters: () => [], propDecorators: { onClosed: [{
377
+ type: Output
378
+ }], loader: [{
379
+ type: Input
380
+ }] } });
907
381
 
908
- class AXMWorkflowErrorHandler {
382
+ class AXPListViewOptionFilterOperatorComponent {
909
383
  constructor() {
910
- this.dialog = inject(AXDialogService);
384
+ this.visible = false;
385
+ this.cdr = inject(ChangeDetectorRef);
386
+ this._items = [];
387
+ this.valueChange = new EventEmitter();
911
388
  }
912
- handleError(error, next) {
913
- if (error instanceof AXPWorkflowError) {
914
- this.dialog.alert("Somthing is wrong!", error.inner ? error.inner.message : error.message, 'danger');
915
- next(error);
916
- }
917
- else {
918
- next(error);
919
- }
389
+ get items() {
390
+ return this._items;
920
391
  }
921
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXMWorkflowErrorHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
922
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXMWorkflowErrorHandler }); }
923
- }
924
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXMWorkflowErrorHandler, decorators: [{
925
- type: Injectable
926
- }] });
927
-
928
- class AXPAdminFooterComponent {
929
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAdminFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
930
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXPAdminFooterComponent, selector: "axp-dashboard-admin-footer", host: { classAttribute: "ax-h-10 ax-flex ax-item-center ax-justify-between ax-bg-surface ax-px-6 ax-border-t" }, providers: [], ngImport: i0, template: "<div class=\"ax-flex ax-items-center ax-justify-start ax-gap-1\">\n <axp-component-slot name=\"footer-start\"></axp-component-slot>\n</div>\n<div class=\"ax-flex ax-items-center ax-justify-end ax-gap-1\">\n <axp-component-slot name=\"footer-end\"></axp-component-slot>\n</div>", dependencies: [{ kind: "directive", type: i2.AXPComponentSlotDirective, selector: "axp-component-slot", inputs: ["name"] }], encapsulation: i0.ViewEncapsulation.None }); }
931
- }
932
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAdminFooterComponent, decorators: [{
933
- type: Component,
934
- args: [{ selector: 'axp-dashboard-admin-footer', encapsulation: ViewEncapsulation.None, providers: [], host: {
935
- class: 'ax-h-10 ax-flex ax-item-center ax-justify-between ax-bg-surface ax-px-6 ax-border-t',
936
- }, template: "<div class=\"ax-flex ax-items-center ax-justify-start ax-gap-1\">\n <axp-component-slot name=\"footer-start\"></axp-component-slot>\n</div>\n<div class=\"ax-flex ax-items-center ax-justify-end ax-gap-1\">\n <axp-component-slot name=\"footer-end\"></axp-component-slot>\n</div>" }]
937
- }] });
938
-
939
- class AXPAdminLayoutComponent {
940
- constructor() {
941
- this.manuLoader = inject(AXP_MENU_LOADER);
942
- this.config = inject(AXP_PLATFORM_CONFIG_TOKEN);
943
- this.layoutService = inject(AXPLayoutService);
944
- this.subscriber = inject(AXUnsubscriber);
945
- this.store = inject((Store));
946
- this.routeUtilService = inject(AXPRouteUtilityService);
947
- this.isActiveRoute = (item) => this.routeUtilService.isRouteActive(item);
948
- this.logo = this.config.logo;
949
- this.isOpen = this.store.select(getRootDrawer());
950
- this.isSM = this.store.select(isSmallScreen());
951
- this.isLoading = signal(false);
952
- this.showNavigationProgress = signal(false);
953
- this.menuItems$ = this.manuLoader.getItems(1);
954
- this.layoutService.navigationLoading$.pipe(this.subscriber.takeUntilDestroy).subscribe((value) => {
955
- this.showNavigationProgress.set(value);
956
- });
957
- //
958
- this.layoutService.overlayLoading$.pipe(this.subscriber.takeUntilDestroy).subscribe((value) => {
959
- this.isLoading.set(value);
392
+ set items(v) {
393
+ this.visible = false;
394
+ this._items = v;
395
+ setTimeout(() => {
396
+ this.visible = true;
397
+ this.cdr.markForCheck();
398
+ setTimeout(() => {
399
+ if (this.selectBox) {
400
+ //this.selectBox.defaultValue = this.items[0]?.name;
401
+ }
402
+ });
960
403
  });
961
404
  }
962
- handleMenuClick(e, item) {
963
- if (item.path && item.children?.length)
964
- return;
965
- if (item.command) {
966
- this.store.dispatch(item.command);
967
- }
968
- else if (item.path) {
969
- this.store.dispatch(AXPNavigateAction$1({ payload: { commands: item.path } }));
970
- }
405
+ get value() {
406
+ return this._value;
971
407
  }
972
- handleCollapsedChange(value) {
973
- if (value)
974
- this.store.dispatch(AXPLayoutRootDrawerClose());
408
+ set value(v) {
409
+ this._value = v;
410
+ this.valueChange.emit(v);
975
411
  }
976
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAdminLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
977
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPAdminLayoutComponent, selector: "ng-component", providers: [
978
- {
979
- provide: AXUnsubscriber,
980
- },
981
- ], viewQueries: [{ propertyName: "drawer", first: true, predicate: ["drawer"], descendants: true }], ngImport: i0, template: "<ax-drawer-container>\n <ax-drawer #drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\"(isSM | async) ? 'overlay' : 'push'\"\n (collapsedChange)=\"handleCollapsedChange($event)\">\n <ax-content\n class=\"ax-w-64 ax-h-full ax-flex ax-flex-col ax-bg-secondary-600 dark:ax-bg-surface ax-text-primary-fore ax-border-e ax-border-primary-700 dark:ax-border-default\">\n <header class=\"ax-px-7 ax-h-16 ax-flex ax-items-center ax-border-b ax-border-white/10\">\n <axp-logo [source]=\"logo?.light\"></axp-logo>\n </header>\n <div class=\"ax-px-2 ax-py-4 ax-overflow-y-auto ax-flex-1 ax-h-full\">\n <ax-side-menu>\n <ng-container *ngFor=\"let node of this.menuItems$ | async\" [ngTemplateOutlet]=\"sideMenu\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\">\n </ng-container>\n </ax-side-menu>\n <ng-template #sideMenu let-item>\n @if(item.type=='group') {\n <ax-title *permission=\"item.data?.requiredPermission;\">{{ item.text }}</ax-title>\n } @else {\n <ax-side-menu-item *permission=\"item.data?.requiredPermission\" (onClick)=\"handleMenuClick($event, item)\"\n [active]=\"isActiveRoute(item) && !item.children?.length\" [isCollapsed]=\"item.opened == true ? false : true\">\n <ax-prefix>\n <ax-icon [class]=\"item.icon\"></ax-icon>\n </ax-prefix>\n {{ item.text }}\n <ng-container *ngIf=\"item.children\">\n <ng-container *ngFor=\"let child of item.children\" [ngTemplateOutlet]=\"sideMenu\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\">\n </ng-container>\n </ng-container>\n </ax-side-menu-item>\n }\n </ng-template>\n </div>\n </ax-content>\n </ax-drawer>\n <ax-content class=\"ax-flex ax-flex-col ax-relative\">\n @if(showNavigationProgress())\n {\n <div class=\"axp-navigating-progress\">\n <div></div>\n </div>\n }\n <axp-dashboard-admin-header></axp-dashboard-admin-header>\n <div class=\"ax-flex-1 ax-overflow-auto ax-relative\" [axIsLoading]=\"isLoading()\">\n <router-outlet></router-outlet>\n </div>\n <axp-dashboard-admin-footer></axp-dashboard-admin-footer>\n </ax-content>\n</ax-drawer-container>", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", 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-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i4.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i4.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "component", type: i5.AXSideMenuComponent, selector: "ax-side-menu" }, { kind: "component", type: i5.AXSideMenuItemComponent, selector: "ax-side-menu-item", inputs: ["disabled", "color", "isLoading", "text", "isCollapsed", "active"], outputs: ["textChange", "isCollapsedChange", "activeChange", "onClick"] }, { kind: "directive", type: i3$2.AXLoadingDirective, selector: "[axIsLoading]", inputs: ["axIsLoading"] }, { kind: "component", type: AXPLogoComponent, selector: "axp-logo", inputs: ["source"] }, { kind: "directive", type: i8.AXPPermissionDirective, selector: "[permission]", inputs: ["permission", "permissionElse"] }, { kind: "component", type: AXPAdminFooterComponent, selector: "axp-dashboard-admin-footer" }, { kind: "component", type: AXPAdminHeaderComponent, selector: "axp-dashboard-admin-header" }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
412
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPListViewOptionFilterOperatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
413
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXPListViewOptionFilterOperatorComponent, selector: "axp-list-view-option-filter-operator", inputs: { items: "items", value: "value" }, outputs: { valueChange: "valueChange" }, host: { styleAttribute: "display: contents;" }, viewQueries: [{ propertyName: "selectBox", first: true, predicate: AXSelectBoxComponent, descendants: true }], ngImport: i0, template: `
414
+ <ax-select-box
415
+ valueField="name"
416
+ [dataSource]="items"
417
+ textField="title"
418
+ [(ngModel)]="value"
419
+ *ngIf="visible"
420
+ >
421
+ </ax-select-box>
422
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "component", type: i10.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "dataSource", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
982
423
  }
983
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAdminLayoutComponent, decorators: [{
424
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPListViewOptionFilterOperatorComponent, decorators: [{
984
425
  type: Component,
985
- args: [{ encapsulation: ViewEncapsulation.None, providers: [
986
- {
987
- provide: AXUnsubscriber,
988
- },
989
- ], template: "<ax-drawer-container>\n <ax-drawer #drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\"(isSM | async) ? 'overlay' : 'push'\"\n (collapsedChange)=\"handleCollapsedChange($event)\">\n <ax-content\n class=\"ax-w-64 ax-h-full ax-flex ax-flex-col ax-bg-secondary-600 dark:ax-bg-surface ax-text-primary-fore ax-border-e ax-border-primary-700 dark:ax-border-default\">\n <header class=\"ax-px-7 ax-h-16 ax-flex ax-items-center ax-border-b ax-border-white/10\">\n <axp-logo [source]=\"logo?.light\"></axp-logo>\n </header>\n <div class=\"ax-px-2 ax-py-4 ax-overflow-y-auto ax-flex-1 ax-h-full\">\n <ax-side-menu>\n <ng-container *ngFor=\"let node of this.menuItems$ | async\" [ngTemplateOutlet]=\"sideMenu\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\">\n </ng-container>\n </ax-side-menu>\n <ng-template #sideMenu let-item>\n @if(item.type=='group') {\n <ax-title *permission=\"item.data?.requiredPermission;\">{{ item.text }}</ax-title>\n } @else {\n <ax-side-menu-item *permission=\"item.data?.requiredPermission\" (onClick)=\"handleMenuClick($event, item)\"\n [active]=\"isActiveRoute(item) && !item.children?.length\" [isCollapsed]=\"item.opened == true ? false : true\">\n <ax-prefix>\n <ax-icon [class]=\"item.icon\"></ax-icon>\n </ax-prefix>\n {{ item.text }}\n <ng-container *ngIf=\"item.children\">\n <ng-container *ngFor=\"let child of item.children\" [ngTemplateOutlet]=\"sideMenu\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\">\n </ng-container>\n </ng-container>\n </ax-side-menu-item>\n }\n </ng-template>\n </div>\n </ax-content>\n </ax-drawer>\n <ax-content class=\"ax-flex ax-flex-col ax-relative\">\n @if(showNavigationProgress())\n {\n <div class=\"axp-navigating-progress\">\n <div></div>\n </div>\n }\n <axp-dashboard-admin-header></axp-dashboard-admin-header>\n <div class=\"ax-flex-1 ax-overflow-auto ax-relative\" [axIsLoading]=\"isLoading()\">\n <router-outlet></router-outlet>\n </div>\n <axp-dashboard-admin-footer></axp-dashboard-admin-footer>\n </ax-content>\n</ax-drawer-container>" }]
990
- }], ctorParameters: () => [], propDecorators: { drawer: [{
991
- type: ViewChild,
992
- args: ['drawer']
993
- }] } });
994
-
995
- class AXPAdminRootLayoutModule {
996
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAdminRootLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
997
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: AXPAdminRootLayoutModule, declarations: [AXPAdminFooterComponent,
998
- AXPAdminHeaderComponent,
999
- AXPAdminLayoutComponent], imports: [CommonModule,
1000
- RouterModule,
1001
- AXButtonModule,
1002
- AXDecoratorModule,
1003
- AXDropdownModule,
1004
- AXAvatarModule,
1005
- AXImageModule,
1006
- AXImageModule,
1007
- AXPopoverModule,
1008
- AXBadgeModule,
1009
- AXTabsModule,
1010
- AXDrawerModule,
1011
- AXSideMenuModule,
1012
- AXLoadingModule,
1013
- AXPLogoComponent,
1014
- AXPAuthModule,
1015
- AXPComponentSlotModule] }); }
1016
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAdminRootLayoutModule, imports: [CommonModule,
1017
- RouterModule,
1018
- AXButtonModule,
1019
- AXDecoratorModule,
1020
- AXDropdownModule,
1021
- AXAvatarModule,
1022
- AXImageModule,
1023
- AXImageModule,
1024
- AXPopoverModule,
1025
- AXBadgeModule,
1026
- AXTabsModule,
1027
- AXDrawerModule,
1028
- AXSideMenuModule,
1029
- AXLoadingModule,
1030
- AXPLogoComponent,
1031
- AXPAuthModule,
1032
- AXPComponentSlotModule] }); }
1033
- }
1034
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAdminRootLayoutModule, decorators: [{
1035
- type: NgModule,
1036
426
  args: [{
1037
- imports: [
1038
- CommonModule,
1039
- RouterModule,
1040
- AXButtonModule,
1041
- AXDecoratorModule,
1042
- AXDropdownModule,
1043
- AXAvatarModule,
1044
- AXImageModule,
1045
- AXImageModule,
1046
- AXPopoverModule,
1047
- AXBadgeModule,
1048
- AXTabsModule,
1049
- AXDrawerModule,
1050
- AXSideMenuModule,
1051
- AXLoadingModule,
1052
- AXPLogoComponent,
1053
- AXPAuthModule,
1054
- AXPComponentSlotModule
1055
- ],
1056
- exports: [],
1057
- declarations: [
1058
- AXPAdminFooterComponent,
1059
- AXPAdminHeaderComponent,
1060
- AXPAdminLayoutComponent,
1061
- ],
1062
- providers: [],
427
+ selector: 'axp-list-view-option-filter-operator',
428
+ template: `
429
+ <ax-select-box
430
+ valueField="name"
431
+ [dataSource]="items"
432
+ textField="title"
433
+ [(ngModel)]="value"
434
+ *ngIf="visible"
435
+ >
436
+ </ax-select-box>
437
+ `,
438
+ changeDetection: ChangeDetectionStrategy.OnPush,
439
+ host: { style: 'display: contents;' },
1063
440
  }]
1064
- }] });
441
+ }], propDecorators: { selectBox: [{
442
+ type: ViewChild,
443
+ args: [AXSelectBoxComponent]
444
+ }], items: [{
445
+ type: Input
446
+ }], valueChange: [{
447
+ type: Output
448
+ }], value: [{
449
+ type: Input
450
+ }] } });
1065
451
 
1066
- class AXPEntityCreateCustomViewComponent extends AXBasePageComponent {
452
+ class AXPListViewOptionSortingComponent {
1067
453
  constructor() {
1068
- super(...arguments);
1069
- this.schemaRegistry = inject(AXPSchemaRegistryService);
1070
- this.toastService = inject(AXToastService);
1071
- this.dialogService = inject(AXDialogService);
1072
- this.subscriber = inject(AXUnsubscriber);
1073
- this.mode = 'create';
1074
- this.selectedView = {};
1075
- this.showNameInput = signal(false);
1076
- this.props = signal([]);
1077
- this.columns = signal([]);
1078
- this.visibleColumns = computed(() => this.columns().filter((c) => c.visible));
1079
- this.conditions = signal([]);
1080
- this.sorts = signal([]);
1081
- this.selectedConditionNames = [];
1082
- this.viewNames = [];
454
+ this.isSM = false;
455
+ this.onClosed = new EventEmitter();
456
+ this.props$ = of([]);
457
+ this.sorts$ = of([]);
1083
458
  }
1084
459
  ngOnInit() {
1085
- this.props.set(cloneDeep(this.loader.entity.properties));
1086
- this.columns.set(cloneDeep(this.selectedView.columns));
1087
- this.conditions.set(cloneDeep(this.selectedView.conditions));
1088
- this.sorts.set(cloneDeep(this.selectedView.sorts));
1089
- this.loader.views$.pipe(this.subscriber.takeUntilDestroy).subscribe((views) => {
1090
- this.viewNames = views.map((v) => v.name);
1091
- });
1092
- }
1093
- //****************** Columns ******************//
1094
- updateColumnItem(event, colName) {
1095
- if (event.isUserInteraction) {
1096
- this.columns.update((prevCols) => prevCols.map((col) => (col.name === colName ? { ...col, visible: event.value } : col)));
1097
- }
1098
- }
1099
- //****************** Sorts ******************//
1100
- updateSortItem(item) {
1101
- this.sorts.update((prevSorts) => prevSorts.map((sort) => (sort.name === item.name ? { ...sort, dir: sort.dir == 'asc' ? 'desc' : 'asc' } : sort)));
1102
- }
1103
- addSortItem() {
1104
- const sortNames = this.sorts().map((p) => p.name);
1105
- console.log(this.props(), sortNames);
1106
- const name = this.props().find((c) => !sortNames.includes(c.name))?.name || this.props()[0].name;
1107
- this.sorts.update((prevSorts) => [...prevSorts, { name, dir: 'asc' }]);
460
+ this.props$ = this.loader.properties$.pipe(map((sorts) => sorts.filter((s) => s.canSort != false)));
461
+ this.loader.sorts$.subscribe((data) => { });
462
+ this.sorts$ = this.loader.sorts$;
1108
463
  }
1109
- removeSortItem(item) {
1110
- this.sorts.update((prevSorts) => prevSorts.filter((sort) => item.name != sort.name));
464
+ drop(event) {
465
+ this.sorts$.pipe(first()).subscribe((sorts) => {
466
+ moveItemInArray(sorts, event.previousIndex, event.currentIndex);
467
+ });
1111
468
  }
1112
- //****************** Conditions ******************//
1113
- getSchema(name) {
1114
- return this.props().find((c) => c.name == name)?.schema ?? '';
469
+ changeItemSort(item) {
470
+ item.dir = item.dir == 'asc' ? 'desc' : 'asc';
1115
471
  }
1116
- getOperators(name) {
1117
- const schemaName = this.props().find((c) => c.name == name)?.schema ?? '';
1118
- return this.schemaRegistry.resolve(schemaName)?.filterOptions?.operators ?? [];
472
+ handleClose() {
473
+ this.onClosed.emit();
1119
474
  }
1120
- getDefaultOperator(name) {
1121
- const schemaName = this.props().find((c) => c.name == name)?.schema ?? '';
1122
- return this.schemaRegistry.resolve(schemaName)?.filterOptions?.default ?? EQ_OPER;
475
+ handleResetClick() {
476
+ this.loader.resetSort();
1123
477
  }
1124
- getOperatorTitle(schemaName, oprName) {
1125
- return this.getOperators(schemaName).find((c) => c.name == oprName)?.title || '';
478
+ handleApplyClick() {
479
+ this.sorts$.pipe(first()).subscribe((data) => {
480
+ this.loader.updateSort(data);
481
+ });
482
+ this.onClosed.emit();
1126
483
  }
1127
- resetSelectedFieldNames() {
1128
- this.selectedConditionNames = this.conditions().map((c) => c.name);
484
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPListViewOptionSortingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
485
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPListViewOptionSortingComponent, selector: "axp-list-view-option-sorting", inputs: { loader: "loader" }, outputs: { onClosed: "onClosed" }, ngImport: i0, template: "<ax-header class=\"ax-flex ax-items-center\">\r\n <h2 class=\"ax-text-xl ax-font-bold\">Sorts</h2>\r\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\r\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\r\n </ax-button>\r\n</ax-header>\r\n<div\r\n class=\"ax-flex ax-p-4 ax-flex-col ax-justify-center ax-gap-4 ax-select-none\"\r\n [class.ax-h-[calc(100vh-310px)]]=\"!(sorts$ | async)?.length\"\r\n>\r\n @if(!(sorts$ | async)?.length){\r\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\r\n <ax-image src=\"assets/documents.svg\"></ax-image>\r\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Sorts Selected</p>\r\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\">Please select field(s) that you want to sort</span>\r\n </div>\r\n }\r\n <div\r\n cdkDropList\r\n (cdkDropListDropped)=\"drop($event)\"\r\n class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-py-1 ax-max-h-[calc(100vh-310px)] ax-overflow-auto\"\r\n >\r\n <ng-container *ngFor=\"let item of sorts$ | async\">\r\n <div class=\"ax-flex ax-gap-2 ax-items-center\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\r\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\r\n <ax-select-box\r\n [dataSource]=\"(props$ | async) ?? []\"\r\n valueField=\"name\"\r\n textField=\"title\"\r\n [(ngModel)]=\"item.name\"\r\n >\r\n </ax-select-box>\r\n <ax-button [color]=\"'default'\" class=\"ax-sm\" (click)=\"changeItemSort(item)\">\r\n <ax-icon\r\n [class.ax-text-primary]=\"item.dir == 'asc'\"\r\n class=\"fa-solid fa-arrow-up-long ax-text-neutral-400\"\r\n ></ax-icon>\r\n <ax-icon\r\n [class.ax-text-primary]=\"item.dir == 'desc'\"\r\n class=\"fa-solid fa-arrow-down-long ax-text-neutral-400\"\r\n ></ax-icon>\r\n </ax-button>\r\n\r\n <ax-button look=\"blank\" (onClick)=\"loader.removeSort(item)\">\r\n <ax-icon class=\"fa-solid fa-trash-can ax-text-danger-500\"></ax-icon>\r\n </ax-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"ax-flex ax-gap-2\">\r\n <div class=\"ax-w-full\" #addField>\r\n @if((sorts$ | async)?.length){\r\n <ax-button (onClick)=\"loader.addSort()\" color=\"primary\" text=\"Add field\" look=\"blank\" class=\"ax-sm\"></ax-button>\r\n }@else {\r\n <div class=\"ax-flex ax-justify-center ax-w-full\">\r\n <ax-button\r\n (onClick)=\"loader.addSort()\"\r\n color=\"primary\"\r\n text=\"Add field\"\r\n look=\"outline\"\r\n class=\"ax-md ax-w-56\"\r\n ></ax-button>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n<ax-footer class=\"!ax-justify-start ax-absolute ax-bottom-0 ax-w-full\">\r\n <ax-button text=\"Apply\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\r\n <ax-button text=\"Reset\" color=\"ghost\" (onClick)=\"handleResetClick()\"></ax-button>\r\n</ax-footer>\r\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i4$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i7.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "component", type: i10.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "dataSource", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }, { kind: "directive", type: i15.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i15.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i15.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
486
+ }
487
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPListViewOptionSortingComponent, decorators: [{
488
+ type: Component,
489
+ args: [{ selector: 'axp-list-view-option-sorting', template: "<ax-header class=\"ax-flex ax-items-center\">\r\n <h2 class=\"ax-text-xl ax-font-bold\">Sorts</h2>\r\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\r\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\r\n </ax-button>\r\n</ax-header>\r\n<div\r\n class=\"ax-flex ax-p-4 ax-flex-col ax-justify-center ax-gap-4 ax-select-none\"\r\n [class.ax-h-[calc(100vh-310px)]]=\"!(sorts$ | async)?.length\"\r\n>\r\n @if(!(sorts$ | async)?.length){\r\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\r\n <ax-image src=\"assets/documents.svg\"></ax-image>\r\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Sorts Selected</p>\r\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\">Please select field(s) that you want to sort</span>\r\n </div>\r\n }\r\n <div\r\n cdkDropList\r\n (cdkDropListDropped)=\"drop($event)\"\r\n class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-py-1 ax-max-h-[calc(100vh-310px)] ax-overflow-auto\"\r\n >\r\n <ng-container *ngFor=\"let item of sorts$ | async\">\r\n <div class=\"ax-flex ax-gap-2 ax-items-center\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\r\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\r\n <ax-select-box\r\n [dataSource]=\"(props$ | async) ?? []\"\r\n valueField=\"name\"\r\n textField=\"title\"\r\n [(ngModel)]=\"item.name\"\r\n >\r\n </ax-select-box>\r\n <ax-button [color]=\"'default'\" class=\"ax-sm\" (click)=\"changeItemSort(item)\">\r\n <ax-icon\r\n [class.ax-text-primary]=\"item.dir == 'asc'\"\r\n class=\"fa-solid fa-arrow-up-long ax-text-neutral-400\"\r\n ></ax-icon>\r\n <ax-icon\r\n [class.ax-text-primary]=\"item.dir == 'desc'\"\r\n class=\"fa-solid fa-arrow-down-long ax-text-neutral-400\"\r\n ></ax-icon>\r\n </ax-button>\r\n\r\n <ax-button look=\"blank\" (onClick)=\"loader.removeSort(item)\">\r\n <ax-icon class=\"fa-solid fa-trash-can ax-text-danger-500\"></ax-icon>\r\n </ax-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"ax-flex ax-gap-2\">\r\n <div class=\"ax-w-full\" #addField>\r\n @if((sorts$ | async)?.length){\r\n <ax-button (onClick)=\"loader.addSort()\" color=\"primary\" text=\"Add field\" look=\"blank\" class=\"ax-sm\"></ax-button>\r\n }@else {\r\n <div class=\"ax-flex ax-justify-center ax-w-full\">\r\n <ax-button\r\n (onClick)=\"loader.addSort()\"\r\n color=\"primary\"\r\n text=\"Add field\"\r\n look=\"outline\"\r\n class=\"ax-md ax-w-56\"\r\n ></ax-button>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n<ax-footer class=\"!ax-justify-start ax-absolute ax-bottom-0 ax-w-full\">\r\n <ax-button text=\"Apply\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\r\n <ax-button text=\"Reset\" color=\"ghost\" (onClick)=\"handleResetClick()\"></ax-button>\r\n</ax-footer>\r\n" }]
490
+ }], propDecorators: { onClosed: [{
491
+ type: Output
492
+ }], loader: [{
493
+ type: Input
494
+ }] } });
495
+
496
+ class AXPEntityCreateLoaderDefault {
497
+ constructor(config, store, formatService) {
498
+ this.config = config;
499
+ this.store = store;
500
+ this.formatService = formatService;
501
+ this._data = {};
502
+ this._currentSection = 'default';
503
+ this._sections$ = new BehaviorSubject(this.sections);
504
+ //****************** Properties ******************//
505
+ this.getProp = (name) => this.entity.properties.find((c) => c.name == name);
506
+ this.isRequired = (name) => this.getProp(name)?.validationRules?.some(c => c.rule == 'required') || false;
507
+ this._currentSection = this.sections[0]?.name || 'default';
1129
508
  }
1130
- addCondition() {
1131
- const conditions = this.selectedConditionNames.map((c) => {
1132
- const opr = this.getDefaultOperator(c);
1133
- return {
1134
- name: c,
1135
- operator: opr.name,
1136
- };
1137
- });
1138
- this.conditions.set(conditions);
509
+ get entity() {
510
+ if (!this._config) {
511
+ this._config = cloneDeep(this.config);
512
+ }
513
+ return this._config;
1139
514
  }
1140
- removeCondition(item) {
1141
- this.conditions.update((prevConditions) => prevConditions.filter((con) => con.name != item.name));
515
+ get data() {
516
+ return this._data;
1142
517
  }
1143
- //****************** Common ******************//
1144
- drop(type, event) {
1145
- switch (type) {
1146
- case 'columns':
1147
- this.columns.update((prevCols) => {
1148
- const columns = prevCols;
1149
- moveItemInArray(columns, event.previousIndex, event.currentIndex);
1150
- return columns;
1151
- });
1152
- break;
1153
- case 'sorts':
1154
- this.sorts.update((prevSorts) => {
1155
- const sorts = prevSorts;
1156
- moveItemInArray(sorts, event.previousIndex, event.currentIndex);
1157
- return sorts;
1158
- });
1159
- break;
1160
- case 'conditions':
1161
- this.conditions.update((prevConditions) => {
1162
- const conditions = prevConditions;
1163
- moveItemInArray(conditions, event.previousIndex, event.currentIndex);
1164
- return conditions;
1165
- });
1166
- break;
1167
- default:
1168
- break;
1169
- }
518
+ get view() {
519
+ return this.entity.views.createView;
1170
520
  }
1171
- changeViewNameToggle() {
1172
- this.showNameInput.update((prev) => !prev);
521
+ //****************** Sections ******************//
522
+ get sections() {
523
+ return this.view.root.sections?.length
524
+ ? this.view.root.sections
525
+ : [
526
+ {
527
+ name: 'default',
528
+ title: 'Default',
529
+ properties: this.view.root.properties,
530
+ },
531
+ ];
1173
532
  }
1174
- generateViewName(title) {
1175
- return title.replace(/\s+/g, '-').toLowerCase();
533
+ get sections$() {
534
+ return this._sections$.pipe(defaultIfEmpty([]));
1176
535
  }
1177
- handleApplyClick() {
1178
- const updatedView = {
1179
- ...this.selectedView,
1180
- name: this.generateViewName(this.selectedView.title),
1181
- conditions: this.conditions(),
1182
- columns: this.columns(),
1183
- sorts: this.sorts(),
1184
- };
1185
- if (this.viewNames.includes(updatedView.name) && this.mode == 'create') {
1186
- this.toastService.show({
1187
- title: 'Invalid Title',
1188
- content: 'The title you have chosen already exists. Please choose a different title for your custom view.',
1189
- color: 'danger',
1190
- location: 'bottom-center',
1191
- closeButton: true,
1192
- timeOut: 3000,
1193
- });
1194
- }
1195
- else {
1196
- this.close({ save: true, updatedView });
1197
- }
536
+ get section$() {
537
+ return this.sections$.pipe(switchMap((sections) => {
538
+ const section = sections.find((c) => c.name === this._currentSection) ?? this.sections[0];
539
+ if (!section.sections?.length) {
540
+ section.sections = [
541
+ {
542
+ name: 'default',
543
+ title: 'Details',
544
+ properties: section.properties,
545
+ },
546
+ ];
547
+ }
548
+ return of(section);
549
+ }));
1198
550
  }
1199
- handleResetClick() {
1200
- this.conditions.set(cloneDeep(this.selectedView.conditions));
1201
- this.columns.set(cloneDeep(this.selectedView.columns));
1202
- this.sorts.set(cloneDeep(this.selectedView.sorts));
551
+ get hasSections$() {
552
+ return this.sections$.pipe(map((c) => c.length > 1));
1203
553
  }
1204
- handleDiscardClick() {
1205
- this.close({ save: false });
554
+ get isLast$() {
555
+ return this.sections$.pipe(map((c) => this.sections.length - this.sections.findIndex((c) => c.name == this._currentSection) == 1));
1206
556
  }
1207
- handleCancelClick() {
1208
- this.close({ save: false });
557
+ get isFirst$() {
558
+ return this.sections$.pipe(map((c) => this.sections.findIndex((c) => c.name == this._currentSection) == 0));
1209
559
  }
1210
- handleDeleteClick() {
1211
- this.dialogService
1212
- .confirm('Warning', 'Are you sure want to delete this view?', 'danger', 'horizontal')
1213
- .then((data) => {
1214
- if (data.result) {
1215
- this.close({ delete: true, viewName: this.selectedView.name });
560
+ get currentIndex$() {
561
+ return this.sections$.pipe(map((c) => this.sections.findIndex((c) => c.name == this._currentSection)));
562
+ }
563
+ setSection(name) {
564
+ this._currentSection = name ?? 'default';
565
+ const updatedSection = this.sections.find((c) => c.name === this._currentSection) || {
566
+ name: 'default',
567
+ title: 'Default',
568
+ properties: this.view.root.properties,
569
+ };
570
+ const currentSections = this._sections$.value;
571
+ const updatedSections = currentSections.map((section) => {
572
+ if (section.name === updatedSection.name) {
573
+ return updatedSection;
574
+ }
575
+ else {
576
+ return section;
1216
577
  }
1217
578
  });
579
+ this._sections$.next(updatedSections);
1218
580
  }
1219
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityCreateCustomViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1220
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPEntityCreateCustomViewComponent, selector: "ng-component", inputs: { loader: "loader", mode: "mode", selectedView: "selectedView" }, providers: [
1221
- {
1222
- provide: AXUnsubscriber,
1223
- },
1224
- ], usesInheritance: true, ngImport: i0, template: "<ax-header class=\"ax-p-4 ax-flex ax-justify-between ax-border-b\">\n <div class=\"ax-flex ax-items-center\">\n @if (showNameInput() && mode==='create') {\n <div class=\"ax-w-60\">\n <ax-text-box class=\"ax-sm\" [(ngModel)]=\"selectedView.title\">\n @if(showNameInput()){\n <ax-suffix>\n <ax-button (onClick)=\"changeViewNameToggle()\" look=\"default\">\n <ax-icon class=\"fa-sodild fas fa-check ax-text-sm\"> </ax-icon>\n </ax-button>\n </ax-suffix>\n }\n </ax-text-box>\n </div>\n }@else {\n <span class=\"ax-text-lg ax-font-semibold\">{{ selectedView.title }}</span>\n } @if (mode===\"create\") {\n <ax-button class=\"ax-xs\" (onClick)=\"changeViewNameToggle()\" color=\"default\">\n @if(!showNameInput() ){\n <ax-icon class=\"fa-regular fa-pen ax-text-sm ax-text-neutral-600\"> </ax-icon>\n }\n </ax-button>\n }\n </div>\n <ax-close-button></ax-close-button>\n</ax-header>\n<div class=\"ax-p-4\">\n <ax-tabs [content]=\"contents\" look=\"with-line\">\n <ax-tab-item text=\"Columns\">\n <ax-suffix>\n <ax-badge [text]=\"visibleColumns().length.toString()\" color=\"primary\"> </ax-badge>\n </ax-suffix>\n <ax-content>\n <div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-p-4 ax-select-none ax-h-[400px]\"\n cdkDropList\n (cdkDropListDropped)=\"drop('columns', $event)\"\n >\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-overflow-auto ax-pe-2\">\n <ng-container *ngFor=\"let item of columns()\">\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title }}</p>\n </div>\n <ax-switch\n class=\"ax-sm\"\n [(ngModel)]=\"item.visible\"\n (onValueChanged)=\"updateColumnItem($event, item.name)\"\n ></ax-switch>\n </div>\n </ng-container>\n </div>\n </div>\n </ax-content>\n </ax-tab-item>\n <ax-tab-item text=\"Conditions\">\n <ax-suffix>\n <ax-badge [text]=\"conditions().length.toString()\" color=\"primary\"> </ax-badge>\n </ax-suffix>\n <ax-content>\n <div\n class=\"ax-flex ax-flex-col ax-justify-start ax-gap-4 ax-py-4 ax-select-none ax-h-[400px]\"\n [class.ax-justify-center]=\"!conditions().length\"\n >\n @if(!conditions().length){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Filters Selected</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\"\n >Please select field(s) that you want to filter</span\n >\n </div>\n } @else {\n <div class=\"ax-sorted-list ax-px-4 ax-py-1 ax-overflow-auto\">\n <div cdkDropList (cdkDropListDropped)=\"drop('conditions', $event)\" class=\"ax-flex ax-flex-col ax-gap-2\">\n @for(item of conditions(); track item.name ){\n <div cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-ms-4 ax-flex ax-items-start ax-gap-2\">\n <ax-label>{{ loader.getProp(item.name)?.title }}</ax-label>\n @if(getOperatorTitle(item.name,item.operator)){\n <ax-badge\n class=\"ax-text-xs\"\n color=\"primary\"\n [look]=\"'twotone'\"\n [text]=\"getOperatorTitle(item.name, item.operator)\"\n ></ax-badge>\n }\n </div>\n <div class=\"ax-flex ax-group ax-items-center ax-gap-2\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <div class=\"ax-w-full\">\n <axp-widget-filter-renderer\n [schema]=\"getSchema(item.name)\"\n [prop]=\"loader.getProp(item.name)\"\n [(value)]=\"item.value\"\n [(operator)]=\"item.operator\"\n >\n </axp-widget-filter-renderer>\n </div>\n <ax-button look=\"blank\" color=\"danger\" class=\"ax-sm\" (onClick)=\"removeCondition(item)\">\n <ax-icon class=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n </div>\n }\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if(conditions().length){\n <ax-button color=\"primary\" text=\"Add field\" look=\"blank\" class=\"ax-sm\"></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button color=\"primary\" text=\"Add field\" look=\"outline\" class=\"ax-md ax-w-56\"></ax-button>\n </div>\n }\n <ax-popover\n #conditionsPopover\n [target]=\"addField\"\n [placement]=\"conditions().length ? 'bottom-start' : 'bottom'\"\n [offsetY]=\"8\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"true\"\n (onOpened)=\"resetSelectedFieldNames()\"\n >\n <div\n class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-[250px]\"\n >\n <div class=\"ax-border-b-[1px] ax-pb-2 ax-mb-2 ax-p-3\">\n <ax-title class=\"ax-font-bold\">Fields</ax-title>\n </div>\n <div class=\"ax-max-h-48 ax-overflow-auto\">\n <ax-selection-list\n [valueField]=\"'name'\"\n [textField]=\"'title'\"\n [(ngModel)]=\"selectedConditionNames\"\n [direction]=\"'vertical'\"\n [items]=\"props()\"\n [multiple]=\"true\"\n ></ax-selection-list>\n </div>\n <div class=\"ax-flex ax-justify-end ax-border-t-[1px] ax-p-3\">\n <ax-button\n (onClick)=\"addCondition(); conditionsPopover.close()\"\n class=\"ax-sm\"\n text=\"Confirm\"\n color=\"primary\"\n >\n </ax-button>\n </div>\n </div>\n </ax-popover>\n </div>\n </div>\n </div>\n </ax-content>\n </ax-tab-item>\n <ax-tab-item text=\"Sorting\">\n <ax-suffix>\n <ax-badge [text]=\"sorts().length.toString()\" color=\"primary\"> </ax-badge>\n </ax-suffix>\n <ax-content>\n <div\n class=\"ax-flex ax-p-4 ax-flex-col ax-justify-start ax-gap-4 ax-select-none ax-overflow-auto ax-h-[400px]\"\n [class.ax-justify-center]=\"!sorts().length\"\n >\n @if(!sorts().length){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Sorts Selected</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\"\n >Please select field(s) that you want to sort</span\n >\n </div>\n }@else {\n <div\n cdkDropList\n (cdkDropListDropped)=\"drop('sorts', $event)\"\n class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-py-1 ax-overflow-auto\"\n >\n <ng-container *ngFor=\"let item of sorts()\">\n <div class=\"ax-flex ax-gap-2 ax-items-center\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <ax-select-box [dataSource]=\"props()\" valueField=\"name\" textField=\"title\" [(ngModel)]=\"item.name\">\n </ax-select-box>\n <ax-button [color]=\"'default'\" class=\"ax-sm\" (click)=\"updateSortItem(item)\">\n <ax-icon\n [class.ax-text-primary]=\"item.dir == 'asc'\"\n class=\"fa-solid fa-arrow-up-long ax-text-neutral-400\"\n ></ax-icon>\n <ax-icon\n [class.ax-text-primary]=\"item.dir == 'desc'\"\n class=\"fa-solid fa-arrow-down-long ax-text-neutral-400\"\n ></ax-icon>\n </ax-button>\n\n <ax-button look=\"blank\" (onClick)=\"removeSortItem(item)\">\n <ax-icon class=\"fa-solid fa-trash-can ax-text-danger-500\"></ax-icon>\n </ax-button>\n </div>\n </ng-container>\n </div>\n }\n\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if(sorts().length){\n <ax-button\n (onClick)=\"addSortItem()\"\n color=\"primary\"\n text=\"Add field\"\n look=\"blank\"\n class=\"ax-sm\"\n ></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button\n (onClick)=\"addSortItem()\"\n color=\"primary\"\n text=\"Add field\"\n look=\"outline\"\n class=\"ax-md ax-w-56\"\n ></ax-button>\n </div>\n }\n </div>\n </div>\n </div>\n </ax-content>\n </ax-tab-item>\n </ax-tabs>\n <ng-template [axTabContent] #contents=\"axTabContent\"> </ng-template>\n</div>\n<ax-footer class=\"!ax-justify-end\">\n @if (mode===\"edit\") {\n <ax-dropdown-button text=\"Discard\" (onClick)=\"handleDiscardClick()\">\n <ax-button-item-list>\n <ax-button-item text=\"Reset\" (onClick)=\"handleResetClick()\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-rotate-left fa-flip-horizontal\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item class=\"ax-text-danger\" text=\"Delete\" (onClick)=\"handleDeleteClick()\">\n <ax-prefix> <ax-icon icon=\"fas fa-trash fa-flip-horizontal\"></ax-icon> </ax-prefix\n ></ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n } @else {\n <ax-button text=\"Cancel\" look=\"outline\" (onClick)=\"handleCancelClick()\"></ax-button>\n }\n <ax-button\n [text]=\"mode === 'create' ? 'Save' : 'Save Changes'\"\n color=\"primary\"\n (onClick)=\"handleApplyClick()\"\n ></ax-button>\n</ax-footer>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i2$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i2$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorCloseButtonComponent, selector: "ax-close-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-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i1$2.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "component", type: i5$1.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i2$2.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "component", type: i8$1.AXSwitchComponent, selector: "ax-switch", inputs: ["disabled", "readonly", "color", "tabIndex", "value", "name", "isLoading"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged", "readonlyChange", "disabledChange"] }, { kind: "component", type: i9.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i9.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "directive", type: i9.AXTabContentDirective, selector: "[axTabContent]", inputs: ["axTabContent"], exportAs: ["axTabContent"] }, { kind: "component", type: i6.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "dataSource", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }, { kind: "component", type: i4$1.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: "component", type: i7.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "component", type: i4$2.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "size", "value", "valueField", "textField", "hintField", "disabledField", "readonlyField", "multiple", "direction", "customTemplate", "showControl", "items", "look"], outputs: ["onValueChanged", "onBlur", "onFocus"] }, { kind: "component", type: i14.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "directive", type: i15.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i15.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i15.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i1$3.AXPWidgetFilterRendererComponent, selector: "axp-widget-filter-renderer", inputs: ["value", "operator", "prop", "schema"], outputs: ["valueChange", "operatorChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1225
- }
1226
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityCreateCustomViewComponent, decorators: [{
1227
- type: Component,
1228
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, providers: [
1229
- {
1230
- provide: AXUnsubscriber,
1231
- },
1232
- ], template: "<ax-header class=\"ax-p-4 ax-flex ax-justify-between ax-border-b\">\n <div class=\"ax-flex ax-items-center\">\n @if (showNameInput() && mode==='create') {\n <div class=\"ax-w-60\">\n <ax-text-box class=\"ax-sm\" [(ngModel)]=\"selectedView.title\">\n @if(showNameInput()){\n <ax-suffix>\n <ax-button (onClick)=\"changeViewNameToggle()\" look=\"default\">\n <ax-icon class=\"fa-sodild fas fa-check ax-text-sm\"> </ax-icon>\n </ax-button>\n </ax-suffix>\n }\n </ax-text-box>\n </div>\n }@else {\n <span class=\"ax-text-lg ax-font-semibold\">{{ selectedView.title }}</span>\n } @if (mode===\"create\") {\n <ax-button class=\"ax-xs\" (onClick)=\"changeViewNameToggle()\" color=\"default\">\n @if(!showNameInput() ){\n <ax-icon class=\"fa-regular fa-pen ax-text-sm ax-text-neutral-600\"> </ax-icon>\n }\n </ax-button>\n }\n </div>\n <ax-close-button></ax-close-button>\n</ax-header>\n<div class=\"ax-p-4\">\n <ax-tabs [content]=\"contents\" look=\"with-line\">\n <ax-tab-item text=\"Columns\">\n <ax-suffix>\n <ax-badge [text]=\"visibleColumns().length.toString()\" color=\"primary\"> </ax-badge>\n </ax-suffix>\n <ax-content>\n <div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-p-4 ax-select-none ax-h-[400px]\"\n cdkDropList\n (cdkDropListDropped)=\"drop('columns', $event)\"\n >\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-overflow-auto ax-pe-2\">\n <ng-container *ngFor=\"let item of columns()\">\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title }}</p>\n </div>\n <ax-switch\n class=\"ax-sm\"\n [(ngModel)]=\"item.visible\"\n (onValueChanged)=\"updateColumnItem($event, item.name)\"\n ></ax-switch>\n </div>\n </ng-container>\n </div>\n </div>\n </ax-content>\n </ax-tab-item>\n <ax-tab-item text=\"Conditions\">\n <ax-suffix>\n <ax-badge [text]=\"conditions().length.toString()\" color=\"primary\"> </ax-badge>\n </ax-suffix>\n <ax-content>\n <div\n class=\"ax-flex ax-flex-col ax-justify-start ax-gap-4 ax-py-4 ax-select-none ax-h-[400px]\"\n [class.ax-justify-center]=\"!conditions().length\"\n >\n @if(!conditions().length){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Filters Selected</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\"\n >Please select field(s) that you want to filter</span\n >\n </div>\n } @else {\n <div class=\"ax-sorted-list ax-px-4 ax-py-1 ax-overflow-auto\">\n <div cdkDropList (cdkDropListDropped)=\"drop('conditions', $event)\" class=\"ax-flex ax-flex-col ax-gap-2\">\n @for(item of conditions(); track item.name ){\n <div cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-ms-4 ax-flex ax-items-start ax-gap-2\">\n <ax-label>{{ loader.getProp(item.name)?.title }}</ax-label>\n @if(getOperatorTitle(item.name,item.operator)){\n <ax-badge\n class=\"ax-text-xs\"\n color=\"primary\"\n [look]=\"'twotone'\"\n [text]=\"getOperatorTitle(item.name, item.operator)\"\n ></ax-badge>\n }\n </div>\n <div class=\"ax-flex ax-group ax-items-center ax-gap-2\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <div class=\"ax-w-full\">\n <axp-widget-filter-renderer\n [schema]=\"getSchema(item.name)\"\n [prop]=\"loader.getProp(item.name)\"\n [(value)]=\"item.value\"\n [(operator)]=\"item.operator\"\n >\n </axp-widget-filter-renderer>\n </div>\n <ax-button look=\"blank\" color=\"danger\" class=\"ax-sm\" (onClick)=\"removeCondition(item)\">\n <ax-icon class=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n </div>\n }\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if(conditions().length){\n <ax-button color=\"primary\" text=\"Add field\" look=\"blank\" class=\"ax-sm\"></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button color=\"primary\" text=\"Add field\" look=\"outline\" class=\"ax-md ax-w-56\"></ax-button>\n </div>\n }\n <ax-popover\n #conditionsPopover\n [target]=\"addField\"\n [placement]=\"conditions().length ? 'bottom-start' : 'bottom'\"\n [offsetY]=\"8\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"true\"\n (onOpened)=\"resetSelectedFieldNames()\"\n >\n <div\n class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-[250px]\"\n >\n <div class=\"ax-border-b-[1px] ax-pb-2 ax-mb-2 ax-p-3\">\n <ax-title class=\"ax-font-bold\">Fields</ax-title>\n </div>\n <div class=\"ax-max-h-48 ax-overflow-auto\">\n <ax-selection-list\n [valueField]=\"'name'\"\n [textField]=\"'title'\"\n [(ngModel)]=\"selectedConditionNames\"\n [direction]=\"'vertical'\"\n [items]=\"props()\"\n [multiple]=\"true\"\n ></ax-selection-list>\n </div>\n <div class=\"ax-flex ax-justify-end ax-border-t-[1px] ax-p-3\">\n <ax-button\n (onClick)=\"addCondition(); conditionsPopover.close()\"\n class=\"ax-sm\"\n text=\"Confirm\"\n color=\"primary\"\n >\n </ax-button>\n </div>\n </div>\n </ax-popover>\n </div>\n </div>\n </div>\n </ax-content>\n </ax-tab-item>\n <ax-tab-item text=\"Sorting\">\n <ax-suffix>\n <ax-badge [text]=\"sorts().length.toString()\" color=\"primary\"> </ax-badge>\n </ax-suffix>\n <ax-content>\n <div\n class=\"ax-flex ax-p-4 ax-flex-col ax-justify-start ax-gap-4 ax-select-none ax-overflow-auto ax-h-[400px]\"\n [class.ax-justify-center]=\"!sorts().length\"\n >\n @if(!sorts().length){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Sorts Selected</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\"\n >Please select field(s) that you want to sort</span\n >\n </div>\n }@else {\n <div\n cdkDropList\n (cdkDropListDropped)=\"drop('sorts', $event)\"\n class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-py-1 ax-overflow-auto\"\n >\n <ng-container *ngFor=\"let item of sorts()\">\n <div class=\"ax-flex ax-gap-2 ax-items-center\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <ax-select-box [dataSource]=\"props()\" valueField=\"name\" textField=\"title\" [(ngModel)]=\"item.name\">\n </ax-select-box>\n <ax-button [color]=\"'default'\" class=\"ax-sm\" (click)=\"updateSortItem(item)\">\n <ax-icon\n [class.ax-text-primary]=\"item.dir == 'asc'\"\n class=\"fa-solid fa-arrow-up-long ax-text-neutral-400\"\n ></ax-icon>\n <ax-icon\n [class.ax-text-primary]=\"item.dir == 'desc'\"\n class=\"fa-solid fa-arrow-down-long ax-text-neutral-400\"\n ></ax-icon>\n </ax-button>\n\n <ax-button look=\"blank\" (onClick)=\"removeSortItem(item)\">\n <ax-icon class=\"fa-solid fa-trash-can ax-text-danger-500\"></ax-icon>\n </ax-button>\n </div>\n </ng-container>\n </div>\n }\n\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if(sorts().length){\n <ax-button\n (onClick)=\"addSortItem()\"\n color=\"primary\"\n text=\"Add field\"\n look=\"blank\"\n class=\"ax-sm\"\n ></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button\n (onClick)=\"addSortItem()\"\n color=\"primary\"\n text=\"Add field\"\n look=\"outline\"\n class=\"ax-md ax-w-56\"\n ></ax-button>\n </div>\n }\n </div>\n </div>\n </div>\n </ax-content>\n </ax-tab-item>\n </ax-tabs>\n <ng-template [axTabContent] #contents=\"axTabContent\"> </ng-template>\n</div>\n<ax-footer class=\"!ax-justify-end\">\n @if (mode===\"edit\") {\n <ax-dropdown-button text=\"Discard\" (onClick)=\"handleDiscardClick()\">\n <ax-button-item-list>\n <ax-button-item text=\"Reset\" (onClick)=\"handleResetClick()\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-rotate-left fa-flip-horizontal\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item class=\"ax-text-danger\" text=\"Delete\" (onClick)=\"handleDeleteClick()\">\n <ax-prefix> <ax-icon icon=\"fas fa-trash fa-flip-horizontal\"></ax-icon> </ax-prefix\n ></ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n } @else {\n <ax-button text=\"Cancel\" look=\"outline\" (onClick)=\"handleCancelClick()\"></ax-button>\n }\n <ax-button\n [text]=\"mode === 'create' ? 'Save' : 'Save Changes'\"\n color=\"primary\"\n (onClick)=\"handleApplyClick()\"\n ></ax-button>\n</ax-footer>\n" }]
1233
- }], propDecorators: { loader: [{
1234
- type: Input
1235
- }], mode: [{
1236
- type: Input
1237
- }], selectedView: [{
1238
- type: Input
1239
- }] } });
1240
-
1241
- class AXPListViewOptionsColumnsComponent {
1242
- constructor() {
1243
- this.store = inject((Store));
1244
- this.isSM = this.store.select(isSmallScreen());
1245
- this.columns$ = of([]);
1246
- this.onClosed = new EventEmitter();
1247
- }
1248
- ngOnInit() {
1249
- this.columns$ = this.loader.displayColumns$;
1250
- }
1251
- handleVisibilityChange(e, name) {
1252
- if (e.isUserInteraction) {
1253
- this.loader.setColumnVisibility(name, e.value);
581
+ next() {
582
+ const nextIndex = this.sections.findIndex((c) => c.name == this._currentSection) + 1;
583
+ if (nextIndex >= this.sections.length) {
584
+ return Promise.resolve();
585
+ }
586
+ else {
587
+ this.setSection(this.sections[nextIndex].name);
588
+ return Promise.resolve();
1254
589
  }
1255
590
  }
1256
- drop(event) {
1257
- this.columns$.pipe(first()).subscribe((columns) => {
1258
- moveItemInArray(columns, event.previousIndex, event.currentIndex);
1259
- });
1260
- }
1261
- handleClose() {
1262
- this.onClosed.emit();
591
+ back() {
592
+ const prevIndex = this.sections.findIndex((c) => c.name == this._currentSection) - 1;
593
+ if (prevIndex < 0) {
594
+ return Promise.resolve();
595
+ }
596
+ else {
597
+ this.setSection(this.sections[prevIndex].name);
598
+ return Promise.resolve();
599
+ }
1263
600
  }
1264
- handleResetClick() {
1265
- this.loader.resetColumns();
601
+ }
602
+ class AXPEntityCreateViewLoaderFactory {
603
+ constructor() {
604
+ this.entityService = inject(AXPEntityRegistryService);
605
+ this.formatService = inject(AXFormatService);
606
+ this.layout = inject(AXPLayoutService);
607
+ this.store = inject(Store);
1266
608
  }
1267
- handleApplyClick() {
1268
- this.columns$.pipe(first()).subscribe((data) => {
1269
- this.loader.updateColumns(data);
1270
- });
1271
- this.onClosed.emit();
609
+ async create(moduleName, entityName) {
610
+ const config = await this.entityService.resolve(moduleName, entityName);
611
+ this.layout.setNavigationLoading(true);
612
+ if (config.dataSource.byKey) {
613
+ this.layout.setNavigationLoading(false);
614
+ return new AXPEntityCreateLoaderDefault(config, this.store, this.formatService);
615
+ }
616
+ return Promise.reject('cannot fetch ');
1272
617
  }
1273
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPListViewOptionsColumnsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1274
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXPListViewOptionsColumnsComponent, selector: "axp-list-view-option-columns", inputs: { loader: "loader" }, outputs: { onClosed: "onClosed" }, ngImport: i0, template: "<ax-header class=\"ax-flex ax-items-center\">\n <h2 class=\"ax-text-xl ax-font-bold\">Columns</h2>\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\n </ax-button>\n</ax-header>\n<div class=\"ax-flex ax-flex-col ax-gap-4 ax-p-4 ax-select-none\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-max-h-[calc(100vh-280px)] ax-overflow-auto\">\n <ng-container *ngFor=\"let item of columns$ | async\">\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title }}</p>\n </div>\n <ax-switch\n class=\"ax-sm\"\n [ngModel]=\"item.visible\"\n (onValueChanged)=\"handleVisibilityChange($event, item.name)\"\n ></ax-switch>\n </div>\n </ng-container>\n </div>\n</div>\n<ax-footer class=\"!ax-justify-start ax-absolute ax-bottom-0 ax-w-full\">\n <ax-button text=\"Apply\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\n <ax-button text=\"Reset\" color=\"ghost\" (onClick)=\"handleResetClick()\"></ax-button>\n</ax-footer>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", 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-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i8$1.AXSwitchComponent, selector: "ax-switch", inputs: ["disabled", "readonly", "color", "tabIndex", "value", "name", "isLoading"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged", "readonlyChange", "disabledChange"] }, { kind: "directive", type: i15.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i15.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i15.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }] }); }
618
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityCreateViewLoaderFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
619
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityCreateViewLoaderFactory, providedIn: 'root' }); }
1275
620
  }
1276
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPListViewOptionsColumnsComponent, decorators: [{
1277
- type: Component,
1278
- args: [{ selector: 'axp-list-view-option-columns', template: "<ax-header class=\"ax-flex ax-items-center\">\n <h2 class=\"ax-text-xl ax-font-bold\">Columns</h2>\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\n </ax-button>\n</ax-header>\n<div class=\"ax-flex ax-flex-col ax-gap-4 ax-p-4 ax-select-none\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-max-h-[calc(100vh-280px)] ax-overflow-auto\">\n <ng-container *ngFor=\"let item of columns$ | async\">\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title }}</p>\n </div>\n <ax-switch\n class=\"ax-sm\"\n [ngModel]=\"item.visible\"\n (onValueChanged)=\"handleVisibilityChange($event, item.name)\"\n ></ax-switch>\n </div>\n </ng-container>\n </div>\n</div>\n<ax-footer class=\"!ax-justify-start ax-absolute ax-bottom-0 ax-w-full\">\n <ax-button text=\"Apply\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\n <ax-button text=\"Reset\" color=\"ghost\" (onClick)=\"handleResetClick()\"></ax-button>\n</ax-footer>\n" }]
1279
- }], propDecorators: { loader: [{
1280
- type: Input
1281
- }], onClosed: [{
1282
- type: Output
1283
- }] } });
621
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityCreateViewLoaderFactory, decorators: [{
622
+ type: Injectable,
623
+ args: [{ providedIn: 'root' }]
624
+ }] });
1284
625
 
1285
- class AXPListViewOptionConditionsComponent {
626
+ const AXPEntityCreateEvent = createWorkFlowEvent('[Entity] Created!');
627
+ class AXPEntityCreatePopupAction extends AXPWorkflowAction {
1286
628
  constructor() {
1287
- this.onClosed = new EventEmitter();
1288
- this.schemaRegistery = inject(AXPSchemaRegistryService);
1289
- this.popopService = inject(AXPopupService);
1290
- this.store = inject((Store));
1291
- this.isSM = this.store.select(isSmallScreen());
1292
- this.props$ = of([]);
1293
- this.props = [];
1294
- this.conditions$ = of([]);
1295
- this.selectedFieldNames = [];
1296
- }
1297
- onNameChange(item) {
1298
- console.log('onName changed!', item);
1299
- }
1300
- ngOnInit() {
1301
- this.props$ = this.loader.properties$.pipe(map((sorts) => sorts.filter((s) => s.canFilter != false)));
1302
- this.conditions$ = this.loader.conditions$;
1303
- this.conditions$.pipe(first()).subscribe((initialConditions) => {
1304
- this.selectedFieldNames = initialConditions.map((i) => i.name);
1305
- });
1306
- this.props$.pipe(first()).subscribe((data) => {
1307
- this.props = data;
1308
- });
1309
- }
1310
- getOperators(name) {
1311
- const schemaName = this.props.find((c) => c.name == name)?.schema ?? '';
1312
- return this.schemaRegistery.resolve(schemaName)?.filterOptions?.operators ?? [];
1313
- }
1314
- getDefaultOperator(name) {
1315
- const schemaName = this.props.find((c) => c.name == name)?.schema ?? '';
1316
- return this.schemaRegistery.resolve(schemaName)?.filterOptions?.default ?? EQ_OPER;
1317
- }
1318
- getOperatorTitle(schemaName, oprName) {
1319
- return this.getOperators(schemaName).find((c) => c.name == oprName)?.title || '';
1320
- }
1321
- getSchema(name) {
1322
- return this.props.find((c) => c.name == name)?.schema ?? '';
1323
- }
1324
- drop(event) {
1325
- this.conditions$.pipe(first()).subscribe((conditions) => {
1326
- console.log('conditions: ', conditions);
1327
- moveItemInArray(conditions, event.previousIndex, event.currentIndex);
1328
- });
1329
- }
1330
- handleClose() {
1331
- this.onClosed.emit();
1332
- }
1333
- handleRemoveCondition(item) {
1334
- this.selectedFieldNames = this.selectedFieldNames.filter((i) => i !== item.name);
1335
- this.loader.removeCondition(item);
1336
- }
1337
- resetSelectedFieldNames() {
1338
- this.conditions$.pipe(first()).subscribe((initialConditions) => {
1339
- this.selectedFieldNames = initialConditions.map((i) => i.name);
1340
- });
1341
- }
1342
- handleResetClick() {
1343
- this.loader.resetConditions();
629
+ super(...arguments);
630
+ this.entityRegistery = inject(AXPEntityRegistryService);
631
+ this.popupService = inject(AXPopupService);
632
+ this.platform = inject(AXPlatform);
633
+ this.entityCreateFactory = inject(AXPEntityCreateViewLoaderFactory);
1344
634
  }
1345
- onConfirmFields() {
1346
- const fileds = this.selectedFieldNames.map((c) => {
1347
- const opr = this.getDefaultOperator(c);
1348
- return {
1349
- name: c,
1350
- opr: opr.name,
1351
- };
635
+ async execute(context) {
636
+ const { module, entity: entityName } = context.getVariable('payload');
637
+ const entity = await this.entityRegistery.resolve(module, entityName);
638
+ const com = await import('./acorex-platform-layouts-entity-create-view.component-BmSMt95H.mjs');
639
+ const result = await this.popupService.open(com.AXPEntityCreateViewComponent, {
640
+ title: `Create New ${entity.title}`,
641
+ size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',
642
+ data: {
643
+ loader: await this.entityCreateFactory.create(module, entityName),
644
+ entity,
645
+ },
1352
646
  });
1353
- this.loader.addCondition(fileds);
647
+ if (result.data?.save) {
648
+ context.setOutput('popupResult', true);
649
+ context.setVariable('redirect', result.data.redirect);
650
+ context.setVariable('id', result.data.recordId);
651
+ }
1354
652
  }
1355
- handleApplyClick() {
1356
- this.conditions$.pipe(first()).subscribe((data) => {
1357
- console.log(data);
1358
- this.loader.updateConditions(data);
1359
- });
1360
- this.onClosed.emit();
653
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityCreatePopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
654
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityCreatePopupAction }); }
655
+ }
656
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityCreatePopupAction, decorators: [{
657
+ type: Injectable
658
+ }] });
659
+ class AXPEntityCreateSubmittedAction extends AXPWorkflowAction {
660
+ async execute(context) {
661
+ const { module, entity: entity } = context.getVariable('payload');
662
+ this.dispatch(AXPEntityCreateEvent({ entity, module }));
1361
663
  }
1362
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPListViewOptionConditionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1363
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPListViewOptionConditionsComponent, selector: "axp-list-view-option-conditions", inputs: { loader: "loader" }, outputs: { onClosed: "onClosed" }, ngImport: i0, template: "<ax-header class=\"ax-flex ax-items-center\">\n <h2 class=\"ax-text-xl ax-font-bold\">Filters</h2>\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\n </ax-button>\n</ax-header>\n<div\n class=\"ax-flex ax-flex-col ax-justify-center ax-gap-4 ax-py-4 ax-select-none\"\n [class.ax-h-[calc(100vh-310px)]]=\"!(conditions$ | async)?.length\"\n>\n @if(!(conditions$ | async)?.length){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Filters Selected</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\">Please select field(s) that you want to filter</span>\n </div>\n } @else {\n <div class=\"ax-sorted-list ax-max-h-[calc(100vh-310px)] ax-px-4 ax-py-1 ax-overflow-auto\">\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\" class=\"ax-flex ax-flex-col ax-gap-2\">\n @for(item of conditions$ | async; track item.name ){\n <div cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-ms-4 ax-flex ax-items-start ax-gap-2\">\n <ax-label>{{ loader.getProp(item.name)?.title }}</ax-label>\n @if(getOperatorTitle(item.name,item.operator)){\n <ax-badge\n class=\"ax-text-xs\"\n color=\"primary\"\n [look]=\"'twotone'\"\n [text]=\"getOperatorTitle(item.name, item.operator)\"\n ></ax-badge>\n }\n </div>\n <div class=\"ax-flex ax-group ax-items-center ax-gap-2\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <div class=\"ax-w-full\">\n <!-- <ax-text-box [(ngModel)]=\"item.value\"></ax-text-box> -->\n <axp-widget-filter-renderer\n [schema]=\"getSchema(item.name)\"\n [prop]=\"loader.getProp(item.name)\"\n [(value)]=\"item.value\"\n [(operator)]=\"item.operator\"\n >\n </axp-widget-filter-renderer>\n </div>\n <ax-button look=\"blank\" color=\"danger\" class=\"ax-sm\" (onClick)=\"handleRemoveCondition(item)\">\n <ax-icon class=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n </div>\n }\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if((conditions$ | async)?.length){\n <ax-button color=\"primary\" text=\"Add field\" look=\"blank\" class=\"ax-sm\"></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button color=\"primary\" text=\"Add field\" look=\"outline\" class=\"ax-md ax-w-56\"></ax-button>\n </div>\n }\n </div>\n <ax-popover\n #fieldsPopover\n [target]=\"addField\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"true\"\n (onOpened)=\"resetSelectedFieldNames()\"\n [offsetX]=\"15\"\n >\n <div class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-[250px]\">\n <div class=\"ax-border-b-[1px] ax-pb-2 ax-mb-2 ax-p-3\">\n <ax-title class=\"ax-font-bold\">Fields</ax-title>\n </div>\n <div class=\"ax-max-h-72 2xl:ax-max-h-80 ax-overflow-auto\">\n <ax-selection-list\n [valueField]=\"'name'\"\n [textField]=\"'title'\"\n [(ngModel)]=\"selectedFieldNames\"\n [direction]=\"'vertical'\"\n [items]=\"props\"\n [multiple]=\"true\"\n ></ax-selection-list>\n </div>\n <div class=\"ax-flex ax-justify-end ax-border-t-[1px] ax-p-3\">\n <ax-button (onClick)=\"onConfirmFields(); fieldsPopover.close()\" class=\"ax-sm\" text=\"Confirm\" color=\"primary\">\n </ax-button>\n </div>\n </div>\n </ax-popover>\n </div>\n</div>\n<ax-footer class=\"!ax-justify-start ax-absolute ax-bottom-0 ax-w-full\">\n <ax-button text=\"Apply\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\n <ax-button text=\"Reset\" color=\"ghost\" (onClick)=\"handleResetClick()\"></ax-button>\n</ax-footer>\n", dependencies: [{ kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", 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-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i1$2.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "component", type: i5$1.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i2$2.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "component", type: i7.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "component", type: i4$2.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "size", "value", "valueField", "textField", "hintField", "disabledField", "readonlyField", "multiple", "direction", "customTemplate", "showControl", "items", "look"], outputs: ["onValueChanged", "onBlur", "onFocus"] }, { kind: "directive", type: i15.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i15.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i15.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i1$3.AXPWidgetFilterRendererComponent, selector: "axp-widget-filter-renderer", inputs: ["value", "operator", "prop", "schema"], outputs: ["valueChange", "operatorChange"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1364
664
  }
1365
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPListViewOptionConditionsComponent, decorators: [{
1366
- type: Component,
1367
- args: [{ selector: 'axp-list-view-option-conditions', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ax-header class=\"ax-flex ax-items-center\">\n <h2 class=\"ax-text-xl ax-font-bold\">Filters</h2>\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\n </ax-button>\n</ax-header>\n<div\n class=\"ax-flex ax-flex-col ax-justify-center ax-gap-4 ax-py-4 ax-select-none\"\n [class.ax-h-[calc(100vh-310px)]]=\"!(conditions$ | async)?.length\"\n>\n @if(!(conditions$ | async)?.length){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Filters Selected</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\">Please select field(s) that you want to filter</span>\n </div>\n } @else {\n <div class=\"ax-sorted-list ax-max-h-[calc(100vh-310px)] ax-px-4 ax-py-1 ax-overflow-auto\">\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\" class=\"ax-flex ax-flex-col ax-gap-2\">\n @for(item of conditions$ | async; track item.name ){\n <div cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-ms-4 ax-flex ax-items-start ax-gap-2\">\n <ax-label>{{ loader.getProp(item.name)?.title }}</ax-label>\n @if(getOperatorTitle(item.name,item.operator)){\n <ax-badge\n class=\"ax-text-xs\"\n color=\"primary\"\n [look]=\"'twotone'\"\n [text]=\"getOperatorTitle(item.name, item.operator)\"\n ></ax-badge>\n }\n </div>\n <div class=\"ax-flex ax-group ax-items-center ax-gap-2\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <div class=\"ax-w-full\">\n <!-- <ax-text-box [(ngModel)]=\"item.value\"></ax-text-box> -->\n <axp-widget-filter-renderer\n [schema]=\"getSchema(item.name)\"\n [prop]=\"loader.getProp(item.name)\"\n [(value)]=\"item.value\"\n [(operator)]=\"item.operator\"\n >\n </axp-widget-filter-renderer>\n </div>\n <ax-button look=\"blank\" color=\"danger\" class=\"ax-sm\" (onClick)=\"handleRemoveCondition(item)\">\n <ax-icon class=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n </div>\n }\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if((conditions$ | async)?.length){\n <ax-button color=\"primary\" text=\"Add field\" look=\"blank\" class=\"ax-sm\"></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button color=\"primary\" text=\"Add field\" look=\"outline\" class=\"ax-md ax-w-56\"></ax-button>\n </div>\n }\n </div>\n <ax-popover\n #fieldsPopover\n [target]=\"addField\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"true\"\n (onOpened)=\"resetSelectedFieldNames()\"\n [offsetX]=\"15\"\n >\n <div class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-[250px]\">\n <div class=\"ax-border-b-[1px] ax-pb-2 ax-mb-2 ax-p-3\">\n <ax-title class=\"ax-font-bold\">Fields</ax-title>\n </div>\n <div class=\"ax-max-h-72 2xl:ax-max-h-80 ax-overflow-auto\">\n <ax-selection-list\n [valueField]=\"'name'\"\n [textField]=\"'title'\"\n [(ngModel)]=\"selectedFieldNames\"\n [direction]=\"'vertical'\"\n [items]=\"props\"\n [multiple]=\"true\"\n ></ax-selection-list>\n </div>\n <div class=\"ax-flex ax-justify-end ax-border-t-[1px] ax-p-3\">\n <ax-button (onClick)=\"onConfirmFields(); fieldsPopover.close()\" class=\"ax-sm\" text=\"Confirm\" color=\"primary\">\n </ax-button>\n </div>\n </div>\n </ax-popover>\n </div>\n</div>\n<ax-footer class=\"!ax-justify-start ax-absolute ax-bottom-0 ax-w-full\">\n <ax-button text=\"Apply\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\n <ax-button text=\"Reset\" color=\"ghost\" (onClick)=\"handleResetClick()\"></ax-button>\n</ax-footer>\n" }]
1368
- }], ctorParameters: () => [], propDecorators: { onClosed: [{
1369
- type: Output
1370
- }], loader: [{
1371
- type: Input
1372
- }] } });
665
+ const AXPCreateEntityWorkflow = {
666
+ startStepId: 'createPopup',
667
+ steps: {
668
+ createPopup: {
669
+ id: 'createPopup',
670
+ action: 'AXPEntityCreatePopupAction',
671
+ nextSteps: [
672
+ {
673
+ conditions: [{ type: 'SINGLE', expression: 'context.getOutput("popupResult") == true' }],
674
+ nextStepId: 'successToast',
675
+ },
676
+ ],
677
+ },
678
+ successToast: {
679
+ id: 'successToast',
680
+ action: 'AXPToastAction',
681
+ input: {
682
+ color: 'success',
683
+ title: 'Entity Created',
684
+ content: 'New Record has been successfully created.',
685
+ },
686
+ nextSteps: [
687
+ {
688
+ conditions: [],
689
+ nextStepId: 'createSubmitted',
690
+ },
691
+ ],
692
+ },
693
+ createSubmitted: {
694
+ id: 'createSubmitted',
695
+ action: 'AXPEntityCreateSubmittedAction',
696
+ nextSteps: [
697
+ {
698
+ conditions: [{ type: 'SINGLE', expression: 'context.getVariable("redirect") == true' }],
699
+ nextStepId: 'showDetailView',
700
+ },
701
+ ],
702
+ },
703
+ showDetailView: {
704
+ id: 'showDetailView',
705
+ action: 'AXPShowDetailViewAction',
706
+ },
707
+ },
708
+ };
1373
709
 
1374
- class AXPListViewOptionFilterOperatorComponent {
710
+ const AXPEntityDeletedEvent = createWorkFlowEvent('[Entity] Deleted');
711
+ class AXPEntityPerformDeleteAction extends AXPWorkflowAction {
1375
712
  constructor() {
1376
- this.visible = false;
1377
- this.cdr = inject(ChangeDetectorRef);
1378
- this._items = [];
1379
- this.valueChange = new EventEmitter();
1380
- }
1381
- get items() {
1382
- return this._items;
713
+ super(...arguments);
714
+ this.entityRegistery = inject(AXPEntityRegistryService);
715
+ this.dialogService = inject(AXDialogService);
716
+ this.loadingDialog = inject(AXLoadingDialogService);
1383
717
  }
1384
- set items(v) {
1385
- this.visible = false;
1386
- this._items = v;
1387
- setTimeout(() => {
1388
- this.visible = true;
1389
- this.cdr.markForCheck();
1390
- setTimeout(() => {
1391
- if (this.selectBox) {
1392
- //this.selectBox.defaultValue = this.items[0]?.name;
1393
- }
1394
- });
718
+ async execute(context) {
719
+ const moduleName = context.getVariable('module');
720
+ const entityName = context.getVariable('entity');
721
+ const ids = context.getVariable('ids');
722
+ const entity = await this.entityRegistery.resolve(moduleName, entityName);
723
+ let deletedCount = 0;
724
+ context.setVariable('deleteSuccessful', false);
725
+ const dialog = this.loadingDialog.show({
726
+ title: 'Deleting Record...',
727
+ mode: 'determinate',
728
+ status: 'Deleting...',
729
+ progressValue: 0,
730
+ text: `0/${ids.length}`,
731
+ buttons: [
732
+ {
733
+ text: 'Cancel',
734
+ color: 'danger',
735
+ onClick: () => {
736
+ dialog.close();
737
+ },
738
+ },
739
+ ],
1395
740
  });
741
+ if (entity.commands?.delete != null) {
742
+ const wrappedPromises = ids
743
+ .map((id, i) => {
744
+ return new Promise((resolve) => {
745
+ setTimeout(() => {
746
+ resolve(entity.commands?.delete?.(id));
747
+ }, i * 200);
748
+ });
749
+ })
750
+ .map((p) => p?.then((value) => {
751
+ deletedCount++;
752
+ dialog.setProgressText(`${deletedCount}/${ids.length}`);
753
+ dialog.setProgressValue((deletedCount / ids.length) * 100);
754
+ return { status: 'fulfilled', value };
755
+ }, (reason) => ({ status: 'rejected', reason })));
756
+ const results = await Promise.all(wrappedPromises);
757
+ const successfulPromises = results.filter((result) => result?.status === 'fulfilled').length;
758
+ const failedPromises = results.filter((result) => result?.status === 'rejected').length;
759
+ setTimeout(() => {
760
+ dialog.close();
761
+ }, 300);
762
+ // Handle different scenarios for alerts
763
+ if (successfulPromises > 0 && failedPromises === 0) {
764
+ // All items deleted successfully
765
+ await this.dialogService.alert('Deletion Successful', `${successfulPromises} item(s) has been deleted.`, 'success');
766
+ // Dispatch actions
767
+ this.dispatch(AXPEntityDeletedEvent({ module: moduleName, entity: entityName, id: ids }));
768
+ }
769
+ else if (successfulPromises > 0 && failedPromises > 0) {
770
+ // Some items deleted successfully, some failed
771
+ await this.dialogService.alert('Partial Deletion Completed', `${successfulPromises} item(s) deleted successfully. However, ${failedPromises} item(s) could not be deleted.`, 'warning');
772
+ // Dispatch actions
773
+ this.dispatch(AXPEntityDeletedEvent({ module: moduleName, entity: entityName, id: ids }));
774
+ }
775
+ else if (successfulPromises === 0 && failedPromises > 0) {
776
+ // No items deleted, all failed
777
+ await this.dialogService.alert('Deletion Failed', `No items were deleted. ${failedPromises} item(s) failed to delete.`, 'danger');
778
+ }
779
+ else {
780
+ // No items to delete (no successful or failed promises)
781
+ await this.dialogService.alert('No Deletion Needed', 'No items were available to delete.', 'info');
782
+ }
783
+ }
784
+ else {
785
+ throw new Error(`The delete operation cannot be performed on ${entity.title}. This action might be restricted or not applicable for the selected item.`);
786
+ }
1396
787
  }
1397
- get value() {
1398
- return this._value;
1399
- }
1400
- set value(v) {
1401
- this._value = v;
1402
- this.valueChange.emit(v);
1403
- }
1404
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPListViewOptionFilterOperatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1405
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXPListViewOptionFilterOperatorComponent, selector: "axp-list-view-option-filter-operator", inputs: { items: "items", value: "value" }, outputs: { valueChange: "valueChange" }, host: { styleAttribute: "display: contents;" }, viewQueries: [{ propertyName: "selectBox", first: true, predicate: AXSelectBoxComponent, descendants: true }], ngImport: i0, template: `
1406
- <ax-select-box
1407
- valueField="name"
1408
- [dataSource]="items"
1409
- textField="title"
1410
- [(ngModel)]="value"
1411
- *ngIf="visible"
1412
- >
1413
- </ax-select-box>
1414
- `, isInline: true, dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "dataSource", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
788
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityPerformDeleteAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
789
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityPerformDeleteAction }); }
1415
790
  }
1416
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPListViewOptionFilterOperatorComponent, decorators: [{
1417
- type: Component,
1418
- args: [{
1419
- selector: 'axp-list-view-option-filter-operator',
1420
- template: `
1421
- <ax-select-box
1422
- valueField="name"
1423
- [dataSource]="items"
1424
- textField="title"
1425
- [(ngModel)]="value"
1426
- *ngIf="visible"
1427
- >
1428
- </ax-select-box>
1429
- `,
1430
- changeDetection: ChangeDetectionStrategy.OnPush,
1431
- host: { style: 'display: contents;' },
1432
- }]
1433
- }], propDecorators: { selectBox: [{
1434
- type: ViewChild,
1435
- args: [AXSelectBoxComponent]
1436
- }], items: [{
1437
- type: Input
1438
- }], valueChange: [{
1439
- type: Output
1440
- }], value: [{
1441
- type: Input
1442
- }] } });
1443
-
1444
- class AXPListViewOptionSortingComponent {
1445
- constructor() {
1446
- this.store = inject((Store));
1447
- this.isSM = this.store.select(isSmallScreen());
1448
- this.onClosed = new EventEmitter();
1449
- this.props$ = of([]);
1450
- this.sorts$ = of([]);
1451
- }
1452
- ngOnInit() {
1453
- this.props$ = this.loader.properties$.pipe(map((sorts) => sorts.filter((s) => s.canSort != false)));
1454
- this.sorts$ = this.loader.sorts$;
1455
- }
1456
- drop(event) {
1457
- this.sorts$.pipe(first()).subscribe((sorts) => {
1458
- moveItemInArray(sorts, event.previousIndex, event.currentIndex);
1459
- });
1460
- }
1461
- changeItemSort(item) {
1462
- item.dir = item.dir == 'asc' ? 'desc' : 'asc';
1463
- }
1464
- handleClose() {
1465
- this.onClosed.emit();
1466
- }
1467
- handleResetClick() {
1468
- this.loader.resetSort();
1469
- }
1470
- handleApplyClick() {
1471
- this.sorts$.pipe(first()).subscribe((data) => {
1472
- this.loader.updateSort(data);
1473
- });
1474
- this.onClosed.emit();
1475
- }
1476
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPListViewOptionSortingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1477
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPListViewOptionSortingComponent, selector: "axp-list-view-option-sorting", inputs: { loader: "loader" }, outputs: { onClosed: "onClosed" }, ngImport: i0, template: "<ax-header class=\"ax-flex ax-items-center\">\n <h2 class=\"ax-text-xl ax-font-bold\">Sorts</h2>\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\n </ax-button>\n</ax-header>\n<div\n class=\"ax-flex ax-p-4 ax-flex-col ax-justify-center ax-gap-4 ax-select-none\"\n [class.ax-h-[calc(100vh-310px)]]=\"!(sorts$ | async)?.length\"\n>\n @if(!(sorts$ | async)?.length){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Sorts Selected</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\">Please select field(s) that you want to sort</span>\n </div>\n }\n <div\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-py-1 ax-max-h-[calc(100vh-310px)] ax-overflow-auto\"\n >\n <ng-container *ngFor=\"let item of sorts$ | async\">\n <div class=\"ax-flex ax-gap-2 ax-items-center\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <ax-select-box\n [dataSource]=\"(props$ | async) ?? []\"\n valueField=\"name\"\n textField=\"title\"\n [(ngModel)]=\"item.name\"\n >\n </ax-select-box>\n <ax-button [color]=\"'default'\" class=\"ax-sm\" (click)=\"changeItemSort(item)\">\n <ax-icon\n [class.ax-text-primary]=\"item.dir == 'asc'\"\n class=\"fa-solid fa-arrow-up-long ax-text-neutral-400\"\n ></ax-icon>\n <ax-icon\n [class.ax-text-primary]=\"item.dir == 'desc'\"\n class=\"fa-solid fa-arrow-down-long ax-text-neutral-400\"\n ></ax-icon>\n </ax-button>\n\n <ax-button look=\"blank\" (onClick)=\"loader.removeSort(item)\">\n <ax-icon class=\"fa-solid fa-trash-can ax-text-danger-500\"></ax-icon>\n </ax-button>\n </div>\n </ng-container>\n </div>\n\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if((sorts$ | async)?.length){\n <ax-button (onClick)=\"loader.addSort()\" color=\"primary\" text=\"Add field\" look=\"blank\" class=\"ax-sm\"></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button\n (onClick)=\"loader.addSort()\"\n color=\"primary\"\n text=\"Add field\"\n look=\"outline\"\n class=\"ax-md ax-w-56\"\n ></ax-button>\n </div>\n }\n </div>\n </div>\n</div>\n<ax-footer class=\"!ax-justify-start ax-absolute ax-bottom-0 ax-w-full\">\n <ax-button text=\"Apply\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\n <ax-button text=\"Reset\" color=\"ghost\" (onClick)=\"handleResetClick()\"></ax-button>\n</ax-footer>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", 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-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i2$2.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "component", type: i6.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "dataSource", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }, { kind: "directive", type: i15.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i15.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i15.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }] }); }
1478
- }
1479
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPListViewOptionSortingComponent, decorators: [{
1480
- type: Component,
1481
- args: [{ selector: 'axp-list-view-option-sorting', template: "<ax-header class=\"ax-flex ax-items-center\">\n <h2 class=\"ax-text-xl ax-font-bold\">Sorts</h2>\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\n </ax-button>\n</ax-header>\n<div\n class=\"ax-flex ax-p-4 ax-flex-col ax-justify-center ax-gap-4 ax-select-none\"\n [class.ax-h-[calc(100vh-310px)]]=\"!(sorts$ | async)?.length\"\n>\n @if(!(sorts$ | async)?.length){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Sorts Selected</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\">Please select field(s) that you want to sort</span>\n </div>\n }\n <div\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-py-1 ax-max-h-[calc(100vh-310px)] ax-overflow-auto\"\n >\n <ng-container *ngFor=\"let item of sorts$ | async\">\n <div class=\"ax-flex ax-gap-2 ax-items-center\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <ax-select-box\n [dataSource]=\"(props$ | async) ?? []\"\n valueField=\"name\"\n textField=\"title\"\n [(ngModel)]=\"item.name\"\n >\n </ax-select-box>\n <ax-button [color]=\"'default'\" class=\"ax-sm\" (click)=\"changeItemSort(item)\">\n <ax-icon\n [class.ax-text-primary]=\"item.dir == 'asc'\"\n class=\"fa-solid fa-arrow-up-long ax-text-neutral-400\"\n ></ax-icon>\n <ax-icon\n [class.ax-text-primary]=\"item.dir == 'desc'\"\n class=\"fa-solid fa-arrow-down-long ax-text-neutral-400\"\n ></ax-icon>\n </ax-button>\n\n <ax-button look=\"blank\" (onClick)=\"loader.removeSort(item)\">\n <ax-icon class=\"fa-solid fa-trash-can ax-text-danger-500\"></ax-icon>\n </ax-button>\n </div>\n </ng-container>\n </div>\n\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if((sorts$ | async)?.length){\n <ax-button (onClick)=\"loader.addSort()\" color=\"primary\" text=\"Add field\" look=\"blank\" class=\"ax-sm\"></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button\n (onClick)=\"loader.addSort()\"\n color=\"primary\"\n text=\"Add field\"\n look=\"outline\"\n class=\"ax-md ax-w-56\"\n ></ax-button>\n </div>\n }\n </div>\n </div>\n</div>\n<ax-footer class=\"!ax-justify-start ax-absolute ax-bottom-0 ax-w-full\">\n <ax-button text=\"Apply\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\n <ax-button text=\"Reset\" color=\"ghost\" (onClick)=\"handleResetClick()\"></ax-button>\n</ax-footer>\n" }]
1482
- }], propDecorators: { onClosed: [{
1483
- type: Output
1484
- }], loader: [{
1485
- type: Input
1486
- }] } });
1487
-
1488
- class AXPEntityCreateLoaderDefault {
1489
- constructor(config, store, formatService) {
1490
- this.config = config;
1491
- this.store = store;
1492
- this.formatService = formatService;
1493
- this._data = {};
1494
- this._currentSection = 'default';
1495
- this._sections$ = new BehaviorSubject(this.sections);
1496
- //****************** Properties ******************//
1497
- this.getProp = (name) => this.entity.properties.find((c) => c.name == name);
1498
- this.isRequired = (name) => this.getProp(name)?.validationRules?.some(c => c.rule == 'required') || false;
1499
- this._currentSection = this.sections[0]?.name || 'default';
1500
- }
1501
- get entity() {
1502
- if (!this._config) {
1503
- this._config = cloneDeep(this.config);
1504
- }
1505
- return this._config;
1506
- }
1507
- get data() {
1508
- return this._data;
1509
- }
1510
- get view() {
1511
- return this.entity.views.createView;
1512
- }
1513
- //****************** Sections ******************//
1514
- get sections() {
1515
- return this.view.root.sections?.length
1516
- ? this.view.root.sections
1517
- : [
1518
- {
1519
- name: 'default',
1520
- title: 'Default',
1521
- properties: this.view.root.properties,
1522
- },
1523
- ];
1524
- }
1525
- get sections$() {
1526
- return this._sections$.pipe(defaultIfEmpty([]));
1527
- }
1528
- get section$() {
1529
- return this.sections$.pipe(switchMap((sections) => {
1530
- const section = sections.find((c) => c.name === this._currentSection) ?? this.sections[0];
1531
- if (!section.sections?.length) {
1532
- section.sections = [
1533
- {
1534
- name: 'default',
1535
- title: 'Details',
1536
- properties: section.properties,
1537
- },
1538
- ];
1539
- }
1540
- return of(section);
1541
- }));
1542
- }
1543
- get hasSections$() {
1544
- return this.sections$.pipe(map((c) => c.length > 1));
1545
- }
1546
- get isLast$() {
1547
- return this.sections$.pipe(map((c) => this.sections.length - this.sections.findIndex((c) => c.name == this._currentSection) == 1));
1548
- }
1549
- get isFirst$() {
1550
- return this.sections$.pipe(map((c) => this.sections.findIndex((c) => c.name == this._currentSection) == 0));
1551
- }
1552
- get currentIndex$() {
1553
- return this.sections$.pipe(map((c) => this.sections.findIndex((c) => c.name == this._currentSection)));
1554
- }
1555
- setSection(name) {
1556
- this._currentSection = name ?? 'default';
1557
- const updatedSection = this.sections.find((c) => c.name === this._currentSection) || {
1558
- name: 'default',
1559
- title: 'Default',
1560
- properties: this.view.root.properties,
1561
- };
1562
- const currentSections = this._sections$.value;
1563
- const updatedSections = currentSections.map((section) => {
1564
- if (section.name === updatedSection.name) {
1565
- return updatedSection;
1566
- }
1567
- else {
1568
- return section;
1569
- }
1570
- });
1571
- this._sections$.next(updatedSections);
1572
- }
1573
- next() {
1574
- const nextIndex = this.sections.findIndex((c) => c.name == this._currentSection) + 1;
1575
- if (nextIndex >= this.sections.length) {
1576
- return Promise.resolve();
1577
- }
1578
- else {
1579
- this.setSection(this.sections[nextIndex].name);
1580
- return Promise.resolve();
1581
- }
1582
- }
1583
- back() {
1584
- const prevIndex = this.sections.findIndex((c) => c.name == this._currentSection) - 1;
1585
- if (prevIndex < 0) {
1586
- return Promise.resolve();
1587
- }
1588
- else {
1589
- this.setSection(this.sections[prevIndex].name);
1590
- return Promise.resolve();
1591
- }
1592
- }
1593
- }
1594
- class AXPEntityCreateViewLoaderFactory {
1595
- constructor() {
1596
- this.entityService = inject(AXPEntityRegistryService);
1597
- this.formatService = inject(AXFormatService);
1598
- this.layout = inject(AXPLayoutService);
1599
- this.store = inject(Store);
1600
- }
1601
- async create(moduleName, entityName) {
1602
- const config = await this.entityService.resolve(moduleName, entityName);
1603
- this.layout.setNavigationLoading(true);
1604
- if (config.dataSource.byKey) {
1605
- this.layout.setNavigationLoading(false);
1606
- return new AXPEntityCreateLoaderDefault(config, this.store, this.formatService);
1607
- }
1608
- return Promise.reject('cannot fetch ');
1609
- }
1610
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityCreateViewLoaderFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1611
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityCreateViewLoaderFactory, providedIn: 'root' }); }
1612
- }
1613
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityCreateViewLoaderFactory, decorators: [{
1614
- type: Injectable,
1615
- args: [{ providedIn: 'root' }]
791
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityPerformDeleteAction, decorators: [{
792
+ type: Injectable
1616
793
  }] });
1617
-
1618
- const AXPEntityCreateEvent = createWorkFlowEvent('[Entity] Created!');
1619
- class AXPEntityCreatePopupAction extends AXPWorkflowAction {
794
+ class AXPMyCustomFunc extends AXPWorkflowFunction {
1620
795
  constructor() {
1621
796
  super(...arguments);
1622
797
  this.entityRegistery = inject(AXPEntityRegistryService);
1623
- this.popupService = inject(AXPopupService);
1624
- this.platform = inject(AXPlatform);
1625
- this.entityCreateFactory = inject(AXPEntityCreateViewLoaderFactory);
798
+ this.dialogService = inject(AXDialogService);
1626
799
  }
1627
- async execute(context) {
1628
- const { module, entity: entityName } = context.getVariable('payload');
1629
- const entity = await this.entityRegistery.resolve(module, entityName);
1630
- const com = await import('./acorex-platform-layouts-entity-create-view.component-C3TUCnB2.mjs');
1631
- const result = await this.popupService.open(com.AXPEntityCreateViewComponent, {
1632
- title: `Create New ${entity.title}`,
1633
- size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',
1634
- data: {
1635
- loader: await this.entityCreateFactory.create(module, entityName),
1636
- entity,
1637
- },
1638
- });
1639
- if (result.data?.save) {
1640
- context.setOutput('popupResult', true);
1641
- context.setVariable('redirect', result.data.redirect);
1642
- context.setVariable('id', result.data.recordId);
1643
- }
800
+ async execute(val) {
801
+ return val == 'abc';
1644
802
  }
1645
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityCreatePopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1646
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityCreatePopupAction }); }
803
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPMyCustomFunc, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
804
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPMyCustomFunc }); }
1647
805
  }
1648
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityCreatePopupAction, decorators: [{
806
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPMyCustomFunc, decorators: [{
1649
807
  type: Injectable
1650
808
  }] });
1651
- class AXPEntityCreateSubmittedAction extends AXPWorkflowAction {
1652
- async execute(context) {
1653
- const { module, entity: entity } = context.getVariable('payload');
1654
- this.dispatch(AXPEntityCreateEvent({ entity, module }));
1655
- }
1656
- }
1657
- const AXPCreateEntityWorkflow = {
1658
- startStepId: 'createPopup',
809
+ const AXPDeleteEntityWorkflow = {
810
+ startStepId: 'confirmDelete',
1659
811
  steps: {
1660
- createPopup: {
1661
- id: 'createPopup',
1662
- action: 'AXPEntityCreatePopupAction',
812
+ confirmDelete: {
813
+ id: 'confirmDelete',
814
+ action: 'AXPDialogConfirmAction',
815
+ input: {
816
+ title: 'Warning',
817
+ message: `Are you sure want to delete selected item(s)?`,
818
+ type: 'danger',
819
+ },
1663
820
  nextSteps: [
1664
821
  {
1665
- conditions: [{ type: 'SINGLE', expression: 'context.getOutput("popupResult") == true' }],
1666
- nextStepId: 'successToast',
1667
- },
1668
- ],
1669
- },
1670
- successToast: {
1671
- id: 'successToast',
1672
- action: 'AXPToastAction',
1673
- input: {
1674
- color: 'success',
1675
- title: 'Entity Created',
1676
- content: 'New Record has been successfully created.',
1677
- },
1678
- nextSteps: [
1679
- {
1680
- conditions: [],
1681
- nextStepId: 'createSubmitted',
1682
- },
1683
- ],
1684
- },
1685
- createSubmitted: {
1686
- id: 'createSubmitted',
1687
- action: 'AXPEntityCreateSubmittedAction',
1688
- nextSteps: [
1689
- {
1690
- conditions: [{ type: 'SINGLE', expression: 'context.getVariable("redirect") == true' }],
1691
- nextStepId: 'showDetailView',
1692
- },
1693
- ],
1694
- },
1695
- showDetailView: {
1696
- id: 'showDetailView',
1697
- action: 'AXPShowDetailViewAction',
1698
- },
1699
- },
1700
- };
1701
-
1702
- const AXPEntityDeletedEvent = createWorkFlowEvent('[Entity] Deleted');
1703
- class AXPEntityPerformDeleteAction extends AXPWorkflowAction {
1704
- constructor() {
1705
- super(...arguments);
1706
- this.entityRegistery = inject(AXPEntityRegistryService);
1707
- this.dialogService = inject(AXDialogService);
1708
- this.loadingDialog = inject(AXLoadingDialogService);
1709
- }
1710
- async execute(context) {
1711
- const moduleName = context.getVariable('module');
1712
- const entityName = context.getVariable('entity');
1713
- const ids = context.getVariable('ids');
1714
- const entity = await this.entityRegistery.resolve(moduleName, entityName);
1715
- let deletedCount = 0;
1716
- context.setVariable('deleteSuccessful', false);
1717
- const dialog = this.loadingDialog.show({
1718
- title: 'Deleting Record...',
1719
- mode: 'determinate',
1720
- status: 'Deleting...',
1721
- progressValue: 0,
1722
- text: `0/${ids.length}`,
1723
- buttons: [
1724
- {
1725
- text: 'Cancel',
1726
- color: 'danger',
1727
- onClick: () => {
1728
- dialog.close();
1729
- },
1730
- },
1731
- ],
1732
- });
1733
- if (entity.commands?.delete != null) {
1734
- const wrappedPromises = ids
1735
- .map((id, i) => {
1736
- return new Promise((resolve) => {
1737
- setTimeout(() => {
1738
- resolve(entity.commands?.delete?.(id));
1739
- }, i * 200);
1740
- });
1741
- })
1742
- .map((p) => p?.then((value) => {
1743
- deletedCount++;
1744
- dialog.setProgressText(`${deletedCount}/${ids.length}`);
1745
- dialog.setProgressValue((deletedCount / ids.length) * 100);
1746
- return { status: 'fulfilled', value };
1747
- }, (reason) => ({ status: 'rejected', reason })));
1748
- const results = await Promise.all(wrappedPromises);
1749
- const successfulPromises = results.filter((result) => result?.status === 'fulfilled').length;
1750
- const failedPromises = results.filter((result) => result?.status === 'rejected').length;
1751
- setTimeout(() => {
1752
- dialog.close();
1753
- }, 300);
1754
- // Handle different scenarios for alerts
1755
- if (successfulPromises > 0 && failedPromises === 0) {
1756
- // All items deleted successfully
1757
- await this.dialogService.alert('Deletion Successful', `${successfulPromises} item(s) has been deleted.`, 'success');
1758
- // Dispatch actions
1759
- this.dispatch(AXPEntityDeletedEvent({ module: moduleName, entity: entityName, id: ids }));
1760
- }
1761
- else if (successfulPromises > 0 && failedPromises > 0) {
1762
- // Some items deleted successfully, some failed
1763
- await this.dialogService.alert('Partial Deletion Completed', `${successfulPromises} item(s) deleted successfully. However, ${failedPromises} item(s) could not be deleted.`, 'warning');
1764
- // Dispatch actions
1765
- this.dispatch(AXPEntityDeletedEvent({ module: moduleName, entity: entityName, id: ids }));
1766
- }
1767
- else if (successfulPromises === 0 && failedPromises > 0) {
1768
- // No items deleted, all failed
1769
- await this.dialogService.alert('Deletion Failed', `No items were deleted. ${failedPromises} item(s) failed to delete.`, 'danger');
1770
- }
1771
- else {
1772
- // No items to delete (no successful or failed promises)
1773
- await this.dialogService.alert('No Deletion Needed', 'No items were available to delete.', 'info');
1774
- }
1775
- }
1776
- else {
1777
- throw new Error(`The delete operation cannot be performed on ${entity.title}. This action might be restricted or not applicable for the selected item.`);
1778
- }
1779
- }
1780
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityPerformDeleteAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1781
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityPerformDeleteAction }); }
1782
- }
1783
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityPerformDeleteAction, decorators: [{
1784
- type: Injectable
1785
- }] });
1786
- class AXPMyCustomFunc extends AXPWorkflowFunction {
1787
- constructor() {
1788
- super(...arguments);
1789
- this.entityRegistery = inject(AXPEntityRegistryService);
1790
- this.dialogService = inject(AXDialogService);
1791
- }
1792
- async execute(val) {
1793
- return val == 'abc';
1794
- }
1795
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPMyCustomFunc, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1796
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPMyCustomFunc }); }
1797
- }
1798
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPMyCustomFunc, decorators: [{
1799
- type: Injectable
1800
- }] });
1801
- const AXPDeleteEntityWorkflow = {
1802
- startStepId: 'confirmDelete',
1803
- steps: {
1804
- confirmDelete: {
1805
- id: 'confirmDelete',
1806
- action: 'AXPDialogConfirmAction',
1807
- input: {
1808
- title: 'Warning',
1809
- message: `Are you sure want to delete selected item(s)?`,
1810
- type: 'danger',
1811
- },
1812
- nextSteps: [
1813
- {
1814
- conditions: [
1815
- {
1816
- type: 'AND',
1817
- conditions: [
1818
- { type: 'SINGLE', expression: 'context.getOutput("deleteConfirmed") == true' },
1819
- { type: 'SINGLE', expression: 'await test("abc")' },
1820
- ],
1821
- },
1822
- ],
1823
- nextStepId: 'performDelete',
822
+ conditions: [
823
+ {
824
+ type: 'AND',
825
+ conditions: [
826
+ { type: 'SINGLE', expression: 'context.getOutput("deleteConfirmed") == true' },
827
+ { type: 'SINGLE', expression: 'await test("abc")' },
828
+ ],
829
+ },
830
+ ],
831
+ nextStepId: 'performDelete',
1824
832
  },
1825
833
  ],
1826
834
  },
@@ -1900,7 +908,7 @@ class AXPEntityListViewComponent {
1900
908
  //TODO: namespace, module name issues
1901
909
  this.title = this.manuLoader.currentMenuItem()?.text ?? this.loader.entity.formats?.list ?? this.loader.entity.formats?.default ?? 'Title';
1902
910
  //
1903
- this.workflow.events$.pipe(ofType$1(AXPEntityDeletedEvent, AXPEntityCreateEvent), this.unsubscriber.takeUntilDestroy).subscribe((event) => {
911
+ this.workflow.events$.pipe(ofType(AXPEntityDeletedEvent, AXPEntityCreateEvent), this.unsubscriber.takeUntilDestroy).subscribe((event) => {
1904
912
  if (event.payload.entity == this.loader.entity.name && event.payload.module == this.loader.entity.module) {
1905
913
  this.grid.selectedRows = [];
1906
914
  this.grid?.refresh();
@@ -1943,645 +951,146 @@ class AXPEntityListViewComponent {
1943
951
  async handleRowCommandClick(e) {
1944
952
  switch (e.name) {
1945
953
  case 'view': {
1946
- await this.workflow.execute('show-quick-view', {
1947
- payload: {
1948
- module: this.loader.entity.module,
1949
- entity: this.loader.entity.name,
1950
- data: e.data,
1951
- },
1952
- });
1953
- break;
1954
- }
1955
- case 'edit': {
1956
- await this.workflow.execute('show-details', {
1957
- payload: {
1958
- module: this.loader.entity.module,
1959
- entity: this.loader.entity.name,
1960
- },
1961
- id: e.data.id,
1962
- });
1963
- break;
1964
- }
1965
- case 'delete': {
1966
- await this.workflow.execute('delete-entity', {
1967
- module: this.loader.entity.module,
1968
- entity: this.loader.entity.name,
1969
- ids: [e.data.id],
1970
- });
1971
- break;
1972
- }
1973
- }
1974
- }
1975
- handleCreateClick() {
1976
- this.workflow.execute('create-entity', {
1977
- payload: {
1978
- module: this.loader.entity.module,
1979
- entity: this.loader.entity.name,
1980
- },
1981
- });
1982
- }
1983
- handleCommandClick(command) {
1984
- switch (command) {
1985
- case 'delete':
1986
- this.workflow.execute('delete-entity', {
1987
- module: this.loader.entity.module,
1988
- entity: this.loader.entity.name,
1989
- ids: this.grid.selectedRows.map((c) => c['id']),
1990
- });
1991
- break;
1992
- default:
1993
- break;
1994
- }
1995
- }
1996
- clearSelectedItems() {
1997
- this.grid.selectedRows = [];
1998
- }
1999
- closeDrawer(name, collapsed) {
2000
- if (collapsed != false) {
2001
- switch (name) {
2002
- case 'conditions':
2003
- this.loader.resetConditions();
2004
- break;
2005
- case 'columns':
2006
- this.loader.resetColumns();
2007
- break;
2008
- case 'sorts':
2009
- this.loader.resetSort();
2010
- break;
2011
- default:
2012
- break;
2013
- }
2014
- }
2015
- }
2016
- handleChangeSearchValue(e) {
2017
- if (e.isUserInteraction) {
2018
- this.loader.handleInlineSearch(e.value);
2019
- }
2020
- }
2021
- async addCustomViewPopup() {
2022
- const newView = {
2023
- name: 'custom-view',
2024
- title: 'Custom View',
2025
- fixed: false,
2026
- sorts: [],
2027
- columns: convertPropertiesToColumns(...this.loader.entity.properties),
2028
- conditions: [],
2029
- };
2030
- const popup = await this.popupService.open(AXPEntityCreateCustomViewComponent, {
2031
- title: 'Create Custom View',
2032
- size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',
2033
- closeOnBackdropClick: true,
2034
- draggable: false,
2035
- data: {
2036
- loader: this.loader,
2037
- selectedView: newView,
2038
- mode: 'create',
2039
- },
2040
- });
2041
- if (popup.data?.save == true) {
2042
- console.log('updatedView: ', popup.data.updatedView);
2043
- this.loader.createView(popup.data.updatedView);
2044
- }
2045
- }
2046
- async updateViewPopup(e, selectedView) {
2047
- // (e.nativeEvent as UIEvent).stopPropagation();
2048
- const popup = await this.popupService.open(AXPEntityCreateCustomViewComponent, {
2049
- title: 'Modify Custom View',
2050
- size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',
2051
- closeOnBackdropClick: true,
2052
- draggable: false,
2053
- data: {
2054
- loader: this.loader,
2055
- selectedView,
2056
- mode: 'edit',
2057
- },
2058
- });
2059
- if (popup.data?.delete == true) {
2060
- this.loader.deleteView(popup.data.viewName);
2061
- }
2062
- if (popup.data?.save == true) {
2063
- console.log('updatedView: ', popup.data.updatedView);
2064
- this.loader.updateView(popup.data.updatedView);
2065
- }
2066
- }
2067
- ngOnDestroy() {
2068
- this.dataSource.reset();
2069
- }
2070
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityListViewComponent, deps: [{ token: i1$4.AXActionSheetService }, { token: i2$4.AXUnsubscriber }, { token: i3$3.AXPlatform }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
2071
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPEntityListViewComponent, selector: "ng-component", providers: [AXUnsubscriber], viewQueries: [{ propertyName: "viewsTemplate", first: true, predicate: ["viewsTemplate"], descendants: true }, { propertyName: "grid", first: true, predicate: ["grid"], descendants: true }, { propertyName: "entityViewDrawer", first: true, predicate: ["entityViewDrawer"], descendants: true }], ngImport: i0, template: "<ax-drawer-container>\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"true\" [mode]=\"platform.is('SM') ? 'overlay' : 'push'\">\n <ax-content class=\"ax-w-64 ax-border-e\">\n <div class=\"ax-p-6 ax-py-4 ax-gap-6 ax-flex ax-flex-col\">\n <p class=\"ax-text-2xl ax-font-bold\">Folders</p>\n <ax-side-menu>\n <ng-container *ngFor=\"let node of menuItems\" [ngTemplateOutlet]=\"sideMenu\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\">\n </ng-container>\n </ax-side-menu>\n <ng-template #sideMenu let-item>\n <ax-side-menu-item [text]=\"item.text\">\n <ax-prefix>\n <ax-icon class=\"fa-solid fa-folder ax-text-warning-500\"></ax-icon>\n </ax-prefix>\n <ng-container *ngIf=\"item.children\">\n <ng-container *ngFor=\"let child of item.children\" [ngTemplateOutlet]=\"sideMenu\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\">\n </ng-container>\n </ng-container>\n </ax-side-menu-item>\n </ng-template>\n </div>\n </ax-content>\n </ax-drawer> -->\n <ax-content class=\"ax-flex ax-flex-col ax-overflow-hidden\">\n <div\n class=\"ax-flex ax-flex-col ax-gap-0 md:ax-gap-4 ax-px-4 ax-py-3 md:ax-py-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\n @if(platform.is('MD')){\n <div class=\"ax-flex ax-justify-between ax-mb-4\">\n @if(this.grid?.selectedRows?.length==0){\n <div class=\"ax-text-xl ax-font-bold\">{{ title }}</div>\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n @if(canCreate)\n {\n <ax-button color=\"primary\" class=\"ax-sm\" (onClick)=\"handleCreateClick()\">\n <ax-icon class=\"fa-solid fa-add\"></ax-icon>\n </ax-button>\n }\n <ax-button color=\"ghost\" class=\"ax-sm\" #more>\n <ax-icon class=\"fa-solid fa-ellipsis-vertical\"> </ax-icon>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list>\n <ax-button-item text=\"Export\" class=\"ax-font-semibold\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-file-export\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n }@else {\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n <span class=\"ax-text-xl ax-font-bold\"> {{ this.grid?.selectedRows?.length }} Items Selected </span>\n <span (click)=\"clearSelectedItems()\"\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\">Clear\n Items</span>\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n @if(canDelete)\n {\n <ax-button color=\"danger\" class=\"ax-sm\" (onClick)=\"handleCommandClick('delete')\">\n <ax-icon class=\"fa-solid fa-trash\"> </ax-icon>\n </ax-button>\n }\n <ax-button color=\"ghost\" class=\"ax-sm\" #more>\n <ax-icon class=\"fa-solid fa-ellipsis-vertical\"> </ax-icon>\n </ax-button>\n </div>\n }\n </div>\n\n <div class=\"ax-flex ax-items-center ax-justify-between\">\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" [text]=\"(view$ | async)?.title\" color=\"ghost\">\n <ax-icon class=\"fa-solid fa-eye ax-text-neutral-400\"> </ax-icon>\n <ax-suffix>\n <i class=\"fa-solid fa-caret-down\"></i>\n </ax-suffix>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list class=\"ax-bg-surface\">\n <ax-title class=\"ax-font-bold ax-opacity-100\">Public Views</ax-title>\n <ax-button-item *ngFor=\"let v of publicViews$ | async\" [text]=\"v.title\"\n [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\"></ax-button-item>\n <ax-title class=\"ax-font-bold ax-opacity-100\" *ngIf=\"hasCustomViews$ | async\">Created by me</ax-title>\n <ax-button-item *ngFor=\"let v of customViews$ | async\" [text]=\"v.title\"\n [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\"></ax-button-item>\n <ng-container *feature=\"'axp-entity-list-custom-view'\">\n <ax-divider></ax-divider>\n <ax-button-item (onClick)=\"addCustomViewPopup()\" text=\"Add Custom View\"\n class=\"ax-font-semibold ax-text-primary\"></ax-button-item>\n </ng-container>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n <div class=\"ax-flex ax-gap-2\">\n @if(searchBoxTitle){\n <ax-button *feature=\"'axp-entity-list-quick-search'\" (onClick)=\"toggleSearchBox()\"\n [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\">\n <ax-icon class=\"fa-solid fa-search ax-text-neutral-400\"> </ax-icon>\n </ax-button>\n }\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\" (onClick)=\"columnsDrawer.open()\">\n <ax-icon class=\"fa-solid fa-bars ax-text-neutral-400\"> </ax-icon>\n </ax-button>\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\"\n (onClick)=\"conditionsDrawer.open()\">\n <ax-icon class=\"fa-solid fa-sliders ax-text-neutral-400\"> </ax-icon>\n @if ((conditionsCount$ | async)) {\n <ax-suffix>\n <ax-badge [color]=\"'primary'\"></ax-badge>\n </ax-suffix>\n }\n </ax-button>\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\" (onClick)=\"sortsDrawer.open()\">\n <ax-icon class=\"fa-solid fa-bars-sort ax-text-neutral-400\"> </ax-icon>\n @if ((sortCount$ | async)) {\n <ax-suffix>\n <ax-badge [color]=\"'primary'\"></ax-badge>\n </ax-suffix>\n }\n </ax-button>\n </div>\n </div>\n <div *feature=\"'axp-entity-list-quick-search'\" [class.collapsed-search-box]=\"searchBoxCollapsed\"\n class=\"ax-transition-all ax-mt-4\">\n <ax-search-box [title]=\"searchBoxTitle\"\n [placeholder]=\"'Search on ' + searchBoxPlaceholder\"><ax-clear-button></ax-clear-button></ax-search-box>\n </div>\n } @else {\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-3\">\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold ax-mb-2\">{{ title }}</div>\n @if(this.grid?.selectedRows?.length==0){\n <div class=\"ax-flex ax-gap-3\">\n @if(canCreate)\n {\n <ax-button text=\"Create New\" color=\"primary\" (onClick)=\"handleCreateClick()\">\n <ax-prefix>\n <i class=\"fa-solid fa-add\"></i>\n </ax-prefix>\n </ax-button>\n }\n <ax-button text=\"Actions\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list>\n <ax-button-item text=\"Export\" class=\"ax-font-semibold\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-file-export\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n }@else {\n <div class=\"ax-flex ax-gap-3\">\n @if(canDelete)\n {\n <ax-button text=\"Delete Items\" color=\"danger\" (onClick)=\"handleCommandClick('delete')\">\n <ax-prefix>\n <i class=\"fa-solid fa-trash\"></i>\n </ax-prefix>\n </ax-button>\n }\n <ax-button text=\"Actions\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n </ax-button>\n </div>\n }\n </div>\n <div class=\"ax-flex ax-items-center ax-justify-between\">\n <!----------------------- View Mode --------------------->\n @if(this.grid?.selectedRows?.length==0) {\n <div class=\"ax-flex ax-w-full ax-justify-between ax-gap-3\">\n <div class=\"ax-flex ax-gap-3\">\n <ax-button [text]=\"(view$ | async)?.title\" #views color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-eye\"></i>\n </ax-prefix>\n <ax-suffix>\n <i class=\"fa-solid fa-caret-down\"></i>\n </ax-suffix>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list class=\"ax-bg-surface\">\n <ax-title class=\"ax-font-bold ax-opacity-100\">Public Views</ax-title>\n <ax-button-item *ngFor=\"let v of publicViews$ | async\" [text]=\"v.title\"\n [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\"></ax-button-item>\n <ax-title class=\"ax-font-bold ax-opacity-100\" *ngIf=\"hasCustomViews$ | async\">Created by me</ax-title>\n <ax-button-item class=\"ax-pe-4 ax-flex ax-justify-between\" *ngFor=\"let v of customViews$ | async\"\n [text]=\"v.title\" [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\">\n <ax-suffix>\n <ax-button (onClick)=\"updateViewPopup($event, v)\" class=\"ax-xs\" look=\"none\">\n <ax-icon class=\"far fa-edit\"> </ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-button-item>\n <ng-container *feature=\"'axp-entity-list-custom-view'\">\n <ax-divider></ax-divider>\n <ax-button-item text=\"Add Custom View\" (onClick)=\"addCustomViewPopup()\"\n class=\"ax-font-semibold ax-text-primary\"></ax-button-item>\n </ng-container>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n @if(searchBoxTitle){\n <div class=\"ax-w-72\" *feature=\"'axp-entity-list-quick-search'\">\n <ax-search-box [title]=\"searchBoxTitle\" [(ngModel)]=\"searchValue\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n [placeholder]=\"'Search on ' + searchBoxPlaceholder\"><ax-clear-button></ax-clear-button></ax-search-box>\n </div>\n }\n </div>\n\n <div class=\"ax-flex ax-gap-3\">\n <ax-button text=\"Columns\" color=\"ghost\" #columns (onClick)=\"columnsDrawer.open()\">\n <ax-prefix>\n <i class=\"fa-solid fa-bars\"></i>\n </ax-prefix>\n <ax-suffix>\n <ax-badge text=\"{{ columnsCount$ | async }}\" color=\"primary\"></ax-badge>\n </ax-suffix>\n </ax-button>\n <ax-button text=\"Filters\" color=\"ghost\" (onClick)=\"conditionsDrawer.open()\" #conditions>\n <ax-prefix>\n <i class=\"fa-solid fa-sliders\"></i>\n </ax-prefix>\n <ax-suffix>\n <ax-badge text=\"{{ conditionsCount$ | async }}\" color=\"primary\"></ax-badge>\n </ax-suffix>\n </ax-button>\n <ax-button text=\"Sort\" color=\"ghost\" (onClick)=\"sortsDrawer.open()\">\n <ax-prefix>\n <i class=\"fa-solid fa-bars-sort\"></i>\n </ax-prefix>\n <ax-suffix *ngIf=\"(sortCount$ | async)! > 0\">\n <ax-badge text=\"{{ sortCount$ | async }}\" color=\"primary\"></ax-badge>\n </ax-suffix>\n </ax-button>\n </div>\n </div>\n\n } @else{\n <!----------------------- Selection Mode --------------------->\n <div>\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\"> {{ this.grid?.selectedRows?.length }} Items Selected </span>\n <span (click)=\"clearSelectedItems()\"\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\">Clear\n Items</span>\n </div>\n </div>\n }\n </div>\n }\n </div>\n <div class=\"ax-flex-1 ax-px-6 ax-py-4 ax-flex ax-overflow-auto\">\n <ax-data-table #grid [showFooter]=\"false\" class=\"ax-flex-1\" [dataSource]=\"dataSource\" [paging]=\"true\"\n [fetchDataMode]=\"'manual'\" (onRowDbClick)=\"handleRowDbClick($event)\"\n [loading]=\"{ enabled: true, animation: true }\">\n <!-- <ax-index-column *ngIf=\"!platform.is('SM')\" [width]=\"'85px'\"></ax-index-column> -->\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n @for(col of (columns$ | async);track col.name) {\n <axp-widget-column-renderer *ngIf=\"col.visible\" [schema]=\"col.schema\" [dataField]=\"col.name\"\n [caption]=\"col.title\" [options]=\"col.options\" [displayFormat]=\"col.displayFormat\" width=\"180px\"\n [allowSorting]=\"false\">\n </axp-widget-column-renderer>\n }\n <ax-dropdown-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-dropdown-command-column>\n <ax-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getInlineRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-command-column>\n </ax-data-table>\n </div>\n </ax-content>\n <ax-drawer (collapsedChange)=\"closeDrawer('columns', $event)\" #columnsDrawer location=\"end\" [mode]=\"'overlay'\">\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\n <axp-list-view-option-columns [loader]=\"loader\" (onClosed)=\"columnsDrawer.close()\"></axp-list-view-option-columns>\n </ax-content>\n </ax-drawer>\n <ax-drawer (collapsedChange)=\"closeDrawer('conditions', $event)\" #conditionsDrawer location=\"end\" [mode]=\"'overlay'\">\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[25vw] ax-border-e\">\n <axp-list-view-option-conditions [loader]=\"loader\"\n (onClosed)=\"conditionsDrawer.close()\"></axp-list-view-option-conditions>\n </ax-content>\n </ax-drawer>\n <ax-drawer (collapsedChange)=\"closeDrawer('sorts', $event)\" #sortsDrawer location=\"end\" [mode]=\"'overlay'\">\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\n <axp-list-view-option-sorting (onClosed)=\"sortsDrawer.close()\" [loader]=\"loader\"></axp-list-view-option-sorting>\n </ax-content>\n </ax-drawer>\n</ax-drawer-container>", styles: [".cdk-drag-preview{border-radius:.375rem;border-width:1px;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background:rgba(var(--ax-color-on-surface));padding:.5rem;height:max-content!important}.collapsed-search-box{margin-top:0;height:0px;opacity:0}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6$1.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "rowTemplate", "emptyTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged"] }, { kind: "component", type: i6$1.AXRowSelectColumnComponent, selector: "ax-select-column", inputs: ["width", "caption", "fixed"] }, { kind: "component", type: i6$1.AXRowCommandColumnComponent, selector: "ax-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i6$1.AXRowDropdownCommandColumnComponent, selector: "ax-dropdown-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i2$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i2$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i2$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { 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-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i1$2.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "component", type: i10.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i4.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i4.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "component", type: i12.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "delayTime"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: i1$3.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["width", "caption", "headerTemplate", "allowSorting", "fixed", "footerTemplate", "cellTemplate", "options", "dataField", "displayFormat", "schema"] }, { kind: "directive", type: i8.AXPFeatureDirective, selector: "[feature]", inputs: ["feature", "featureElse"] }, { kind: "component", type: AXPListViewOptionsColumnsComponent, selector: "axp-list-view-option-columns", inputs: ["loader"], outputs: ["onClosed"] }, { kind: "component", type: AXPListViewOptionConditionsComponent, selector: "axp-list-view-option-conditions", inputs: ["loader"], outputs: ["onClosed"] }, { kind: "component", type: AXPListViewOptionSortingComponent, selector: "axp-list-view-option-sorting", inputs: ["loader"], outputs: ["onClosed"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2072
- }
2073
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityListViewComponent, decorators: [{
2074
- type: Component,
2075
- args: [{ encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXUnsubscriber], template: "<ax-drawer-container>\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"true\" [mode]=\"platform.is('SM') ? 'overlay' : 'push'\">\n <ax-content class=\"ax-w-64 ax-border-e\">\n <div class=\"ax-p-6 ax-py-4 ax-gap-6 ax-flex ax-flex-col\">\n <p class=\"ax-text-2xl ax-font-bold\">Folders</p>\n <ax-side-menu>\n <ng-container *ngFor=\"let node of menuItems\" [ngTemplateOutlet]=\"sideMenu\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\">\n </ng-container>\n </ax-side-menu>\n <ng-template #sideMenu let-item>\n <ax-side-menu-item [text]=\"item.text\">\n <ax-prefix>\n <ax-icon class=\"fa-solid fa-folder ax-text-warning-500\"></ax-icon>\n </ax-prefix>\n <ng-container *ngIf=\"item.children\">\n <ng-container *ngFor=\"let child of item.children\" [ngTemplateOutlet]=\"sideMenu\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\">\n </ng-container>\n </ng-container>\n </ax-side-menu-item>\n </ng-template>\n </div>\n </ax-content>\n </ax-drawer> -->\n <ax-content class=\"ax-flex ax-flex-col ax-overflow-hidden\">\n <div\n class=\"ax-flex ax-flex-col ax-gap-0 md:ax-gap-4 ax-px-4 ax-py-3 md:ax-py-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\n @if(platform.is('MD')){\n <div class=\"ax-flex ax-justify-between ax-mb-4\">\n @if(this.grid?.selectedRows?.length==0){\n <div class=\"ax-text-xl ax-font-bold\">{{ title }}</div>\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n @if(canCreate)\n {\n <ax-button color=\"primary\" class=\"ax-sm\" (onClick)=\"handleCreateClick()\">\n <ax-icon class=\"fa-solid fa-add\"></ax-icon>\n </ax-button>\n }\n <ax-button color=\"ghost\" class=\"ax-sm\" #more>\n <ax-icon class=\"fa-solid fa-ellipsis-vertical\"> </ax-icon>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list>\n <ax-button-item text=\"Export\" class=\"ax-font-semibold\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-file-export\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n }@else {\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n <span class=\"ax-text-xl ax-font-bold\"> {{ this.grid?.selectedRows?.length }} Items Selected </span>\n <span (click)=\"clearSelectedItems()\"\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\">Clear\n Items</span>\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n @if(canDelete)\n {\n <ax-button color=\"danger\" class=\"ax-sm\" (onClick)=\"handleCommandClick('delete')\">\n <ax-icon class=\"fa-solid fa-trash\"> </ax-icon>\n </ax-button>\n }\n <ax-button color=\"ghost\" class=\"ax-sm\" #more>\n <ax-icon class=\"fa-solid fa-ellipsis-vertical\"> </ax-icon>\n </ax-button>\n </div>\n }\n </div>\n\n <div class=\"ax-flex ax-items-center ax-justify-between\">\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" [text]=\"(view$ | async)?.title\" color=\"ghost\">\n <ax-icon class=\"fa-solid fa-eye ax-text-neutral-400\"> </ax-icon>\n <ax-suffix>\n <i class=\"fa-solid fa-caret-down\"></i>\n </ax-suffix>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list class=\"ax-bg-surface\">\n <ax-title class=\"ax-font-bold ax-opacity-100\">Public Views</ax-title>\n <ax-button-item *ngFor=\"let v of publicViews$ | async\" [text]=\"v.title\"\n [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\"></ax-button-item>\n <ax-title class=\"ax-font-bold ax-opacity-100\" *ngIf=\"hasCustomViews$ | async\">Created by me</ax-title>\n <ax-button-item *ngFor=\"let v of customViews$ | async\" [text]=\"v.title\"\n [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\"></ax-button-item>\n <ng-container *feature=\"'axp-entity-list-custom-view'\">\n <ax-divider></ax-divider>\n <ax-button-item (onClick)=\"addCustomViewPopup()\" text=\"Add Custom View\"\n class=\"ax-font-semibold ax-text-primary\"></ax-button-item>\n </ng-container>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n <div class=\"ax-flex ax-gap-2\">\n @if(searchBoxTitle){\n <ax-button *feature=\"'axp-entity-list-quick-search'\" (onClick)=\"toggleSearchBox()\"\n [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\">\n <ax-icon class=\"fa-solid fa-search ax-text-neutral-400\"> </ax-icon>\n </ax-button>\n }\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\" (onClick)=\"columnsDrawer.open()\">\n <ax-icon class=\"fa-solid fa-bars ax-text-neutral-400\"> </ax-icon>\n </ax-button>\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\"\n (onClick)=\"conditionsDrawer.open()\">\n <ax-icon class=\"fa-solid fa-sliders ax-text-neutral-400\"> </ax-icon>\n @if ((conditionsCount$ | async)) {\n <ax-suffix>\n <ax-badge [color]=\"'primary'\"></ax-badge>\n </ax-suffix>\n }\n </ax-button>\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\" (onClick)=\"sortsDrawer.open()\">\n <ax-icon class=\"fa-solid fa-bars-sort ax-text-neutral-400\"> </ax-icon>\n @if ((sortCount$ | async)) {\n <ax-suffix>\n <ax-badge [color]=\"'primary'\"></ax-badge>\n </ax-suffix>\n }\n </ax-button>\n </div>\n </div>\n <div *feature=\"'axp-entity-list-quick-search'\" [class.collapsed-search-box]=\"searchBoxCollapsed\"\n class=\"ax-transition-all ax-mt-4\">\n <ax-search-box [title]=\"searchBoxTitle\"\n [placeholder]=\"'Search on ' + searchBoxPlaceholder\"><ax-clear-button></ax-clear-button></ax-search-box>\n </div>\n } @else {\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-3\">\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold ax-mb-2\">{{ title }}</div>\n @if(this.grid?.selectedRows?.length==0){\n <div class=\"ax-flex ax-gap-3\">\n @if(canCreate)\n {\n <ax-button text=\"Create New\" color=\"primary\" (onClick)=\"handleCreateClick()\">\n <ax-prefix>\n <i class=\"fa-solid fa-add\"></i>\n </ax-prefix>\n </ax-button>\n }\n <ax-button text=\"Actions\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list>\n <ax-button-item text=\"Export\" class=\"ax-font-semibold\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-file-export\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n }@else {\n <div class=\"ax-flex ax-gap-3\">\n @if(canDelete)\n {\n <ax-button text=\"Delete Items\" color=\"danger\" (onClick)=\"handleCommandClick('delete')\">\n <ax-prefix>\n <i class=\"fa-solid fa-trash\"></i>\n </ax-prefix>\n </ax-button>\n }\n <ax-button text=\"Actions\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n </ax-button>\n </div>\n }\n </div>\n <div class=\"ax-flex ax-items-center ax-justify-between\">\n <!----------------------- View Mode --------------------->\n @if(this.grid?.selectedRows?.length==0) {\n <div class=\"ax-flex ax-w-full ax-justify-between ax-gap-3\">\n <div class=\"ax-flex ax-gap-3\">\n <ax-button [text]=\"(view$ | async)?.title\" #views color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-eye\"></i>\n </ax-prefix>\n <ax-suffix>\n <i class=\"fa-solid fa-caret-down\"></i>\n </ax-suffix>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list class=\"ax-bg-surface\">\n <ax-title class=\"ax-font-bold ax-opacity-100\">Public Views</ax-title>\n <ax-button-item *ngFor=\"let v of publicViews$ | async\" [text]=\"v.title\"\n [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\"></ax-button-item>\n <ax-title class=\"ax-font-bold ax-opacity-100\" *ngIf=\"hasCustomViews$ | async\">Created by me</ax-title>\n <ax-button-item class=\"ax-pe-4 ax-flex ax-justify-between\" *ngFor=\"let v of customViews$ | async\"\n [text]=\"v.title\" [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\">\n <ax-suffix>\n <ax-button (onClick)=\"updateViewPopup($event, v)\" class=\"ax-xs\" look=\"none\">\n <ax-icon class=\"far fa-edit\"> </ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-button-item>\n <ng-container *feature=\"'axp-entity-list-custom-view'\">\n <ax-divider></ax-divider>\n <ax-button-item text=\"Add Custom View\" (onClick)=\"addCustomViewPopup()\"\n class=\"ax-font-semibold ax-text-primary\"></ax-button-item>\n </ng-container>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n @if(searchBoxTitle){\n <div class=\"ax-w-72\" *feature=\"'axp-entity-list-quick-search'\">\n <ax-search-box [title]=\"searchBoxTitle\" [(ngModel)]=\"searchValue\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n [placeholder]=\"'Search on ' + searchBoxPlaceholder\"><ax-clear-button></ax-clear-button></ax-search-box>\n </div>\n }\n </div>\n\n <div class=\"ax-flex ax-gap-3\">\n <ax-button text=\"Columns\" color=\"ghost\" #columns (onClick)=\"columnsDrawer.open()\">\n <ax-prefix>\n <i class=\"fa-solid fa-bars\"></i>\n </ax-prefix>\n <ax-suffix>\n <ax-badge text=\"{{ columnsCount$ | async }}\" color=\"primary\"></ax-badge>\n </ax-suffix>\n </ax-button>\n <ax-button text=\"Filters\" color=\"ghost\" (onClick)=\"conditionsDrawer.open()\" #conditions>\n <ax-prefix>\n <i class=\"fa-solid fa-sliders\"></i>\n </ax-prefix>\n <ax-suffix>\n <ax-badge text=\"{{ conditionsCount$ | async }}\" color=\"primary\"></ax-badge>\n </ax-suffix>\n </ax-button>\n <ax-button text=\"Sort\" color=\"ghost\" (onClick)=\"sortsDrawer.open()\">\n <ax-prefix>\n <i class=\"fa-solid fa-bars-sort\"></i>\n </ax-prefix>\n <ax-suffix *ngIf=\"(sortCount$ | async)! > 0\">\n <ax-badge text=\"{{ sortCount$ | async }}\" color=\"primary\"></ax-badge>\n </ax-suffix>\n </ax-button>\n </div>\n </div>\n\n } @else{\n <!----------------------- Selection Mode --------------------->\n <div>\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\"> {{ this.grid?.selectedRows?.length }} Items Selected </span>\n <span (click)=\"clearSelectedItems()\"\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\">Clear\n Items</span>\n </div>\n </div>\n }\n </div>\n }\n </div>\n <div class=\"ax-flex-1 ax-px-6 ax-py-4 ax-flex ax-overflow-auto\">\n <ax-data-table #grid [showFooter]=\"false\" class=\"ax-flex-1\" [dataSource]=\"dataSource\" [paging]=\"true\"\n [fetchDataMode]=\"'manual'\" (onRowDbClick)=\"handleRowDbClick($event)\"\n [loading]=\"{ enabled: true, animation: true }\">\n <!-- <ax-index-column *ngIf=\"!platform.is('SM')\" [width]=\"'85px'\"></ax-index-column> -->\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n @for(col of (columns$ | async);track col.name) {\n <axp-widget-column-renderer *ngIf=\"col.visible\" [schema]=\"col.schema\" [dataField]=\"col.name\"\n [caption]=\"col.title\" [options]=\"col.options\" [displayFormat]=\"col.displayFormat\" width=\"180px\"\n [allowSorting]=\"false\">\n </axp-widget-column-renderer>\n }\n <ax-dropdown-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-dropdown-command-column>\n <ax-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getInlineRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-command-column>\n </ax-data-table>\n </div>\n </ax-content>\n <ax-drawer (collapsedChange)=\"closeDrawer('columns', $event)\" #columnsDrawer location=\"end\" [mode]=\"'overlay'\">\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\n <axp-list-view-option-columns [loader]=\"loader\" (onClosed)=\"columnsDrawer.close()\"></axp-list-view-option-columns>\n </ax-content>\n </ax-drawer>\n <ax-drawer (collapsedChange)=\"closeDrawer('conditions', $event)\" #conditionsDrawer location=\"end\" [mode]=\"'overlay'\">\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[25vw] ax-border-e\">\n <axp-list-view-option-conditions [loader]=\"loader\"\n (onClosed)=\"conditionsDrawer.close()\"></axp-list-view-option-conditions>\n </ax-content>\n </ax-drawer>\n <ax-drawer (collapsedChange)=\"closeDrawer('sorts', $event)\" #sortsDrawer location=\"end\" [mode]=\"'overlay'\">\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\n <axp-list-view-option-sorting (onClosed)=\"sortsDrawer.close()\" [loader]=\"loader\"></axp-list-view-option-sorting>\n </ax-content>\n </ax-drawer>\n</ax-drawer-container>", styles: [".cdk-drag-preview{border-radius:.375rem;border-width:1px;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background:rgba(var(--ax-color-on-surface));padding:.5rem;height:max-content!important}.collapsed-search-box{margin-top:0;height:0px;opacity:0}\n"] }]
2076
- }], ctorParameters: () => [{ type: i1$4.AXActionSheetService }, { type: i2$4.AXUnsubscriber }, { type: i3$3.AXPlatform }, { type: i0.ChangeDetectorRef }], propDecorators: { viewsTemplate: [{
2077
- type: ViewChild,
2078
- args: ['viewsTemplate']
2079
- }], grid: [{
2080
- type: ViewChild,
2081
- args: ['grid']
2082
- }], entityViewDrawer: [{
2083
- type: ViewChild,
2084
- args: ['entityViewDrawer']
2085
- }] } });
2086
-
2087
- const widgetSchemas = {
2088
- //*Sharing schema list with other modules
2089
- text: 'text',
2090
- largetext: 'largetext',
2091
- number: 'number',
2092
- currency: 'currency',
2093
- phone: 'phone',
2094
- email: 'email',
2095
- dateTime: 'dateTime',
2096
- date: 'date',
2097
- time: 'time',
2098
- toggle: 'toggle',
2099
- checkbox: 'checkbox',
2100
- password: 'password',
2101
- file: 'file',
2102
- lookup: 'lookup',
2103
- selectionList: 'selection-list',
2104
- richText: 'rich-text',
2105
- map: 'map',
2106
- avatar: 'avatar',
2107
- messenger: 'messenger',
2108
- gallery: 'gallery',
2109
- signaturePad: 'signature-pad',
2110
- };
2111
- class AXPCommonWidgetModule {
2112
- constructor(service) {
2113
- //text
2114
- service.register({
2115
- component: {
2116
- view: {
2117
- component: () => import('./acorex-platform-layouts-text-widget-view.component-XHN41M3T.mjs').then((c) => c.AXPTextWidgetViewComponent),
2118
- },
2119
- filter: {
2120
- component: () => import('./acorex-platform-layouts-string-widget-filter.component-D3ZxVk6S.mjs').then((c) => c.AXPStringWidgetFilterComponent),
2121
- },
2122
- edit: {
2123
- component: () => import('./acorex-platform-layouts-text-widget-edit.component-BrDbNXgJ.mjs').then((c) => c.AXPTextWidgetEditComponent),
2124
- },
2125
- column: {
2126
- component: () => import('./acorex-platform-layouts-text-widget-column.component-D8WDAbQB.mjs').then((c) => c.AXPTextWidgetColumnComponent),
2127
- options: { allowResizing: true },
2128
- },
2129
- },
2130
- filterOptions: {
2131
- operators: [...STRING_OPERATORS],
2132
- default: CONTAINS_OPER,
2133
- },
2134
- name: widgetSchemas.text,
2135
- dataType: 'string',
2136
- });
2137
- service.extend('text', {
2138
- name: widgetSchemas.largetext,
2139
- component: {
2140
- edit: {
2141
- component: () => import('./acorex-platform-layouts-largetext-widget-edit.component-CmH9daul.mjs').then((c) => c.AXPLargeTextWidgetEditComponent),
2142
- },
2143
- column: {
2144
- options: {
2145
- width: '400px',
2146
- },
2147
- },
2148
- },
2149
- });
2150
- //
2151
- service.register({
2152
- component: {
2153
- view: {
2154
- component: () => import('./acorex-platform-layouts-number-widget-view.component-B0duuEhX.mjs').then((c) => c.AXPNumberWidgetViewComponent),
2155
- },
2156
- filter: {
2157
- component: () => import('./acorex-platform-layouts-number-widget-filter.component-ARH7BdkE.mjs').then((c) => c.AXPNumberWidgetFilterComponent),
2158
- },
2159
- edit: {
2160
- component: () => import('./acorex-platform-layouts-number-widget-edit.component-CXTwKvM4.mjs').then((c) => c.AXPNumberWidgetEditComponent),
2161
- },
2162
- column: {
2163
- component: () => import('./acorex-platform-layouts-number-widget-view.component-B0duuEhX.mjs').then((c) => c.AXPNumberWidgetViewComponent),
2164
- options: { allowResizing: true },
2165
- },
2166
- },
2167
- name: widgetSchemas.number,
2168
- filterOptions: {
2169
- operators: [...NUMBER_OPERATORS],
2170
- default: BETWEEN_OPER,
2171
- },
2172
- dataType: 'number',
2173
- });
2174
- service.extend('number', {
2175
- name: widgetSchemas.currency,
2176
- formats: {
2177
- default: 'EN-GB',
2178
- },
2179
- component: {
2180
- edit: {
2181
- options: {
2182
- clearButton: false,
2183
- },
2184
- },
2185
- },
2186
- });
2187
- //phone
2188
- service.register({
2189
- component: {
2190
- view: {
2191
- component: () => import('./acorex-platform-layouts-phone-widget-view.component-C7EN8qDk.mjs').then((c) => c.AXPPhoneWidgetViewComponent),
2192
- },
2193
- column: {
2194
- component: () => import('./acorex-platform-layouts-phone-widget-column.component-BtZ5Qke0.mjs').then((c) => c.AXPPhoneWidgetColumnComponent),
2195
- options: { allowResizing: true },
2196
- },
2197
- edit: {
2198
- component: () => import('./acorex-platform-layouts-phone-widget-edit.component-BugCYS-l.mjs').then((c) => c.AXPPhoneWidgetEditComponent),
2199
- },
2200
- filter: {
2201
- component: () => import('./acorex-platform-layouts-string-widget-filter.component-D3ZxVk6S.mjs').then((c) => c.AXPStringWidgetFilterComponent),
2202
- },
2203
- },
2204
- name: widgetSchemas.phone,
2205
- filterOptions: {
2206
- operators: [...STRING_OPERATORS],
2207
- default: CONTAINS_OPER,
2208
- },
2209
- dataType: 'object',
2210
- });
2211
- //email
2212
- service.register({
2213
- component: {
2214
- view: {
2215
- component: () => import('./acorex-platform-layouts-email-widget-view.component-BZsLYW2w.mjs').then((c) => c.AXPEmailWidgetViewComponent),
2216
- },
2217
- edit: {
2218
- component: () => import('./acorex-platform-layouts-email-widget-edit.component-DqnNien2.mjs').then((c) => c.AXPEmailWidgetEditComponent),
2219
- },
2220
- filter: {
2221
- component: () => import('./acorex-platform-layouts-string-widget-filter.component-D3ZxVk6S.mjs').then((c) => c.AXPStringWidgetFilterComponent),
2222
- },
2223
- column: {
2224
- component: () => import('./acorex-platform-layouts-email-widget-column.component-CUnxKERe.mjs').then((c) => c.AXPEmailWidgetColumnComponent),
2225
- options: { allowResizing: true },
2226
- },
2227
- },
2228
- name: widgetSchemas.email,
2229
- filterOptions: {
2230
- operators: [...STRING_OPERATORS],
2231
- default: CONTAINS_OPER,
2232
- },
2233
- dataType: 'object',
2234
- });
2235
- // dateTime
2236
- service.register({
2237
- component: {
2238
- view: {
2239
- component: () => import('./acorex-platform-layouts-dateTime-widget-view.component-CjChqiJw.mjs').then((c) => c.AXPDateTimeWidgetViewComponent),
2240
- },
2241
- edit: {
2242
- component: () => import('./acorex-platform-layouts-dateTime-widget-edit.component-BLqAWdRX.mjs').then((c) => c.AXPDateTimeWidgetEditComponent),
2243
- },
2244
- filter: {
2245
- component: () => import('./acorex-platform-layouts-dateTime-widget-filter.component-tvc-cTos.mjs').then((c) => c.AXPDateTimeWidgetFilterComponent),
2246
- },
2247
- column: {
2248
- component: () => import('./acorex-platform-layouts-dateTime-widget-column.component-D0eNN66F.mjs').then((c) => c.AXPDateTimeWidgetColumnComponent),
2249
- options: {
2250
- width: '200px',
2251
- allowResizing: true,
2252
- },
2253
- },
2254
- },
2255
- formats: {
2256
- default: 'date',
2257
- },
2258
- filterOptions: {
2259
- operators: [...DATE_OPERATORS],
2260
- default: BETWEEN_OPER,
2261
- },
2262
- name: widgetSchemas.dateTime,
2263
- dataType: 'date',
2264
- });
2265
- service.extend(widgetSchemas.dateTime, {
2266
- name: widgetSchemas.date,
2267
- formats: {
2268
- default: 'date',
2269
- },
2270
- component: {
2271
- column: {
2272
- options: {
2273
- width: '120px',
2274
- },
2275
- },
2276
- },
2277
- });
2278
- service.extend(widgetSchemas.dateTime, {
2279
- name: widgetSchemas.time,
2280
- formats: {
2281
- default: 'time',
2282
- },
2283
- component: {
2284
- column: {
2285
- options: {
2286
- width: '80px',
2287
- },
2288
- },
2289
- },
2290
- });
2291
- //toggle
2292
- service.register({
2293
- component: {
2294
- view: {
2295
- component: () => import('./acorex-platform-layouts-toggle-widget-view.component-CyjhQSiV.mjs').then((c) => c.AXPToggleWidgetViewComponent),
2296
- },
2297
- edit: {
2298
- component: () => import('./acorex-platform-layouts-toggle-widget-edit.component-BKbBile6.mjs').then((c) => c.AXPToggleWidgetEditComponent),
2299
- },
2300
- filter: {
2301
- component: () => import('./acorex-platform-layouts-boolean-widget-filter.component-CHW4rgxA.mjs').then((c) => c.AXPBooleanWidgetFilterComponent),
2302
- },
2303
- column: {
2304
- component: () => import('./acorex-platform-layouts-toggle-widget-column.component-BjIyTuZj.mjs').then((c) => c.AXPToggleWidgetColumnComponent),
2305
- options: {
2306
- width: '100px',
2307
- allowResizing: true
2308
- },
2309
- },
2310
- },
2311
- filterOptions: {
2312
- operators: [],
2313
- default: EQ_OPER,
2314
- },
2315
- name: widgetSchemas.toggle,
2316
- dataType: 'boolean',
2317
- });
2318
- //checkbox
2319
- service.register({
2320
- component: {
2321
- view: {
2322
- component: () => import('./acorex-platform-layouts-checkbox-widget-view.component-DQLggJ9x.mjs').then((c) => c.AXPCheckboxWidgetViewComponent),
2323
- },
2324
- edit: {
2325
- component: () => import('./acorex-platform-layouts-checkbox-widget-edit.component-Cqn_QBcv.mjs').then((c) => c.AXPCheckboxWidgetEditComponent),
2326
- },
2327
- filter: {
2328
- component: () => import('./acorex-platform-layouts-boolean-widget-filter.component-CHW4rgxA.mjs').then((c) => c.AXPBooleanWidgetFilterComponent),
2329
- },
2330
- column: {
2331
- component: () => import('./acorex-platform-layouts-checkbox-widget-column.component-BNEtAS7g.mjs').then((c) => c.AXPCheckboxWidgetColumnComponent),
2332
- options: {
2333
- width: '100px',
2334
- allowResizing: true
2335
- },
2336
- },
2337
- },
2338
- filterOptions: {
2339
- operators: [],
2340
- default: EQ_OPER,
2341
- },
2342
- name: widgetSchemas.checkbox,
2343
- dataType: 'boolean',
2344
- });
2345
- //password
2346
- service.register({
2347
- component: {
2348
- view: {
2349
- component: () => import('./acorex-platform-layouts-password-widget-view.component-BaipF6fT.mjs').then((c) => c.AXPPasswordWidgetViewComponent),
2350
- },
2351
- column: {
2352
- component: () => import('./acorex-platform-layouts-password-widget-column.component-Cav_zCe4.mjs').then((c) => c.AXPPasswordWidgetColumnComponent),
2353
- options: {
2354
- allowResizing: true
2355
- }
2356
- },
2357
- edit: {
2358
- component: () => import('./acorex-platform-layouts-password-widget-edit.component-Dm2E5zA_.mjs').then((c) => c.AXPPasswordWidgetEditComponent),
2359
- },
2360
- },
2361
- filterOptions: {
2362
- operators: [],
2363
- default: EQ_OPER,
2364
- },
2365
- name: widgetSchemas.password,
2366
- dataType: 'string',
2367
- });
2368
- //file
2369
- service.register({
2370
- component: {
2371
- view: {
2372
- component: () => import('./acorex-platform-layouts-file-widget-view.component-DVlbi33v.mjs').then((c) => c.AXPFileWidgetViewComponent),
2373
- },
2374
- column: {
2375
- component: () => import('./acorex-platform-layouts-file-widget-column.component-f54Z9E5C.mjs').then((c) => c.AXPFileWidgetColumnComponent),
2376
- options: {
2377
- allowResizing: true
2378
- }
2379
- },
2380
- edit: {
2381
- component: () => import('./acorex-platform-layouts-file-widget-edit.component-CW9ESi46.mjs').then((c) => c.AXPFileWidgetEditComponent),
2382
- },
2383
- filter: {
2384
- component: () => import('./acorex-platform-layouts-file-widget-filter.component-K3mC1xLX.mjs').then((c) => c.AXPFileWidgetFilterComponent),
2385
- },
2386
- },
2387
- filterOptions: {
2388
- operators: [],
2389
- default: EQ_OPER,
2390
- },
2391
- name: widgetSchemas.file,
2392
- dataType: 'object',
2393
- });
2394
- // look up
2395
- service.register({
2396
- component: {
2397
- view: {
2398
- component: () => import('./acorex-platform-layouts-lookup-widget-view.component-Bmp_zVcQ.mjs').then((c) => c.AXPLookupWidgetViewComponent),
2399
- },
2400
- edit: {
2401
- component: () => import('./acorex-platform-layouts-lookup-widget-edit.component-B2Qyoi4Q.mjs').then((c) => c.AXPLookupWidgetEditComponent),
2402
- },
2403
- filter: {
2404
- component: () => import('./acorex-platform-layouts-lookup-widget-filter.component-JJzSun3D.mjs').then((c) => c.AXPLookupWidgetFilterComponent),
2405
- },
2406
- column: {
2407
- component: () => import('./acorex-platform-layouts-lookup-widget-column.component-C4Bb5AYW.mjs').then((c) => c.AXPLookupWidgetColumnComponent),
2408
- options: {
2409
- allowResizing: true
2410
- }
2411
- },
2412
- },
2413
- filterOptions: {
2414
- operators: [],
2415
- default: CONTAINS_OPER,
2416
- },
2417
- name: widgetSchemas.lookup,
2418
- dataType: 'object',
2419
- });
2420
- // selection list
2421
- service.register({
2422
- component: {
2423
- view: {
2424
- component: () => import('./acorex-platform-layouts-selection-list-widget-view.component-BDupWZy-.mjs').then((c) => c.AXPSelectionListWidgetViewComponent),
2425
- },
2426
- edit: {
2427
- component: () => import('./acorex-platform-layouts-selection-list-widget-edit.component-DU-U-Af-.mjs').then((c) => c.AXPSelectionListWidgetEditComponent),
2428
- },
2429
- column: {
2430
- component: () => import('./acorex-platform-layouts-selection-list-widget-column.component-Cx9QqR9f.mjs').then((c) => c.AXPSelectionListWidgetColumnComponent),
2431
- options: {
2432
- allowResizing: true
2433
- }
2434
- },
2435
- filter: {
2436
- component: () => import('./acorex-platform-layouts-selection-list-widget-filter.component-B8y8heXR.mjs').then((c) => c.AXPSelectionListWidgetFilterComponent),
2437
- },
2438
- },
2439
- filterOptions: {
2440
- operators: [],
2441
- default: CONTAINS_OPER,
2442
- },
2443
- name: widgetSchemas.selectionList,
2444
- dataType: 'object',
2445
- });
2446
- // rich text
2447
- service.register({
2448
- component: {
2449
- view: {
2450
- component: () => import('./acorex-platform-layouts-rich-text-widget-view.component-B_QG0YJc.mjs').then((c) => c.AXPRichTextWidgetViewComponent),
2451
- },
2452
- edit: {
2453
- component: () => import('./acorex-platform-layouts-rich-text-widget-edit.component-Di1P6EQV.mjs').then((c) => c.AXPRichTextWidgetEditComponent),
2454
- options: {
2455
- allowResizing: true
2456
- }
2457
- },
2458
- column: {
2459
- component: () => import('./acorex-platform-layouts-rich-text-widget-column.component-B99s2Zhi.mjs').then((c) => c.AXPRichTextWidgetColumnComponent),
2460
- options: {
2461
- width: '400px',
2462
- },
2463
- },
2464
- filter: {
2465
- component: () => import('./acorex-platform-layouts-string-widget-filter.component-D3ZxVk6S.mjs').then((c) => c.AXPStringWidgetFilterComponent),
2466
- },
2467
- },
2468
- filterOptions: {
2469
- operators: [...STRING_OPERATORS],
2470
- default: CONTAINS_OPER,
2471
- },
2472
- name: widgetSchemas.richText,
2473
- dataType: 'object',
2474
- });
2475
- // map
2476
- service.register({
2477
- component: {
2478
- view: {
2479
- component: () => import('./acorex-platform-layouts-map-widget-view.component-cB5Mq7G7.mjs').then((c) => c.AXPMapWidgetViewComponent),
2480
- },
2481
- edit: {
2482
- component: () => import('./acorex-platform-layouts-map-widget-edit.component-EWlgQnx5.mjs').then((c) => c.AXPMapWidgetEditComponent),
2483
- },
2484
- },
2485
- filterOptions: {
2486
- operators: [],
2487
- default: EQ_OPER,
2488
- },
2489
- name: widgetSchemas.map,
2490
- dataType: 'object',
2491
- });
2492
- // avatar
2493
- service.register({
2494
- component: {
2495
- view: {
2496
- component: () => import('./acorex-platform-layouts-avatar-widget-view.component-wwI7L0Kc.mjs').then((c) => c.AXPAvatarWidgetViewComponent),
2497
- },
2498
- edit: {
2499
- component: () => import('./acorex-platform-layouts-avatar-widget-edit.component-a_eCmVu5.mjs').then((c) => c.AXPAvatarWidgetEditComponent),
2500
- },
2501
- },
2502
- filterOptions: {
2503
- operators: [],
2504
- default: EQ_OPER,
2505
- },
2506
- name: widgetSchemas.avatar,
2507
- dataType: 'object',
2508
- });
2509
- // messenger
2510
- service.register({
2511
- component: {
2512
- view: {
2513
- component: () => import('./acorex-platform-layouts-messenger-widget-view.component-uciMJWYn.mjs').then((c) => c.AXPMessengerWidgetViewComponent),
2514
- },
2515
- edit: {
2516
- component: () => import('./acorex-platform-layouts-messenger-widget-edit.component-C7VOe49a.mjs').then((c) => c.AXPMessengerWidgetEditComponent),
2517
- },
2518
- column: {
2519
- component: () => import('./acorex-platform-layouts-messenger-widget-column.component-DWgWrdmz.mjs').then((c) => c.AXPMessengerWidgetColumnComponent),
2520
- options: {
2521
- allowResizing: true
2522
- }
2523
- },
2524
- },
2525
- filterOptions: {
2526
- operators: [],
2527
- default: EQ_OPER,
954
+ await this.workflow.execute('show-quick-view', {
955
+ payload: {
956
+ module: this.loader.entity.module,
957
+ entity: this.loader.entity.name,
958
+ data: e.data,
959
+ },
960
+ });
961
+ break;
962
+ }
963
+ case 'edit': {
964
+ await this.workflow.execute('show-details', {
965
+ payload: {
966
+ module: this.loader.entity.module,
967
+ entity: this.loader.entity.name,
968
+ },
969
+ id: e.data.id,
970
+ });
971
+ break;
972
+ }
973
+ case 'delete': {
974
+ await this.workflow.execute('delete-entity', {
975
+ module: this.loader.entity.module,
976
+ entity: this.loader.entity.name,
977
+ ids: [e.data.id],
978
+ });
979
+ break;
980
+ }
981
+ }
982
+ }
983
+ handleCreateClick() {
984
+ this.workflow.execute('create-entity', {
985
+ payload: {
986
+ module: this.loader.entity.module,
987
+ entity: this.loader.entity.name,
2528
988
  },
2529
- name: widgetSchemas.messenger,
2530
- dataType: 'object',
2531
989
  });
2532
- //
2533
- // gallery
2534
- service.register({
2535
- component: {
2536
- view: {
2537
- component: () => import('./acorex-platform-layouts-gallery-widget-view.component-BqVO3rDH.mjs').then((c) => c.AXPGalleryWidgetViewComponent),
2538
- },
2539
- edit: {
2540
- component: () => import('./acorex-platform-layouts-gallery-widget-edit.component-BUlkUU5u.mjs').then((c) => c.AXPGalleryWidgetEditComponent),
2541
- },
2542
- filter: {
2543
- component: () => import('./acorex-platform-layouts-gallery-widget-filter.component-BYFQSXOV.mjs').then((c) => c.AXPGalleryWidgetFilterComponent),
2544
- },
2545
- },
2546
- filterOptions: {
2547
- operators: [],
2548
- default: EQ_OPER,
990
+ }
991
+ handleCommandClick(command) {
992
+ switch (command) {
993
+ case 'delete':
994
+ this.workflow.execute('delete-entity', {
995
+ module: this.loader.entity.module,
996
+ entity: this.loader.entity.name,
997
+ ids: this.grid.selectedRows.map((c) => c['id']),
998
+ });
999
+ break;
1000
+ default:
1001
+ break;
1002
+ }
1003
+ }
1004
+ clearSelectedItems() {
1005
+ this.grid.selectedRows = [];
1006
+ }
1007
+ closeDrawer(name, collapsed) {
1008
+ if (collapsed != false) {
1009
+ switch (name) {
1010
+ case 'conditions':
1011
+ this.loader.resetConditions();
1012
+ break;
1013
+ case 'columns':
1014
+ this.loader.resetColumns();
1015
+ break;
1016
+ case 'sorts':
1017
+ this.loader.resetSort();
1018
+ break;
1019
+ default:
1020
+ break;
1021
+ }
1022
+ }
1023
+ }
1024
+ handleChangeSearchValue(e) {
1025
+ if (e.isUserInteraction) {
1026
+ this.loader.handleInlineSearch(e.value);
1027
+ }
1028
+ }
1029
+ async addCustomViewPopup() {
1030
+ const newView = {
1031
+ name: 'custom-view',
1032
+ title: 'Custom View',
1033
+ fixed: false,
1034
+ sorts: [],
1035
+ columns: convertPropertiesToColumns(...this.loader.entity.properties),
1036
+ conditions: [],
1037
+ };
1038
+ const popup = await this.popupService.open(AXPEntityCreateCustomViewComponent, {
1039
+ title: 'Create Custom View',
1040
+ size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',
1041
+ closeOnBackdropClick: true,
1042
+ draggable: false,
1043
+ data: {
1044
+ loader: this.loader,
1045
+ selectedView: newView,
1046
+ mode: 'create',
2549
1047
  },
2550
- name: widgetSchemas.gallery,
2551
- dataType: 'object',
2552
1048
  });
2553
- // signature-pad
2554
- service.register({
2555
- component: {
2556
- view: {
2557
- component: () => import('./acorex-platform-layouts-signature-pad-widget-view.component-DB903O2F.mjs').then((c) => c.AXPSignaturePadWidgetViewComponent),
2558
- },
2559
- edit: {
2560
- component: () => import('./acorex-platform-layouts-signature-pad-widget-edit.component-bEDsl8mg.mjs').then((c) => c.AXPSignaturePadWidgetEditComponent),
2561
- },
2562
- },
2563
- filterOptions: {
2564
- operators: [],
2565
- default: EQ_OPER,
1049
+ if (popup.data?.save == true) {
1050
+ console.log('updatedView: ', popup.data.updatedView);
1051
+ this.loader.createView(popup.data.updatedView);
1052
+ }
1053
+ }
1054
+ async updateViewPopup(e, selectedView) {
1055
+ // (e.nativeEvent as UIEvent).stopPropagation();
1056
+ const popup = await this.popupService.open(AXPEntityCreateCustomViewComponent, {
1057
+ title: 'Modify Custom View',
1058
+ size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',
1059
+ closeOnBackdropClick: true,
1060
+ draggable: false,
1061
+ data: {
1062
+ loader: this.loader,
1063
+ selectedView,
1064
+ mode: 'edit',
2566
1065
  },
2567
- name: widgetSchemas.signaturePad,
2568
- dataType: 'object',
2569
1066
  });
2570
- //
1067
+ if (popup.data?.delete == true) {
1068
+ this.loader.deleteView(popup.data.viewName);
1069
+ }
1070
+ if (popup.data?.save == true) {
1071
+ console.log('updatedView: ', popup.data.updatedView);
1072
+ this.loader.updateView(popup.data.updatedView);
1073
+ }
1074
+ }
1075
+ ngOnDestroy() {
1076
+ this.dataSource.reset();
2571
1077
  }
2572
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPCommonWidgetModule, deps: [{ token: i1$3.AXPSchemaRegistryService }], target: i0.ɵɵFactoryTarget.NgModule }); }
2573
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: AXPCommonWidgetModule, imports: [AXToastModule] }); }
2574
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPCommonWidgetModule, imports: [AXToastModule] }); }
1078
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityListViewComponent, deps: [{ token: i1$1.AXActionSheetService }, { token: i2$1.AXUnsubscriber }, { token: i3.AXPlatform }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1079
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPEntityListViewComponent, selector: "ng-component", providers: [AXUnsubscriber], viewQueries: [{ propertyName: "viewsTemplate", first: true, predicate: ["viewsTemplate"], descendants: true }, { propertyName: "grid", first: true, predicate: ["grid"], descendants: true }, { propertyName: "entityViewDrawer", first: true, predicate: ["entityViewDrawer"], descendants: true }], ngImport: i0, template: "<ax-drawer-container>\r\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"true\" [mode]=\"platform.is('SM') ? 'overlay' : 'push'\">\r\n <ax-content class=\"ax-w-64 ax-border-e\">\r\n <div class=\"ax-p-6 ax-py-4 ax-gap-6 ax-flex ax-flex-col\">\r\n <p class=\"ax-text-2xl ax-font-bold\">Folders</p>\r\n <ax-side-menu>\r\n <ng-container *ngFor=\"let node of menuItems\" [ngTemplateOutlet]=\"sideMenu\"\r\n [ngTemplateOutletContext]=\"{ $implicit: node }\">\r\n </ng-container>\r\n </ax-side-menu>\r\n <ng-template #sideMenu let-item>\r\n <ax-side-menu-item [text]=\"item.text\">\r\n <ax-prefix>\r\n <ax-icon class=\"fa-solid fa-folder ax-text-warning-500\"></ax-icon>\r\n </ax-prefix>\r\n <ng-container *ngIf=\"item.children\">\r\n <ng-container *ngFor=\"let child of item.children\" [ngTemplateOutlet]=\"sideMenu\"\r\n [ngTemplateOutletContext]=\"{ $implicit: child }\">\r\n </ng-container>\r\n </ng-container>\r\n </ax-side-menu-item>\r\n </ng-template>\r\n </div>\r\n </ax-content>\r\n </ax-drawer> -->\r\n <ax-content class=\"ax-flex ax-flex-col ax-overflow-hidden\">\r\n <div\r\n class=\"ax-flex ax-flex-col ax-gap-0 md:ax-gap-4 ax-px-4 ax-py-3 md:ax-py-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\r\n @if(platform.is('MD')){\r\n <div class=\"ax-flex ax-justify-between ax-mb-4\">\r\n @if(this.grid?.selectedRows?.length==0){\r\n <div class=\"ax-text-xl ax-font-bold\">{{ title }}</div>\r\n <div class=\"ax-flex ax-items-center ax-gap-2\">\r\n @if(canCreate)\r\n {\r\n <ax-button color=\"primary\" class=\"ax-sm\" (onClick)=\"handleCreateClick()\">\r\n <ax-icon class=\"fa-solid fa-add\"></ax-icon>\r\n </ax-button>\r\n }\r\n <ax-button color=\"ghost\" class=\"ax-sm\" #more>\r\n <ax-icon class=\"fa-solid fa-ellipsis-vertical\"> </ax-icon>\r\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\r\n <ax-button-item-list>\r\n <ax-button-item text=\"Export\" class=\"ax-font-semibold\">\r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-file-export\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n </div>\r\n }@else {\r\n <div class=\"ax-flex ax-items-center ax-gap-3\">\r\n <span class=\"ax-text-xl ax-font-bold\"> {{ this.grid?.selectedRows?.length }} Items Selected </span>\r\n <span (click)=\"clearSelectedItems()\"\r\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\">Clear\r\n Items</span>\r\n </div>\r\n <div class=\"ax-flex ax-items-center ax-gap-2\">\r\n @if(canDelete)\r\n {\r\n <ax-button color=\"danger\" class=\"ax-sm\" (onClick)=\"handleCommandClick('delete')\">\r\n <ax-icon class=\"fa-solid fa-trash\"> </ax-icon>\r\n </ax-button>\r\n }\r\n <ax-button color=\"ghost\" class=\"ax-sm\" #more>\r\n <ax-icon class=\"fa-solid fa-ellipsis-vertical\"> </ax-icon>\r\n </ax-button>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"ax-flex ax-items-center ax-justify-between\">\r\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" [text]=\"(view$ | async)?.title\" color=\"ghost\">\r\n <ax-icon class=\"fa-solid fa-eye ax-text-neutral-400\"> </ax-icon>\r\n <ax-suffix>\r\n <i class=\"fa-solid fa-caret-down\"></i>\r\n </ax-suffix>\r\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\r\n <ax-button-item-list class=\"ax-bg-surface\">\r\n <ax-title class=\"ax-font-bold ax-opacity-100\">Public Views</ax-title>\r\n <ax-button-item *ngFor=\"let v of publicViews$ | async\" [text]=\"v.title\"\r\n [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\"></ax-button-item>\r\n <ax-title class=\"ax-font-bold ax-opacity-100\" *ngIf=\"hasCustomViews$ | async\">Created by me</ax-title>\r\n <ax-button-item *ngFor=\"let v of customViews$ | async\" [text]=\"v.title\"\r\n [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\"></ax-button-item>\r\n <ng-container *feature=\"'axp-entity-list-custom-view'\">\r\n <ax-divider></ax-divider>\r\n <ax-button-item (onClick)=\"addCustomViewPopup()\" text=\"Add Custom View\"\r\n class=\"ax-font-semibold ax-text-primary\"></ax-button-item>\r\n </ng-container>\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n <div class=\"ax-flex ax-gap-2\">\r\n @if(searchBoxTitle){\r\n <ax-button *feature=\"'axp-entity-list-quick-search'\" (onClick)=\"toggleSearchBox()\"\r\n [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\">\r\n <ax-icon class=\"fa-solid fa-search ax-text-neutral-400\"> </ax-icon>\r\n </ax-button>\r\n }\r\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\" (onClick)=\"columnsDrawer.open()\">\r\n <ax-icon class=\"fa-solid fa-bars ax-text-neutral-400\"> </ax-icon>\r\n </ax-button>\r\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\"\r\n (onClick)=\"conditionsDrawer.open()\">\r\n <ax-icon class=\"fa-solid fa-sliders ax-text-neutral-400\"> </ax-icon>\r\n @if ((conditionsCount$ | async)) {\r\n <ax-suffix>\r\n <ax-badge [color]=\"'primary'\"></ax-badge>\r\n </ax-suffix>\r\n }\r\n </ax-button>\r\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\" (onClick)=\"sortsDrawer.open()\">\r\n <ax-icon class=\"fa-solid fa-bars-sort ax-text-neutral-400\"> </ax-icon>\r\n @if ((sortCount$ | async)) {\r\n <ax-suffix>\r\n <ax-badge [color]=\"'primary'\"></ax-badge>\r\n </ax-suffix>\r\n }\r\n </ax-button>\r\n </div>\r\n </div>\r\n <div *feature=\"'axp-entity-list-quick-search'\" [class.collapsed-search-box]=\"searchBoxCollapsed\"\r\n class=\"ax-transition-all ax-mt-4\">\r\n <ax-search-box [title]=\"searchBoxTitle\"\r\n [placeholder]=\"'Search on ' + searchBoxPlaceholder\"><ax-clear-button></ax-clear-button></ax-search-box>\r\n </div>\r\n } @else {\r\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-3\">\r\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold ax-mb-2\">{{ title }}</div>\r\n @if(this.grid?.selectedRows?.length==0){\r\n <div class=\"ax-flex ax-gap-3\">\r\n @if(canCreate)\r\n {\r\n <ax-button text=\"Create New\" color=\"primary\" (onClick)=\"handleCreateClick()\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-add\"></i>\r\n </ax-prefix>\r\n </ax-button>\r\n }\r\n <ax-button text=\"Actions\" color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\r\n </ax-prefix>\r\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\r\n <ax-button-item-list>\r\n <ax-button-item text=\"Export\" class=\"ax-font-semibold\">\r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-file-export\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n </div>\r\n }@else {\r\n <div class=\"ax-flex ax-gap-3\">\r\n @if(canDelete)\r\n {\r\n <ax-button text=\"Delete Items\" color=\"danger\" (onClick)=\"handleCommandClick('delete')\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-trash\"></i>\r\n </ax-prefix>\r\n </ax-button>\r\n }\r\n <ax-button text=\"Actions\" color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\r\n </ax-prefix>\r\n </ax-button>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"ax-flex ax-items-center ax-justify-between\">\r\n <!----------------------- View Mode --------------------->\r\n @if(this.grid?.selectedRows?.length==0) {\r\n <div class=\"ax-flex ax-w-full ax-justify-between ax-gap-3\">\r\n <div class=\"ax-flex ax-gap-3\">\r\n <ax-button [text]=\"(view$ | async)?.title\" #views color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-eye\"></i>\r\n </ax-prefix>\r\n <ax-suffix>\r\n <i class=\"fa-solid fa-caret-down\"></i>\r\n </ax-suffix>\r\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\r\n <ax-button-item-list class=\"ax-bg-surface\">\r\n <ax-title class=\"ax-font-bold ax-opacity-100\">Public Views</ax-title>\r\n <ax-button-item *ngFor=\"let v of publicViews$ | async\" [text]=\"v.title\"\r\n [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\"></ax-button-item>\r\n <ax-title class=\"ax-font-bold ax-opacity-100\" *ngIf=\"hasCustomViews$ | async\">Created by me</ax-title>\r\n <ax-button-item class=\"ax-pe-4 ax-flex ax-justify-between\" *ngFor=\"let v of customViews$ | async\"\r\n [text]=\"v.title\" [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\">\r\n <ax-suffix>\r\n <ax-button (onClick)=\"updateViewPopup($event, v)\" class=\"ax-xs\" look=\"none\">\r\n <ax-icon class=\"far fa-edit\"> </ax-icon>\r\n </ax-button>\r\n </ax-suffix>\r\n </ax-button-item>\r\n <ng-container *feature=\"'axp-entity-list-custom-view'\">\r\n <ax-divider></ax-divider>\r\n <ax-button-item text=\"Add Custom View\" (onClick)=\"addCustomViewPopup()\"\r\n class=\"ax-font-semibold ax-text-primary\"></ax-button-item>\r\n </ng-container>\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n @if(searchBoxTitle){\r\n <div class=\"ax-w-72\" *feature=\"'axp-entity-list-quick-search'\">\r\n <ax-search-box [title]=\"searchBoxTitle\" [(ngModel)]=\"searchValue\"\r\n (onValueChanged)=\"handleChangeSearchValue($event)\"\r\n [placeholder]=\"'Search on ' + searchBoxPlaceholder\"><ax-clear-button></ax-clear-button></ax-search-box>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"ax-flex ax-gap-3\">\r\n <ax-button text=\"Columns\" color=\"ghost\" #columns (onClick)=\"columnsDrawer.open()\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-bars\"></i>\r\n </ax-prefix>\r\n <ax-suffix>\r\n <ax-badge text=\"{{ columnsCount$ | async }}\" color=\"primary\"></ax-badge>\r\n </ax-suffix>\r\n </ax-button>\r\n <ax-button text=\"Filters\" color=\"ghost\" (onClick)=\"conditionsDrawer.open()\" #conditions>\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-sliders\"></i>\r\n </ax-prefix>\r\n <ax-suffix>\r\n <ax-badge text=\"{{ conditionsCount$ | async }}\" color=\"primary\"></ax-badge>\r\n </ax-suffix>\r\n </ax-button>\r\n <ax-button text=\"Sort\" color=\"ghost\" (onClick)=\"sortsDrawer.open()\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-bars-sort\"></i>\r\n </ax-prefix>\r\n <ax-suffix *ngIf=\"(sortCount$ | async)! > 0\">\r\n <ax-badge text=\"{{ sortCount$ | async }}\" color=\"primary\"></ax-badge>\r\n </ax-suffix>\r\n </ax-button>\r\n </div>\r\n </div>\r\n\r\n } @else{\r\n <!----------------------- Selection Mode --------------------->\r\n <div>\r\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\r\n <span class=\"ax-text-xl ax-font-bold\"> {{ this.grid?.selectedRows?.length }} Items Selected </span>\r\n <span (click)=\"clearSelectedItems()\"\r\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\">Clear\r\n Items</span>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <div class=\"ax-flex-1 ax-px-6 ax-py-4 ax-flex ax-overflow-auto\">\r\n <ax-data-table #grid [showFooter]=\"false\" class=\"ax-flex-1\" [dataSource]=\"dataSource\" [paging]=\"true\"\r\n [fetchDataMode]=\"'manual'\" (onRowDbClick)=\"handleRowDbClick($event)\"\r\n [loading]=\"{ enabled: true, animation: true }\">\r\n <!-- <ax-index-column *ngIf=\"!platform.is('SM')\" [width]=\"'85px'\"></ax-index-column> -->\r\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\r\n @for(col of (columns$ | async);track col.name) {\r\n <axp-widget-column-renderer *ngIf=\"col.visible\" [schema]=\"col.schema\" [dataField]=\"col.name\"\r\n [caption]=\"col.title\" [options]=\"col.options\" [displayFormat]=\"col.displayFormat\" width=\"180px\"\r\n [allowSorting]=\"false\">\r\n </axp-widget-column-renderer>\r\n }\r\n <ax-dropdown-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getDropdownRowItems\"\r\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-dropdown-command-column>\r\n <ax-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getInlineRowItems\"\r\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-command-column>\r\n </ax-data-table>\r\n </div>\r\n </ax-content>\r\n <ax-drawer (collapsedChange)=\"closeDrawer('columns', $event)\" #columnsDrawer location=\"end\" [mode]=\"'overlay'\">\r\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\r\n <axp-list-view-option-columns [loader]=\"loader\" (onClosed)=\"columnsDrawer.close()\"></axp-list-view-option-columns>\r\n </ax-content>\r\n </ax-drawer>\r\n <ax-drawer (collapsedChange)=\"closeDrawer('conditions', $event)\" #conditionsDrawer location=\"end\" [mode]=\"'overlay'\">\r\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[25vw] ax-border-e\">\r\n <axp-list-view-option-conditions [loader]=\"loader\"\r\n (onClosed)=\"conditionsDrawer.close()\"></axp-list-view-option-conditions>\r\n </ax-content>\r\n </ax-drawer>\r\n <ax-drawer (collapsedChange)=\"closeDrawer('sorts', $event)\" #sortsDrawer location=\"end\" [mode]=\"'overlay'\">\r\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\r\n <axp-list-view-option-sorting (onClosed)=\"sortsDrawer.close()\" [loader]=\"loader\"></axp-list-view-option-sorting>\r\n </ax-content>\r\n </ax-drawer>\r\n</ax-drawer-container>", styles: [".cdk-drag-preview{border-radius:.375rem;border-width:1px;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background:rgba(var(--ax-color-on-surface));padding:.5rem;height:max-content!important}.collapsed-search-box{margin-top:0;height:0px;opacity:0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "component", type: i6$1.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "rowTemplate", "emptyTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged"] }, { kind: "component", type: i6$1.AXRowSelectColumnComponent, selector: "ax-select-column", inputs: ["width", "caption", "fixed"] }, { kind: "component", type: i6$1.AXRowCommandColumnComponent, selector: "ax-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i6$1.AXRowDropdownCommandColumnComponent, selector: "ax-dropdown-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "component", type: i4$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i4$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i5.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "component", type: i10$2.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i11$1.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i11$1.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "component", type: i12.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "delayTime"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: i10$1.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["width", "caption", "headerTemplate", "allowSorting", "fixed", "footerTemplate", "cellTemplate", "options", "dataField", "displayFormat", "schema"] }, { kind: "directive", type: i14$1.AXPFeatureDirective, selector: "[feature]", inputs: ["feature", "featureElse"] }, { kind: "component", type: AXPListViewOptionsColumnsComponent, selector: "axp-list-view-option-columns", inputs: ["loader"], outputs: ["onClosed"] }, { kind: "component", type: AXPListViewOptionConditionsComponent, selector: "axp-list-view-option-conditions", inputs: ["loader"], outputs: ["onClosed"] }, { kind: "component", type: AXPListViewOptionSortingComponent, selector: "axp-list-view-option-sorting", inputs: ["loader"], outputs: ["onClosed"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2575
1080
  }
2576
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPCommonWidgetModule, decorators: [{
2577
- type: NgModule,
2578
- args: [{
2579
- imports: [AXToastModule],
2580
- exports: [],
2581
- declarations: [],
2582
- providers: [],
2583
- }]
2584
- }], ctorParameters: () => [{ type: i1$3.AXPSchemaRegistryService }] });
1081
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityListViewComponent, decorators: [{
1082
+ type: Component,
1083
+ args: [{ encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXUnsubscriber], template: "<ax-drawer-container>\r\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"true\" [mode]=\"platform.is('SM') ? 'overlay' : 'push'\">\r\n <ax-content class=\"ax-w-64 ax-border-e\">\r\n <div class=\"ax-p-6 ax-py-4 ax-gap-6 ax-flex ax-flex-col\">\r\n <p class=\"ax-text-2xl ax-font-bold\">Folders</p>\r\n <ax-side-menu>\r\n <ng-container *ngFor=\"let node of menuItems\" [ngTemplateOutlet]=\"sideMenu\"\r\n [ngTemplateOutletContext]=\"{ $implicit: node }\">\r\n </ng-container>\r\n </ax-side-menu>\r\n <ng-template #sideMenu let-item>\r\n <ax-side-menu-item [text]=\"item.text\">\r\n <ax-prefix>\r\n <ax-icon class=\"fa-solid fa-folder ax-text-warning-500\"></ax-icon>\r\n </ax-prefix>\r\n <ng-container *ngIf=\"item.children\">\r\n <ng-container *ngFor=\"let child of item.children\" [ngTemplateOutlet]=\"sideMenu\"\r\n [ngTemplateOutletContext]=\"{ $implicit: child }\">\r\n </ng-container>\r\n </ng-container>\r\n </ax-side-menu-item>\r\n </ng-template>\r\n </div>\r\n </ax-content>\r\n </ax-drawer> -->\r\n <ax-content class=\"ax-flex ax-flex-col ax-overflow-hidden\">\r\n <div\r\n class=\"ax-flex ax-flex-col ax-gap-0 md:ax-gap-4 ax-px-4 ax-py-3 md:ax-py-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\r\n @if(platform.is('MD')){\r\n <div class=\"ax-flex ax-justify-between ax-mb-4\">\r\n @if(this.grid?.selectedRows?.length==0){\r\n <div class=\"ax-text-xl ax-font-bold\">{{ title }}</div>\r\n <div class=\"ax-flex ax-items-center ax-gap-2\">\r\n @if(canCreate)\r\n {\r\n <ax-button color=\"primary\" class=\"ax-sm\" (onClick)=\"handleCreateClick()\">\r\n <ax-icon class=\"fa-solid fa-add\"></ax-icon>\r\n </ax-button>\r\n }\r\n <ax-button color=\"ghost\" class=\"ax-sm\" #more>\r\n <ax-icon class=\"fa-solid fa-ellipsis-vertical\"> </ax-icon>\r\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\r\n <ax-button-item-list>\r\n <ax-button-item text=\"Export\" class=\"ax-font-semibold\">\r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-file-export\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n </div>\r\n }@else {\r\n <div class=\"ax-flex ax-items-center ax-gap-3\">\r\n <span class=\"ax-text-xl ax-font-bold\"> {{ this.grid?.selectedRows?.length }} Items Selected </span>\r\n <span (click)=\"clearSelectedItems()\"\r\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\">Clear\r\n Items</span>\r\n </div>\r\n <div class=\"ax-flex ax-items-center ax-gap-2\">\r\n @if(canDelete)\r\n {\r\n <ax-button color=\"danger\" class=\"ax-sm\" (onClick)=\"handleCommandClick('delete')\">\r\n <ax-icon class=\"fa-solid fa-trash\"> </ax-icon>\r\n </ax-button>\r\n }\r\n <ax-button color=\"ghost\" class=\"ax-sm\" #more>\r\n <ax-icon class=\"fa-solid fa-ellipsis-vertical\"> </ax-icon>\r\n </ax-button>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"ax-flex ax-items-center ax-justify-between\">\r\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" [text]=\"(view$ | async)?.title\" color=\"ghost\">\r\n <ax-icon class=\"fa-solid fa-eye ax-text-neutral-400\"> </ax-icon>\r\n <ax-suffix>\r\n <i class=\"fa-solid fa-caret-down\"></i>\r\n </ax-suffix>\r\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\r\n <ax-button-item-list class=\"ax-bg-surface\">\r\n <ax-title class=\"ax-font-bold ax-opacity-100\">Public Views</ax-title>\r\n <ax-button-item *ngFor=\"let v of publicViews$ | async\" [text]=\"v.title\"\r\n [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\"></ax-button-item>\r\n <ax-title class=\"ax-font-bold ax-opacity-100\" *ngIf=\"hasCustomViews$ | async\">Created by me</ax-title>\r\n <ax-button-item *ngFor=\"let v of customViews$ | async\" [text]=\"v.title\"\r\n [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\"></ax-button-item>\r\n <ng-container *feature=\"'axp-entity-list-custom-view'\">\r\n <ax-divider></ax-divider>\r\n <ax-button-item (onClick)=\"addCustomViewPopup()\" text=\"Add Custom View\"\r\n class=\"ax-font-semibold ax-text-primary\"></ax-button-item>\r\n </ng-container>\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n <div class=\"ax-flex ax-gap-2\">\r\n @if(searchBoxTitle){\r\n <ax-button *feature=\"'axp-entity-list-quick-search'\" (onClick)=\"toggleSearchBox()\"\r\n [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\">\r\n <ax-icon class=\"fa-solid fa-search ax-text-neutral-400\"> </ax-icon>\r\n </ax-button>\r\n }\r\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\" (onClick)=\"columnsDrawer.open()\">\r\n <ax-icon class=\"fa-solid fa-bars ax-text-neutral-400\"> </ax-icon>\r\n </ax-button>\r\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\"\r\n (onClick)=\"conditionsDrawer.open()\">\r\n <ax-icon class=\"fa-solid fa-sliders ax-text-neutral-400\"> </ax-icon>\r\n @if ((conditionsCount$ | async)) {\r\n <ax-suffix>\r\n <ax-badge [color]=\"'primary'\"></ax-badge>\r\n </ax-suffix>\r\n }\r\n </ax-button>\r\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\" (onClick)=\"sortsDrawer.open()\">\r\n <ax-icon class=\"fa-solid fa-bars-sort ax-text-neutral-400\"> </ax-icon>\r\n @if ((sortCount$ | async)) {\r\n <ax-suffix>\r\n <ax-badge [color]=\"'primary'\"></ax-badge>\r\n </ax-suffix>\r\n }\r\n </ax-button>\r\n </div>\r\n </div>\r\n <div *feature=\"'axp-entity-list-quick-search'\" [class.collapsed-search-box]=\"searchBoxCollapsed\"\r\n class=\"ax-transition-all ax-mt-4\">\r\n <ax-search-box [title]=\"searchBoxTitle\"\r\n [placeholder]=\"'Search on ' + searchBoxPlaceholder\"><ax-clear-button></ax-clear-button></ax-search-box>\r\n </div>\r\n } @else {\r\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-3\">\r\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold ax-mb-2\">{{ title }}</div>\r\n @if(this.grid?.selectedRows?.length==0){\r\n <div class=\"ax-flex ax-gap-3\">\r\n @if(canCreate)\r\n {\r\n <ax-button text=\"Create New\" color=\"primary\" (onClick)=\"handleCreateClick()\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-add\"></i>\r\n </ax-prefix>\r\n </ax-button>\r\n }\r\n <ax-button text=\"Actions\" color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\r\n </ax-prefix>\r\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\r\n <ax-button-item-list>\r\n <ax-button-item text=\"Export\" class=\"ax-font-semibold\">\r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-file-export\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n </div>\r\n }@else {\r\n <div class=\"ax-flex ax-gap-3\">\r\n @if(canDelete)\r\n {\r\n <ax-button text=\"Delete Items\" color=\"danger\" (onClick)=\"handleCommandClick('delete')\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-trash\"></i>\r\n </ax-prefix>\r\n </ax-button>\r\n }\r\n <ax-button text=\"Actions\" color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\r\n </ax-prefix>\r\n </ax-button>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"ax-flex ax-items-center ax-justify-between\">\r\n <!----------------------- View Mode --------------------->\r\n @if(this.grid?.selectedRows?.length==0) {\r\n <div class=\"ax-flex ax-w-full ax-justify-between ax-gap-3\">\r\n <div class=\"ax-flex ax-gap-3\">\r\n <ax-button [text]=\"(view$ | async)?.title\" #views color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-eye\"></i>\r\n </ax-prefix>\r\n <ax-suffix>\r\n <i class=\"fa-solid fa-caret-down\"></i>\r\n </ax-suffix>\r\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\r\n <ax-button-item-list class=\"ax-bg-surface\">\r\n <ax-title class=\"ax-font-bold ax-opacity-100\">Public Views</ax-title>\r\n <ax-button-item *ngFor=\"let v of publicViews$ | async\" [text]=\"v.title\"\r\n [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\"></ax-button-item>\r\n <ax-title class=\"ax-font-bold ax-opacity-100\" *ngIf=\"hasCustomViews$ | async\">Created by me</ax-title>\r\n <ax-button-item class=\"ax-pe-4 ax-flex ax-justify-between\" *ngFor=\"let v of customViews$ | async\"\r\n [text]=\"v.title\" [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\">\r\n <ax-suffix>\r\n <ax-button (onClick)=\"updateViewPopup($event, v)\" class=\"ax-xs\" look=\"none\">\r\n <ax-icon class=\"far fa-edit\"> </ax-icon>\r\n </ax-button>\r\n </ax-suffix>\r\n </ax-button-item>\r\n <ng-container *feature=\"'axp-entity-list-custom-view'\">\r\n <ax-divider></ax-divider>\r\n <ax-button-item text=\"Add Custom View\" (onClick)=\"addCustomViewPopup()\"\r\n class=\"ax-font-semibold ax-text-primary\"></ax-button-item>\r\n </ng-container>\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n @if(searchBoxTitle){\r\n <div class=\"ax-w-72\" *feature=\"'axp-entity-list-quick-search'\">\r\n <ax-search-box [title]=\"searchBoxTitle\" [(ngModel)]=\"searchValue\"\r\n (onValueChanged)=\"handleChangeSearchValue($event)\"\r\n [placeholder]=\"'Search on ' + searchBoxPlaceholder\"><ax-clear-button></ax-clear-button></ax-search-box>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"ax-flex ax-gap-3\">\r\n <ax-button text=\"Columns\" color=\"ghost\" #columns (onClick)=\"columnsDrawer.open()\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-bars\"></i>\r\n </ax-prefix>\r\n <ax-suffix>\r\n <ax-badge text=\"{{ columnsCount$ | async }}\" color=\"primary\"></ax-badge>\r\n </ax-suffix>\r\n </ax-button>\r\n <ax-button text=\"Filters\" color=\"ghost\" (onClick)=\"conditionsDrawer.open()\" #conditions>\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-sliders\"></i>\r\n </ax-prefix>\r\n <ax-suffix>\r\n <ax-badge text=\"{{ conditionsCount$ | async }}\" color=\"primary\"></ax-badge>\r\n </ax-suffix>\r\n </ax-button>\r\n <ax-button text=\"Sort\" color=\"ghost\" (onClick)=\"sortsDrawer.open()\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-bars-sort\"></i>\r\n </ax-prefix>\r\n <ax-suffix *ngIf=\"(sortCount$ | async)! > 0\">\r\n <ax-badge text=\"{{ sortCount$ | async }}\" color=\"primary\"></ax-badge>\r\n </ax-suffix>\r\n </ax-button>\r\n </div>\r\n </div>\r\n\r\n } @else{\r\n <!----------------------- Selection Mode --------------------->\r\n <div>\r\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\r\n <span class=\"ax-text-xl ax-font-bold\"> {{ this.grid?.selectedRows?.length }} Items Selected </span>\r\n <span (click)=\"clearSelectedItems()\"\r\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\">Clear\r\n Items</span>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <div class=\"ax-flex-1 ax-px-6 ax-py-4 ax-flex ax-overflow-auto\">\r\n <ax-data-table #grid [showFooter]=\"false\" class=\"ax-flex-1\" [dataSource]=\"dataSource\" [paging]=\"true\"\r\n [fetchDataMode]=\"'manual'\" (onRowDbClick)=\"handleRowDbClick($event)\"\r\n [loading]=\"{ enabled: true, animation: true }\">\r\n <!-- <ax-index-column *ngIf=\"!platform.is('SM')\" [width]=\"'85px'\"></ax-index-column> -->\r\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\r\n @for(col of (columns$ | async);track col.name) {\r\n <axp-widget-column-renderer *ngIf=\"col.visible\" [schema]=\"col.schema\" [dataField]=\"col.name\"\r\n [caption]=\"col.title\" [options]=\"col.options\" [displayFormat]=\"col.displayFormat\" width=\"180px\"\r\n [allowSorting]=\"false\">\r\n </axp-widget-column-renderer>\r\n }\r\n <ax-dropdown-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getDropdownRowItems\"\r\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-dropdown-command-column>\r\n <ax-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getInlineRowItems\"\r\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-command-column>\r\n </ax-data-table>\r\n </div>\r\n </ax-content>\r\n <ax-drawer (collapsedChange)=\"closeDrawer('columns', $event)\" #columnsDrawer location=\"end\" [mode]=\"'overlay'\">\r\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\r\n <axp-list-view-option-columns [loader]=\"loader\" (onClosed)=\"columnsDrawer.close()\"></axp-list-view-option-columns>\r\n </ax-content>\r\n </ax-drawer>\r\n <ax-drawer (collapsedChange)=\"closeDrawer('conditions', $event)\" #conditionsDrawer location=\"end\" [mode]=\"'overlay'\">\r\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[25vw] ax-border-e\">\r\n <axp-list-view-option-conditions [loader]=\"loader\"\r\n (onClosed)=\"conditionsDrawer.close()\"></axp-list-view-option-conditions>\r\n </ax-content>\r\n </ax-drawer>\r\n <ax-drawer (collapsedChange)=\"closeDrawer('sorts', $event)\" #sortsDrawer location=\"end\" [mode]=\"'overlay'\">\r\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\r\n <axp-list-view-option-sorting (onClosed)=\"sortsDrawer.close()\" [loader]=\"loader\"></axp-list-view-option-sorting>\r\n </ax-content>\r\n </ax-drawer>\r\n</ax-drawer-container>", styles: [".cdk-drag-preview{border-radius:.375rem;border-width:1px;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background:rgba(var(--ax-color-on-surface));padding:.5rem;height:max-content!important}.collapsed-search-box{margin-top:0;height:0px;opacity:0}\n"] }]
1084
+ }], ctorParameters: () => [{ type: i1$1.AXActionSheetService }, { type: i2$1.AXUnsubscriber }, { type: i3.AXPlatform }, { type: i0.ChangeDetectorRef }], propDecorators: { viewsTemplate: [{
1085
+ type: ViewChild,
1086
+ args: ['viewsTemplate']
1087
+ }], grid: [{
1088
+ type: ViewChild,
1089
+ args: ['grid']
1090
+ }], entityViewDrawer: [{
1091
+ type: ViewChild,
1092
+ args: ['entityViewDrawer']
1093
+ }] } });
2585
1094
 
2586
1095
  class AXPListViewModule {
2587
1096
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPListViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -3089,13 +1598,13 @@ class AXPEntityQuickViewComponent extends AXBasePageComponent {
3089
1598
  break;
3090
1599
  }
3091
1600
  }
3092
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityQuickViewComponent, deps: [{ token: i1$5.Actions }], target: i0.ɵɵFactoryTarget.Component }); }
3093
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPEntityQuickViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"ax-flex ax-flex-col ax-gap-6 ax-p-4\">\n <div class=\"ax-flex ax-flex-col ax-gap-2\" *ngIf=\"root.properties?.length\">\n <div *ngFor=\"let p of getProperties(root.properties)\"\n class=\"ax-flex ax-p-4 odd:ax-bg-on-surface odd:ax-border-t odd:ax-border-b\">\n <div class=\"ax-min-w-[10rem] ax-text-gray-500\">\n <span>{{ p.title }}</span>\n </div>\n <div class=\"ax-min-w-[30rem]\">\n <axp-widget-renderer [schema]=\"p.schema\" [context]=\"data\" [prop]=\"p\"></axp-widget-renderer>\n </div>\n </div>\n </div>\n <div *ngFor=\"let s of root.sections\"\n class=\"ax-flex ax-flex-col ax-pb-3 last-of-type:ax-border-none last-of-type:ax-pb-3\">\n <div class=\"ax-pb-4\">\n <span class=\"ax-font-bold\">{{ s.title }}</span>\n </div>\n <div class=\"ax-flex ax-flex-col\">\n <div *ngFor=\"let p of getProperties(s.properties)\"\n class=\"ax-flex ax-flex-col md:ax-flex-row ax-p-3 odd:ax-bg-on-surface odd:ax-border-t odd:ax-border-b\">\n @if (s.options?.showPropTitle!=false) {\n <div class=\"ax-min-w-[10rem] ax-text-neutral-500 dark:ax-text-neutral-300 ax-mb-2 md:ax-mb-0\">\n <span>{{ p.title }}</span>\n </div>\n }\n <div class=\"md:ax-min-w-[30rem]\">\n <axp-widget-renderer [schema]=\"p.schema\" [context]=\"data\" [prop]=\"p\" [mode]=\"'view'\"></axp-widget-renderer>\n </div>\n </div>\n </div>\n </div>\n</div>\n<ax-footer>\n <ax-prefix> </ax-prefix>\n <ax-suffix>\n <ax-dropdown-button text=\"Close\" (onClick)=\"handleCloseClick()\">\n <ax-button-item-list>\n <ax-button-item text=\"View Details\" (onClick)=\"handleCommandClick('details')\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-info-circle\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n @if(canDelete)\n {\n <ax-button-item class=\"ax-text-danger\" text=\"Delete\" (onClick)=\"handleCommandClick('delete')\">\n <ax-prefix> <ax-icon icon=\"fas fa-trash fa-flip-horizontal\"></ax-icon> </ax-prefix></ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-button>\n </ax-suffix>\n</ax-footer>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: AXPSchemaModule }, { kind: "component", type: i1$3.AXPWidgetRendererComponent, selector: "axp-widget-renderer", inputs: ["context", "prop", "mode", "schema"] }, { kind: "ngmodule", type: AXPCommonWidgetModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", 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-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i2$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type: i14.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1601
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityQuickViewComponent, deps: [{ token: i1$2.Actions }], target: i0.ɵɵFactoryTarget.Component }); }
1602
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPEntityQuickViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"ax-flex ax-flex-col ax-gap-6 ax-p-4\">\r\n <div class=\"ax-flex ax-flex-col ax-gap-2\" *ngIf=\"root.properties?.length\">\r\n <div *ngFor=\"let p of getProperties(root.properties)\"\r\n class=\"ax-flex ax-p-4 odd:ax-bg-on-surface odd:ax-border-t odd:ax-border-b\">\r\n <div class=\"ax-min-w-[10rem] ax-text-gray-500\">\r\n <span>{{ p.title }}</span>\r\n </div>\r\n <div class=\"ax-min-w-[30rem]\">\r\n <axp-widget-renderer [schema]=\"p.schema\" [context]=\"data\" [prop]=\"p\"></axp-widget-renderer>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngFor=\"let s of root.sections\"\r\n class=\"ax-flex ax-flex-col ax-pb-3 last-of-type:ax-border-none last-of-type:ax-pb-3\">\r\n <div class=\"ax-pb-4\">\r\n <span class=\"ax-font-bold\">{{ s.title }}</span>\r\n </div>\r\n <div class=\"ax-flex ax-flex-col\">\r\n <div *ngFor=\"let p of getProperties(s.properties)\"\r\n class=\"ax-flex ax-flex-col md:ax-flex-row ax-p-3 odd:ax-bg-on-surface odd:ax-border-t odd:ax-border-b\">\r\n @if (s.options?.showPropTitle!=false) {\r\n <div class=\"ax-min-w-[10rem] ax-text-neutral-500 dark:ax-text-neutral-300 ax-mb-2 md:ax-mb-0\">\r\n <span>{{ p.title }}</span>\r\n </div>\r\n }\r\n <div class=\"md:ax-min-w-[30rem]\">\r\n <axp-widget-renderer [schema]=\"p.schema\" [context]=\"data\" [prop]=\"p\" [mode]=\"'view'\"></axp-widget-renderer>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<ax-footer>\r\n <ax-prefix> </ax-prefix>\r\n <ax-suffix>\r\n <ax-dropdown-button text=\"Close\" (onClick)=\"handleCloseClick()\">\r\n <ax-button-item-list>\r\n <ax-button-item text=\"View Details\" (onClick)=\"handleCommandClick('details')\">\r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-info-circle\"></ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n @if(canDelete)\r\n {\r\n <ax-button-item class=\"ax-text-danger\" text=\"Delete\" (onClick)=\"handleCommandClick('delete')\">\r\n <ax-prefix> <ax-icon icon=\"fas fa-trash fa-flip-horizontal\"></ax-icon> </ax-prefix></ax-button-item>\r\n }\r\n </ax-button-item-list>\r\n </ax-dropdown-button>\r\n </ax-suffix>\r\n</ax-footer>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: AXPSchemaModule }, { kind: "component", type: i10$1.AXPWidgetRendererComponent, selector: "axp-widget-renderer", inputs: ["context", "prop", "mode", "schema"] }, { kind: "ngmodule", type: AXPCommonWidgetModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type: i14.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3094
1603
  }
3095
1604
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityQuickViewComponent, decorators: [{
3096
1605
  type: Component,
3097
- args: [{ encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, AXPSchemaModule, AXPCommonWidgetModule, AXDecoratorModule, AXButtonModule, AXDropdownModule, AXDropdownButtonModule], template: "<div class=\"ax-flex ax-flex-col ax-gap-6 ax-p-4\">\n <div class=\"ax-flex ax-flex-col ax-gap-2\" *ngIf=\"root.properties?.length\">\n <div *ngFor=\"let p of getProperties(root.properties)\"\n class=\"ax-flex ax-p-4 odd:ax-bg-on-surface odd:ax-border-t odd:ax-border-b\">\n <div class=\"ax-min-w-[10rem] ax-text-gray-500\">\n <span>{{ p.title }}</span>\n </div>\n <div class=\"ax-min-w-[30rem]\">\n <axp-widget-renderer [schema]=\"p.schema\" [context]=\"data\" [prop]=\"p\"></axp-widget-renderer>\n </div>\n </div>\n </div>\n <div *ngFor=\"let s of root.sections\"\n class=\"ax-flex ax-flex-col ax-pb-3 last-of-type:ax-border-none last-of-type:ax-pb-3\">\n <div class=\"ax-pb-4\">\n <span class=\"ax-font-bold\">{{ s.title }}</span>\n </div>\n <div class=\"ax-flex ax-flex-col\">\n <div *ngFor=\"let p of getProperties(s.properties)\"\n class=\"ax-flex ax-flex-col md:ax-flex-row ax-p-3 odd:ax-bg-on-surface odd:ax-border-t odd:ax-border-b\">\n @if (s.options?.showPropTitle!=false) {\n <div class=\"ax-min-w-[10rem] ax-text-neutral-500 dark:ax-text-neutral-300 ax-mb-2 md:ax-mb-0\">\n <span>{{ p.title }}</span>\n </div>\n }\n <div class=\"md:ax-min-w-[30rem]\">\n <axp-widget-renderer [schema]=\"p.schema\" [context]=\"data\" [prop]=\"p\" [mode]=\"'view'\"></axp-widget-renderer>\n </div>\n </div>\n </div>\n </div>\n</div>\n<ax-footer>\n <ax-prefix> </ax-prefix>\n <ax-suffix>\n <ax-dropdown-button text=\"Close\" (onClick)=\"handleCloseClick()\">\n <ax-button-item-list>\n <ax-button-item text=\"View Details\" (onClick)=\"handleCommandClick('details')\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-info-circle\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n @if(canDelete)\n {\n <ax-button-item class=\"ax-text-danger\" text=\"Delete\" (onClick)=\"handleCommandClick('delete')\">\n <ax-prefix> <ax-icon icon=\"fas fa-trash fa-flip-horizontal\"></ax-icon> </ax-prefix></ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-button>\n </ax-suffix>\n</ax-footer>" }]
3098
- }], ctorParameters: () => [{ type: i1$5.Actions }] });
1606
+ args: [{ encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, AXPSchemaModule, AXPCommonWidgetModule, AXDecoratorModule, AXButtonModule, AXDropdownModule, AXDropdownButtonModule], template: "<div class=\"ax-flex ax-flex-col ax-gap-6 ax-p-4\">\r\n <div class=\"ax-flex ax-flex-col ax-gap-2\" *ngIf=\"root.properties?.length\">\r\n <div *ngFor=\"let p of getProperties(root.properties)\"\r\n class=\"ax-flex ax-p-4 odd:ax-bg-on-surface odd:ax-border-t odd:ax-border-b\">\r\n <div class=\"ax-min-w-[10rem] ax-text-gray-500\">\r\n <span>{{ p.title }}</span>\r\n </div>\r\n <div class=\"ax-min-w-[30rem]\">\r\n <axp-widget-renderer [schema]=\"p.schema\" [context]=\"data\" [prop]=\"p\"></axp-widget-renderer>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngFor=\"let s of root.sections\"\r\n class=\"ax-flex ax-flex-col ax-pb-3 last-of-type:ax-border-none last-of-type:ax-pb-3\">\r\n <div class=\"ax-pb-4\">\r\n <span class=\"ax-font-bold\">{{ s.title }}</span>\r\n </div>\r\n <div class=\"ax-flex ax-flex-col\">\r\n <div *ngFor=\"let p of getProperties(s.properties)\"\r\n class=\"ax-flex ax-flex-col md:ax-flex-row ax-p-3 odd:ax-bg-on-surface odd:ax-border-t odd:ax-border-b\">\r\n @if (s.options?.showPropTitle!=false) {\r\n <div class=\"ax-min-w-[10rem] ax-text-neutral-500 dark:ax-text-neutral-300 ax-mb-2 md:ax-mb-0\">\r\n <span>{{ p.title }}</span>\r\n </div>\r\n }\r\n <div class=\"md:ax-min-w-[30rem]\">\r\n <axp-widget-renderer [schema]=\"p.schema\" [context]=\"data\" [prop]=\"p\" [mode]=\"'view'\"></axp-widget-renderer>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<ax-footer>\r\n <ax-prefix> </ax-prefix>\r\n <ax-suffix>\r\n <ax-dropdown-button text=\"Close\" (onClick)=\"handleCloseClick()\">\r\n <ax-button-item-list>\r\n <ax-button-item text=\"View Details\" (onClick)=\"handleCommandClick('details')\">\r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-info-circle\"></ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n @if(canDelete)\r\n {\r\n <ax-button-item class=\"ax-text-danger\" text=\"Delete\" (onClick)=\"handleCommandClick('delete')\">\r\n <ax-prefix> <ax-icon icon=\"fas fa-trash fa-flip-horizontal\"></ax-icon> </ax-prefix></ax-button-item>\r\n }\r\n </ax-button-item-list>\r\n </ax-dropdown-button>\r\n </ax-suffix>\r\n</ax-footer>" }]
1607
+ }], ctorParameters: () => [{ type: i1$2.Actions }] });
3099
1608
 
3100
1609
  var entityQuickView_component = /*#__PURE__*/Object.freeze({
3101
1610
  __proto__: null,
@@ -3178,7 +1687,7 @@ class AXPEntityModifyPopupAction extends AXPWorkflowAction {
3178
1687
  const { module, entity: entityName, section, id } = payload;
3179
1688
  const entity = await this.entityRegistery.resolve(module, entityName);
3180
1689
  const loader = await this.entityCreateFactory.create(module, entityName, id, section);
3181
- const com = await import('./acorex-platform-layouts-entity-modify-view.component-BnSfJlc5.mjs');
1690
+ const com = await import('./acorex-platform-layouts-entity-modify-view.component-D1h1xORH.mjs');
3182
1691
  const popup = await this.popupService.open(com.AXPEntityModifyViewComponent, {
3183
1692
  title: `Modify ${payload.section.title}`,
3184
1693
  size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',
@@ -3198,58 +1707,162 @@ class AXPEntityModifyPopupAction extends AXPWorkflowAction {
3198
1707
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityModifyPopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
3199
1708
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityModifyPopupAction }); }
3200
1709
  }
3201
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityModifyPopupAction, decorators: [{
1710
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityModifyPopupAction, decorators: [{
1711
+ type: Injectable
1712
+ }] });
1713
+ class AXPEntityModifyConfirmedAction extends AXPWorkflowAction {
1714
+ constructor() {
1715
+ super(...arguments);
1716
+ this.entityRegistery = inject(AXPEntityRegistryService);
1717
+ }
1718
+ async execute(context) {
1719
+ const payload = context.getVariable('payload');
1720
+ const updatedData = context.getVariable('updatedData');
1721
+ const entity = await this.entityRegistery.resolve(payload.module, payload.entity);
1722
+ this.dispatch(AXPEntityModifyEvent({ module: entity.module, entity: entity.name, updateValues: updatedData }));
1723
+ }
1724
+ }
1725
+ const AXPModifyEntityWorkflow = {
1726
+ startStepId: 'modifyPopup',
1727
+ steps: {
1728
+ modifyPopup: {
1729
+ id: 'modifyPopup',
1730
+ action: 'AXPEntityModifyPopupAction',
1731
+ nextSteps: [
1732
+ {
1733
+ conditions: [{ type: 'SINGLE', expression: 'context.getOutput("popupResult") == true' }],
1734
+ nextStepId: 'successToast',
1735
+ },
1736
+ ],
1737
+ },
1738
+ successToast: {
1739
+ id: 'successToast',
1740
+ action: 'AXPToastAction',
1741
+ input: {
1742
+ color: 'success',
1743
+ title: 'Entity Modified',
1744
+ content: 'Record has been successfully updated.',
1745
+ },
1746
+ nextSteps: [
1747
+ {
1748
+ conditions: [],
1749
+ nextStepId: 'modifyConfirmed',
1750
+ },
1751
+ ],
1752
+ },
1753
+ modifyConfirmed: {
1754
+ id: 'modifyConfirmed',
1755
+ action: 'AXPEntityModifyConfirmedAction',
1756
+ nextSteps: [
1757
+ {
1758
+ conditions: [],
1759
+ nextStepId: '',
1760
+ },
1761
+ ],
1762
+ },
1763
+ },
1764
+ };
1765
+
1766
+ class AXPShowQuickViewAction extends AXPWorkflowAction {
1767
+ constructor() {
1768
+ super(...arguments);
1769
+ this.entityRegistery = inject(AXPEntityRegistryService);
1770
+ this.formatService = inject(AXFormatService);
1771
+ this.popupService = inject(AXPopupService);
1772
+ this.platform = inject(AXPlatform);
1773
+ }
1774
+ async execute(context) {
1775
+ const payload = context.getVariable('payload');
1776
+ const entity = await this.entityRegistery.resolve(payload.module, payload.entity);
1777
+ const suggestedProps = entity.properties.find((c) => ['title', 'name', 'code'].includes(c.name));
1778
+ let suggestedFormat = 'Item #{{id}}';
1779
+ if (suggestedProps)
1780
+ suggestedFormat = `{{${suggestedProps.name}}}`;
1781
+ const title = this.formatService.format(entity.formats?.header ?? entity.formats?.default ?? suggestedFormat, 'string', payload.data);
1782
+ //
1783
+ const com = await Promise.resolve().then(function () { return entityQuickView_component; });
1784
+ this.popupService.open(com.AXPEntityQuickViewComponent, {
1785
+ title: `${title} - Quick View`,
1786
+ size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',
1787
+ data: {
1788
+ entity: entity,
1789
+ data: payload.data,
1790
+ },
1791
+ });
1792
+ }
1793
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPShowQuickViewAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1794
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPShowQuickViewAction }); }
1795
+ }
1796
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPShowQuickViewAction, decorators: [{
1797
+ type: Injectable
1798
+ }] });
1799
+ const AXPShowQuickViewWorkflow = {
1800
+ startStepId: 'showQuickView',
1801
+ steps: {
1802
+ showQuickView: {
1803
+ id: 'showQuickView',
1804
+ action: 'AXPShowQuickViewAction',
1805
+ },
1806
+ },
1807
+ };
1808
+
1809
+ class AXPShowDetailViewAction extends AXPWorkflowAction {
1810
+ constructor() {
1811
+ super(...arguments);
1812
+ this.navigation = inject(AXPWorkflowNavigateAction);
1813
+ this.sessionService = inject(AXPSessionService);
1814
+ }
1815
+ async execute(context) {
1816
+ const payload = context.getVariable('payload');
1817
+ const id = context.getVariable('id');
1818
+ const newPayload = {
1819
+ commands: `/${this.sessionService.application?.name}/${payload.module}/e/${payload.entity}/${id}/view`,
1820
+ };
1821
+ context.setVariable('payload', newPayload);
1822
+ this.navigation.execute(context);
1823
+ }
1824
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPShowDetailViewAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1825
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPShowDetailViewAction }); }
1826
+ }
1827
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPShowDetailViewAction, decorators: [{
3202
1828
  type: Injectable
3203
1829
  }] });
3204
- class AXPEntityModifyConfirmedAction extends AXPWorkflowAction {
1830
+ const AXPShowDetailsViewWorkflow = {
1831
+ startStepId: 'showDetailView',
1832
+ steps: {
1833
+ showDetailView: {
1834
+ id: 'showDetailView',
1835
+ action: 'AXPShowDetailViewAction',
1836
+ },
1837
+ },
1838
+ };
1839
+
1840
+ class AXPShowListViewAction extends AXPWorkflowAction {
3205
1841
  constructor() {
3206
1842
  super(...arguments);
3207
- this.entityRegistery = inject(AXPEntityRegistryService);
1843
+ this.navigation = inject(AXPWorkflowNavigateAction);
1844
+ this.sessionService = inject(AXPSessionService);
3208
1845
  }
3209
1846
  async execute(context) {
3210
1847
  const payload = context.getVariable('payload');
3211
- const updatedData = context.getVariable('updatedData');
3212
- const entity = await this.entityRegistery.resolve(payload.module, payload.entity);
3213
- this.dispatch(AXPEntityModifyEvent({ module: entity.module, entity: entity.name, updateValues: updatedData }));
1848
+ const newPayload = {
1849
+ commands: `/${this.sessionService.application?.name}/${payload.entity.module}/e/${payload.entity}/list`,
1850
+ };
1851
+ context.setVariable('payload', newPayload);
1852
+ this.navigation.execute(context);
3214
1853
  }
1854
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPShowListViewAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1855
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPShowListViewAction }); }
3215
1856
  }
3216
- const AXPModifyEntityWorkflow = {
3217
- startStepId: 'modifyPopup',
1857
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPShowListViewAction, decorators: [{
1858
+ type: Injectable
1859
+ }] });
1860
+ const AXPShowListViewWorkflow = {
1861
+ startStepId: 'showListView',
3218
1862
  steps: {
3219
- modifyPopup: {
3220
- id: 'modifyPopup',
3221
- action: 'AXPEntityModifyPopupAction',
3222
- nextSteps: [
3223
- {
3224
- conditions: [{ type: 'SINGLE', expression: 'context.getOutput("popupResult") == true' }],
3225
- nextStepId: 'successToast',
3226
- },
3227
- ],
3228
- },
3229
- successToast: {
3230
- id: 'successToast',
3231
- action: 'AXPToastAction',
3232
- input: {
3233
- color: 'success',
3234
- title: 'Entity Modified',
3235
- content: 'Record has been successfully updated.',
3236
- },
3237
- nextSteps: [
3238
- {
3239
- conditions: [],
3240
- nextStepId: 'modifyConfirmed',
3241
- },
3242
- ],
3243
- },
3244
- modifyConfirmed: {
3245
- id: 'modifyConfirmed',
3246
- action: 'AXPEntityModifyConfirmedAction',
3247
- nextSteps: [
3248
- {
3249
- conditions: [],
3250
- nextStepId: '',
3251
- },
3252
- ],
1863
+ showListView: {
1864
+ id: 'showListView',
1865
+ action: 'AXPShowListViewAction',
3253
1866
  },
3254
1867
  },
3255
1868
  };
@@ -3280,7 +1893,7 @@ class AXPEntityDetailsViewComponent {
3280
1893
  this.setSection(c.get('section'));
3281
1894
  });
3282
1895
  //
3283
- this.workflow.events$.pipe(ofType(AXPEntityDeletedEvent), this.unsubscriber.takeUntilDestroy).subscribe((event) => {
1896
+ this.workflow.events$.pipe(ofType$1(AXPEntityDeletedEvent), this.unsubscriber.takeUntilDestroy).subscribe((event) => {
3284
1897
  if (event.payload.entity == this.loader.entity.name &&
3285
1898
  event.payload.module == this.loader.entity.module &&
3286
1899
  event.payload.id.includes(this.loader.data.id)) {
@@ -3292,7 +1905,7 @@ class AXPEntityDetailsViewComponent {
3292
1905
  });
3293
1906
  }
3294
1907
  });
3295
- this.workflow.events$.pipe(ofType(AXPEntityModifyEvent), this.unsubscriber.takeUntilDestroy).subscribe(async (event) => {
1908
+ this.workflow.events$.pipe(ofType$1(AXPEntityModifyEvent), this.unsubscriber.takeUntilDestroy).subscribe(async (event) => {
3296
1909
  if (event.payload.entity == this.loader.entity.name &&
3297
1910
  event.payload.module == this.loader.entity.module &&
3298
1911
  event.payload.updateValues.id === this.loader.data.id) {
@@ -3352,10 +1965,10 @@ class AXPEntityDetailsViewComponent {
3352
1965
  break;
3353
1966
  }
3354
1967
  }
3355
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityDetailsViewComponent, deps: [{ token: i1$5.Actions }, { token: i2$4.AXUnsubscriber }], target: i0.ɵɵFactoryTarget.Component }); }
3356
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPEntityDetailsViewComponent, isStandalone: true, selector: "ng-component", providers: [AXUnsubscriber], viewQueries: [{ propertyName: "drawer", first: true, predicate: ["drawer"], descendants: true }], ngImport: i0, template: "<ax-drawer-container>\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\" (isSM | async) ? 'overlay' : 'push'\"\n *ngIf=\"loader.hasSections$ | async\" (collapsedChange)=\"handleCollapsedChange($event)\">\n <ax-content class=\"ax-border-e ax-p-6 ax-w-64\">\n <p class=\"ax-text-xl ax-font-bold ax-mb-6\">{{loader.sectionTitle}}</p>\n <ax-tabs look=\"with-line\" location=\"start\">\n @for(tab of (loader.sections$ | async); track tab.name)\n {\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event,tab)\"\n [disabled]=\"editForm.context\">\n </ax-tab-item>\n }\n </ax-tabs>\n </ax-content>\n </ax-drawer> -->\n <ax-content #content class=\"ax-overflow-x-hidden\">\n <div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\n <div class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\" #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\" [stickyParent]=\"content.getHostElement()\">\n <!-------- Begin Toolbar -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <!-- <ax-button class=\"lg:ax-hidden\">\n <ax-icon class=\"fa-solid fa-chevron-left\"></ax-icon>\n </ax-button> -->\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ loader.title }}</div>\n <!-- <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n <ax-breadcrumbs-item>\n <a>Home</a>\n </ax-breadcrumbs-item>\n <ax-breadcrumbs-item>\n <a>{{ loader.entity.title }}</a>\n </ax-breadcrumbs-item>\n <ax-breadcrumbs-item [active]=\"true\" class=\"!ax-font-semibold !ax-text-neutral-600\">\n {{ loader.title }}\n </ax-breadcrumbs-item>\n </ax-breadcrumbs> -->\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @if(canCreate || canUpdate) {\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n <!-- <ax-button-item text=\"Share\" class=\"ax-font-semibold\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-share\"> </ax-icon>\n </ax-prefix>\n </ax-button-item> \n <ax-divider></ax-divider>-->\n @if(canCreate) {\n <ax-button-item text=\"Create New One\" class=\"ax-font-semibold ax-text-primary\"\n (onClick)=\"handleCommandClick('create')\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-add\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n } @if(canDelete) {\n <ax-button-item text=\"Delete\" class=\"ax-font-semibold ax-text-danger\"\n (onClick)=\"handleCommandClick('delete')\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-trash\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <!-- Finish Action Menu -->\n </div>\n <!----- Finish Toolbar ----->\n <!--------------------------------------------------------------->\n <!-- Begin Section Tab Items -->\n @if((loader.hasSections$| async)) {\n <ax-tabs look=\"with-line\" location=\"bottom\" class=\"ax-mt-2\">\n @for(tab of (loader.sections$ | async); track tab.name) {\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event, tab)\"\n class=\"first:!ax-ms-0\"> </ax-tab-item>\n }\n </ax-tabs>\n }\n <!-- Finish Section Tab Items -->\n </div>\n @for(section of (loader.section$ | async)?.sections; track section.name) {\n <ax-form #form>\n <div class=\"ax-card ax-shadow-md\">\n <div class=\"ax-card-header\">\n <p>{{ section.title }}</p>\n @if(canUpdate) {\n <ax-button text=\"Modify\" class=\"ax-sm\" color=\"primary\" (onClick)=\"handleSectionEdit(section)\">\n <ax-icon class=\"fa-solid fa-pen\"> </ax-icon>\n </ax-button>\n }\n </div>\n <div class=\"ax-card-body ax-divide-y ax-divide-gray-100 dark:ax-divide-gray-700 !ax-gap-0\">\n <ng-container *ngFor=\"let name of section.properties\">\n <ng-container *ngIf=\"loader.getProp(name) as prop\">\n <div class=\"ax-grid md:ax-grid-cols-12 ax-gap-2 ax-py-4 first:ax-pt-0 last:ax-pb-0\">\n @if(section.options?.showPropTitle!=false){\n <div\n class=\"ax-col-span-12 md:ax-col-span-3 lg:ax-col-span-2 ax-flex ax-items-center md:ax-items-start ax-justify-between\">\n <div class=\"ax-flex ax-flex-col ax-items-start\">\n <span class=\"ax-font-semibold\">{{ prop.title }}</span>\n <!-- @if(prop.description) {\n <i\n class=\"fa-solid fa-circle-info fa-sm ax-text-neutral-500 dark:ax-text-neutral-400 ax-cursor-pointer\"\n [axTooltip]=\"prop.description\"\n [axTooltipPlacement]=\"'end'\"\n ></i>\n } -->\n @if(prop.description) {\n <span class=\"ax-text-neutral-500 ax-text-xs\">{{ prop.description }}</span>\n }\n </div>\n </div>\n }\n <div\n [class]=\"section.options?.showPropTitle == false ? 'ax-col-span-12' : 'ax-col-span-12 md:ax-col-span-9 lg:ax-col-span-10'\">\n <axp-widget-renderer [schema]=\"prop.schema\" [context]=\"context()\" [prop]=\"prop\"\n [mode]=\"'view'\"></axp-widget-renderer>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ax-form>\n }\n </div>\n </ax-content>\n</ax-drawer-container>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i2$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i2$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", 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-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i10.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i3$4.AXFormComponent, selector: "ax-form", inputs: ["labelMode", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXSwitchModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i4.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i9.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i9.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXPSchemaModule }, { kind: "component", type: i1$3.AXPWidgetRendererComponent, selector: "axp-widget-renderer", inputs: ["context", "prop", "mode", "schema"] }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type:
1968
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityDetailsViewComponent, deps: [{ token: i1$2.Actions }, { token: i2$1.AXUnsubscriber }], target: i0.ɵɵFactoryTarget.Component }); }
1969
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPEntityDetailsViewComponent, isStandalone: true, selector: "ng-component", providers: [AXUnsubscriber], viewQueries: [{ propertyName: "drawer", first: true, predicate: ["drawer"], descendants: true }], ngImport: i0, template: "<ax-drawer-container>\r\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\" (isSM | async) ? 'overlay' : 'push'\"\r\n *ngIf=\"loader.hasSections$ | async\" (collapsedChange)=\"handleCollapsedChange($event)\">\r\n <ax-content class=\"ax-border-e ax-p-6 ax-w-64\">\r\n <p class=\"ax-text-xl ax-font-bold ax-mb-6\">{{loader.sectionTitle}}</p>\r\n <ax-tabs look=\"with-line\" location=\"start\">\r\n @for(tab of (loader.sections$ | async); track tab.name)\r\n {\r\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event,tab)\"\r\n [disabled]=\"editForm.context\">\r\n </ax-tab-item>\r\n }\r\n </ax-tabs>\r\n </ax-content>\r\n </ax-drawer> -->\r\n <ax-content #content class=\"ax-overflow-x-hidden\">\r\n <div\r\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\r\n <div class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\" #sticky=\"axpSticky\"\r\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\" [stickyParent]=\"content.getHostElement()\">\r\n <!-------- Begin Toolbar -------->\r\n <div class=\"ax-flex ax-justify-between ax-items-center\">\r\n <!-------- Begin Title -------->\r\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\r\n <!-- <ax-button class=\"lg:ax-hidden\">\r\n <ax-icon class=\"fa-solid fa-chevron-left\"></ax-icon>\r\n </ax-button> -->\r\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\r\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ loader.title }}</div>\r\n <!-- <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\">\r\n <ng-template #divider>\r\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\r\n </ng-template>\r\n <ax-breadcrumbs-item>\r\n <a>Home</a>\r\n </ax-breadcrumbs-item>\r\n <ax-breadcrumbs-item>\r\n <a>{{ loader.entity.title }}</a>\r\n </ax-breadcrumbs-item>\r\n <ax-breadcrumbs-item [active]=\"true\" class=\"!ax-font-semibold !ax-text-neutral-600\">\r\n {{ loader.title }}\r\n </ax-breadcrumbs-item>\r\n </ax-breadcrumbs> -->\r\n </div>\r\n </div>\r\n <!-------- Finish Title -------->\r\n <!--------------------------------------------------------------->\r\n <!-- Begin Action Menu -->\r\n <div class=\"ax-flex ax-items-center ax-gap-3\">\r\n @if(canCreate || canUpdate) {\r\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\r\n </ax-prefix>\r\n <ax-dropdown-panel>\r\n <ax-button-item-list>\r\n <!-- <ax-button-item text=\"Share\" class=\"ax-font-semibold\">\r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-share\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item> \r\n <ax-divider></ax-divider>-->\r\n @if(canCreate) {\r\n <ax-button-item text=\"Create New One\" class=\"ax-font-semibold ax-text-primary\"\r\n (onClick)=\"handleCommandClick('create')\">\r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-add\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n } @if(canDelete) {\r\n <ax-button-item text=\"Delete\" class=\"ax-font-semibold ax-text-danger\"\r\n (onClick)=\"handleCommandClick('delete')\">\r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-trash\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n }\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n }\r\n </div>\r\n <!-- Finish Action Menu -->\r\n </div>\r\n <!----- Finish Toolbar ----->\r\n <!--------------------------------------------------------------->\r\n <!-- Begin Section Tab Items -->\r\n @if((loader.hasSections$| async)) {\r\n <ax-tabs look=\"with-line\" location=\"bottom\" class=\"ax-mt-2\">\r\n @for(tab of (loader.sections$ | async); track tab.name) {\r\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event, tab)\"\r\n class=\"first:!ax-ms-0\"> </ax-tab-item>\r\n }\r\n </ax-tabs>\r\n }\r\n <!-- Finish Section Tab Items -->\r\n </div>\r\n @for(section of (loader.section$ | async)?.sections; track section.name) {\r\n <ax-form #form>\r\n <div class=\"ax-card ax-shadow-md\">\r\n <div class=\"ax-card-header\">\r\n <p>{{ section.title }}</p>\r\n @if(canUpdate) {\r\n <ax-button text=\"Modify\" class=\"ax-sm\" color=\"primary\" (onClick)=\"handleSectionEdit(section)\">\r\n <ax-icon class=\"fa-solid fa-pen\"> </ax-icon>\r\n </ax-button>\r\n }\r\n </div>\r\n <div class=\"ax-card-body ax-divide-y ax-divide-gray-100 dark:ax-divide-gray-700 !ax-gap-0\">\r\n <ng-container *ngFor=\"let name of section.properties\">\r\n <ng-container *ngIf=\"loader.getProp(name) as prop\">\r\n <div class=\"ax-grid md:ax-grid-cols-12 ax-gap-2 ax-py-4 first:ax-pt-0 last:ax-pb-0\">\r\n @if(section.options?.showPropTitle!=false){\r\n <div\r\n class=\"ax-col-span-12 md:ax-col-span-3 lg:ax-col-span-2 ax-flex ax-items-center md:ax-items-start ax-justify-between\">\r\n <div class=\"ax-flex ax-flex-col ax-items-start\">\r\n <span class=\"ax-font-semibold\">{{ prop.title }}</span>\r\n <!-- @if(prop.description) {\r\n <i\r\n class=\"fa-solid fa-circle-info fa-sm ax-text-neutral-500 dark:ax-text-neutral-400 ax-cursor-pointer\"\r\n [axTooltip]=\"prop.description\"\r\n [axTooltipPlacement]=\"'end'\"\r\n ></i>\r\n } -->\r\n @if(prop.description) {\r\n <span class=\"ax-text-neutral-500 ax-text-xs\">{{ prop.description }}</span>\r\n }\r\n </div>\r\n </div>\r\n }\r\n <div\r\n [class]=\"section.options?.showPropTitle == false ? 'ax-col-span-12' : 'ax-col-span-12 md:ax-col-span-9 lg:ax-col-span-10'\">\r\n <axp-widget-renderer [schema]=\"prop.schema\" [context]=\"context()\" [prop]=\"prop\"\r\n [mode]=\"'view'\"></axp-widget-renderer>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ax-form>\r\n }\r\n </div>\r\n </ax-content>\r\n</ax-drawer-container>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i10$2.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i2$2.AXFormComponent, selector: "ax-form", inputs: ["labelMode", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXSwitchModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i11$1.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i9.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i9.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXPSchemaModule }, { kind: "component", type: i10$1.AXPWidgetRendererComponent, selector: "axp-widget-renderer", inputs: ["context", "prop", "mode", "schema"] }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type:
3357
1970
  //
3358
- AXPCommonWidgetModule }, { kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1971
+ AXPCommonWidgetModule }, { kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3359
1972
  }
3360
1973
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityDetailsViewComponent, decorators: [{
3361
1974
  type: Component,
@@ -3384,8 +1997,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
3384
1997
  //
3385
1998
  AXPCommonWidgetModule,
3386
1999
  AXPStickyDirective,
3387
- ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXUnsubscriber], template: "<ax-drawer-container>\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\" (isSM | async) ? 'overlay' : 'push'\"\n *ngIf=\"loader.hasSections$ | async\" (collapsedChange)=\"handleCollapsedChange($event)\">\n <ax-content class=\"ax-border-e ax-p-6 ax-w-64\">\n <p class=\"ax-text-xl ax-font-bold ax-mb-6\">{{loader.sectionTitle}}</p>\n <ax-tabs look=\"with-line\" location=\"start\">\n @for(tab of (loader.sections$ | async); track tab.name)\n {\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event,tab)\"\n [disabled]=\"editForm.context\">\n </ax-tab-item>\n }\n </ax-tabs>\n </ax-content>\n </ax-drawer> -->\n <ax-content #content class=\"ax-overflow-x-hidden\">\n <div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\n <div class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\" #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\" [stickyParent]=\"content.getHostElement()\">\n <!-------- Begin Toolbar -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <!-- <ax-button class=\"lg:ax-hidden\">\n <ax-icon class=\"fa-solid fa-chevron-left\"></ax-icon>\n </ax-button> -->\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ loader.title }}</div>\n <!-- <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n <ax-breadcrumbs-item>\n <a>Home</a>\n </ax-breadcrumbs-item>\n <ax-breadcrumbs-item>\n <a>{{ loader.entity.title }}</a>\n </ax-breadcrumbs-item>\n <ax-breadcrumbs-item [active]=\"true\" class=\"!ax-font-semibold !ax-text-neutral-600\">\n {{ loader.title }}\n </ax-breadcrumbs-item>\n </ax-breadcrumbs> -->\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @if(canCreate || canUpdate) {\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n <!-- <ax-button-item text=\"Share\" class=\"ax-font-semibold\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-share\"> </ax-icon>\n </ax-prefix>\n </ax-button-item> \n <ax-divider></ax-divider>-->\n @if(canCreate) {\n <ax-button-item text=\"Create New One\" class=\"ax-font-semibold ax-text-primary\"\n (onClick)=\"handleCommandClick('create')\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-add\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n } @if(canDelete) {\n <ax-button-item text=\"Delete\" class=\"ax-font-semibold ax-text-danger\"\n (onClick)=\"handleCommandClick('delete')\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-trash\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <!-- Finish Action Menu -->\n </div>\n <!----- Finish Toolbar ----->\n <!--------------------------------------------------------------->\n <!-- Begin Section Tab Items -->\n @if((loader.hasSections$| async)) {\n <ax-tabs look=\"with-line\" location=\"bottom\" class=\"ax-mt-2\">\n @for(tab of (loader.sections$ | async); track tab.name) {\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event, tab)\"\n class=\"first:!ax-ms-0\"> </ax-tab-item>\n }\n </ax-tabs>\n }\n <!-- Finish Section Tab Items -->\n </div>\n @for(section of (loader.section$ | async)?.sections; track section.name) {\n <ax-form #form>\n <div class=\"ax-card ax-shadow-md\">\n <div class=\"ax-card-header\">\n <p>{{ section.title }}</p>\n @if(canUpdate) {\n <ax-button text=\"Modify\" class=\"ax-sm\" color=\"primary\" (onClick)=\"handleSectionEdit(section)\">\n <ax-icon class=\"fa-solid fa-pen\"> </ax-icon>\n </ax-button>\n }\n </div>\n <div class=\"ax-card-body ax-divide-y ax-divide-gray-100 dark:ax-divide-gray-700 !ax-gap-0\">\n <ng-container *ngFor=\"let name of section.properties\">\n <ng-container *ngIf=\"loader.getProp(name) as prop\">\n <div class=\"ax-grid md:ax-grid-cols-12 ax-gap-2 ax-py-4 first:ax-pt-0 last:ax-pb-0\">\n @if(section.options?.showPropTitle!=false){\n <div\n class=\"ax-col-span-12 md:ax-col-span-3 lg:ax-col-span-2 ax-flex ax-items-center md:ax-items-start ax-justify-between\">\n <div class=\"ax-flex ax-flex-col ax-items-start\">\n <span class=\"ax-font-semibold\">{{ prop.title }}</span>\n <!-- @if(prop.description) {\n <i\n class=\"fa-solid fa-circle-info fa-sm ax-text-neutral-500 dark:ax-text-neutral-400 ax-cursor-pointer\"\n [axTooltip]=\"prop.description\"\n [axTooltipPlacement]=\"'end'\"\n ></i>\n } -->\n @if(prop.description) {\n <span class=\"ax-text-neutral-500 ax-text-xs\">{{ prop.description }}</span>\n }\n </div>\n </div>\n }\n <div\n [class]=\"section.options?.showPropTitle == false ? 'ax-col-span-12' : 'ax-col-span-12 md:ax-col-span-9 lg:ax-col-span-10'\">\n <axp-widget-renderer [schema]=\"prop.schema\" [context]=\"context()\" [prop]=\"prop\"\n [mode]=\"'view'\"></axp-widget-renderer>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ax-form>\n }\n </div>\n </ax-content>\n</ax-drawer-container>" }]
3388
- }], ctorParameters: () => [{ type: i1$5.Actions }, { type: i2$4.AXUnsubscriber }], propDecorators: { drawer: [{
2000
+ ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXUnsubscriber], template: "<ax-drawer-container>\r\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\" (isSM | async) ? 'overlay' : 'push'\"\r\n *ngIf=\"loader.hasSections$ | async\" (collapsedChange)=\"handleCollapsedChange($event)\">\r\n <ax-content class=\"ax-border-e ax-p-6 ax-w-64\">\r\n <p class=\"ax-text-xl ax-font-bold ax-mb-6\">{{loader.sectionTitle}}</p>\r\n <ax-tabs look=\"with-line\" location=\"start\">\r\n @for(tab of (loader.sections$ | async); track tab.name)\r\n {\r\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event,tab)\"\r\n [disabled]=\"editForm.context\">\r\n </ax-tab-item>\r\n }\r\n </ax-tabs>\r\n </ax-content>\r\n </ax-drawer> -->\r\n <ax-content #content class=\"ax-overflow-x-hidden\">\r\n <div\r\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\r\n <div class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\" #sticky=\"axpSticky\"\r\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\" [stickyParent]=\"content.getHostElement()\">\r\n <!-------- Begin Toolbar -------->\r\n <div class=\"ax-flex ax-justify-between ax-items-center\">\r\n <!-------- Begin Title -------->\r\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\r\n <!-- <ax-button class=\"lg:ax-hidden\">\r\n <ax-icon class=\"fa-solid fa-chevron-left\"></ax-icon>\r\n </ax-button> -->\r\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\r\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ loader.title }}</div>\r\n <!-- <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\">\r\n <ng-template #divider>\r\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\r\n </ng-template>\r\n <ax-breadcrumbs-item>\r\n <a>Home</a>\r\n </ax-breadcrumbs-item>\r\n <ax-breadcrumbs-item>\r\n <a>{{ loader.entity.title }}</a>\r\n </ax-breadcrumbs-item>\r\n <ax-breadcrumbs-item [active]=\"true\" class=\"!ax-font-semibold !ax-text-neutral-600\">\r\n {{ loader.title }}\r\n </ax-breadcrumbs-item>\r\n </ax-breadcrumbs> -->\r\n </div>\r\n </div>\r\n <!-------- Finish Title -------->\r\n <!--------------------------------------------------------------->\r\n <!-- Begin Action Menu -->\r\n <div class=\"ax-flex ax-items-center ax-gap-3\">\r\n @if(canCreate || canUpdate) {\r\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\r\n </ax-prefix>\r\n <ax-dropdown-panel>\r\n <ax-button-item-list>\r\n <!-- <ax-button-item text=\"Share\" class=\"ax-font-semibold\">\r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-share\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item> \r\n <ax-divider></ax-divider>-->\r\n @if(canCreate) {\r\n <ax-button-item text=\"Create New One\" class=\"ax-font-semibold ax-text-primary\"\r\n (onClick)=\"handleCommandClick('create')\">\r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-add\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n } @if(canDelete) {\r\n <ax-button-item text=\"Delete\" class=\"ax-font-semibold ax-text-danger\"\r\n (onClick)=\"handleCommandClick('delete')\">\r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-trash\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n }\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n }\r\n </div>\r\n <!-- Finish Action Menu -->\r\n </div>\r\n <!----- Finish Toolbar ----->\r\n <!--------------------------------------------------------------->\r\n <!-- Begin Section Tab Items -->\r\n @if((loader.hasSections$| async)) {\r\n <ax-tabs look=\"with-line\" location=\"bottom\" class=\"ax-mt-2\">\r\n @for(tab of (loader.sections$ | async); track tab.name) {\r\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event, tab)\"\r\n class=\"first:!ax-ms-0\"> </ax-tab-item>\r\n }\r\n </ax-tabs>\r\n }\r\n <!-- Finish Section Tab Items -->\r\n </div>\r\n @for(section of (loader.section$ | async)?.sections; track section.name) {\r\n <ax-form #form>\r\n <div class=\"ax-card ax-shadow-md\">\r\n <div class=\"ax-card-header\">\r\n <p>{{ section.title }}</p>\r\n @if(canUpdate) {\r\n <ax-button text=\"Modify\" class=\"ax-sm\" color=\"primary\" (onClick)=\"handleSectionEdit(section)\">\r\n <ax-icon class=\"fa-solid fa-pen\"> </ax-icon>\r\n </ax-button>\r\n }\r\n </div>\r\n <div class=\"ax-card-body ax-divide-y ax-divide-gray-100 dark:ax-divide-gray-700 !ax-gap-0\">\r\n <ng-container *ngFor=\"let name of section.properties\">\r\n <ng-container *ngIf=\"loader.getProp(name) as prop\">\r\n <div class=\"ax-grid md:ax-grid-cols-12 ax-gap-2 ax-py-4 first:ax-pt-0 last:ax-pb-0\">\r\n @if(section.options?.showPropTitle!=false){\r\n <div\r\n class=\"ax-col-span-12 md:ax-col-span-3 lg:ax-col-span-2 ax-flex ax-items-center md:ax-items-start ax-justify-between\">\r\n <div class=\"ax-flex ax-flex-col ax-items-start\">\r\n <span class=\"ax-font-semibold\">{{ prop.title }}</span>\r\n <!-- @if(prop.description) {\r\n <i\r\n class=\"fa-solid fa-circle-info fa-sm ax-text-neutral-500 dark:ax-text-neutral-400 ax-cursor-pointer\"\r\n [axTooltip]=\"prop.description\"\r\n [axTooltipPlacement]=\"'end'\"\r\n ></i>\r\n } -->\r\n @if(prop.description) {\r\n <span class=\"ax-text-neutral-500 ax-text-xs\">{{ prop.description }}</span>\r\n }\r\n </div>\r\n </div>\r\n }\r\n <div\r\n [class]=\"section.options?.showPropTitle == false ? 'ax-col-span-12' : 'ax-col-span-12 md:ax-col-span-9 lg:ax-col-span-10'\">\r\n <axp-widget-renderer [schema]=\"prop.schema\" [context]=\"context()\" [prop]=\"prop\"\r\n [mode]=\"'view'\"></axp-widget-renderer>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ax-form>\r\n }\r\n </div>\r\n </ax-content>\r\n</ax-drawer-container>" }]
2001
+ }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.AXUnsubscriber }], propDecorators: { drawer: [{
3389
2002
  type: ViewChild,
3390
2003
  args: ['drawer']
3391
2004
  }] } });
@@ -3527,48 +2140,92 @@ class AXPCustomReuseStrategy {
3527
2140
  }
3528
2141
  }
3529
2142
 
3530
- const AXPShowDetailsViewWorkflow = {
3531
- startStepId: 'showDetailView',
2143
+ class AXPEntityModifySectionPopupAction extends AXPWorkflowAction {
2144
+ constructor() {
2145
+ super(...arguments);
2146
+ this.popupService = inject(AXPopupService);
2147
+ this.platform = inject(AXPlatform);
2148
+ this.entityRegistery = inject(AXPEntityRegistryService);
2149
+ this.entityCreateFactory = inject(AXPEntityModifyViewLoaderFactory);
2150
+ }
2151
+ async execute(context) {
2152
+ const payload = context.getVariable('payload');
2153
+ const { module, entity: entityName, section, id } = payload;
2154
+ const entity = await this.entityRegistery.resolve(module, entityName);
2155
+ const loader = await this.entityCreateFactory.create(module, entityName, id, section);
2156
+ const com = await import('./acorex-platform-layouts-entity-modify-view.component-D1h1xORH.mjs');
2157
+ const popup = await this.popupService.open(com.AXPEntityModifyViewComponent, {
2158
+ title: `Modify ${payload.section.title}`,
2159
+ size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',
2160
+ data: {
2161
+ context: loader.data,
2162
+ loader: loader,
2163
+ properties: payload.section.properties,
2164
+ entity,
2165
+ },
2166
+ });
2167
+ context.setOutput('popupResult', false);
2168
+ if (popup.data?.result == true) {
2169
+ context.setOutput('popupResult', true);
2170
+ context.setVariable('updatedData', cloneDeep(popup.data.context));
2171
+ }
2172
+ }
2173
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityModifySectionPopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
2174
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityModifySectionPopupAction }); }
2175
+ }
2176
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityModifySectionPopupAction, decorators: [{
2177
+ type: Injectable
2178
+ }] });
2179
+ const AXPModifyEntitySectionWorkflow = {
2180
+ startStepId: 'modifyPopup',
3532
2181
  steps: {
3533
- showDetailView: {
3534
- id: 'showDetailView',
3535
- action: 'AXPShowDetailViewAction',
2182
+ modifyPopup: {
2183
+ id: 'modifyPopup',
2184
+ action: 'AXPEntityModifySectionPopupAction',
2185
+ nextSteps: [
2186
+ {
2187
+ conditions: [{ type: 'SINGLE', expression: 'context.getOutput("popupResult") == true' }],
2188
+ nextStepId: 'successToast',
2189
+ },
2190
+ ],
3536
2191
  },
3537
- },
3538
- };
3539
-
3540
- const AXPShowListViewWorkflow = {
3541
- startStepId: 'showListView',
3542
- steps: {
3543
- showListView: {
3544
- id: 'showListView',
3545
- action: 'AXPShowListViewAction',
2192
+ successToast: {
2193
+ id: 'successToast',
2194
+ action: 'AXPToastAction',
2195
+ input: {
2196
+ color: 'success',
2197
+ title: 'Entity Modified',
2198
+ content: 'Record has been successfully updated.',
2199
+ },
2200
+ nextSteps: [
2201
+ {
2202
+ conditions: [],
2203
+ nextStepId: 'modifyConfirmed',
2204
+ },
2205
+ ],
3546
2206
  },
3547
- },
3548
- };
3549
-
3550
- const AXPShowQuickViewWorkflow = {
3551
- startStepId: 'showQuickView',
3552
- steps: {
3553
- showQuickView: {
3554
- id: 'showQuickView',
3555
- action: 'AXPShowQuickViewAction',
2207
+ modifyConfirmed: {
2208
+ id: 'modifyConfirmed',
2209
+ action: 'AXPEntityModifyConfirmedAction',
2210
+ nextSteps: [
2211
+ {
2212
+ conditions: [],
2213
+ nextStepId: '',
2214
+ },
2215
+ ],
3556
2216
  },
3557
2217
  },
3558
2218
  };
3559
2219
 
3560
2220
  class AXPAdminLayoutModule {
3561
2221
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAdminLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
3562
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: AXPAdminLayoutModule, imports: [i1$6.StoreFeatureModule, i1$5.EffectsFeatureModule, AXPAdminRootLayoutModule,
3563
- AXPListViewModule, i3$5.AXPWorkflowModule] }); }
3564
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAdminLayoutModule, providers: [{ provide: RouteReuseStrategy, useClass: AXPCustomReuseStrategy }], imports: [StoreModule.forFeature(AXPLayoutFeature),
3565
- EffectsModule.forFeature([AXPLayoutEffects]),
3566
- AXPAdminRootLayoutModule,
3567
- AXPListViewModule,
2222
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: AXPAdminLayoutModule, imports: [AXPListViewModule, i1$3.AXPWorkflowModule] }); }
2223
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAdminLayoutModule, providers: [{ provide: RouteReuseStrategy, useClass: AXPCustomReuseStrategy }], imports: [AXPListViewModule,
3568
2224
  AXPWorkflowModule.forChild({
3569
2225
  actions: {
3570
2226
  AXPEntityPerformDeleteAction,
3571
2227
  AXPEntityModifyPopupAction,
2228
+ AXPEntityModifySectionPopupAction,
3572
2229
  AXPEntityModifyConfirmedAction,
3573
2230
  AXPEntityCreatePopupAction,
3574
2231
  AXPEntityCreateSubmittedAction,
@@ -3576,6 +2233,7 @@ class AXPAdminLayoutModule {
3576
2233
  workflows: {
3577
2234
  'delete-entity': AXPDeleteEntityWorkflow,
3578
2235
  'modify-entity': AXPModifyEntityWorkflow,
2236
+ 'modify-entity-section': AXPModifyEntitySectionWorkflow,
3579
2237
  'create-entity': AXPCreateEntityWorkflow,
3580
2238
  'show-details': AXPShowDetailsViewWorkflow,
3581
2239
  'show-quick-view': AXPShowQuickViewWorkflow,
@@ -3590,14 +2248,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
3590
2248
  type: NgModule,
3591
2249
  args: [{
3592
2250
  imports: [
3593
- StoreModule.forFeature(AXPLayoutFeature),
3594
- EffectsModule.forFeature([AXPLayoutEffects]),
3595
- AXPAdminRootLayoutModule,
3596
2251
  AXPListViewModule,
3597
2252
  AXPWorkflowModule.forChild({
3598
2253
  actions: {
3599
2254
  AXPEntityPerformDeleteAction,
3600
2255
  AXPEntityModifyPopupAction,
2256
+ AXPEntityModifySectionPopupAction,
3601
2257
  AXPEntityModifyConfirmedAction,
3602
2258
  AXPEntityCreatePopupAction,
3603
2259
  AXPEntityCreateSubmittedAction,
@@ -3605,6 +2261,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
3605
2261
  workflows: {
3606
2262
  'delete-entity': AXPDeleteEntityWorkflow,
3607
2263
  'modify-entity': AXPModifyEntityWorkflow,
2264
+ 'modify-entity-section': AXPModifyEntitySectionWorkflow,
3608
2265
  'create-entity': AXPCreateEntityWorkflow,
3609
2266
  'show-details': AXPShowDetailsViewWorkflow,
3610
2267
  'show-quick-view': AXPShowQuickViewWorkflow,
@@ -3635,141 +2292,6 @@ const AXPEntityDetailViewLoaderResolver = (route, state, service = inject(AXPEnt
3635
2292
  return service.create(moduleName, entityName, id);
3636
2293
  };
3637
2294
 
3638
- class AXPEntityDetailViewModel {
3639
- constructor(injector, config, entityData) {
3640
- this.injector = injector;
3641
- this.config = config;
3642
- this.entityData = entityData;
3643
- this._entityDef = cloneDeep(this.config.newStruct);
3644
- this._entityData = cloneDeep(this.entityData);
3645
- this._viewDef = cloneDeep(this._entityDef.views?.details);
3646
- this.store = this.injector.get(Store);
3647
- this.formatService = this.injector.get(AXFormatService);
3648
- this.workflow = this.injector.get(AXPWorkflowService);
3649
- this.title = signal('');
3650
- this.description = signal(this._viewDef.description);
3651
- this.canCreate = signal(true);
3652
- this.canUpdate = signal(true);
3653
- this.canDelete = signal(true);
3654
- this.actions = computed(() => {
3655
- const result = this._viewDef.actions?.map(action => {
3656
- if (typeof action === 'string') {
3657
- return this._entityDef.actions?.find(c => c.name === action);
3658
- }
3659
- else {
3660
- return action;
3661
- }
3662
- }).filter(action => action !== undefined);
3663
- return (result ?? []);
3664
- });
3665
- this.updateTitle();
3666
- }
3667
- //****************** Titles ******************//
3668
- updateTitle() {
3669
- const suggestedProps = this._entityDef.attributes.find((c) => ['title', 'name', 'code'].includes(c.name));
3670
- let suggestedFormat = 'Item #{{id}}';
3671
- if (suggestedProps)
3672
- suggestedFormat = `{{${suggestedProps.name}}}`;
3673
- const title = this.formatService.format(this._viewDef.title ?? suggestedFormat, 'string', this._entityData);
3674
- this.title.set(title);
3675
- }
3676
- executeCommand(command) {
3677
- switch (command) {
3678
- case 'delete':
3679
- this.workflow.execute('delete-entity', {
3680
- module: this._entityDef.module,
3681
- entity: this._entityDef.name,
3682
- ids: [this._entityData.id],
3683
- });
3684
- break;
3685
- case 'create': {
3686
- this.workflow.execute('create-entity', {
3687
- payload: {
3688
- module: this._entityDef.module,
3689
- entity: this._entityDef.name,
3690
- },
3691
- });
3692
- break;
3693
- }
3694
- }
3695
- }
3696
- }
3697
- class AXPEntityDetailViewModelFactory {
3698
- constructor() {
3699
- this.entityService = inject(AXPEntityRegistryService);
3700
- this.layout = inject(AXPLayoutService);
3701
- this.injector = inject(Injector);
3702
- }
3703
- async create(moduleName, entityName, id) {
3704
- const config = await this.entityService.resolve(moduleName, entityName);
3705
- this.layout.setNavigationLoading(true);
3706
- if (config.dataSource.byKey) {
3707
- const data = await config.dataSource.byKey(id);
3708
- this.layout.setNavigationLoading(false);
3709
- return new AXPEntityDetailViewModel(this.injector, config, data);
3710
- }
3711
- this.layout.setNavigationLoading(false);
3712
- return Promise.reject('cannot fetch ');
3713
- }
3714
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityDetailViewModelFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3715
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityDetailViewModelFactory, providedIn: 'root' }); }
3716
- }
3717
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityDetailViewModelFactory, decorators: [{
3718
- type: Injectable,
3719
- args: [{ providedIn: 'root' }]
3720
- }] });
3721
- const AXPEntityDetailViewModelResolver = (route, state, service = inject(AXPEntityDetailViewModelFactory)) => {
3722
- const appName = route.parent?.paramMap.get('app');
3723
- const moduleName = route.parent?.paramMap.get('module');
3724
- const entityName = route.paramMap.get('entity');
3725
- const id = route.paramMap.get('id');
3726
- //
3727
- return service.create(moduleName, entityName, id);
3728
- };
3729
-
3730
- class AXPDefaultThemeEntityDetailsViewComponent {
3731
- constructor() {
3732
- this.activeRoute = inject(ActivatedRoute);
3733
- this.vm = this.activeRoute.snapshot.data['vm'];
3734
- //
3735
- this.store = inject((Store));
3736
- this.isSM = this.store.select(isSmallScreen());
3737
- this.isOpen = this.store.select(getChildDrawer());
3738
- }
3739
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPDefaultThemeEntityDetailsViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3740
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPDefaultThemeEntityDetailsViewComponent, isStandalone: true, selector: "ng-component", providers: [AXUnsubscriber], ngImport: i0, template: "<ax-drawer-container>\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\" (isSM | async) ? 'overlay' : 'push'\"\n *ngIf=\"loader.hasSections$ | async\" (collapsedChange)=\"handleCollapsedChange($event)\">\n <ax-content class=\"ax-border-e ax-p-6 ax-w-64\">\n <p class=\"ax-text-xl ax-font-bold ax-mb-6\">{{loader.sectionTitle}}</p>\n <ax-tabs look=\"with-line\" location=\"start\">\n @for(tab of (loader.sections$ | async); track tab.name)\n {\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event,tab)\"\n [disabled]=\"editForm.context\">\n </ax-tab-item>\n }\n </ax-tabs>\n </ax-content>\n </ax-drawer> -->\n <ax-content #content class=\"ax-overflow-x-hidden\">\n <div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\n <div class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\" #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\"\n [stickyParent]=\"content.getHostElement()\">\n <!-------- Begin Toolbar -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ vm.title()}}</div>\n @if(vm.description())\n {\n <div class=\"ax-text-sm ax-text-neutral-600\">{{ vm.description() }}</div>\n }\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n <ax-breadcrumbs-item>\n <a>\n <i class=\"fa-solid fa-home ax-text-xs ax-me-2\"></i>\n Home\n </a>\n </ax-breadcrumbs-item>\n <ax-breadcrumbs-item>\n <a>{{ vm.title() }}</a>\n </ax-breadcrumbs-item>\n <ax-breadcrumbs-item [active]=\"true\" class=\"!ax-font-semibold !ax-text-neutral-600\">\n {{ vm.title() }}\n </ax-breadcrumbs-item>\n </ax-breadcrumbs>\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @if(vm.actions().length) {\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(action of vm.actions();track action.name)\n {\n <ax-button-item text=\"Create New One\"\n class=\"ax-font-semibold ax-text-{{action.color}}\"\n (onClick)=\"vm.executeCommand('create')\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-add\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <!-- Finish Action Menu -->\n </div>\n <!----- Finish Toolbar ----->\n <!--------------------------------------------------------------->\n <!-- Begin Section Tab Items -->\n <!-- Finish Section Tab Items -->\n </div>\n\n </div>\n </ax-content>\n</ax-drawer-container>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i2$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i2$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", 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-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i10.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXImageModule }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXSwitchModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i4.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXPSchemaModule }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i6$2.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i6$2.AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: ["disabled", "active"] }, { kind: "directive", type:
3741
- //
3742
- AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3743
- }
3744
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPDefaultThemeEntityDetailsViewComponent, decorators: [{
3745
- type: Component,
3746
- args: [{ imports: [
3747
- CommonModule,
3748
- RouterModule,
3749
- AXButtonModule,
3750
- AXDecoratorModule,
3751
- AXBadgeModule,
3752
- AXDropdownModule,
3753
- AXPopoverModule,
3754
- AXFormModule,
3755
- AXImageModule,
3756
- AXActionSheetModule,
3757
- AXSwitchModule,
3758
- AXDrawerModule,
3759
- AXDialogModule,
3760
- AXLoadingModule,
3761
- AXTabsModule,
3762
- AXBadgeModule,
3763
- AXButtonModule,
3764
- AXSwitchModule,
3765
- AXPSchemaModule,
3766
- AXTooltipModule,
3767
- AXBreadcrumbsModule,
3768
- //
3769
- AXPStickyDirective,
3770
- ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXUnsubscriber], template: "<ax-drawer-container>\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\" (isSM | async) ? 'overlay' : 'push'\"\n *ngIf=\"loader.hasSections$ | async\" (collapsedChange)=\"handleCollapsedChange($event)\">\n <ax-content class=\"ax-border-e ax-p-6 ax-w-64\">\n <p class=\"ax-text-xl ax-font-bold ax-mb-6\">{{loader.sectionTitle}}</p>\n <ax-tabs look=\"with-line\" location=\"start\">\n @for(tab of (loader.sections$ | async); track tab.name)\n {\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event,tab)\"\n [disabled]=\"editForm.context\">\n </ax-tab-item>\n }\n </ax-tabs>\n </ax-content>\n </ax-drawer> -->\n <ax-content #content class=\"ax-overflow-x-hidden\">\n <div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\n <div class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\" #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\"\n [stickyParent]=\"content.getHostElement()\">\n <!-------- Begin Toolbar -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ vm.title()}}</div>\n @if(vm.description())\n {\n <div class=\"ax-text-sm ax-text-neutral-600\">{{ vm.description() }}</div>\n }\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n <ax-breadcrumbs-item>\n <a>\n <i class=\"fa-solid fa-home ax-text-xs ax-me-2\"></i>\n Home\n </a>\n </ax-breadcrumbs-item>\n <ax-breadcrumbs-item>\n <a>{{ vm.title() }}</a>\n </ax-breadcrumbs-item>\n <ax-breadcrumbs-item [active]=\"true\" class=\"!ax-font-semibold !ax-text-neutral-600\">\n {{ vm.title() }}\n </ax-breadcrumbs-item>\n </ax-breadcrumbs>\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @if(vm.actions().length) {\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(action of vm.actions();track action.name)\n {\n <ax-button-item text=\"Create New One\"\n class=\"ax-font-semibold ax-text-{{action.color}}\"\n (onClick)=\"vm.executeCommand('create')\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-add\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <!-- Finish Action Menu -->\n </div>\n <!----- Finish Toolbar ----->\n <!--------------------------------------------------------------->\n <!-- Begin Section Tab Items -->\n <!-- Finish Section Tab Items -->\n </div>\n\n </div>\n </ax-content>\n</ax-drawer-container>" }]
3771
- }] });
3772
-
3773
2295
  const AX_ADMIN_ROUTES = [
3774
2296
  {
3775
2297
  path: ':app',
@@ -3804,40 +2326,24 @@ const AX_ADMIN_ROUTES = [
3804
2326
  // requiredPermission: "dynamic"
3805
2327
  // }
3806
2328
  },
3807
- {
3808
- path: 'ee/:entity/:id/view',
3809
- resolve: { vm: AXPEntityDetailViewModelResolver },
3810
- component: AXPDefaultThemeEntityDetailsViewComponent,
3811
- },
2329
+ // {
2330
+ // path: 'ee/:entity/:id/view',
2331
+ // resolve: { vm: AXPEntityDetailViewModelResolver },
2332
+ // component: AXPDefaultThemeEntityDetailsViewComponent,
2333
+ // },
3812
2334
  ],
3813
2335
  },
3814
2336
  ],
3815
2337
  },
3816
2338
  ];
3817
2339
 
3818
- const routes = [
3819
- {
3820
- path: 'offline',
3821
- loadComponent: () => Promise.resolve().then(function () { return errorOffline_component; }).then(c => c.AXPErrorOfflineComponent),
3822
- },
3823
- {
3824
- path: '404',
3825
- loadComponent: () => Promise.resolve().then(function () { return error404_component; }).then(c => c.AXPError404Component),
3826
- },
3827
- {
3828
- path: '401',
3829
- loadComponent: () => Promise.resolve().then(function () { return error401_component; }).then(c => c.AXPError401Component),
3830
- },
3831
- ];
3832
-
3833
2340
  class AXPLayoutModule {
3834
2341
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
3835
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: AXPLayoutModule, imports: [i1.RouterModule, i2$5.AXPCommonModule, i3$5.AXPWorkflowModule], exports: [RouterModule] }); }
3836
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPLayoutModule, imports: [RouterModule.forChild(routes),
3837
- AXPCommonModule.forChild({ errorHandlers: [AXMWorkflowErrorHandler] }),
2342
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: AXPLayoutModule, imports: [i10$1.AXPCommonModule, i1$3.AXPWorkflowModule], exports: [RouterModule] }); }
2343
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPLayoutModule, imports: [AXPCommonModule.forChild({ errorHandlers: [AXMWorkflowErrorHandler] }),
3838
2344
  AXPWorkflowModule.forChild({
3839
2345
  actions: {
3840
- AXPNavigateAction,
2346
+ AXPWorkflowNavigateAction: AXPWorkflowNavigateAction,
3841
2347
  AXPDialogConfirmAction,
3842
2348
  AXPToastAction,
3843
2349
  AXPShowDetailViewAction,
@@ -3850,11 +2356,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
3850
2356
  type: NgModule,
3851
2357
  args: [{
3852
2358
  imports: [
3853
- RouterModule.forChild(routes),
3854
2359
  AXPCommonModule.forChild({ errorHandlers: [AXMWorkflowErrorHandler] }),
3855
2360
  AXPWorkflowModule.forChild({
3856
2361
  actions: {
3857
- AXPNavigateAction,
2362
+ AXPWorkflowNavigateAction: AXPWorkflowNavigateAction,
3858
2363
  AXPDialogConfirmAction,
3859
2364
  AXPToastAction,
3860
2365
  AXPShowDetailViewAction,
@@ -3871,5 +2376,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
3871
2376
  * Generated bundle index. Do not edit.
3872
2377
  */
3873
2378
 
3874
- export { AXEntityLoaderDefault, AXMWorkflowErrorHandler, AXPAdminChildFeaturesListComponent, AXPAdminChildLayoutComponent, AXPAdminChildLayoutModule, AXPAdminHeaderComponent, AXPAdminLayoutComponent, AXPAdminLayoutModule, AXPAdminRootLayoutModule, AXPCommonWidgetModule, AXPContentViewComponent, AXPCreateEntityWorkflow, AXPCustomReuseStrategy, AXPDeleteEntityWorkflow, AXPDialogConfirmAction, AXPEntityCreateCustomViewComponent, AXPEntityCreateEvent, AXPEntityCreatePopupAction, AXPEntityCreateSubmittedAction, AXPEntityDeletedEvent, AXPEntityDetailLoaderDefault, AXPEntityDetailViewLoaderFactory, AXPEntityDetailViewLoaderResolver, AXPEntityDetailsViewComponent, AXPEntityListViewComponent, AXPEntityListViewConfigEmpty, AXPEntityModifyConfirmedAction, AXPEntityModifyEvent, AXPEntityModifyPopupAction, AXPEntityPerformDeleteAction, AXPEntityQuickViewComponent, AXPEntityRegistryService, AXPError401Component, AXPError404Component, AXPErrorOfflineComponent, AXPFooterTextSlotComponent, AXPLayoutModule, AXPLayoutService, AXPListViewLoaderDefault, AXPListViewLoaderFactory, AXPListViewLoaderResolver, AXPListViewModule, AXPListViewOptionConditionsComponent, AXPListViewOptionFilterOperatorComponent, AXPListViewOptionSortingComponent, AXPListViewOptionsColumnsComponent, AXPLogoComponent, AXPModifyEntityWorkflow, AXPMyCustomFunc, AXPNavBarSlotComponent, AXPNavigateAction, AXPRedirectEvent, AXPShowDetailViewAction, AXPShowListViewAction, AXPShowQuickViewAction, AXPThemeSlotComponent, AXPToastAction, AXP_ENTITY_LOADER, AXP_LISTVIEW_LOADER, AX_ADMIN_ROUTES, convertPropertiesToColumns, convertPropertyToColumn, widgetSchemas };
2379
+ export { AXPAdminLayoutModule, AXPCreateEntityWorkflow, AXPCustomReuseStrategy, AXPDeleteEntityWorkflow, AXPEntityCreateCustomViewComponent, AXPEntityCreateEvent, AXPEntityCreatePopupAction, AXPEntityCreateSubmittedAction, AXPEntityDeletedEvent, AXPEntityDetailLoaderDefault, AXPEntityDetailViewLoaderFactory, AXPEntityDetailViewLoaderResolver, AXPEntityDetailsViewComponent, AXPEntityListViewComponent, AXPEntityModifyConfirmedAction, AXPEntityModifyEvent, AXPEntityModifyPopupAction, AXPEntityPerformDeleteAction, AXPEntityQuickViewComponent, AXPLayoutModule, AXPListViewLoaderDefault, AXPListViewLoaderFactory, AXPListViewLoaderResolver, AXPListViewModule, AXPListViewOptionConditionsComponent, AXPListViewOptionFilterOperatorComponent, AXPListViewOptionSortingComponent, AXPListViewOptionsColumnsComponent, AXPModifyEntityWorkflow, AXPMyCustomFunc, AXPShowDetailViewAction, AXPShowDetailsViewWorkflow, AXPShowListViewAction, AXPShowListViewWorkflow, AXPShowQuickViewAction, AXPShowQuickViewWorkflow, AXP_LISTVIEW_LOADER, AX_ADMIN_ROUTES };
3875
2380
  //# sourceMappingURL=acorex-platform-layouts.mjs.map