@acorex/platform 18.2.1 → 18.2.2

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 (337) hide show
  1. package/common/lib/app/application.types.d.ts +8 -0
  2. package/common/lib/data/entity-storage-service.d.ts +0 -1
  3. package/common/lib/layout/menu/index.d.ts +0 -1
  4. package/common/lib/layout/menu/menu.provider.d.ts +11 -4
  5. package/common/lib/layout/menu/menu.service.d.ts +8 -2
  6. package/common/lib/layout/menu/menu.types.d.ts +9 -6
  7. package/common/lib/settings/index.d.ts +2 -1
  8. package/common/lib/settings/setting-definition.provider.d.ts +19 -0
  9. package/common/lib/settings/settings.types.d.ts +42 -0
  10. package/common/lib/utils/index.d.ts +0 -1
  11. package/esm2022/common/lib/app/application.types.mjs +4 -4
  12. package/esm2022/common/lib/data/entity-storage-service.mjs +4 -4
  13. package/esm2022/common/lib/layout/menu/index.mjs +1 -2
  14. package/esm2022/common/lib/layout/menu/menu.provider.mjs +105 -24
  15. package/esm2022/common/lib/layout/menu/menu.service.mjs +42 -10
  16. package/esm2022/common/lib/layout/menu/menu.types.mjs +1 -1
  17. package/esm2022/common/lib/layout/theme/store/admin-layout.reducers.mjs +2 -1
  18. package/esm2022/common/lib/layout/theme/store/admin-layout.state.mjs +4 -4
  19. package/esm2022/common/lib/schema/widgets/checkbox/checkbox-widget-edit.component.mjs +2 -2
  20. package/esm2022/common/lib/schema/widgets/common-widget-filter/boolean-widget-filter.component.mjs +2 -2
  21. package/esm2022/common/lib/schema/widgets/common-widget-filter/number-widget-filter.component.mjs +2 -2
  22. package/esm2022/common/lib/schema/widgets/common-widget-filter/string-widget-filter.component.mjs +2 -2
  23. package/esm2022/common/lib/schema/widgets/common-widgets.module.mjs +22 -22
  24. package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-filter.component.mjs +2 -2
  25. package/esm2022/common/lib/schema/widgets/password/change-password.component.mjs +2 -2
  26. package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-edit.component.mjs +2 -2
  27. package/esm2022/common/lib/settings/index.mjs +3 -2
  28. package/esm2022/common/lib/settings/setting-definition.provider.mjs +229 -0
  29. package/esm2022/common/lib/settings/settings.types.mjs +7 -2
  30. package/esm2022/common/lib/utils/index.mjs +1 -2
  31. package/esm2022/common/lib/workflows/common.workflow.mjs +5 -3
  32. package/esm2022/layout/builder/lib/builder/builder.service.mjs +3 -2
  33. package/esm2022/layout/builder/lib/builder/widget-catalog.mjs +2 -1
  34. package/esm2022/layout/builder/lib/builder/widget-renderer.component.mjs +7 -5
  35. package/esm2022/layout/builder/lib/builder/widget.types.mjs +8 -4
  36. package/esm2022/layout/designer/lib/designer/components/board/board.component.mjs +61 -34
  37. package/esm2022/layout/designer/lib/designer/components/breadcrumbs/breadcrumbs.component.mjs +27 -32
  38. package/esm2022/layout/designer/lib/designer/components/drawers/data-sources/data-sources.component.mjs +1 -1
  39. package/esm2022/layout/designer/lib/designer/components/grid-drawer/grid-drawer.component.mjs +2 -2
  40. package/esm2022/layout/designer/lib/designer/components/header-menu/header-menu.component.mjs +35 -10
  41. package/esm2022/layout/designer/lib/designer/components/size-mode/view-size-toolbar.component.mjs +23 -23
  42. package/esm2022/layout/designer/lib/designer/components/widget-picker/widget-picker.component.mjs +3 -3
  43. package/esm2022/layout/designer/lib/designer/designer.component.mjs +10 -4
  44. package/esm2022/layout/designer/lib/designer/index.mjs +2 -1
  45. package/esm2022/layout/designer/lib/designer/shared/designer-connector.service.mjs +5 -6
  46. package/esm2022/layout/designer/lib/designer/shared/designer.service.mjs +158 -61
  47. package/esm2022/layout/designer/lib/designer/shared/designer.types.mjs +1 -1
  48. package/esm2022/layout/designer/lib/designer/shared/generic-commands.types.mjs +52 -0
  49. package/esm2022/layout/designer/lib/designer/shared/widget-designer-renderer.directive.mjs +32 -38
  50. package/esm2022/layout/designer/lib/preview/preview-viewer.component.mjs +3 -3
  51. package/esm2022/layout/designer/lib/property-viewer/widget-property-viewer.component.mjs +3 -3
  52. package/esm2022/layout/entity/lib/entity-detail-list.viewmodel.mjs +3 -4
  53. package/esm2022/layout/entity/lib/entity-master-list.viewmodel.mjs +18 -14
  54. package/esm2022/layout/entity/lib/entity-master-single.viewmodel.mjs +2 -1
  55. package/esm2022/layout/entity/lib/entity.viewmodel.mjs +7 -5
  56. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-column.component.mjs +10 -4
  57. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.mjs +42 -32
  58. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.mjs +3 -3
  59. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.mjs +1 -2
  60. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.mjs +79 -40
  61. package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.component.mjs +2 -2
  62. package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.mjs +2 -2
  63. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/entity-custom-view/entity-custom-view.component.mjs +1 -1
  64. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-conditions.component.mjs +1 -1
  65. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.mjs +6 -5
  66. package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.component.mjs +2 -2
  67. package/esm2022/layouts/lib/admin/entity-layout/workflows/create-entity.workflow.mjs +2 -2
  68. package/esm2022/layouts/lib/admin/entity-layout/workflows/modify-entity.workflow.mjs +2 -2
  69. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.mjs +29 -9
  70. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.mjs +2 -2
  71. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.mjs +3 -3
  72. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.mjs +24 -18
  73. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.mjs +2 -2
  74. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/overview/entity-single-overview.component.mjs +3 -3
  75. package/esm2022/themes/default/lib/layouts/root-layout/components/header/header.component.mjs +2 -2
  76. package/esm2022/themes/default/lib/layouts/root-layout/components/menu/root-menu.component.mjs +3 -3
  77. package/esm2022/themes/default/lib/layouts/root-layout/root-layout.component.mjs +2 -4
  78. package/esm2022/themes/default/lib/layouts/root-layout/root-layout.module.mjs +3 -2
  79. package/esm2022/widgets/lib/properties/editors.props.mjs +2 -2
  80. package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-designer.component.mjs +2 -2
  81. package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-edit.component.mjs +44 -20
  82. package/esm2022/widgets/lib/widgets/editors/contact/popup-component.mjs +1 -1
  83. package/esm2022/widgets/lib/widgets/editors/date-time/date-time-box-widget-column.component.mjs +1 -2
  84. package/esm2022/widgets/lib/widgets/editors/link/link-widget-edit.component.mjs +1 -2
  85. package/esm2022/widgets/lib/widgets/editors/select/select-box-widget-view.component.mjs +18 -25
  86. package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-designer.component.mjs +4 -3
  87. package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-edit.component.mjs +9 -7
  88. package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-view.component.mjs +24 -15
  89. package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget-edit.component.mjs +14 -7
  90. package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget-print.component.mjs +3 -3
  91. package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget-view.component.mjs +29 -67
  92. package/esm2022/widgets/lib/widgets/layout/block/block-widget-designer.component.mjs +32 -17
  93. package/esm2022/widgets/lib/widgets/layout/grid/grid-widget-designer.component.mjs +1 -22
  94. package/esm2022/widgets/lib/widgets/layout/grid-row/grid-row-widget-designer.component.mjs +3 -3
  95. package/esm2022/widgets/lib/widgets/layout/page/page-widget-designer.component.mjs +76 -78
  96. package/esm2022/widgets/lib/widgets/layout/page/page-widget.config.mjs +9 -9
  97. package/esm2022/widgets/lib/widgets/layout/template/template-picker/template-picker.component.mjs +120 -0
  98. package/esm2022/widgets/lib/widgets/layout/template/template-widget-edit.component.mjs +65 -24
  99. package/esm2022/widgets/lib/widgets/layout/template/template-widget-view.component.mjs +27 -7
  100. package/esm2022/widgets/lib/widgets/layout/template/template.provider.mjs +18 -1
  101. package/fesm2022/acorex-platform-auth.mjs +1 -1
  102. package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-BYEjzXpW.mjs → acorex-platform-common-avatar-widget-edit.component-vDhYokEG.mjs} +2 -3
  103. package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-BYEjzXpW.mjs.map → acorex-platform-common-avatar-widget-edit.component-vDhYokEG.mjs.map} +1 -1
  104. package/fesm2022/{acorex-platform-common-avatar-widget-view.component-CfHELBLm.mjs → acorex-platform-common-avatar-widget-view.component-Dew3CVLm.mjs} +2 -3
  105. package/fesm2022/acorex-platform-common-avatar-widget-view.component-Dew3CVLm.mjs.map +1 -0
  106. package/fesm2022/{acorex-platform-common-boolean-widget-filter.component-DRDiIxsn.mjs → acorex-platform-common-boolean-widget-filter.component-BdE7WOK5.mjs} +3 -4
  107. package/fesm2022/{acorex-platform-common-boolean-widget-filter.component-DRDiIxsn.mjs.map → acorex-platform-common-boolean-widget-filter.component-BdE7WOK5.mjs.map} +1 -1
  108. package/fesm2022/{acorex-platform-common-change-password.component-Djd4SeNv.mjs → acorex-platform-common-change-password.component-g_GEw3IZ.mjs} +4 -4
  109. package/fesm2022/{acorex-platform-common-change-password.component-Djd4SeNv.mjs.map → acorex-platform-common-change-password.component-g_GEw3IZ.mjs.map} +1 -1
  110. package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-Bn0tnHyT.mjs → acorex-platform-common-checkbox-widget-column.component-Bj5rjEk1.mjs} +2 -3
  111. package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-Bn0tnHyT.mjs.map → acorex-platform-common-checkbox-widget-column.component-Bj5rjEk1.mjs.map} +1 -1
  112. package/fesm2022/{acorex-platform-common-checkbox-widget-edit.component-BuS0Pg-j.mjs → acorex-platform-common-checkbox-widget-edit.component-ChXbJsuG.mjs} +3 -4
  113. package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-ChXbJsuG.mjs.map +1 -0
  114. package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-D7kmxXjj.mjs → acorex-platform-common-checkbox-widget-view.component-CbQwjE_u.mjs} +2 -3
  115. package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-D7kmxXjj.mjs.map → acorex-platform-common-checkbox-widget-view.component-CbQwjE_u.mjs.map} +1 -1
  116. package/fesm2022/{acorex-platform-common-dateTime-widget-column.component-CtS98tbi.mjs → acorex-platform-common-dateTime-widget-column.component-QUYyDVw8.mjs} +2 -3
  117. package/fesm2022/acorex-platform-common-dateTime-widget-column.component-QUYyDVw8.mjs.map +1 -0
  118. package/fesm2022/{acorex-platform-common-dateTime-widget-edit.component-Dm4QofDq.mjs → acorex-platform-common-dateTime-widget-edit.component-CzLb3xnR.mjs} +2 -3
  119. package/fesm2022/{acorex-platform-common-dateTime-widget-edit.component-Dm4QofDq.mjs.map → acorex-platform-common-dateTime-widget-edit.component-CzLb3xnR.mjs.map} +1 -1
  120. package/fesm2022/{acorex-platform-common-dateTime-widget-filter.component-DDny36SE.mjs → acorex-platform-common-dateTime-widget-filter.component-DZRQ6yVk.mjs} +2 -3
  121. package/fesm2022/{acorex-platform-common-dateTime-widget-filter.component-DDny36SE.mjs.map → acorex-platform-common-dateTime-widget-filter.component-DZRQ6yVk.mjs.map} +1 -1
  122. package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-lzf0fwxr.mjs → acorex-platform-common-dateTime-widget-view.component-DxNwm_5m.mjs} +2 -3
  123. package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-lzf0fwxr.mjs.map → acorex-platform-common-dateTime-widget-view.component-DxNwm_5m.mjs.map} +1 -1
  124. package/fesm2022/{acorex-platform-common-email-widget-column.component-Cy_Kj9po.mjs → acorex-platform-common-email-widget-column.component-Cm-fhlNZ.mjs} +2 -3
  125. package/fesm2022/acorex-platform-common-email-widget-column.component-Cm-fhlNZ.mjs.map +1 -0
  126. package/fesm2022/{acorex-platform-common-email-widget-edit.component-DTxCX3ok.mjs → acorex-platform-common-email-widget-edit.component-BfXFBLF6.mjs} +2 -3
  127. package/fesm2022/{acorex-platform-common-email-widget-edit.component-DTxCX3ok.mjs.map → acorex-platform-common-email-widget-edit.component-BfXFBLF6.mjs.map} +1 -1
  128. package/fesm2022/{acorex-platform-common-email-widget-view.component-CvEHLvcT.mjs → acorex-platform-common-email-widget-view.component-ClRjKVy6.mjs} +1 -2
  129. package/fesm2022/{acorex-platform-common-email-widget-view.component-CvEHLvcT.mjs.map → acorex-platform-common-email-widget-view.component-ClRjKVy6.mjs.map} +1 -1
  130. package/fesm2022/{acorex-platform-common-file-widget-column.component-GtbElxmS.mjs → acorex-platform-common-file-widget-column.component-B0v2rSWI.mjs} +2 -3
  131. package/fesm2022/acorex-platform-common-file-widget-column.component-B0v2rSWI.mjs.map +1 -0
  132. package/fesm2022/{acorex-platform-common-file-widget-edit.component-3fR5jRFv.mjs → acorex-platform-common-file-widget-edit.component-DsIqehpt.mjs} +2 -3
  133. package/fesm2022/{acorex-platform-common-file-widget-edit.component-3fR5jRFv.mjs.map → acorex-platform-common-file-widget-edit.component-DsIqehpt.mjs.map} +1 -1
  134. package/fesm2022/{acorex-platform-common-file-widget-filter.component-B7etTIuq.mjs → acorex-platform-common-file-widget-filter.component-C3uBjqF-.mjs} +2 -3
  135. package/fesm2022/acorex-platform-common-file-widget-filter.component-C3uBjqF-.mjs.map +1 -0
  136. package/fesm2022/{acorex-platform-common-file-widget-view.component-RsQQjlL7.mjs → acorex-platform-common-file-widget-view.component-DTl_Rehd.mjs} +2 -3
  137. package/fesm2022/{acorex-platform-common-file-widget-view.component-RsQQjlL7.mjs.map → acorex-platform-common-file-widget-view.component-DTl_Rehd.mjs.map} +1 -1
  138. package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-CixJEDUT.mjs → acorex-platform-common-gallery-widget-edit.component-DHeFVg5x.mjs} +2 -3
  139. package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-CixJEDUT.mjs.map → acorex-platform-common-gallery-widget-edit.component-DHeFVg5x.mjs.map} +1 -1
  140. package/fesm2022/{acorex-platform-common-gallery-widget-filter.component-1wzY6U5s.mjs → acorex-platform-common-gallery-widget-filter.component-Di446i2c.mjs} +2 -3
  141. package/fesm2022/acorex-platform-common-gallery-widget-filter.component-Di446i2c.mjs.map +1 -0
  142. package/fesm2022/{acorex-platform-common-gallery-widget-view.component-YaLJU3Cv.mjs → acorex-platform-common-gallery-widget-view.component-CkcRvfv-.mjs} +2 -3
  143. package/fesm2022/{acorex-platform-common-gallery-widget-view.component-YaLJU3Cv.mjs.map → acorex-platform-common-gallery-widget-view.component-CkcRvfv-.mjs.map} +1 -1
  144. package/fesm2022/{acorex-platform-common-largetext-widget-edit.component-BeiJZnEv.mjs → acorex-platform-common-largetext-widget-edit.component-D89AlBSm.mjs} +1 -2
  145. package/fesm2022/acorex-platform-common-largetext-widget-edit.component-D89AlBSm.mjs.map +1 -0
  146. package/fesm2022/{acorex-platform-common-lookup-widget-column.component-C5DZ-cez.mjs → acorex-platform-common-lookup-widget-column.component-CB0ehp_y.mjs} +2 -3
  147. package/fesm2022/acorex-platform-common-lookup-widget-column.component-CB0ehp_y.mjs.map +1 -0
  148. package/fesm2022/{acorex-platform-common-lookup-widget-edit.component-uopyJIC1.mjs → acorex-platform-common-lookup-widget-edit.component-B0HQnsb8.mjs} +2 -3
  149. package/fesm2022/{acorex-platform-common-lookup-widget-edit.component-uopyJIC1.mjs.map → acorex-platform-common-lookup-widget-edit.component-B0HQnsb8.mjs.map} +1 -1
  150. package/fesm2022/{acorex-platform-common-lookup-widget-filter.component-D1lrIkz4.mjs → acorex-platform-common-lookup-widget-filter.component-Dxj_XEYV.mjs} +3 -4
  151. package/fesm2022/acorex-platform-common-lookup-widget-filter.component-Dxj_XEYV.mjs.map +1 -0
  152. package/fesm2022/{acorex-platform-common-lookup-widget-view.component-DTNcGNir.mjs → acorex-platform-common-lookup-widget-view.component-BtO3feA9.mjs} +2 -3
  153. package/fesm2022/acorex-platform-common-lookup-widget-view.component-BtO3feA9.mjs.map +1 -0
  154. package/fesm2022/{acorex-platform-common-map-widget-edit.component-h4SRiV6_.mjs → acorex-platform-common-map-widget-edit.component-hXIZrhzg.mjs} +2 -3
  155. package/fesm2022/acorex-platform-common-map-widget-edit.component-hXIZrhzg.mjs.map +1 -0
  156. package/fesm2022/{acorex-platform-common-map-widget-view.component-Deos8gVy.mjs → acorex-platform-common-map-widget-view.component-RgV-r8q6.mjs} +2 -3
  157. package/fesm2022/acorex-platform-common-map-widget-view.component-RgV-r8q6.mjs.map +1 -0
  158. package/fesm2022/{acorex-platform-common-messenger-widget-column.component-DN8dFLZD.mjs → acorex-platform-common-messenger-widget-column.component-DGWQWuzM.mjs} +2 -3
  159. package/fesm2022/acorex-platform-common-messenger-widget-column.component-DGWQWuzM.mjs.map +1 -0
  160. package/fesm2022/{acorex-platform-common-messenger-widget-edit.component-m_zxHCw5.mjs → acorex-platform-common-messenger-widget-edit.component-Blv1qL4e.mjs} +2 -3
  161. package/fesm2022/acorex-platform-common-messenger-widget-edit.component-Blv1qL4e.mjs.map +1 -0
  162. package/fesm2022/{acorex-platform-common-messenger-widget-view.component-DA9MiNb9.mjs → acorex-platform-common-messenger-widget-view.component-DEbnPggG.mjs} +2 -3
  163. package/fesm2022/{acorex-platform-common-messenger-widget-view.component-DA9MiNb9.mjs.map → acorex-platform-common-messenger-widget-view.component-DEbnPggG.mjs.map} +1 -1
  164. package/fesm2022/{acorex-platform-common-number-widget-edit.component-B0if4vR4.mjs → acorex-platform-common-number-widget-edit.component-gQCEBhPv.mjs} +2 -3
  165. package/fesm2022/acorex-platform-common-number-widget-edit.component-gQCEBhPv.mjs.map +1 -0
  166. package/fesm2022/{acorex-platform-common-number-widget-filter.component-BgTJbR2u.mjs → acorex-platform-common-number-widget-filter.component-CvEw3awN.mjs} +3 -4
  167. package/fesm2022/acorex-platform-common-number-widget-filter.component-CvEw3awN.mjs.map +1 -0
  168. package/fesm2022/{acorex-platform-common-number-widget-view.component-Du1oQYBH.mjs → acorex-platform-common-number-widget-view.component-ROrdklif.mjs} +2 -3
  169. package/fesm2022/acorex-platform-common-number-widget-view.component-ROrdklif.mjs.map +1 -0
  170. package/fesm2022/{acorex-platform-common-password-widget-column.component-CEWtRX1S.mjs → acorex-platform-common-password-widget-column.component-vXdE4UjM.mjs} +2 -3
  171. package/fesm2022/{acorex-platform-common-password-widget-column.component-CEWtRX1S.mjs.map → acorex-platform-common-password-widget-column.component-vXdE4UjM.mjs.map} +1 -1
  172. package/fesm2022/{acorex-platform-common-password-widget-edit.component-B-_m6f_C.mjs → acorex-platform-common-password-widget-edit.component-BCOoHtGl.mjs} +2 -3
  173. package/fesm2022/acorex-platform-common-password-widget-edit.component-BCOoHtGl.mjs.map +1 -0
  174. package/fesm2022/{acorex-platform-common-password-widget-view.component-BVW-Zak-.mjs → acorex-platform-common-password-widget-view.component-rpjAeimk.mjs} +3 -4
  175. package/fesm2022/{acorex-platform-common-password-widget-view.component-BVW-Zak-.mjs.map → acorex-platform-common-password-widget-view.component-rpjAeimk.mjs.map} +1 -1
  176. package/fesm2022/{acorex-platform-common-phone-widget-column.component-DGaGGltV.mjs → acorex-platform-common-phone-widget-column.component-BbuUbPCu.mjs} +2 -3
  177. package/fesm2022/{acorex-platform-common-phone-widget-column.component-DGaGGltV.mjs.map → acorex-platform-common-phone-widget-column.component-BbuUbPCu.mjs.map} +1 -1
  178. package/fesm2022/{acorex-platform-common-phone-widget-edit.component-BNfAQ_4j.mjs → acorex-platform-common-phone-widget-edit.component-Bo_aOxfZ.mjs} +2 -3
  179. package/fesm2022/{acorex-platform-common-phone-widget-edit.component-BNfAQ_4j.mjs.map → acorex-platform-common-phone-widget-edit.component-Bo_aOxfZ.mjs.map} +1 -1
  180. package/fesm2022/{acorex-platform-common-phone-widget-view.component-xGygt5Y9.mjs → acorex-platform-common-phone-widget-view.component-DDBCR_QY.mjs} +2 -3
  181. package/fesm2022/{acorex-platform-common-phone-widget-view.component-xGygt5Y9.mjs.map → acorex-platform-common-phone-widget-view.component-DDBCR_QY.mjs.map} +1 -1
  182. package/fesm2022/{acorex-platform-common-rich-text-widget-column.component-BJYxnZm2.mjs → acorex-platform-common-rich-text-widget-column.component-BHiq7hdp.mjs} +2 -3
  183. package/fesm2022/{acorex-platform-common-rich-text-widget-column.component-BJYxnZm2.mjs.map → acorex-platform-common-rich-text-widget-column.component-BHiq7hdp.mjs.map} +1 -1
  184. package/fesm2022/{acorex-platform-common-rich-text-widget-edit.component-Dvv8JnXl.mjs → acorex-platform-common-rich-text-widget-edit.component-12odUyzb.mjs} +2 -3
  185. package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-12odUyzb.mjs.map +1 -0
  186. package/fesm2022/{acorex-platform-common-rich-text-widget-view.component-B77Y5luo.mjs → acorex-platform-common-rich-text-widget-view.component-Xr0ohz5L.mjs} +2 -3
  187. package/fesm2022/acorex-platform-common-rich-text-widget-view.component-Xr0ohz5L.mjs.map +1 -0
  188. package/fesm2022/{acorex-platform-common-selection-list-widget-column.component-1zPVFgFG.mjs → acorex-platform-common-selection-list-widget-column.component-C2JikSdw.mjs} +2 -3
  189. package/fesm2022/{acorex-platform-common-selection-list-widget-column.component-1zPVFgFG.mjs.map → acorex-platform-common-selection-list-widget-column.component-C2JikSdw.mjs.map} +1 -1
  190. package/fesm2022/{acorex-platform-common-selection-list-widget-edit.component-Tdkf-0cn.mjs → acorex-platform-common-selection-list-widget-edit.component-C1QPfHCm.mjs} +3 -4
  191. package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-C1QPfHCm.mjs.map +1 -0
  192. package/fesm2022/{acorex-platform-common-selection-list-widget-filter.component-y2aFk-A6.mjs → acorex-platform-common-selection-list-widget-filter.component-DIgxHmqa.mjs} +2 -3
  193. package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-DIgxHmqa.mjs.map +1 -0
  194. package/fesm2022/{acorex-platform-common-selection-list-widget-view.component-DLc1MHex.mjs → acorex-platform-common-selection-list-widget-view.component-D-VQ4JNC.mjs} +2 -3
  195. package/fesm2022/acorex-platform-common-selection-list-widget-view.component-D-VQ4JNC.mjs.map +1 -0
  196. package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-qUuwwYlj.mjs → acorex-platform-common-signature-pad-widget-edit.component-BimaJ4_d.mjs} +2 -3
  197. package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-qUuwwYlj.mjs.map → acorex-platform-common-signature-pad-widget-edit.component-BimaJ4_d.mjs.map} +1 -1
  198. package/fesm2022/{acorex-platform-common-signature-pad-widget-view.component-D5XVZ88b.mjs → acorex-platform-common-signature-pad-widget-view.component-USd0U707.mjs} +2 -3
  199. package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-USd0U707.mjs.map +1 -0
  200. package/fesm2022/{acorex-platform-common-string-widget-filter.component-B9h7CnEz.mjs → acorex-platform-common-string-widget-filter.component-wI9D-Ju5.mjs} +3 -4
  201. package/fesm2022/acorex-platform-common-string-widget-filter.component-wI9D-Ju5.mjs.map +1 -0
  202. package/fesm2022/{acorex-platform-common-text-widget-column.component-LFKeHZbS.mjs → acorex-platform-common-text-widget-column.component-Be7Nr0lJ.mjs} +2 -3
  203. package/fesm2022/{acorex-platform-common-text-widget-column.component-LFKeHZbS.mjs.map → acorex-platform-common-text-widget-column.component-Be7Nr0lJ.mjs.map} +1 -1
  204. package/fesm2022/{acorex-platform-common-text-widget-edit.component-BiyTKmvV.mjs → acorex-platform-common-text-widget-edit.component-feJTTnye.mjs} +2 -3
  205. package/fesm2022/acorex-platform-common-text-widget-edit.component-feJTTnye.mjs.map +1 -0
  206. package/fesm2022/{acorex-platform-common-text-widget-view.component-BDxpsxE6.mjs → acorex-platform-common-text-widget-view.component-DsUAJ-md.mjs} +2 -3
  207. package/fesm2022/{acorex-platform-common-text-widget-view.component-BDxpsxE6.mjs.map → acorex-platform-common-text-widget-view.component-DsUAJ-md.mjs.map} +1 -1
  208. package/fesm2022/{acorex-platform-common-toggle-widget-column.component-BnmR9hFM.mjs → acorex-platform-common-toggle-widget-column.component-BFwzsY4-.mjs} +2 -3
  209. package/fesm2022/{acorex-platform-common-toggle-widget-column.component-BnmR9hFM.mjs.map → acorex-platform-common-toggle-widget-column.component-BFwzsY4-.mjs.map} +1 -1
  210. package/fesm2022/{acorex-platform-common-toggle-widget-edit.component-Cz7LayX-.mjs → acorex-platform-common-toggle-widget-edit.component-Cuf9_RrU.mjs} +2 -3
  211. package/fesm2022/acorex-platform-common-toggle-widget-edit.component-Cuf9_RrU.mjs.map +1 -0
  212. package/fesm2022/{acorex-platform-common-toggle-widget-view.component-Cq2-5QUg.mjs → acorex-platform-common-toggle-widget-view.component-DYz6VTey.mjs} +2 -3
  213. package/fesm2022/{acorex-platform-common-toggle-widget-view.component-Cq2-5QUg.mjs.map → acorex-platform-common-toggle-widget-view.component-DYz6VTey.mjs.map} +1 -1
  214. package/fesm2022/acorex-platform-common.mjs +489 -216
  215. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  216. package/fesm2022/acorex-platform-layout-builder.mjs +15 -7
  217. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  218. package/fesm2022/acorex-platform-layout-designer.mjs +397 -207
  219. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  220. package/fesm2022/acorex-platform-layout-entity.mjs +158 -100
  221. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  222. package/fesm2022/{acorex-platform-layouts-entity-create-view.component-CPGbLM4C.mjs → acorex-platform-layouts-entity-create-view.component-JsGlDx_S.mjs} +3 -3
  223. package/fesm2022/{acorex-platform-layouts-entity-create-view.component-CPGbLM4C.mjs.map → acorex-platform-layouts-entity-create-view.component-JsGlDx_S.mjs.map} +1 -1
  224. package/fesm2022/{acorex-platform-layouts-entity-import-view.component-CZpEcVi9.mjs → acorex-platform-layouts-entity-import-view.component-9FK_Iro9.mjs} +2 -2
  225. package/fesm2022/{acorex-platform-layouts-entity-import-view.component-CZpEcVi9.mjs.map → acorex-platform-layouts-entity-import-view.component-9FK_Iro9.mjs.map} +1 -1
  226. package/fesm2022/{acorex-platform-layouts-entity-modify-view.component-Bt4MLEou.mjs → acorex-platform-layouts-entity-modify-view.component-CNbc8ewu.mjs} +3 -3
  227. package/fesm2022/{acorex-platform-layouts-entity-modify-view.component-Bt4MLEou.mjs.map → acorex-platform-layouts-entity-modify-view.component-CNbc8ewu.mjs.map} +1 -1
  228. package/fesm2022/acorex-platform-layouts.mjs +14 -13
  229. package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
  230. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-dByV3T8-.mjs → acorex-platform-themes-default-entity-master-create-view.component-Cf5ttvrG.mjs} +4 -4
  231. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-dByV3T8-.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-Cf5ttvrG.mjs.map} +1 -1
  232. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BLb_4pK5.mjs +306 -0
  233. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BLb_4pK5.mjs.map +1 -0
  234. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-CdwlY0Fa.mjs → acorex-platform-themes-default-entity-master-modify-view.component-CCvE7XiE.mjs} +5 -5
  235. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-CdwlY0Fa.mjs.map → acorex-platform-themes-default-entity-master-modify-view.component-CCvE7XiE.mjs.map} +1 -1
  236. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-ItkFB3QF.mjs → acorex-platform-themes-default-entity-master-single-view.component-CwrgQFY7.mjs} +7 -7
  237. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-CwrgQFY7.mjs.map +1 -0
  238. package/fesm2022/acorex-platform-themes-default.mjs +43 -24
  239. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  240. package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-M_JuDPbt.mjs → acorex-platform-widgets-button-widget-designer.component-CPFA79Gx.mjs} +2 -2
  241. package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-M_JuDPbt.mjs.map → acorex-platform-widgets-button-widget-designer.component-CPFA79Gx.mjs.map} +1 -1
  242. package/fesm2022/{acorex-platform-widgets-checkbox-widget-column.component-j1jG8pCr.mjs → acorex-platform-widgets-checkbox-widget-column.component-MInF2GVN.mjs} +2 -2
  243. package/fesm2022/{acorex-platform-widgets-checkbox-widget-column.component-j1jG8pCr.mjs.map → acorex-platform-widgets-checkbox-widget-column.component-MInF2GVN.mjs.map} +1 -1
  244. package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-DzGg-uFi.mjs → acorex-platform-widgets-checkbox-widget-designer.component-B7Qv2aYx.mjs} +3 -3
  245. package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-DzGg-uFi.mjs.map → acorex-platform-widgets-checkbox-widget-designer.component-B7Qv2aYx.mjs.map} +1 -1
  246. package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-CDA7Jwov.mjs → acorex-platform-widgets-checkbox-widget-view.component-DP4kITs-.mjs} +2 -2
  247. package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-CDA7Jwov.mjs.map → acorex-platform-widgets-checkbox-widget-view.component-DP4kITs-.mjs.map} +1 -1
  248. package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-DIvi0BtT.mjs → acorex-platform-widgets-color-box-widget-designer.component-uQBHAspe.mjs} +2 -2
  249. package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-DIvi0BtT.mjs.map → acorex-platform-widgets-color-box-widget-designer.component-uQBHAspe.mjs.map} +1 -1
  250. package/fesm2022/{acorex-platform-widgets-contact-widget-filter.component-GTwK51nJ.mjs → acorex-platform-widgets-contact-widget-filter.component-DnQZon-E.mjs} +2 -2
  251. package/fesm2022/{acorex-platform-widgets-contact-widget-filter.component-GTwK51nJ.mjs.map → acorex-platform-widgets-contact-widget-filter.component-DnQZon-E.mjs.map} +1 -1
  252. package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-BL_EAwUs.mjs → acorex-platform-widgets-page-widget-designer.component-DOulAanE.mjs} +76 -78
  253. package/fesm2022/acorex-platform-widgets-page-widget-designer.component-DOulAanE.mjs.map +1 -0
  254. package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-RCdFIz45.mjs → acorex-platform-widgets-rich-text-popup.component-C8KmObPV.mjs} +2 -2
  255. package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-RCdFIz45.mjs.map → acorex-platform-widgets-rich-text-popup.component-C8KmObPV.mjs.map} +1 -1
  256. package/fesm2022/acorex-platform-widgets-template-picker.component-DPlvwgbu.mjs +123 -0
  257. package/fesm2022/acorex-platform-widgets-template-picker.component-DPlvwgbu.mjs.map +1 -0
  258. package/fesm2022/acorex-platform-widgets-template-widget-edit.component-JlCVB-Aq.mjs +135 -0
  259. package/fesm2022/acorex-platform-widgets-template-widget-edit.component-JlCVB-Aq.mjs.map +1 -0
  260. package/fesm2022/{acorex-platform-widgets-text-block-widget-designer.component-Bi9hlpvB.mjs → acorex-platform-widgets-text-block-widget-designer.component-BE6goaZc.mjs} +2 -2
  261. package/fesm2022/{acorex-platform-widgets-text-block-widget-designer.component-Bi9hlpvB.mjs.map → acorex-platform-widgets-text-block-widget-designer.component-BE6goaZc.mjs.map} +1 -1
  262. package/fesm2022/acorex-platform-widgets.mjs +255 -239
  263. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  264. package/fesm2022/acorex-platform-workflow.mjs +1 -1
  265. package/layout/builder/lib/builder/widget.types.d.ts +3 -1
  266. package/layout/designer/lib/designer/components/board/board.component.d.ts +8 -0
  267. package/layout/designer/lib/designer/designer.component.d.ts +3 -1
  268. package/layout/designer/lib/designer/index.d.ts +1 -0
  269. package/layout/designer/lib/designer/shared/designer-connector.service.d.ts +10 -6
  270. package/layout/designer/lib/designer/shared/designer.service.d.ts +18 -3
  271. package/layout/designer/lib/designer/shared/generic-commands.types.d.ts +9 -0
  272. package/layout/designer/lib/designer/shared/widget-designer-renderer.directive.d.ts +8 -5
  273. package/layout/designer/lib/preview/preview-viewer.component.d.ts +2 -2
  274. package/layout/designer/lib/property-viewer/widget-property-viewer.component.d.ts +2 -2
  275. package/layout/entity/lib/entity-detail-list.viewmodel.d.ts +2 -1
  276. package/layout/entity/lib/entity-master-list.viewmodel.d.ts +2 -3
  277. package/layout/entity/lib/entity-master-single.viewmodel.d.ts +1 -0
  278. package/layout/entity/lib/entity.viewmodel.d.ts +5 -3
  279. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +14 -12
  280. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.d.ts +13 -10
  281. package/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.d.ts +0 -1
  282. package/package.json +13 -13
  283. package/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.d.ts +4 -1
  284. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.d.ts +1 -1
  285. package/themes/default/lib/layouts/root-layout/components/menu/root-menu.component.d.ts +8 -2
  286. package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +3 -6
  287. package/widgets/lib/widgets/editors/checkbox/checkbox-widget-edit.component.d.ts +2 -0
  288. package/widgets/lib/widgets/editors/select/select-box-widget-view.component.d.ts +2 -3
  289. package/widgets/lib/widgets/editors/selection-list/selection-list-widget-designer.component.d.ts +1 -1
  290. package/widgets/lib/widgets/editors/selection-list/selection-list-widget-edit.component.d.ts +1 -1
  291. package/widgets/lib/widgets/editors/selection-list/selection-list-widget-view.component.d.ts +3 -3
  292. package/widgets/lib/widgets/editors/toggle/toggle-widget-edit.component.d.ts +1 -2
  293. package/widgets/lib/widgets/editors/toggle/toggle-widget-print.component.d.ts +1 -1
  294. package/widgets/lib/widgets/editors/toggle/toggle-widget-view.component.d.ts +1 -1
  295. package/widgets/lib/widgets/layout/page/page-widget-designer.component.d.ts +8 -9
  296. package/widgets/lib/widgets/layout/template/template-picker/template-picker.component.d.ts +30 -0
  297. package/widgets/lib/widgets/layout/template/template-widget-edit.component.d.ts +3 -0
  298. package/widgets/lib/widgets/layout/template/template-widget-view.component.d.ts +1 -0
  299. package/widgets/lib/widgets/layout/template/template.provider.d.ts +3 -0
  300. package/common/lib/layout/menu/menu.loader.d.ts +0 -17
  301. package/common/lib/utils/router-util.service.d.ts +0 -12
  302. package/esm2022/common/lib/layout/menu/menu.loader.mjs +0 -39
  303. package/esm2022/common/lib/utils/router-util.service.mjs +0 -43
  304. package/fesm2022/acorex-platform-common-avatar-widget-view.component-CfHELBLm.mjs.map +0 -1
  305. package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-BuS0Pg-j.mjs.map +0 -1
  306. package/fesm2022/acorex-platform-common-dateTime-widget-column.component-CtS98tbi.mjs.map +0 -1
  307. package/fesm2022/acorex-platform-common-email-widget-column.component-Cy_Kj9po.mjs.map +0 -1
  308. package/fesm2022/acorex-platform-common-file-widget-column.component-GtbElxmS.mjs.map +0 -1
  309. package/fesm2022/acorex-platform-common-file-widget-filter.component-B7etTIuq.mjs.map +0 -1
  310. package/fesm2022/acorex-platform-common-gallery-widget-filter.component-1wzY6U5s.mjs.map +0 -1
  311. package/fesm2022/acorex-platform-common-largetext-widget-edit.component-BeiJZnEv.mjs.map +0 -1
  312. package/fesm2022/acorex-platform-common-lookup-widget-column.component-C5DZ-cez.mjs.map +0 -1
  313. package/fesm2022/acorex-platform-common-lookup-widget-filter.component-D1lrIkz4.mjs.map +0 -1
  314. package/fesm2022/acorex-platform-common-lookup-widget-view.component-DTNcGNir.mjs.map +0 -1
  315. package/fesm2022/acorex-platform-common-map-widget-edit.component-h4SRiV6_.mjs.map +0 -1
  316. package/fesm2022/acorex-platform-common-map-widget-view.component-Deos8gVy.mjs.map +0 -1
  317. package/fesm2022/acorex-platform-common-messenger-widget-column.component-DN8dFLZD.mjs.map +0 -1
  318. package/fesm2022/acorex-platform-common-messenger-widget-edit.component-m_zxHCw5.mjs.map +0 -1
  319. package/fesm2022/acorex-platform-common-number-widget-edit.component-B0if4vR4.mjs.map +0 -1
  320. package/fesm2022/acorex-platform-common-number-widget-filter.component-BgTJbR2u.mjs.map +0 -1
  321. package/fesm2022/acorex-platform-common-number-widget-view.component-Du1oQYBH.mjs.map +0 -1
  322. package/fesm2022/acorex-platform-common-password-widget-edit.component-B-_m6f_C.mjs.map +0 -1
  323. package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-Dvv8JnXl.mjs.map +0 -1
  324. package/fesm2022/acorex-platform-common-rich-text-widget-view.component-B77Y5luo.mjs.map +0 -1
  325. package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-Tdkf-0cn.mjs.map +0 -1
  326. package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-y2aFk-A6.mjs.map +0 -1
  327. package/fesm2022/acorex-platform-common-selection-list-widget-view.component-DLc1MHex.mjs.map +0 -1
  328. package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-D5XVZ88b.mjs.map +0 -1
  329. package/fesm2022/acorex-platform-common-string-widget-filter.component-B9h7CnEz.mjs.map +0 -1
  330. package/fesm2022/acorex-platform-common-text-widget-edit.component-BiyTKmvV.mjs.map +0 -1
  331. package/fesm2022/acorex-platform-common-toggle-widget-edit.component-Cz7LayX-.mjs.map +0 -1
  332. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-mzb-FV9E.mjs +0 -299
  333. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-mzb-FV9E.mjs.map +0 -1
  334. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-ItkFB3QF.mjs.map +0 -1
  335. package/fesm2022/acorex-platform-widgets-page-widget-designer.component-BL_EAwUs.mjs.map +0 -1
  336. package/fesm2022/acorex-platform-widgets-template-widget-edit.component-BWc0_EA0.mjs +0 -96
  337. package/fesm2022/acorex-platform-widgets-template-widget-edit.component-BWc0_EA0.mjs.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { AXFormatService } from '@acorex/core/format';
2
- import { cloneDeep, set, merge, get, sortBy } from 'lodash-es';
2
+ import { cloneDeep, set, merge, isNil, get, sortBy } from 'lodash-es';
3
3
  import * as i0 from '@angular/core';
4
- import { InjectionToken, inject, Injectable, computed, signal, Injector, Component, ChangeDetectionStrategy, DestroyRef, ViewChild, NgModule } from '@angular/core';
4
+ import { InjectionToken, inject, Injectable, computed, signal, Injector, effect, HostBinding, ChangeDetectionStrategy, Component, DestroyRef, ViewChild, NgModule } from '@angular/core';
5
5
  import * as i1$3 from '@acorex/platform/workflow';
6
6
  import { createWorkFlowEvent, AXPWorkflowAction, AXPWorkflowService, ofType, AXPWorkflowModule } from '@acorex/platform/workflow';
7
7
  import { AXPSessionService, AXPAuthGuard } from '@acorex/platform/auth';
@@ -12,16 +12,18 @@ import * as i8 from '@acorex/core/translation';
12
12
  import { AXTranslationService, AXTranslationModule } from '@acorex/core/translation';
13
13
  import { AXPopupService } from '@acorex/components/popup';
14
14
  import { AXPlatform } from '@acorex/core/platform';
15
- import * as i2 from '@acorex/components/common';
15
+ import * as i2$1 from '@acorex/components/common';
16
16
  import { AXDataSource, AXCommonModule } from '@acorex/components/common';
17
17
  import { Subject, takeUntil } from 'rxjs';
18
18
  import * as i7 from '@acorex/platform/layout/builder';
19
- import { AXPWidgetComponent, AXPLayoutBuilderModule, AXPLayoutBuilderService, AXPColumnWidgetComponent, AXP_WIDGETS_EDITOR_GROUP, AXPWidgetsCatalog, AXPWidgetRegistryService } from '@acorex/platform/layout/builder';
19
+ import { AXPWidgetComponent, AXPLayoutBuilderModule, AXPLayoutBuilderService, AXPColumnWidgetComponent, AXPWidgetsCatalog, AXP_WIDGETS_EDITOR_GROUP, AXPWidgetRegistryService } from '@acorex/platform/layout/builder';
20
20
  import { RouterModule, ROUTES } from '@angular/router';
21
21
  import * as i1 from '@acorex/components/loading';
22
22
  import { AXLoadingModule } from '@acorex/components/loading';
23
23
  import * as i1$1 from '@angular/common';
24
24
  import { CommonModule } from '@angular/common';
25
+ import * as i2 from '@acorex/components/badge';
26
+ import { AXBadgeModule } from '@acorex/components/badge';
25
27
  import * as i3 from '@acorex/components/button';
26
28
  import { AXButtonModule } from '@acorex/components/button';
27
29
  import * as i4 from '@acorex/components/decorators';
@@ -29,8 +31,8 @@ import { AXDecoratorModule } from '@acorex/components/decorators';
29
31
  import * as i6$1 from '@acorex/components/form';
30
32
  import { AXFormModule } from '@acorex/components/form';
31
33
  import { AXSelectBoxModule } from '@acorex/components/select-box';
32
- import * as i2$1 from '@acorex/components/text-box';
33
- import { AXTextBoxComponent, AXTextBoxModule } from '@acorex/components/text-box';
34
+ import * as i2$2 from '@acorex/components/text-box';
35
+ import { AXTextBoxModule, AXTextBoxComponent } from '@acorex/components/text-box';
34
36
  import { AXValidationModule } from '@acorex/core/validation';
35
37
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
36
38
  import * as i1$2 from '@angular/forms';
@@ -157,12 +159,14 @@ class AXPEntityListViewColumnViewModel {
157
159
  this.name = this.property.name;
158
160
  this.title = this.column.title ?? this.property.title;
159
161
  this.visible = this.column?.options?.visible ?? true;
162
+ this.dir = this.column.sort?.dir;
163
+ this.sortEnabled = this.property.options?.sort?.enabled;
160
164
  this.node = computed(() => {
161
165
  const widget = this.property.schema.interface;
162
166
  return {
163
- path: this.name,
167
+ path: this.column.options?.dataPath ?? this.name,
164
168
  type: widget.type,
165
- options: { ...widget?.options, ...this.column?.options }
169
+ options: { ...widget?.options, ...this.column?.options },
166
170
  };
167
171
  });
168
172
  }
@@ -525,9 +529,8 @@ class AXPEntityDetailListViewModel {
525
529
  ((a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||
526
530
  (a.scope == AXPEntityCommandScope.TypeLevel && !this.hasSelectedItems())));
527
531
  });
528
- this.rowActions = computed(() => {
529
- return this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Individual);
530
- });
532
+ this.primaryRowActions = computed(() => this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Individual && a.priority === 'primary'));
533
+ this.secondaryRowActions = computed(() => this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Individual && a.priority === 'secondary'));
531
534
  //****************** Filter ******************//
532
535
  this.inlineFilters = {
533
536
  field: null,
@@ -691,6 +694,7 @@ class AXPEntityMasterSingleElementViewModel {
691
694
  this.property = this.entity.properties.find(c => c.name == this.propertyView.name);
692
695
  this.name = signal(this.property.name);
693
696
  this.title = signal(this.property.title);
697
+ this.showLabel = signal(this.propertyView.layout?.label?.visible != false);
694
698
  this.description = signal(this.property.description);
695
699
  this.layout = computed(() => {
696
700
  const viewProp = this.entity.interfaces?.master?.single?.properties?.find(c => c.name == this.property.name);
@@ -1015,7 +1019,6 @@ class AXPEntityMasterListViewModel {
1015
1019
  this.session = this.injector.get(AXPSessionService);
1016
1020
  this.workflow = this.injector.get(AXPWorkflowService);
1017
1021
  this.destroyed = new Subject();
1018
- this.translateService = this.injector.get(AXTranslationService);
1019
1022
  this.events$ = new Subject();
1020
1023
  this.dataSource = new AXDataSource({
1021
1024
  byKey: (key) => {
@@ -1052,7 +1055,7 @@ class AXPEntityMasterListViewModel {
1052
1055
  this.beardcrumbs = computed(() => {
1053
1056
  return [
1054
1057
  {
1055
- title: this.translateService.translateSync('entity.home'),
1058
+ title: 'entity.home',
1056
1059
  icon: 'fa-solid fa-home ax-text-xs ax-me-2',
1057
1060
  url: [`/${this.session.application?.name}`],
1058
1061
  },
@@ -1121,8 +1124,8 @@ class AXPEntityMasterListViewModel {
1121
1124
  return props.map((e) => {
1122
1125
  return {
1123
1126
  name: e.name,
1124
- title: this.translateService.translateSync(e.title) ?? cloneDeep.name,
1125
- dir: 'asc',
1127
+ title: e.title,
1128
+ dir: undefined,
1126
1129
  };
1127
1130
  });
1128
1131
  };
@@ -1136,7 +1139,7 @@ class AXPEntityMasterListViewModel {
1136
1139
  return this.sortedCount() < this.sortableFieldsCount();
1137
1140
  };
1138
1141
  this.sortedCount = () => {
1139
- return this.sortedFields().length;
1142
+ return this.sortedFields().filter((i) => i.dir).length;
1140
1143
  };
1141
1144
  this.sortedFields = signal([]);
1142
1145
  this.views = computed(() => {
@@ -1155,6 +1158,8 @@ class AXPEntityMasterListViewModel {
1155
1158
  this.events$.next({ action: 'refresh' });
1156
1159
  }
1157
1160
  });
1161
+ console.log(this.sortableFields());
1162
+ this.sortedFields.set(this.sortableFields());
1158
1163
  }
1159
1164
  clearSelection() {
1160
1165
  this.selectedItems.set([]);
@@ -1185,7 +1190,6 @@ class AXPEntityMasterListViewModel {
1185
1190
  operator: f.operator,
1186
1191
  value: f.value,
1187
1192
  }));
1188
- console.log(this.advanceFilters.filters);
1189
1193
  //
1190
1194
  const inline = this.inlineFilters.filters?.length ?? 0;
1191
1195
  const advance = this.advanceFilters.filters?.length ?? 0;
@@ -1239,12 +1243,17 @@ class AXPEntityMasterListViewModel {
1239
1243
  this.sortedFields.set(this.sortedFields().filter((c) => c.name != name));
1240
1244
  }
1241
1245
  applyViewSorts() {
1242
- const fileds = this.view().sorts.map((c) => ({
1243
- name: c.name,
1244
- title: c.name,
1245
- dir: c.dir ?? 'asc',
1246
- }));
1247
- this.sortedFields.set(fileds);
1246
+ const viewSorts = this.view().sorts;
1247
+ this.sortedFields.update((prev) => {
1248
+ const viewSortsMap = new Map(viewSorts.map((vs) => [vs.name, vs]));
1249
+ return prev.map((sf) => {
1250
+ const updatedSort = viewSortsMap.get(sf.name);
1251
+ if (updatedSort) {
1252
+ return { ...updatedSort, title: sf.title };
1253
+ }
1254
+ return sf;
1255
+ });
1256
+ });
1248
1257
  }
1249
1258
  //****************** Views ******************//
1250
1259
  setView(viewName = null) {
@@ -1302,65 +1311,101 @@ const AXPEntityListViewModelResolver = (route, state, service = inject(AXPEntity
1302
1311
  class AXPLookupWidgetViewComponent extends AXPWidgetComponent {
1303
1312
  constructor() {
1304
1313
  super(...arguments);
1305
- this.textField = 'title';
1306
- //protected entity: string;
1307
- this.entity = computed(() => this.options()['entity']);
1308
1314
  this.formatService = inject(AXFormatService);
1309
1315
  this.entityResolver = inject(AXPEntityResolver);
1310
- this.displayText = signal('');
1316
+ this.entity = computed(() => this.options()['entity']);
1317
+ this.multiple = computed(() => this.options()['multiple']);
1318
+ this.valueField = computed(() => this.options()['valueField'] ?? 'id');
1319
+ this.textField = computed(() => this.options()['textField'] ?? 'title');
1320
+ this.displayField = computed(() => {
1321
+ return this.textField() ?? this.entityDef()?.formats.lookup ?? this.entityDef()?.properties.find((c) => c.name != 'id')?.name ?? 'title';
1322
+ });
1311
1323
  this.loading = signal(false);
1312
- this.selectedItem = signal(null);
1324
+ this.entityDef = signal(null);
1325
+ this.displayItems = signal([]);
1326
+ this.efEntity = effect(async () => {
1327
+ const [module, entity] = this.entity().split('.');
1328
+ this.entityDef.set(await this.entityResolver.get(module, entity));
1329
+ }, { allowSignalWrites: true });
1330
+ this.efDisplay = effect(async () => {
1331
+ const value = this.getValue();
1332
+ if (isNil(value)) {
1333
+ this.displayItems.set([]);
1334
+ }
1335
+ else {
1336
+ const items = Array.isArray(value)
1337
+ ? value.map(async (item) => await this.extractItem(item))
1338
+ : [await this.extractItem(value)];
1339
+ this.displayItems.set(items);
1340
+ }
1341
+ }, { allowSignalWrites: true });
1313
1342
  }
1314
- async ngOnInit() {
1315
- super.ngOnInit();
1316
- const [module, entity] = this.entity().split('.');
1317
- this.entityDef = await this.entityResolver.get(module, entity);
1318
- this.textField =
1319
- this.entityDef?.formats.lookup ?? this.entityDef?.properties.find((c) => c.name != 'id')?.name ?? 'title';
1320
- const value = this.getValue();
1321
- if (typeof value == 'object' && !Array.isArray(value))
1322
- this.displayText.set(this.formatService.format(this.textField, 'string', value));
1323
- else if (value != null) {
1324
- this.setItem();
1343
+ async extractItem(item) {
1344
+ if (typeof item == 'object') {
1345
+ return {
1346
+ id: item[this.valueField()],
1347
+ text: this.formatService.format(this.displayField(), 'string', item),
1348
+ };
1349
+ }
1350
+ else {
1351
+ const byKey = this.entityDef()?.queries.byKey?.execute;
1352
+ if (byKey) {
1353
+ this.loading.set(true);
1354
+ const item = await byKey(this.getValue());
1355
+ this.loading.set(false);
1356
+ return {
1357
+ id: item[this.valueField()],
1358
+ text: this.formatService.format(this.textField(), 'string', item),
1359
+ };
1360
+ }
1361
+ return {
1362
+ id: item,
1363
+ text: item
1364
+ };
1325
1365
  }
1326
1366
  }
1327
- async setItem() {
1328
- this.loading.set(true);
1329
- const byKey = this.entityDef?.queries.byKey?.execute;
1330
- const item = await byKey(this.getValue());
1331
- const text = this.formatService.format(this.textField, 'string', item);
1332
- this.loading.set(false);
1333
- this.displayText.set(text);
1367
+ get __class() {
1368
+ const cls = {};
1369
+ cls[`ax-flex`] = true;
1370
+ cls[`ax-gap-1`] = true;
1371
+ return cls;
1334
1372
  }
1335
1373
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLookupWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1336
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPLookupWidgetViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
1337
- <span>
1338
- @if(loading()){
1374
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPLookupWidgetViewComponent, isStandalone: true, selector: "axp-lookup-widget-view", host: { properties: { "class": "this.__class" } }, usesInheritance: true, ngImport: i0, template: `
1375
+ @if(loading())
1376
+ {
1339
1377
  <ax-loading></ax-loading>
1340
- }@else{
1341
- {{ displayText() }}
1378
+ }
1379
+ @else{
1380
+ @for (item of displayItems(); track $index) {
1381
+ <ax-badge [look]="'twotone'" [text]="item.text" color="primary"></ax-badge>
1342
1382
  }
1343
- </span>
1344
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i1.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1383
+ }
1384
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i1.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i2.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1345
1385
  }
1346
1386
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLookupWidgetViewComponent, decorators: [{
1347
1387
  type: Component,
1348
1388
  args: [{
1389
+ selector: 'axp-lookup-widget-view',
1349
1390
  template: `
1350
- <span>
1351
- @if(loading()){
1391
+ @if(loading())
1392
+ {
1352
1393
  <ax-loading></ax-loading>
1353
- }@else{
1354
- {{ displayText() }}
1394
+ }
1395
+ @else{
1396
+ @for (item of displayItems(); track $index) {
1397
+ <ax-badge [look]="'twotone'" [text]="item.text" color="primary"></ax-badge>
1355
1398
  }
1356
- </span>
1399
+ }
1357
1400
  `,
1358
1401
  standalone: true,
1359
1402
  changeDetection: ChangeDetectionStrategy.OnPush,
1360
- imports: [CommonModule, AXLoadingModule],
1361
- inputs: [],
1403
+ imports: [CommonModule, AXLoadingModule, AXBadgeModule],
1362
1404
  }]
1363
- }] });
1405
+ }], propDecorators: { __class: [{
1406
+ type: HostBinding,
1407
+ args: ['class']
1408
+ }] } });
1364
1409
 
1365
1410
  var lookupWidgetView_component = /*#__PURE__*/Object.freeze({
1366
1411
  __proto__: null,
@@ -1433,7 +1478,7 @@ class AXPLookupWidgetSelectorComponent extends AXBasePageComponent {
1433
1478
  >
1434
1479
  <!-- <ax-select-column fixed="start" [width]="'50px'"></ax-select-column> -->
1435
1480
  @for(col of vm.columns();track col.name) { @if(col.visible) {
1436
- <axp-widget-column-renderer [caption]="col.title" [node]="col.node()"></axp-widget-column-renderer>
1481
+ <axp-widget-column-renderer [caption]="col.title | translate | async" [node]="col.node()"></axp-widget-column-renderer>
1437
1482
  } }
1438
1483
  </ax-data-table>
1439
1484
  </div>
@@ -1468,7 +1513,7 @@ class AXPLookupWidgetSelectorComponent extends AXBasePageComponent {
1468
1513
  }
1469
1514
  </ax-suffix>
1470
1515
  </ax-footer>
1471
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXCommonModule }, { kind: "directive", type: i2.AXAutoFocusDirective, selector: "[axAutoFocus]", inputs: ["axAutoFocus", "axAutoFocusTime"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i5.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: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i6.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: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i7.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["caption", "node", "footerTemplate", "cellTemplate", "headerTemplate"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i8.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1516
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXCommonModule }, { kind: "directive", type: i2$1.AXAutoFocusDirective, selector: "[axAutoFocus]", inputs: ["axAutoFocus", "axAutoFocusTime"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i5.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: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i6.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: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i7.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["caption", "node", "footerTemplate", "cellTemplate", "headerTemplate"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i8.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1472
1517
  }
1473
1518
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLookupWidgetSelectorComponent, decorators: [{
1474
1519
  type: Component,
@@ -1500,7 +1545,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
1500
1545
  >
1501
1546
  <!-- <ax-select-column fixed="start" [width]="'50px'"></ax-select-column> -->
1502
1547
  @for(col of vm.columns();track col.name) { @if(col.visible) {
1503
- <axp-widget-column-renderer [caption]="col.title" [node]="col.node()"></axp-widget-column-renderer>
1548
+ <axp-widget-column-renderer [caption]="col.title | translate | async" [node]="col.node()"></axp-widget-column-renderer>
1504
1549
  } }
1505
1550
  </ax-data-table>
1506
1551
  </div>
@@ -1576,7 +1621,6 @@ class AXPLookupWidgetSelectorViewModel {
1576
1621
  return this.entityDef.commands?.create?.execute != null;
1577
1622
  });
1578
1623
  this.inlineFiltersPlaceholders = computed(() => {
1579
- console.log(this.entityDef);
1580
1624
  return (this.entityDef?.properties.filter((p) => p.options?.filter?.inline?.enabled).map((c) => c.title ?? c.name) ?? []);
1581
1625
  });
1582
1626
  this.hasInlineFilters = computed(() => {
@@ -1662,10 +1706,6 @@ class AXPLookupWidgetSelectorViewModel {
1662
1706
  class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
1663
1707
  constructor() {
1664
1708
  super(...arguments);
1665
- this.expose = computed(() => this.options()['expose']);
1666
- this.entity = computed(() => this.options()['entity']);
1667
- this.textField = signal('');
1668
- this.validationRules = [];
1669
1709
  this.injector = inject(Injector);
1670
1710
  this.entityResolver = inject(AXPEntityResolver);
1671
1711
  this.formatService = inject(AXFormatService);
@@ -1673,6 +1713,13 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
1673
1713
  this.builderService = inject(AXPLayoutBuilderService);
1674
1714
  this.destroyRef = inject(DestroyRef);
1675
1715
  this.translateService = inject(AXTranslationService);
1716
+ this.expose = computed(() => this.options()['expose']);
1717
+ this.entity = computed(() => this.options()['entity']);
1718
+ this.validationRules = computed(() => this.options()["validationRules"] ?? []);
1719
+ this.textField = computed(() => {
1720
+ return this.entityDef()?.formats.lookup ?? this.entityDef()?.properties.find((c) => c.name != 'id')?.name ?? 'title';
1721
+ });
1722
+ this.entityDef = signal(null);
1676
1723
  this.searchTerm = signal(null);
1677
1724
  this.displayText = signal('');
1678
1725
  this.selectedItem = signal(null);
@@ -1682,35 +1729,42 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
1682
1729
  this.placeholder = computed(() => {
1683
1730
  return (this.translateService.translateSync('widget.lookup.search') + this.vm()?.inlineFiltersPlaceholders().join(', '));
1684
1731
  });
1685
- }
1686
- async ngOnInit() {
1732
+ this.efDisplay = effect(async () => {
1733
+ const value = this.getValue();
1734
+ if (isNil(value)) {
1735
+ this.displayText.set('');
1736
+ }
1737
+ else if (typeof value == 'object' && !Array.isArray(value)) {
1738
+ this.displayText.set(this.formatService.format(this.textField(), 'string', value));
1739
+ }
1740
+ else if (value != null) {
1741
+ await this.findByValue();
1742
+ }
1743
+ }, { allowSignalWrites: true });
1744
+ this.efEntity = effect(async () => {
1745
+ const [module, entity] = this.entity().split('.');
1746
+ this.entityDef.set(await this.entityResolver.get(module, entity));
1747
+ this.vm.set(new AXPLookupWidgetSelectorViewModel(this.injector, this.entityDef(), this.filter));
1748
+ }, { allowSignalWrites: true });
1749
+ }
1750
+ ngOnInit() {
1687
1751
  super.ngOnInit();
1688
1752
  //
1689
- const [module, entity] = this.entity().split('.');
1690
- this.entityDef = await this.entityResolver.get(module, entity);
1691
- //
1692
- this.vm.set(new AXPLookupWidgetSelectorViewModel(this.injector, this.entityDef, this.filter));
1693
- //
1694
- this.textField.set(this.entityDef?.formats.lookup ?? this.entityDef?.properties.find((c) => c.name != 'id')?.name ?? 'title');
1695
- const value = this.getValue();
1696
- if (typeof value == 'object' && !Array.isArray(value))
1697
- this.displayText.set(this.formatService.format(this.textField(), 'string', value));
1698
- else if (value != null) {
1699
- await this.findByValue();
1700
- }
1701
- //
1702
1753
  this.builderService.onChanged.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(async (c) => {
1703
1754
  if (c.path == this.path) {
1704
- if (this.getValue())
1755
+ if (this.getValue()) {
1705
1756
  await this.findByValue();
1757
+ }
1706
1758
  }
1707
1759
  });
1708
1760
  }
1709
1761
  async findByValue() {
1710
1762
  this.isLoading.set(true);
1711
- const byKey = this.entityDef?.queries.byKey?.execute;
1712
- const item = await byKey(this.getValue());
1713
- this.setItems(item);
1763
+ const byKey = this.entityDef()?.queries.byKey?.execute;
1764
+ if (byKey) {
1765
+ const item = await byKey(this.getValue());
1766
+ this.setItems(item);
1767
+ }
1714
1768
  this.isLoading.set(false);
1715
1769
  }
1716
1770
  handleOnClick(e) {
@@ -1720,10 +1774,10 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
1720
1774
  this.isOpen.set(true);
1721
1775
  this.popupService
1722
1776
  .open(AXPLookupWidgetSelectorComponent, {
1723
- title: this.translateService.translateSync('widget.lookup.search') + ' ' + this.entityDef?.formats.plural,
1777
+ title: `${this.translateService.translateSync('widget.lookup.search')} ${this.translateService.translateSync(this.entityDef()?.formats.plural)}`,
1724
1778
  size: (this.vm()?.columns().length ?? 0) > 3 ? 'lg' : 'md',
1725
1779
  data: {
1726
- vm: new AXPLookupWidgetSelectorViewModel(this.injector, this.entityDef, this.filter),
1780
+ vm: new AXPLookupWidgetSelectorViewModel(this.injector, this.entityDef(), this.filter),
1727
1781
  searchTerm: this.searchTerm() == this.displayText() ? null : this.searchTerm(),
1728
1782
  },
1729
1783
  })
@@ -1803,15 +1857,14 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
1803
1857
  }
1804
1858
  handleClearClick() {
1805
1859
  this.clear();
1806
- this.setValue(null);
1807
1860
  }
1808
1861
  clear() {
1862
+ this.setValue(null);
1809
1863
  this.searchTerm.set('');
1810
- this.displayText.set('');
1811
1864
  this.selectedItem.set(null);
1812
1865
  }
1813
1866
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLookupWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1814
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPLookupWidgetEditComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "textbox", first: true, predicate: AXTextBoxComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: `
1867
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPLookupWidgetEditComponent, isStandalone: true, selector: "axp-lookup-widget-edit", viewQueries: [{ propertyName: "textbox", first: true, predicate: AXTextBoxComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: `
1815
1868
  <ax-text-box
1816
1869
  [ngModel]="displayText()"
1817
1870
  (onValueChanged)="handleValueChange($event)"
@@ -1819,7 +1872,7 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
1819
1872
  (onKeyUp)="handleKeyDown($event)"
1820
1873
  (onBlur)="handleOnBlur($event)"
1821
1874
  >
1822
- @for (validation of validationRules; track $index) {
1875
+ @for (validation of validationRules(); track $index) {
1823
1876
  <ax-validation-rule
1824
1877
  [rule]="validation.rule"
1825
1878
  [message]="validation.options?.message"
@@ -1838,11 +1891,12 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
1838
1891
  </ax-button>
1839
1892
  </ax-suffix>
1840
1893
  </ax-text-box>
1841
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i2$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: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i1.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i6$1.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1894
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i2$2.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i1.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i6$1.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1842
1895
  }
1843
1896
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLookupWidgetEditComponent, decorators: [{
1844
1897
  type: Component,
1845
1898
  args: [{
1899
+ selector: 'axp-lookup-widget-edit',
1846
1900
  template: `
1847
1901
  <ax-text-box
1848
1902
  [ngModel]="displayText()"
@@ -1851,7 +1905,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
1851
1905
  (onKeyUp)="handleKeyDown($event)"
1852
1906
  (onBlur)="handleOnBlur($event)"
1853
1907
  >
1854
- @for (validation of validationRules; track $index) {
1908
+ @for (validation of validationRules(); track $index) {
1855
1909
  <ax-validation-rule
1856
1910
  [rule]="validation.rule"
1857
1911
  [message]="validation.options?.message"
@@ -1917,15 +1971,19 @@ var lookupWidgetFilter_component = /*#__PURE__*/Object.freeze({
1917
1971
 
1918
1972
  class AXPLookupWidgetColumnComponent extends AXPColumnWidgetComponent {
1919
1973
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLookupWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1920
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPLookupWidgetColumnComponent, isStandalone: true, selector: "ng-component", inputs: { rawValue: "rawValue" }, usesInheritance: true, ngImport: i0, template: `{{rawValue}}`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1974
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPLookupWidgetColumnComponent, isStandalone: true, selector: "ng-component", inputs: { rawValue: "rawValue" }, usesInheritance: true, ngImport: i0, template: `
1975
+ <ax-badge [look]="'twotone'" [text]="rawValue" color="primary"></ax-badge>
1976
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i2.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1921
1977
  }
1922
1978
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLookupWidgetColumnComponent, decorators: [{
1923
1979
  type: Component,
1924
1980
  args: [{
1925
- template: `{{rawValue}}`,
1981
+ template: `
1982
+ <ax-badge [look]="'twotone'" [text]="rawValue" color="primary"></ax-badge>
1983
+ `,
1926
1984
  standalone: true,
1927
1985
  changeDetection: ChangeDetectionStrategy.OnPush,
1928
- imports: [CommonModule],
1986
+ imports: [CommonModule, AXBadgeModule],
1929
1987
  inputs: ['rawValue']
1930
1988
  }]
1931
1989
  }] });
@@ -2080,7 +2138,7 @@ class AXPWidgetSelectorWidgetEditComponent extends AXPWidgetComponent {
2080
2138
  <axp-widget-property-viewer [widget]="selectedWidgetNode()!" (onChanged)="handleChangeWidget($event)">
2081
2139
  </axp-widget-property-viewer>
2082
2140
  }
2083
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i2$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: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i6$1.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message"] }, { kind: "component", type: AXPWidgetPropertyViewerComponent, selector: "axp-widget-property-viewer", inputs: ["widget"], outputs: ["onChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2141
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i2$2.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i6$1.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message"] }, { kind: "component", type: AXPWidgetPropertyViewerComponent, selector: "axp-widget-property-viewer", inputs: ["widget"], outputs: ["onChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2084
2142
  }
2085
2143
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPWidgetSelectorWidgetEditComponent, decorators: [{
2086
2144
  type: Component,