@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,29 +1,29 @@
1
- import { AXPLayoutBuilderModule, AXPContainerWidgetComponent } from '@acorex/platform/layout/builder';
2
- import { CommonModule } from '@angular/common';
3
- import { ChangeDetectionStrategy, Component, computed, HostBinding, inject, ViewEncapsulation } from '@angular/core';
4
- import { AXPDesignerAddWidgetLineButtonComponent, AXPDesignerAddWidgetMiniButtonComponent, AXPDesignerService, AXPWidgetDesignerRendererDirective } from "@acorex/platform/layout/designer";
5
1
  import { AXButtonModule } from '@acorex/components/button';
6
2
  import { AXDecoratorModule } from '@acorex/components/decorators';
3
+ import { AXPContainerWidgetComponent, AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
4
+ import { AXPDesignerAddWidgetLineButtonComponent, AXPDesignerAddWidgetMiniButtonComponent, AXPDesignerService, AXPWidgetDesignerRendererDirective, } from '@acorex/platform/layout/designer';
5
+ import { CommonModule } from '@angular/common';
6
+ import { ChangeDetectionStrategy, Component, computed, HostBinding, inject, ViewEncapsulation } from '@angular/core';
7
7
  import * as i0 from "@angular/core";
8
8
  export class AXPPageWidgetDesignerComponent extends AXPContainerWidgetComponent {
9
9
  constructor() {
10
10
  super(...arguments);
11
11
  this.designerService = inject(AXPDesignerService);
12
- this.backgroundColor = computed(() => this.options()["backgroundColor"]);
13
- this.theme = computed(() => this.options()["theme"]?.id ?? 'default');
14
- this.hasHeader = computed(() => this.options()["hasHeader"]);
15
- this.hasFooter = computed(() => this.options()["hasFooter"]);
16
- this.onlyChildren = computed(() => this.children().filter(c => !c.meta?.['footer'] && !c.meta?.['header']));
17
- this.headerNodes = computed(() => this.children().filter(c => c.meta?.['header']) ?? []);
18
- this.footerNodes = computed(() => this.children().filter(c => c.meta?.['footer']) ?? []);
12
+ this.backgroundColor = computed(() => this.options()['backgroundColor']);
13
+ this.theme = computed(() => this.options()['theme']?.id ?? 'default');
14
+ this.hasHeader = computed(() => this.options()['hasHeader']);
15
+ this.hasFooter = computed(() => this.options()['hasFooter']);
16
+ this.onlyChildren = computed(() => this.children().filter((c) => !c.meta?.['footer'] && !c.meta?.['header']));
17
+ this.headerNodes = computed(() => this.children().filter((c) => c.meta?.['header']) ?? []);
18
+ this.footerNodes = computed(() => this.children().filter((c) => c.meta?.['footer']) ?? []);
19
19
  }
20
20
  async handleAddHeader() {
21
21
  const widgets = await this.designerService.showPicker(this.node);
22
- widgets.forEach(c => c.meta = { header: true });
22
+ widgets.forEach((c) => (c.meta = { header: true }));
23
23
  }
24
24
  async handleAddFooter() {
25
25
  const widgets = await this.designerService.showPicker(this.node);
26
- widgets.forEach(c => c.meta = { footer: true });
26
+ widgets.forEach((c) => (c.meta = { footer: true }));
27
27
  }
28
28
  async handleAddElement() {
29
29
  await this.designerService.showPicker(this.node);
@@ -39,48 +39,47 @@ export class AXPPageWidgetDesignerComponent extends AXPContainerWidgetComponent
39
39
  'ax-dark': this.theme() == 'dark',
40
40
  'ax-light': this.theme() == 'light',
41
41
  'ax-block': true,
42
- 'ax-w-full': true
42
+ 'ax-w-full': true,
43
43
  };
44
44
  }
45
45
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPPageWidgetDesignerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
46
46
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPPageWidgetDesignerComponent, isStandalone: true, selector: "axp-page-widget", host: { properties: { "style": "this.__style", "class": "this.__class" } }, providers: [
47
47
  {
48
- provide: AXPContainerWidgetComponent, useExisting: AXPPageWidgetDesignerComponent
49
- }
48
+ provide: AXPContainerWidgetComponent,
49
+ useExisting: AXPPageWidgetDesignerComponent,
50
+ },
50
51
  ], usesInheritance: true, ngImport: i0, template: `
51
- @if(hasHeader())
52
- {
53
- @if(headerNodes().length)
54
- {
55
- <header class="axp-page-widget-header">
56
- @for (node of headerNodes(); track $index) {
57
- <ng-container axp-widget-designer-renderer [node]="node" [parentNode]="this" [mode]="mode"></ng-container>
58
- }
59
- </header>
52
+ @if(hasHeader()) { @if(headerNodes().length) {
53
+ <header class="axp-page-widget-header">
54
+ @for (node of headerNodes(); track $index) {
55
+ <ng-container axp-widget-designer-renderer [node]="node" [parentNode]="this" [mode]="mode"></ng-container>
60
56
  }
61
- @else {
62
- <axp-designer-add-widget-line-button [text]="'Page Header'" (onClick)="handleAddHeader()"></axp-designer-add-widget-line-button>
63
- }
64
- }
65
- @for (node of onlyChildren(); track $index) {
66
- <ng-container axp-widget-designer-renderer [node]="node" [parentNode]="this" [mode]="mode"></ng-container>
57
+ </header>
58
+ } @else {
59
+ <axp-designer-add-widget-line-button
60
+ [text]="'Page Header'"
61
+ (onClick)="handleAddHeader()"
62
+ ></axp-designer-add-widget-line-button>
63
+ } } @for (node of onlyChildren(); track $index) {
64
+ <ng-container axp-widget-designer-renderer [node]="node" [parentNode]="this" [mode]="mode"></ng-container>
67
65
  }
68
66
  <!-- <axp-designer-add-widget-mini-button></axp-designer-add-widget-mini-button> -->
69
- <axp-designer-add-widget-line-button [text]="'Add Element'" (onClick)="handleAddElement()" ></axp-designer-add-widget-line-button>
70
- @if(hasFooter())
71
- {
72
- @if(footerNodes().length)
73
- {
74
- <footer class="axp-page-widget-footer">
75
- @for (node of footerNodes(); track $index) {
76
- <ng-container axp-widget-designer-renderer [node]="node" [parentNode]="this" [mode]="mode"></ng-container>
77
- }
78
- </footer>
79
- }
80
- @else {
81
- <axp-designer-add-widget-line-button [text]="'Page Footer'" (onClick)="handleAddFooter()"></axp-designer-add-widget-line-button>
67
+ <axp-designer-add-widget-line-button
68
+ [text]="'Add Element'"
69
+ (onClick)="handleAddElement()"
70
+ ></axp-designer-add-widget-line-button>
71
+ @if(hasFooter()) { @if(footerNodes().length) {
72
+ <footer class="axp-page-widget-footer">
73
+ @for (node of footerNodes(); track $index) {
74
+ <ng-container axp-widget-designer-renderer [node]="node" [parentNode]="this" [mode]="mode"></ng-container>
82
75
  }
83
- }
76
+ </footer>
77
+ } @else {
78
+ <axp-designer-add-widget-line-button
79
+ [text]="'Page Footer'"
80
+ (onClick)="handleAddFooter()"
81
+ ></axp-designer-add-widget-line-button>
82
+ } }
84
83
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "directive", type: AXPWidgetDesignerRendererDirective, selector: "[axp-widget-designer-renderer]", inputs: ["parentNode", "index", "mode", "node"] }, { kind: "component", type: AXPDesignerAddWidgetLineButtonComponent, selector: "axp-designer-add-widget-line-button", inputs: ["text"], outputs: ["onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
85
84
  }
86
85
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPPageWidgetDesignerComponent, decorators: [{
@@ -88,39 +87,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
88
87
  args: [{
89
88
  selector: 'axp-page-widget',
90
89
  template: `
91
- @if(hasHeader())
92
- {
93
- @if(headerNodes().length)
94
- {
95
- <header class="axp-page-widget-header">
96
- @for (node of headerNodes(); track $index) {
97
- <ng-container axp-widget-designer-renderer [node]="node" [parentNode]="this" [mode]="mode"></ng-container>
98
- }
99
- </header>
100
- }
101
- @else {
102
- <axp-designer-add-widget-line-button [text]="'Page Header'" (onClick)="handleAddHeader()"></axp-designer-add-widget-line-button>
90
+ @if(hasHeader()) { @if(headerNodes().length) {
91
+ <header class="axp-page-widget-header">
92
+ @for (node of headerNodes(); track $index) {
93
+ <ng-container axp-widget-designer-renderer [node]="node" [parentNode]="this" [mode]="mode"></ng-container>
103
94
  }
104
- }
105
- @for (node of onlyChildren(); track $index) {
106
- <ng-container axp-widget-designer-renderer [node]="node" [parentNode]="this" [mode]="mode"></ng-container>
95
+ </header>
96
+ } @else {
97
+ <axp-designer-add-widget-line-button
98
+ [text]="'Page Header'"
99
+ (onClick)="handleAddHeader()"
100
+ ></axp-designer-add-widget-line-button>
101
+ } } @for (node of onlyChildren(); track $index) {
102
+ <ng-container axp-widget-designer-renderer [node]="node" [parentNode]="this" [mode]="mode"></ng-container>
107
103
  }
108
104
  <!-- <axp-designer-add-widget-mini-button></axp-designer-add-widget-mini-button> -->
109
- <axp-designer-add-widget-line-button [text]="'Add Element'" (onClick)="handleAddElement()" ></axp-designer-add-widget-line-button>
110
- @if(hasFooter())
111
- {
112
- @if(footerNodes().length)
113
- {
114
- <footer class="axp-page-widget-footer">
115
- @for (node of footerNodes(); track $index) {
116
- <ng-container axp-widget-designer-renderer [node]="node" [parentNode]="this" [mode]="mode"></ng-container>
117
- }
118
- </footer>
105
+ <axp-designer-add-widget-line-button
106
+ [text]="'Add Element'"
107
+ (onClick)="handleAddElement()"
108
+ ></axp-designer-add-widget-line-button>
109
+ @if(hasFooter()) { @if(footerNodes().length) {
110
+ <footer class="axp-page-widget-footer">
111
+ @for (node of footerNodes(); track $index) {
112
+ <ng-container axp-widget-designer-renderer [node]="node" [parentNode]="this" [mode]="mode"></ng-container>
119
113
  }
120
- @else {
121
- <axp-designer-add-widget-line-button [text]="'Page Footer'" (onClick)="handleAddFooter()"></axp-designer-add-widget-line-button>
122
- }
123
- }
114
+ </footer>
115
+ } @else {
116
+ <axp-designer-add-widget-line-button
117
+ [text]="'Page Footer'"
118
+ (onClick)="handleAddFooter()"
119
+ ></axp-designer-add-widget-line-button>
120
+ } }
124
121
  `,
125
122
  standalone: true,
126
123
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -136,9 +133,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
136
133
  ],
137
134
  providers: [
138
135
  {
139
- provide: AXPContainerWidgetComponent, useExisting: AXPPageWidgetDesignerComponent
140
- }
141
- ]
136
+ provide: AXPContainerWidgetComponent,
137
+ useExisting: AXPPageWidgetDesignerComponent,
138
+ },
139
+ ],
142
140
  }]
143
141
  }], propDecorators: { __style: [{
144
142
  type: HostBinding,
@@ -147,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
147
145
  type: HostBinding,
148
146
  args: ['class']
149
147
  }] } });
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS13aWRnZXQtZGVzaWduZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aWRnZXRzL3NyYy9saWIvd2lkZ2V0cy9sYXlvdXQvcGFnZS9wYWdlLXdpZGdldC1kZXNpZ25lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLDJCQUEyQixFQUFpQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3JILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdILE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSx1Q0FBdUMsRUFBRSxrQkFBa0IsRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzVMLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUF5RGxFLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSwyQkFBaUM7SUF2RHJGOztRQXlEWSxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRTdDLG9CQUFlLEdBQUcsUUFBUSxDQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBVyxDQUFDLENBQUM7UUFFdEYsVUFBSyxHQUFHLFFBQVEsQ0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBWSxJQUFJLFNBQVMsQ0FBQyxDQUFDO1FBQ25GLGNBQVMsR0FBRyxRQUFRLENBQVUsR0FBRyxF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R0FrQ1Q7b0JBQ0QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osc0JBQXNCO3dCQUN0QixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsa0NBQWtDO3dCQUNsQyx1Q0FBdUM7d0JBQ3ZDLHVDQUF1QztxQkFDeEM7b0JBQ0QsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxXQUFXLGdDQUFnQzt5QkFDbEY7cUJBQ0Y7aUJBQ0Y7OEJBbUNhLE9BQU87c0JBRGxCLFdBQVc7dUJBQUMsT0FBTztnQkFRUixPQUFPO3NCQURsQixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlLCBBWFBDb250YWluZXJXaWRnZXRDb21wb25lbnQsIEFYUFdpZGdldE5vZGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgSG9zdEJpbmRpbmcsIGluamVjdCwgU2lnbmFsLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJBZGRXaWRnZXRMaW5lQnV0dG9uQ29tcG9uZW50LCBBWFBEZXNpZ25lckFkZFdpZGdldE1pbmlCdXR0b25Db21wb25lbnQsIEFYUERlc2lnbmVyU2VydmljZSwgQVhQV2lkZ2V0RGVzaWduZXJSZW5kZXJlckRpcmVjdGl2ZSB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9kZXNpZ25lclwiO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtcGFnZS13aWRnZXQnLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZihoYXNIZWFkZXIoKSlcbiAgICB7XG4gICAgICBAaWYoaGVhZGVyTm9kZXMoKS5sZW5ndGgpXG4gICAgICB7XG4gICAgICA8aGVhZGVyIGNsYXNzPVwiYXhwLXBhZ2Utd2lkZ2V0LWhlYWRlclwiPlxuICAgICAgICBAZm9yIChub2RlIG9mIGhlYWRlck5vZGVzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8bmctY29udGFpbmVyIGF4cC13aWRnZXQtZGVzaWduZXItcmVuZGVyZXIgW25vZGVdPVwibm9kZVwiICBbcGFyZW50Tm9kZV09XCJ0aGlzXCIgW21vZGVdPVwibW9kZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG4gICAgICA8L2hlYWRlcj5cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgPGF4cC1kZXNpZ25lci1hZGQtd2lkZ2V0LWxpbmUtYnV0dG9uIFt0ZXh0XT1cIidQYWdlIEhlYWRlcidcIiAob25DbGljayk9XCJoYW5kbGVBZGRIZWFkZXIoKVwiPjwvYXhwLWRlc2lnbmVyLWFkZC13aWRnZXQtbGluZS1idXR0b24+XG4gICAgICB9XG4gICAgfVxuICAgIEBmb3IgKG5vZGUgb2Ygb25seUNoaWxkcmVuKCk7IHRyYWNrICRpbmRleCkge1xuICAgIDxuZy1jb250YWluZXIgYXhwLXdpZGdldC1kZXNpZ25lci1yZW5kZXJlciBbbm9kZV09XCJub2RlXCIgIFtwYXJlbnROb2RlXT1cInRoaXNcIiBbbW9kZV09XCJtb2RlXCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICAgIDwhLS0gPGF4cC1kZXNpZ25lci1hZGQtd2lkZ2V0LW1pbmktYnV0dG9uPjwvYXhwLWRlc2lnbmVyLWFkZC13aWRnZXQtbWluaS1idXR0b24+IC0tPlxuICAgIDxheHAtZGVzaWduZXItYWRkLXdpZGdldC1saW5lLWJ1dHRvbiBbdGV4dF09XCInQWRkIEVsZW1lbnQnXCIgKG9uQ2xpY2spPVwiaGFuZGxlQWRkRWxlbWVudCgpXCIgPjwvYXhwLWRlc2lnbmVyLWFkZC13aWRnZXQtbGluZS1idXR0b24+XG4gICAgQGlmKGhhc0Zvb3RlcigpKVxuICAgIHtcbiAgICAgIEBpZihmb290ZXJOb2RlcygpLmxlbmd0aClcbiAgICAgIHtcbiAgICAgIDxmb290ZXIgY2xhc3M9XCJheHAtcGFnZS13aWRnZXQtZm9vdGVyXCI+XG4gICAgICAgIEBmb3IgKG5vZGUgb2YgZm9vdGVyTm9kZXMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIDxuZy1jb250YWluZXIgYXhwLXdpZGdldC1kZXNpZ25lci1yZW5kZXJlciBbbm9kZV09XCJub2RlXCIgIFtwYXJlbnROb2RlXT1cInRoaXNcIiBbbW9kZV09XCJtb2RlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIH1cbiAgICAgIDwvZm9vdGVyPlxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICA8YXhwLWRlc2lnbmVyLWFkZC13aWRnZXQtbGluZS1idXR0b24gW3RleHRdPVwiJ1BhZ2UgRm9vdGVyJ1wiIChvbkNsaWNrKT1cImhhbmRsZUFkZEZvb3RlcigpXCI+PC9heHAtZGVzaWduZXItYWRkLXdpZGdldC1saW5lLWJ1dHRvbj5cbiAgICAgIH1cbiAgICB9XG4gIGAsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEFYUExheW91dEJ1aWxkZXJNb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhQV2lkZ2V0RGVzaWduZXJSZW5kZXJlckRpcmVjdGl2ZSxcbiAgICBBWFBEZXNpZ25lckFkZFdpZGdldExpbmVCdXR0b25Db21wb25lbnQsXG4gICAgQVhQRGVzaWduZXJBZGRXaWRnZXRNaW5pQnV0dG9uQ29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFBDb250YWluZXJXaWRnZXRDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFBQYWdlV2lkZ2V0RGVzaWduZXJDb21wb25lbnRcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQVhQUGFnZVdpZGdldERlc2lnbmVyQ29tcG9uZW50IGV4dGVuZHMgQVhQQ29udGFpbmVyV2lkZ2V0Q29tcG9uZW50PHZvaWQ+IHtcblxuICBwcm90ZWN0ZWQgZGVzaWduZXJTZXJ2aWNlID0gaW5qZWN0KEFYUERlc2lnbmVyU2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIGJhY2tncm91bmRDb2xvciA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gdGhpcy5vcHRpb25zKClbXCJiYWNrZ3JvdW5kQ29sb3JcIl0gYXMgc3RyaW5nKTtcblxuICBwcm90ZWN0ZWQgdGhlbWUgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHRoaXMub3B0aW9ucygpW1widGhlbWVcIl0/LmlkIGFzIHN0cmluZyA/PyAnZGVmYXVsdCcpO1xuICBwcm90ZWN0ZWQgaGFzSGVhZGVyID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5vcHRpb25zKClbXCJoYXNIZWFkZXJcIl0pO1xuICBwcm90ZWN0ZWQgaGFzRm9vdGVyID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5vcHRpb25zKClbXCJoYXNGb290ZXJcIl0pO1xuXG5cbiAgcHJvdGVjdGVkIG9ubHlDaGlsZHJlbiA9IGNvbXB1dGVkPEFYUFdpZGdldE5vZGVbXT4oKCkgPT4gdGhpcy5jaGlsZHJlbigpLmZpbHRlcihjID0+ICFjLm1ldGE/LlsnZm9vdGVyJ10gJiYgIWMubWV0YT8uWydoZWFkZXInXSkpO1xuICBwcm90ZWN0ZWQgaGVhZGVyTm9kZXMgPSBjb21wdXRlZDxBWFBXaWRnZXROb2RlW10+KCgpID0+IHRoaXMuY2hpbGRyZW4oKS5maWx0ZXIoYyA9PiBjLm1ldGE/LlsnaGVhZGVyJ10pID8/IFtdKTtcbiAgcHJvdGVjdGVkIGZvb3Rlck5vZGVzID0gY29tcHV0ZWQ8QVhQV2lkZ2V0Tm9kZVtdPigoKSA9PiB0aGlzLmNoaWxkcmVuKCkuZmlsdGVyKGMgPT4gYy5tZXRhPy5bJ2Zvb3RlciddKSA/PyBbXSk7XG5cblxuXG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUFkZEhlYWRlcigpIHtcbiAgICBjb25zdCB3aWRnZXRzID0gYXdhaXQgdGhpcy5kZXNpZ25lclNlcnZpY2Uuc2hvd1BpY2tlcih0aGlzLm5vZGUpO1xuICAgIHdpZGdldHMuZm9yRWFjaChjID0+IGMubWV0YSA9IHsgaGVhZGVyOiB0cnVlIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUFkZEZvb3RlcigpIHtcbiAgICBjb25zdCB3aWRnZXRzID0gYXdhaXQgdGhpcy5kZXNpZ25lclNlcnZpY2Uuc2hvd1BpY2tlcih0aGlzLm5vZGUpO1xuICAgIHdpZGdldHMuZm9yRWFjaChjID0+IGMubWV0YSA9IHsgZm9vdGVyOiB0cnVlIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUFkZEVsZW1lbnQoKSB7XG4gICAgYXdhaXQgdGhpcy5kZXNpZ25lclNlcnZpY2Uuc2hvd1BpY2tlcih0aGlzLm5vZGUpO1xuICB9XG5cblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlJylcbiAgcHJpdmF0ZSBnZXQgX19zdHlsZSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICAnYmFja2dyb3VuZC1jb2xvcic6IHRoaXMuYmFja2dyb3VuZENvbG9yKCksXG4gICAgfTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBwcml2YXRlIGdldCBfX2NsYXNzKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdheC13aWRnZXQtY29udGFpbmVyJzogdHJ1ZSxcbiAgICAgICdheC1kYXJrJzogdGhpcy50aGVtZSgpID09ICdkYXJrJyxcbiAgICAgICdheC1saWdodCc6IHRoaXMudGhlbWUoKSA9PSAnbGlnaHQnLFxuICAgICAgJ2F4LWJsb2NrJzogdHJ1ZSxcbiAgICAgICdheC13LWZ1bGwnOiB0cnVlXG4gICAgfTtcbiAgfVxuXG59Il19
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS13aWRnZXQtZGVzaWduZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aWRnZXRzL3NyYy9saWIvd2lkZ2V0cy9sYXlvdXQvcGFnZS9wYWdlLXdpZGdldC1kZXNpZ25lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsRUFBaUIsTUFBTSxpQ0FBaUMsQ0FBQztBQUNySCxPQUFPLEVBQ0wsdUNBQXVDLEVBQ3ZDLHVDQUF1QyxFQUN2QyxrQkFBa0IsRUFDbEIsa0NBQWtDLEdBQ25DLE1BQU0sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBd0RySCxNQUFNLE9BQU8sOEJBQStCLFNBQVEsMkJBQWlDO0lBdERyRjs7UUF1RFksb0JBQWUsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUU3QyxvQkFBZSxHQUFHLFFBQVEsQ0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQVcsQ0FBQyxDQUFDO1FBRXRGLFVBQUssR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFLENBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQWEsSUFBSSxTQUFTLENBQUMsQ0FBQztRQUNyRixjQUFTLEdBQUcsUUFBUSxDQUFVLEdB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b0JBQzNCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQ1Q7b0JBQ0QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osc0JBQXNCO3dCQUN0QixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsa0NBQWtDO3dCQUNsQyx1Q0FBdUM7d0JBQ3ZDLHVDQUF1QztxQkFDeEM7b0JBQ0QsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSwyQkFBMkI7NEJBQ3BDLFdBQVcsZ0NBQWdDO3lCQUM1QztxQkFDRjtpQkFDRjs4QkErQmEsT0FBTztzQkFEbEIsV0FBVzt1QkFBQyxPQUFPO2dCQVFSLE9BQU87c0JBRGxCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYUENvbnRhaW5lcldpZGdldENvbXBvbmVudCwgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSwgQVhQV2lkZ2V0Tm9kZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHtcbiAgQVhQRGVzaWduZXJBZGRXaWRnZXRMaW5lQnV0dG9uQ29tcG9uZW50LFxuICBBWFBEZXNpZ25lckFkZFdpZGdldE1pbmlCdXR0b25Db21wb25lbnQsXG4gIEFYUERlc2lnbmVyU2VydmljZSxcbiAgQVhQV2lkZ2V0RGVzaWduZXJSZW5kZXJlckRpcmVjdGl2ZSxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBIb3N0QmluZGluZywgaW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtcGFnZS13aWRnZXQnLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZihoYXNIZWFkZXIoKSkgeyBAaWYoaGVhZGVyTm9kZXMoKS5sZW5ndGgpIHtcbiAgICA8aGVhZGVyIGNsYXNzPVwiYXhwLXBhZ2Utd2lkZ2V0LWhlYWRlclwiPlxuICAgICAgQGZvciAobm9kZSBvZiBoZWFkZXJOb2RlcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxuZy1jb250YWluZXIgYXhwLXdpZGdldC1kZXNpZ25lci1yZW5kZXJlciBbbm9kZV09XCJub2RlXCIgW3BhcmVudE5vZGVdPVwidGhpc1wiIFttb2RlXT1cIm1vZGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIH1cbiAgICA8L2hlYWRlcj5cbiAgICB9IEBlbHNlIHtcbiAgICA8YXhwLWRlc2lnbmVyLWFkZC13aWRnZXQtbGluZS1idXR0b25cbiAgICAgIFt0ZXh0XT1cIidQYWdlIEhlYWRlcidcIlxuICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlQWRkSGVhZGVyKClcIlxuICAgID48L2F4cC1kZXNpZ25lci1hZGQtd2lkZ2V0LWxpbmUtYnV0dG9uPlxuICAgIH0gfSBAZm9yIChub2RlIG9mIG9ubHlDaGlsZHJlbigpOyB0cmFjayAkaW5kZXgpIHtcbiAgICA8bmctY29udGFpbmVyIGF4cC13aWRnZXQtZGVzaWduZXItcmVuZGVyZXIgW25vZGVdPVwibm9kZVwiIFtwYXJlbnROb2RlXT1cInRoaXNcIiBbbW9kZV09XCJtb2RlXCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICAgIDwhLS0gPGF4cC1kZXNpZ25lci1hZGQtd2lkZ2V0LW1pbmktYnV0dG9uPjwvYXhwLWRlc2lnbmVyLWFkZC13aWRnZXQtbWluaS1idXR0b24+IC0tPlxuICAgIDxheHAtZGVzaWduZXItYWRkLXdpZGdldC1saW5lLWJ1dHRvblxuICAgICAgW3RleHRdPVwiJ0FkZCBFbGVtZW50J1wiXG4gICAgICAob25DbGljayk9XCJoYW5kbGVBZGRFbGVtZW50KClcIlxuICAgID48L2F4cC1kZXNpZ25lci1hZGQtd2lkZ2V0LWxpbmUtYnV0dG9uPlxuICAgIEBpZihoYXNGb290ZXIoKSkgeyBAaWYoZm9vdGVyTm9kZXMoKS5sZW5ndGgpIHtcbiAgICA8Zm9vdGVyIGNsYXNzPVwiYXhwLXBhZ2Utd2lkZ2V0LWZvb3RlclwiPlxuICAgICAgQGZvciAobm9kZSBvZiBmb290ZXJOb2RlcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxuZy1jb250YWluZXIgYXhwLXdpZGdldC1kZXNpZ25lci1yZW5kZXJlciBbbm9kZV09XCJub2RlXCIgW3BhcmVudE5vZGVdPVwidGhpc1wiIFttb2RlXT1cIm1vZGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIH1cbiAgICA8L2Zvb3Rlcj5cbiAgICB9IEBlbHNlIHtcbiAgICA8YXhwLWRlc2lnbmVyLWFkZC13aWRnZXQtbGluZS1idXR0b25cbiAgICAgIFt0ZXh0XT1cIidQYWdlIEZvb3RlcidcIlxuICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlQWRkRm9vdGVyKClcIlxuICAgID48L2F4cC1kZXNpZ25lci1hZGQtd2lkZ2V0LWxpbmUtYnV0dG9uPlxuICAgIH0gfVxuICBgLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYUFdpZGdldERlc2lnbmVyUmVuZGVyZXJEaXJlY3RpdmUsXG4gICAgQVhQRGVzaWduZXJBZGRXaWRnZXRMaW5lQnV0dG9uQ29tcG9uZW50LFxuICAgIEFYUERlc2lnbmVyQWRkV2lkZ2V0TWluaUJ1dHRvbkNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhQQ29udGFpbmVyV2lkZ2V0Q29tcG9uZW50LFxuICAgICAgdXNlRXhpc3Rpbmc6IEFYUFBhZ2VXaWRnZXREZXNpZ25lckNvbXBvbmVudCxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBQYWdlV2lkZ2V0RGVzaWduZXJDb21wb25lbnQgZXh0ZW5kcyBBWFBDb250YWluZXJXaWRnZXRDb21wb25lbnQ8dm9pZD4ge1xuICBwcm90ZWN0ZWQgZGVzaWduZXJTZXJ2aWNlID0gaW5qZWN0KEFYUERlc2lnbmVyU2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIGJhY2tncm91bmRDb2xvciA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ2JhY2tncm91bmRDb2xvciddIGFzIHN0cmluZyk7XG5cbiAgcHJvdGVjdGVkIHRoZW1lID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiAodGhpcy5vcHRpb25zKClbJ3RoZW1lJ10/LmlkIGFzIHN0cmluZykgPz8gJ2RlZmF1bHQnKTtcbiAgcHJvdGVjdGVkIGhhc0hlYWRlciA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMub3B0aW9ucygpWydoYXNIZWFkZXInXSk7XG4gIHByb3RlY3RlZCBoYXNGb290ZXIgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnaGFzRm9vdGVyJ10pO1xuXG4gIHByb3RlY3RlZCBvbmx5Q2hpbGRyZW4gPSBjb21wdXRlZDxBWFBXaWRnZXROb2RlW10+KCgpID0+XG4gICAgdGhpcy5jaGlsZHJlbigpLmZpbHRlcigoYykgPT4gIWMubWV0YT8uWydmb290ZXInXSAmJiAhYy5tZXRhPy5bJ2hlYWRlciddKVxuICApO1xuICBwcm90ZWN0ZWQgaGVhZGVyTm9kZXMgPSBjb21wdXRlZDxBWFBXaWRnZXROb2RlW10+KCgpID0+IHRoaXMuY2hpbGRyZW4oKS5maWx0ZXIoKGMpID0+IGMubWV0YT8uWydoZWFkZXInXSkgPz8gW10pO1xuICBwcm90ZWN0ZWQgZm9vdGVyTm9kZXMgPSBjb21wdXRlZDxBWFBXaWRnZXROb2RlW10+KCgpID0+IHRoaXMuY2hpbGRyZW4oKS5maWx0ZXIoKGMpID0+IGMubWV0YT8uWydmb290ZXInXSkgPz8gW10pO1xuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVBZGRIZWFkZXIoKSB7XG4gICAgY29uc3Qgd2lkZ2V0cyA9IGF3YWl0IHRoaXMuZGVzaWduZXJTZXJ2aWNlLnNob3dQaWNrZXIodGhpcy5ub2RlKTtcbiAgICB3aWRnZXRzLmZvckVhY2goKGMpID0+IChjLm1ldGEgPSB7IGhlYWRlcjogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlQWRkRm9vdGVyKCkge1xuICAgIGNvbnN0IHdpZGdldHMgPSBhd2FpdCB0aGlzLmRlc2lnbmVyU2VydmljZS5zaG93UGlja2VyKHRoaXMubm9kZSk7XG4gICAgd2lkZ2V0cy5mb3JFYWNoKChjKSA9PiAoYy5tZXRhID0geyBmb290ZXI6IHRydWUgfSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUFkZEVsZW1lbnQoKSB7XG4gICAgYXdhaXQgdGhpcy5kZXNpZ25lclNlcnZpY2Uuc2hvd1BpY2tlcih0aGlzLm5vZGUpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZScpXG4gIHByaXZhdGUgZ2V0IF9fc3R5bGUoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2JhY2tncm91bmQtY29sb3InOiB0aGlzLmJhY2tncm91bmRDb2xvcigpLFxuICAgIH07XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHJpdmF0ZSBnZXQgX19jbGFzcygpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICAnYXgtd2lkZ2V0LWNvbnRhaW5lcic6IHRydWUsXG4gICAgICAnYXgtZGFyayc6IHRoaXMudGhlbWUoKSA9PSAnZGFyaycsXG4gICAgICAnYXgtbGlnaHQnOiB0aGlzLnRoZW1lKCkgPT0gJ2xpZ2h0JyxcbiAgICAgICdheC1ibG9jayc6IHRydWUsXG4gICAgICAnYXgtdy1mdWxsJzogdHJ1ZSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -1,6 +1,6 @@
1
- import { AXP_WIDGETS_LAYOUT_GROUP, createBooleanProperty } from '@acorex/platform/layout/builder';
2
- import { AXP_BG_COLOR_PROPERTY, AXP_FONT_SIZE_PROPERTY, AXP_THEME_PROPERTY } from '../../../properties/general.props';
1
+ import { AXP_WIDGETS_LAYOUT_GROUP, cloneProperty, createBooleanProperty, } from '@acorex/platform/layout/builder';
3
2
  import { AXP_BEHAVIOR_PROPERTY_GROUP } from '../../../properties';
3
+ import { AXP_BG_COLOR_PROPERTY, AXP_FONT_SIZE_PROPERTY, AXP_THEME_PROPERTY } from '../../../properties/general.props';
4
4
  export const AXPPageWidget = {
5
5
  name: 'page-layout',
6
6
  title: 'Page',
@@ -12,21 +12,21 @@ export const AXPPageWidget = {
12
12
  properties: [
13
13
  AXP_FONT_SIZE_PROPERTY,
14
14
  AXP_THEME_PROPERTY,
15
- AXP_BG_COLOR_PROPERTY,
15
+ cloneProperty(AXP_BG_COLOR_PROPERTY, { schema: { defaultValue: '#ffffff' } }),
16
16
  createBooleanProperty({
17
- name: "hasHeader",
17
+ name: 'hasHeader',
18
18
  path: 'options.hasHeader',
19
- title: "Header",
19
+ title: 'Header',
20
20
  group: AXP_BEHAVIOR_PROPERTY_GROUP,
21
21
  defaultValue: true,
22
22
  }),
23
23
  createBooleanProperty({
24
- name: "hasFooter",
24
+ name: 'hasFooter',
25
25
  path: 'options.hasFooter',
26
- title: "Footer",
26
+ title: 'Footer',
27
27
  group: AXP_BEHAVIOR_PROPERTY_GROUP,
28
28
  defaultValue: true,
29
- })
29
+ }),
30
30
  ],
31
31
  components: {
32
32
  view: {
@@ -43,4 +43,4 @@ export const AXPPageWidget = {
43
43
  },
44
44
  },
45
45
  };
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS13aWRnZXQuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aWRnZXRzL3NyYy9saWIvd2lkZ2V0cy9sYXlvdXQvcGFnZS9wYWdlLXdpZGdldC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQix3QkFBd0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25ILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWxFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBb0I7SUFDNUMsSUFBSSxFQUFFLGFBQWE7SUFDbkIsS0FBSyxFQUFFLE1BQU07SUFDYixXQUFXLEVBQUUsNEJBQTRCO0lBQ3pDLElBQUksRUFBRSxrQkFBa0I7SUFDeEIsS0FBSyxFQUFFLHdCQUF3QjtJQUMvQixJQUFJLEVBQUUsV0FBVztJQUNqQixPQUFPLEVBQUUsS0FBSztJQUNkLFVBQVUsRUFBRTtRQUNWLHNCQUFzQjtRQUN0QixrQkFBa0I7UUFDbEIscUJBQXFCO1FBQ3JCLHFCQUFxQixDQUFDO1lBQ3BCLElBQUksRUFBRSxXQUFXO1lBQ2pCLElBQUksRUFBRSxtQkFBbUI7WUFDekIsS0FBSyxFQUFFLFFBQVE7WUFDZixLQUFLLEVBQUUsMkJBQTJCO1lBQ2xDLFlBQVksRUFBRSxJQUFJO1NBQ25CLENBQUM7UUFDRixxQkFBcUIsQ0FBQztZQUNwQixJQUFJLEVBQUUsV0FBVztZQUNqQixJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLEtBQUssRUFBRSxRQUFRO1lBQ2YsS0FBSyxFQUFFLDJCQUEyQjtZQUNsQyxZQUFZLEVBQUUsSUFBSTtTQUNuQixDQUFDO0tBQ0g7SUFDRCxVQUFVLEVBQUU7UUFDVixJQUFJLEVBQUU7WUFDSixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsMEJBQTBCLENBQUM7U0FDbEc7UUFDRCxJQUFJLEVBQUU7WUFDSixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsMEJBQTBCLENBQUM7U0FDbEc7UUFDRCxLQUFLLEVBQUU7WUFDTCxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsMEJBQTBCLENBQUM7U0FDbEc7UUFDRCxRQUFRLEVBQUU7WUFDUixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsOEJBQThCLENBQUM7U0FDMUc7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBXaWRnZXRDb25maWcsIEFYUF9XSURHRVRTX0xBWU9VVF9HUk9VUCwgY3JlYXRlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBfQkdfQ09MT1JfUFJPUEVSVFksIEFYUF9GT05UX1NJWkVfUFJPUEVSVFksIEFYUF9USEVNRV9QUk9QRVJUWSB9IGZyb20gJy4uLy4uLy4uL3Byb3BlcnRpZXMvZ2VuZXJhbC5wcm9wcyc7XG5pbXBvcnQgeyBBWFBfQkVIQVZJT1JfUFJPUEVSVFlfR1JPVVAgfSBmcm9tICcuLi8uLi8uLi9wcm9wZXJ0aWVzJztcblxuZXhwb3J0IGNvbnN0IEFYUFBhZ2VXaWRnZXQ6IEFYUFdpZGdldENvbmZpZyA9IHtcbiAgbmFtZTogJ3BhZ2UtbGF5b3V0JyxcbiAgdGl0bGU6ICdQYWdlJyxcbiAgZGVzY3JpcHRpb246ICdTdHJ1Y3R1cmVzIHRoZSBlbnRpcmUgcGFnZScsXG4gIGljb246ICdmYS1zb2xpZCBmYS1wYWdlJyxcbiAgZ3JvdXA6IEFYUF9XSURHRVRTX0xBWU9VVF9HUk9VUCxcbiAgdHlwZTogJ2NvbnRhaW5lcicsXG4gIHZpc2libGU6IGZhbHNlLFxuICBwcm9wZXJ0aWVzOiBbXG4gICAgQVhQX0ZPTlRfU0laRV9QUk9QRVJUWSxcbiAgICBBWFBfVEhFTUVfUFJPUEVSVFksXG4gICAgQVhQX0JHX0NPTE9SX1BST1BFUlRZLFxuICAgIGNyZWF0ZUJvb2xlYW5Qcm9wZXJ0eSh7XG4gICAgICBuYW1lOiBcImhhc0hlYWRlclwiLFxuICAgICAgcGF0aDogJ29wdGlvbnMuaGFzSGVhZGVyJyxcbiAgICAgIHRpdGxlOiBcIkhlYWRlclwiLFxuICAgICAgZ3JvdXA6IEFYUF9CRUhBVklPUl9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICB9KSxcbiAgICBjcmVhdGVCb29sZWFuUHJvcGVydHkoe1xuICAgICAgbmFtZTogXCJoYXNGb290ZXJcIixcbiAgICAgIHBhdGg6ICdvcHRpb25zLmhhc0Zvb3RlcicsXG4gICAgICB0aXRsZTogXCJGb290ZXJcIixcbiAgICAgIGdyb3VwOiBBWFBfQkVIQVZJT1JfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgfSlcbiAgXSxcbiAgY29tcG9uZW50czoge1xuICAgIHZpZXc6IHtcbiAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL3BhZ2Utd2lkZ2V0LXZpZXcuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWFBQYWdlV2lkZ2V0Vmlld0NvbXBvbmVudCksXG4gICAgfSxcbiAgICBlZGl0OiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9wYWdlLXdpZGdldC12aWV3LmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQUGFnZVdpZGdldFZpZXdDb21wb25lbnQpLFxuICAgIH0sXG4gICAgcHJpbnQ6IHtcbiAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL3BhZ2Utd2lkZ2V0LXZpZXcuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWFBQYWdlV2lkZ2V0Vmlld0NvbXBvbmVudCksXG4gICAgfSxcbiAgICBkZXNpZ25lcjoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vcGFnZS13aWRnZXQtZGVzaWduZXIuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWFBQYWdlV2lkZ2V0RGVzaWduZXJDb21wb25lbnQpLFxuICAgIH0sXG4gIH0sXG59O1xuXG5kZWNsYXJlIG1vZHVsZSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcicge1xuICBpbnRlcmZhY2UgQVhQV2lkZ2V0VHlwZXNNYXAge1xuICAgIHBhZ2VMYXlvdXQ6ICdwYWdlLWxheW91dCc7XG4gIH1cbn1cbiJdfQ==
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS13aWRnZXQuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aWRnZXRzL3NyYy9saWIvd2lkZ2V0cy9sYXlvdXQvcGFnZS9wYWdlLXdpZGdldC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHdCQUF3QixFQUN4QixhQUFhLEVBQ2IscUJBQXFCLEdBQ3RCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFdEgsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFvQjtJQUM1QyxJQUFJLEVBQUUsYUFBYTtJQUNuQixLQUFLLEVBQUUsTUFBTTtJQUNiLFdBQVcsRUFBRSw0QkFBNEI7SUFDekMsSUFBSSxFQUFFLGtCQUFrQjtJQUN4QixLQUFLLEVBQUUsd0JBQXdCO0lBQy9CLElBQUksRUFBRSxXQUFXO0lBQ2pCLE9BQU8sRUFBRSxLQUFLO0lBQ2QsVUFBVSxFQUFFO1FBQ1Ysc0JBQXNCO1FBQ3RCLGtCQUFrQjtRQUNsQixhQUFhLENBQUMscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQztRQUM3RSxxQkFBcUIsQ0FBQztZQUNwQixJQUFJLEVBQUUsV0FBVztZQUNqQixJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLEtBQUssRUFBRSxRQUFRO1lBQ2YsS0FBSyxFQUFFLDJCQUEyQjtZQUNsQyxZQUFZLEVBQUUsSUFBSTtTQUNuQixDQUFDO1FBQ0YscUJBQXFCLENBQUM7WUFDcEIsSUFBSSxFQUFFLFdBQVc7WUFDakIsSUFBSSxFQUFFLG1CQUFtQjtZQUN6QixLQUFLLEVBQUUsUUFBUTtZQUNmLEtBQUssRUFBRSwyQkFBMkI7WUFDbEMsWUFBWSxFQUFFLElBQUk7U0FDbkIsQ0FBQztLQUNIO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDO1NBQ2xHO1FBQ0QsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDO1NBQ2xHO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDO1NBQ2xHO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDhCQUE4QixDQUFDO1NBQzFHO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhQV2lkZ2V0Q29uZmlnLFxuICBBWFBfV0lER0VUU19MQVlPVVRfR1JPVVAsXG4gIGNsb25lUHJvcGVydHksXG4gIGNyZWF0ZUJvb2xlYW5Qcm9wZXJ0eSxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBfQkVIQVZJT1JfUFJPUEVSVFlfR1JPVVAgfSBmcm9tICcuLi8uLi8uLi9wcm9wZXJ0aWVzJztcbmltcG9ydCB7IEFYUF9CR19DT0xPUl9QUk9QRVJUWSwgQVhQX0ZPTlRfU0laRV9QUk9QRVJUWSwgQVhQX1RIRU1FX1BST1BFUlRZIH0gZnJvbSAnLi4vLi4vLi4vcHJvcGVydGllcy9nZW5lcmFsLnByb3BzJztcblxuZXhwb3J0IGNvbnN0IEFYUFBhZ2VXaWRnZXQ6IEFYUFdpZGdldENvbmZpZyA9IHtcbiAgbmFtZTogJ3BhZ2UtbGF5b3V0JyxcbiAgdGl0bGU6ICdQYWdlJyxcbiAgZGVzY3JpcHRpb246ICdTdHJ1Y3R1cmVzIHRoZSBlbnRpcmUgcGFnZScsXG4gIGljb246ICdmYS1zb2xpZCBmYS1wYWdlJyxcbiAgZ3JvdXA6IEFYUF9XSURHRVRTX0xBWU9VVF9HUk9VUCxcbiAgdHlwZTogJ2NvbnRhaW5lcicsXG4gIHZpc2libGU6IGZhbHNlLFxuICBwcm9wZXJ0aWVzOiBbXG4gICAgQVhQX0ZPTlRfU0laRV9QUk9QRVJUWSxcbiAgICBBWFBfVEhFTUVfUFJPUEVSVFksXG4gICAgY2xvbmVQcm9wZXJ0eShBWFBfQkdfQ09MT1JfUFJPUEVSVFksIHsgc2NoZW1hOiB7IGRlZmF1bHRWYWx1ZTogJyNmZmZmZmYnIH0gfSksXG4gICAgY3JlYXRlQm9vbGVhblByb3BlcnR5KHtcbiAgICAgIG5hbWU6ICdoYXNIZWFkZXInLFxuICAgICAgcGF0aDogJ29wdGlvbnMuaGFzSGVhZGVyJyxcbiAgICAgIHRpdGxlOiAnSGVhZGVyJyxcbiAgICAgIGdyb3VwOiBBWFBfQkVIQVZJT1JfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgfSksXG4gICAgY3JlYXRlQm9vbGVhblByb3BlcnR5KHtcbiAgICAgIG5hbWU6ICdoYXNGb290ZXInLFxuICAgICAgcGF0aDogJ29wdGlvbnMuaGFzRm9vdGVyJyxcbiAgICAgIHRpdGxlOiAnRm9vdGVyJyxcbiAgICAgIGdyb3VwOiBBWFBfQkVIQVZJT1JfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgfSksXG4gIF0sXG4gIGNvbXBvbmVudHM6IHtcbiAgICB2aWV3OiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9wYWdlLXdpZGdldC12aWV3LmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQUGFnZVdpZGdldFZpZXdDb21wb25lbnQpLFxuICAgIH0sXG4gICAgZWRpdDoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vcGFnZS13aWRnZXQtdmlldy5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUFBhZ2VXaWRnZXRWaWV3Q29tcG9uZW50KSxcbiAgICB9LFxuICAgIHByaW50OiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9wYWdlLXdpZGdldC12aWV3LmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQUGFnZVdpZGdldFZpZXdDb21wb25lbnQpLFxuICAgIH0sXG4gICAgZGVzaWduZXI6IHtcbiAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL3BhZ2Utd2lkZ2V0LWRlc2lnbmVyLmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQUGFnZVdpZGdldERlc2lnbmVyQ29tcG9uZW50KSxcbiAgICB9LFxuICB9LFxufTtcblxuZGVjbGFyZSBtb2R1bGUgJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInIHtcbiAgaW50ZXJmYWNlIEFYUFdpZGdldFR5cGVzTWFwIHtcbiAgICBwYWdlTGF5b3V0OiAncGFnZS1sYXlvdXQnO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,120 @@
1
+ import { AXButtonModule } from '@acorex/components/button';
2
+ import { AXCommonModule } from '@acorex/components/common';
3
+ import { AXDecoratorModule } from '@acorex/components/decorators';
4
+ import { AXBasePageComponent } from '@acorex/components/page';
5
+ import { AXSearchBoxModule } from '@acorex/components/search-box';
6
+ import { AXTabsModule } from '@acorex/components/tabs';
7
+ import { AXPSettingsService, AXPStickyDirective } from '@acorex/platform/common';
8
+ import { CommonModule } from '@angular/common';
9
+ import { Component, computed, inject, model, signal, ViewEncapsulation } from '@angular/core';
10
+ import { FormsModule } from '@angular/forms';
11
+ import { orderBy } from 'lodash-es';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@angular/common";
14
+ import * as i2 from "@acorex/components/common";
15
+ import * as i3 from "@angular/forms";
16
+ import * as i4 from "@acorex/components/button";
17
+ import * as i5 from "@acorex/components/decorators";
18
+ import * as i6 from "@acorex/components/tabs";
19
+ import * as i7 from "@acorex/components/search-box";
20
+ export class AXPTemplateWidgetPickerComponent extends AXBasePageComponent {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.settingService = inject(AXPSettingsService);
24
+ this.pinnedSettingKey = 'forms:templates:picker:pinned';
25
+ this.searchTerm = model('');
26
+ // Signals
27
+ this.widgets = [];
28
+ this.displayWidgets = signal([]);
29
+ // Signal to track selected widgets
30
+ this.selectedWidgets = signal([]);
31
+ // Computed for filtered and ordered widget list
32
+ this.orderedList = computed(() => {
33
+ const search = this.searchTerm().toLowerCase();
34
+ const selectedTabName = this.selectedTab().name;
35
+ return orderBy(this.displayWidgets().filter((w) => {
36
+ const matchesTab = selectedTabName === 'all' || w.group.name === selectedTabName;
37
+ const matchesSearch = !search || w.title.toLowerCase().includes(search) || w.description?.toLowerCase().includes(search);
38
+ return matchesTab && matchesSearch;
39
+ }), ['pinned', 'title'], ['desc', 'asc']);
40
+ });
41
+ // Pinned and regular lists
42
+ this.pinnedList = computed(() => this.orderedList().filter((c) => c.pinned));
43
+ this.regularList = computed(() => this.orderedList().filter((c) => !c.pinned));
44
+ // Tabs for the widget groups
45
+ this.tabs = orderBy([{ name: 'all', title: 'All', order: 0 }, ...this.widgets.map(c => c.group)], (c) => c.order);
46
+ this.currentTabIndex = signal(0);
47
+ this.selectedTab = computed(() => this.tabs[this.currentTabIndex()]);
48
+ }
49
+ async ngOnInit() {
50
+ super.ngOnInit();
51
+ const pinnedWidgets = (await this.settingService.get(this.pinnedSettingKey)) || [];
52
+ this.displayWidgets.set(this.widgets.map((c) => ({ ...c, pinned: pinnedWidgets.includes(c.id) })));
53
+ }
54
+ handleTabChange(event) {
55
+ const indx = event.index;
56
+ if (this.currentTabIndex() != indx) {
57
+ this.currentTabIndex.set(indx);
58
+ }
59
+ }
60
+ handleClick(event, widget) {
61
+ if (event.ctrlKey) {
62
+ const currentSelection = this.selectedWidgets();
63
+ const isAlreadySelected = currentSelection.some((w) => w === widget);
64
+ if (isAlreadySelected) {
65
+ // Deselect widget if already selected
66
+ this.selectedWidgets.set(currentSelection.filter((w) => w !== widget));
67
+ }
68
+ else {
69
+ // Add widget to selection
70
+ this.selectedWidgets.set([...currentSelection, widget]);
71
+ }
72
+ }
73
+ else {
74
+ // If CTRL is not pressed, select only the clicked widget
75
+ this.close({ widgets: [widget] });
76
+ }
77
+ }
78
+ async handlePinClick(e, widget) {
79
+ e.stopPropagation();
80
+ widget.pinned = !widget.pinned;
81
+ // Get the current list of pinned widgets from settings
82
+ let pinnedWidgets = (await this.settingService.get(this.pinnedSettingKey)) || [];
83
+ // Update the list of pinned widgets based on the pinned status
84
+ if (widget.pinned) {
85
+ if (!pinnedWidgets.includes(widget.id)) {
86
+ pinnedWidgets.push(widget.id);
87
+ }
88
+ }
89
+ else {
90
+ pinnedWidgets = pinnedWidgets.filter((name) => name !== widget.id);
91
+ }
92
+ // Save the updated list of pinned widgets
93
+ await this.settingService.set(this.pinnedSettingKey, pinnedWidgets);
94
+ // Trigger a re-render of the widgets
95
+ this.displayWidgets.set([...this.displayWidgets()]);
96
+ }
97
+ // Check if a widget is selected
98
+ isWidgetSelected(widget) {
99
+ return this.selectedWidgets().includes(widget);
100
+ }
101
+ handleConfirmSelection() {
102
+ this.close({ widgets: this.selectedWidgets() });
103
+ }
104
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPTemplateWidgetPickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
105
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPTemplateWidgetPickerComponent, isStandalone: true, selector: "ng-component", inputs: { searchTerm: { classPropertyName: "searchTerm", publicName: "searchTerm", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchTerm: "searchTermChange" }, usesInheritance: true, ngImport: i0, template: "<div class=\"ax-flex ax-flex-col lg:ax-h-[75vh]\">\n <div>\n <ax-tabs [look]=\"'with-line'\" (onActiveTabChanged)=\"handleTabChange($event)\">\n @for(w of tabs;track $index)\n {\n <ax-tab-item [text]=\"w.title\" [key]=\"$index.toString()\"\n [active]=\"currentTabIndex() === $index\"></ax-tab-item>\n }\n </ax-tabs>\n </div>\n <div class=\"ax-overflow-auto\" #content>\n <div class=\"ax-p-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all \" #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-shadow-xl'\" [stickyParent]=\"content\" [stickyOffset]=\"10\">\n <ax-search-box look=\"fill\" placeholder=\"e.g. Button, Text, ...\" [(ngModel)]=\"searchTerm\" [delayTime]=\"300\"\n [axAutoFocus]=\"true\">\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n </div>\n <div class=\"ax-flex ax-flex-col ax-p-4 ax-pt-0\">\n <ng-template #itemTpl let-w>\n <div (click)=\"handleClick($event,w)\"\n class=\"ax-py-2 ax-px-3 ax-rounded-md ax-flex ax-gap-3 ax-items-center ax-group hover:ax-bg-primary-100 dark:hover:ax-bg-primary-800 ax-cursor-pointer\"\n [class.ax-bg-primary-100]=\"isWidgetSelected(w)\">\n <div class=\"ax-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-rounded-md ax-border ax-border-neutral-200 ax-text-neutral-500 ax-bg-on-surface group-hover:ax-bg-primary-200\"\n [class.ax-bg-primary-200]=\"isWidgetSelected(w)\">\n <i [ngClass]=\"w.icon\" class=\"ax-text-lg group-hover:ax-text-primary-700 ax-text-on-surface-fore\"\n [class.ax-text-primary-700]=\"isWidgetSelected(w)\"></i>\n </div>\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-flex-1\">\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <div class=\"ax-font-semibold ax-text-sm\">{{w.title}}</div>\n <div (click)=\"handlePinClick($event,w)\">\n @if (w.pinned) {\n <i class=\"fa-solid fa-thumbtack ax-text-sm ax-text-neutral-500 ax-rotate-45\"></i>\n }\n @else {\n <i\n class=\"fa-light fa-thumbtack ax-text-sm ax-text-neutral-500 ax-rotate-45 ax-invisible group-hover:ax-visible\"></i>\n }\n </div>\n </div>\n <span class=\"ax-text-xs ax-text-neutral-400 ax-truncate\">\n {{w.description}}\n </span>\n </div>\n </div>\n </ng-template>\n <div class=\"ax-grid ax-grid-cols-2 ax-gap-2 \">\n @for(w of pinnedList();track $index)\n {\n <ng-container *ngTemplateOutlet=\"itemTpl;context:{ $implicit: w}\"></ng-container>\n }\n </div>\n @if(pinnedList().length)\n {\n <hr class=\"ax-my-4 ax-border-dashed\">\n }\n <div class=\"ax-grid ax-grid-cols-2 ax-gap-2 \">\n @for(w of regularList();track $index)\n {\n <ng-container *ngTemplateOutlet=\"itemTpl;context:{ $implicit: w}\"></ng-container>\n }\n </div>\n </div>\n </div>\n</div>\n@if(selectedWidgets().length)\n{\n<ax-footer>\n <ax-suffix>\n <ax-button look=\"solid\" color=\"primary\" text=\"{{ selectedWidgets().length }} Selected\"\n (onClick)=\"handleConfirmSelection()\"></ax-button>\n </ax-suffix>\n</ax-footer>\n}", styles: [".selected-widget{border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-color-primary-500),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-primary-100),var(--tw-bg-opacity, 1))}.selected-widget i{--tw-text-opacity: 1;color:rgba(var(--ax-color-primary-500),var(--tw-text-opacity, 1))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AXCommonModule }, { kind: "directive", type: i2.AXAutoFocusDirective, selector: "[axAutoFocus]", inputs: ["axAutoFocus", "axAutoFocusTime"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4.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: i5.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i5.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: AXTabsModule }, { kind: "component", type: i6.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i6.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i7.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: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }], encapsulation: i0.ViewEncapsulation.None }); }
106
+ }
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPTemplateWidgetPickerComponent, decorators: [{
108
+ type: Component,
109
+ args: [{ standalone: true, imports: [
110
+ CommonModule,
111
+ AXCommonModule,
112
+ FormsModule,
113
+ AXButtonModule,
114
+ AXDecoratorModule,
115
+ AXTabsModule,
116
+ AXSearchBoxModule,
117
+ AXPStickyDirective,
118
+ ], encapsulation: ViewEncapsulation.None, template: "<div class=\"ax-flex ax-flex-col lg:ax-h-[75vh]\">\n <div>\n <ax-tabs [look]=\"'with-line'\" (onActiveTabChanged)=\"handleTabChange($event)\">\n @for(w of tabs;track $index)\n {\n <ax-tab-item [text]=\"w.title\" [key]=\"$index.toString()\"\n [active]=\"currentTabIndex() === $index\"></ax-tab-item>\n }\n </ax-tabs>\n </div>\n <div class=\"ax-overflow-auto\" #content>\n <div class=\"ax-p-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all \" #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-shadow-xl'\" [stickyParent]=\"content\" [stickyOffset]=\"10\">\n <ax-search-box look=\"fill\" placeholder=\"e.g. Button, Text, ...\" [(ngModel)]=\"searchTerm\" [delayTime]=\"300\"\n [axAutoFocus]=\"true\">\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n </div>\n <div class=\"ax-flex ax-flex-col ax-p-4 ax-pt-0\">\n <ng-template #itemTpl let-w>\n <div (click)=\"handleClick($event,w)\"\n class=\"ax-py-2 ax-px-3 ax-rounded-md ax-flex ax-gap-3 ax-items-center ax-group hover:ax-bg-primary-100 dark:hover:ax-bg-primary-800 ax-cursor-pointer\"\n [class.ax-bg-primary-100]=\"isWidgetSelected(w)\">\n <div class=\"ax-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-rounded-md ax-border ax-border-neutral-200 ax-text-neutral-500 ax-bg-on-surface group-hover:ax-bg-primary-200\"\n [class.ax-bg-primary-200]=\"isWidgetSelected(w)\">\n <i [ngClass]=\"w.icon\" class=\"ax-text-lg group-hover:ax-text-primary-700 ax-text-on-surface-fore\"\n [class.ax-text-primary-700]=\"isWidgetSelected(w)\"></i>\n </div>\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-flex-1\">\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <div class=\"ax-font-semibold ax-text-sm\">{{w.title}}</div>\n <div (click)=\"handlePinClick($event,w)\">\n @if (w.pinned) {\n <i class=\"fa-solid fa-thumbtack ax-text-sm ax-text-neutral-500 ax-rotate-45\"></i>\n }\n @else {\n <i\n class=\"fa-light fa-thumbtack ax-text-sm ax-text-neutral-500 ax-rotate-45 ax-invisible group-hover:ax-visible\"></i>\n }\n </div>\n </div>\n <span class=\"ax-text-xs ax-text-neutral-400 ax-truncate\">\n {{w.description}}\n </span>\n </div>\n </div>\n </ng-template>\n <div class=\"ax-grid ax-grid-cols-2 ax-gap-2 \">\n @for(w of pinnedList();track $index)\n {\n <ng-container *ngTemplateOutlet=\"itemTpl;context:{ $implicit: w}\"></ng-container>\n }\n </div>\n @if(pinnedList().length)\n {\n <hr class=\"ax-my-4 ax-border-dashed\">\n }\n <div class=\"ax-grid ax-grid-cols-2 ax-gap-2 \">\n @for(w of regularList();track $index)\n {\n <ng-container *ngTemplateOutlet=\"itemTpl;context:{ $implicit: w}\"></ng-container>\n }\n </div>\n </div>\n </div>\n</div>\n@if(selectedWidgets().length)\n{\n<ax-footer>\n <ax-suffix>\n <ax-button look=\"solid\" color=\"primary\" text=\"{{ selectedWidgets().length }} Selected\"\n (onClick)=\"handleConfirmSelection()\"></ax-button>\n </ax-suffix>\n</ax-footer>\n}", styles: [".selected-widget{border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-color-primary-500),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-primary-100),var(--tw-bg-opacity, 1))}.selected-widget i{--tw-text-opacity: 1;color:rgba(var(--ax-color-primary-500),var(--tw-text-opacity, 1))}\n"] }]
119
+ }] });
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vd2lkZ2V0cy9zcmMvbGliL3dpZGdldHMvbGF5b3V0L3RlbXBsYXRlL3RlbXBsYXRlLXBpY2tlci90ZW1wbGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aWRnZXRzL3NyYy9saWIvd2lkZ2V0cy9sYXlvdXQvdGVtcGxhdGUvdGVtcGxhdGUtcGlja2VyL3RlbXBsYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQTBCLE1BQU0seUJBQXlCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FB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QUFDO0lBQ2pELENBQUM7SUFFUyxzQkFBc0I7UUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7OEdBdkdVLGdDQUFnQztrR0FBaEMsZ0NBQWdDLCtSQ2xDN0MsazFIQTBFQyx1WURyREcsWUFBWSxtU0FDWixjQUFjLDJKQUNkLFdBQVcsOFZBQ1gsY0FBYyx1WkFDZCxpQkFBaUIsc1dBQ2pCLFlBQVksa2FBQ1osaUJBQWlCLDRYQUNqQixrQkFBa0I7OzJGQU1ULGdDQUFnQztrQkFoQjVDLFNBQVM7aUNBQ0ksSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsa0JBQWtCO3FCQUNuQixpQkFFYyxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYQmFzZVBhZ2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcGFnZSc7XG5pbXBvcnQgeyBBWFNlYXJjaEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWFyY2gtYm94JztcbmltcG9ydCB7IEFYVGFic01vZHVsZSwgQVhUYWJTdHJpcENoYW5nZWRFdmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90YWJzJztcbmltcG9ydCB7IEFYUFNldHRpbmdzU2VydmljZSwgQVhQU3RpY2t5RGlyZWN0aXZlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQX1dJREdFVFNfR1JPVVBTLCBBWFBXaWRnZXRHcm91cCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgbW9kZWwsIHNpZ25hbCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgb3JkZXJCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBUZW1wbGF0ZVdpZGdldFByb3ZpZGVkLCBBWFBUZW1wbGF0ZVdpZGdldFByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4uL3RlbXBsYXRlLnByb3ZpZGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBEaXNwbGF5V2lkZ2V0UHJvdmlkZWQgZXh0ZW5kcyBBWFBUZW1wbGF0ZVdpZGdldFByb3ZpZGVkIHtcbiAgcGlubmVkOiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBWENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWFRhYnNNb2R1bGUsXG4gICAgQVhTZWFyY2hCb3hNb2R1bGUsXG4gICAgQVhQU3RpY2t5RGlyZWN0aXZlLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3R5bGVVcmxzOiBbJy4vdGVtcGxhdGUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUFRlbXBsYXRlV2lkZ2V0UGlja2VyQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlUGFnZUNvbXBvbmVudCB7XG4gIHByaXZhdGUgc2V0dGluZ1NlcnZpY2UgPSBpbmplY3QoQVhQU2V0dGluZ3NTZXJ2aWNlKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHBpbm5lZFNldHRpbmdLZXkgPSAnZm9ybXM6dGVtcGxhdGVzOnBpY2tlcjpwaW5uZWQnO1xuXG4gIHByb3RlY3RlZCBzZWFyY2hUZXJtID0gbW9kZWwoJycpO1xuXG4gIC8vIFNpZ25hbHNcbiAgcHJpdmF0ZSB3aWRnZXRzOiBBWFBEaXNwbGF5V2lkZ2V0UHJvdmlkZWRbXSA9IFtdO1xuICBwcml2YXRlIGRpc3BsYXlXaWRnZXRzID0gc2lnbmFsPEFYUERpc3BsYXlXaWRnZXRQcm92aWRlZFtdPihbXSk7XG5cbiAgLy8gU2lnbmFsIHRvIHRyYWNrIHNlbGVjdGVkIHdpZGdldHNcbiAgcHJvdGVjdGVkIHNlbGVjdGVkV2lkZ2V0cyA9IHNpZ25hbDxBWFBEaXNwbGF5V2lkZ2V0UHJvdmlkZWRbXT4oW10pO1xuXG4gIC8vIENvbXB1dGVkIGZvciBmaWx0ZXJlZCBhbmQgb3JkZXJlZCB3aWRnZXQgbGlzdFxuICBwcml2YXRlIG9yZGVyZWRMaXN0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHNlYXJjaCA9IHRoaXMuc2VhcmNoVGVybSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3Qgc2VsZWN0ZWRUYWJOYW1lID0gdGhpcy5zZWxlY3RlZFRhYigpLm5hbWU7XG5cbiAgICByZXR1cm4gb3JkZXJCeShcbiAgICAgIHRoaXMuZGlzcGxheVdpZGdldHMoKS5maWx0ZXIoKHcpID0+IHtcbiAgICAgICAgY29uc3QgbWF0Y2hlc1RhYiA9IHNlbGVjdGVkVGFiTmFtZSA9PT0gJ2FsbCcgfHwgdy5ncm91cC5uYW1lID09PSBzZWxlY3RlZFRhYk5hbWU7XG4gICAgICAgIGNvbnN0IG1hdGNoZXNTZWFyY2ggPVxuICAgICAgICAgICFzZWFyY2ggfHwgdy50aXRsZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCkgfHwgdy5kZXNjcmlwdGlvbj8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpO1xuICAgICAgICByZXR1cm4gbWF0Y2hlc1RhYiAmJiBtYXRjaGVzU2VhcmNoO1xuICAgICAgfSksXG4gICAgICBbJ3Bpbm5lZCcsICd0aXRsZSddLFxuICAgICAgWydkZXNjJywgJ2FzYyddXG4gICAgKTtcbiAgfSk7XG5cbiAgLy8gUGlubmVkIGFuZCByZWd1bGFyIGxpc3RzXG4gIHByb3RlY3RlZCBwaW5uZWRMaXN0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcmRlcmVkTGlzdCgpLmZpbHRlcigoYykgPT4gYy5waW5uZWQpKTtcbiAgcHJvdGVjdGVkIHJlZ3VsYXJMaXN0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcmRlcmVkTGlzdCgpLmZpbHRlcigoYykgPT4gIWMucGlubmVkKSk7XG5cbiAgLy8gVGFicyBmb3IgdGhlIHdpZGdldCBncm91cHNcbiAgcHJvdGVjdGVkIHRhYnM6IEFYUFdpZGdldEdyb3VwW10gPSBvcmRlckJ5KFxuICAgIFt7IG5hbWU6ICdhbGwnLCB0aXRsZTogJ0FsbCcsIG9yZGVyOiAwIH0sIC4uLnRoaXMud2lkZ2V0cy5tYXAoYyA9PiBjLmdyb3VwKV0sXG4gICAgKGMpID0+IGMub3JkZXJcbiAgKTtcbiAgcHJvdGVjdGVkIGN1cnJlbnRUYWJJbmRleCA9IHNpZ25hbCgwKTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkVGFiID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50YWJzW3RoaXMuY3VycmVudFRhYkluZGV4KCldKTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICBjb25zdCBwaW5uZWRXaWRnZXRzID0gKGF3YWl0IHRoaXMuc2V0dGluZ1NlcnZpY2UuZ2V0PHN0cmluZ1tdPih0aGlzLnBpbm5lZFNldHRpbmdLZXkpKSB8fCBbXTtcbiAgICB0aGlzLmRpc3BsYXlXaWRnZXRzLnNldCh0aGlzLndpZGdldHMubWFwKChjKSA9PiAoeyAuLi5jLCBwaW5uZWQ6IHBpbm5lZFdpZGdldHMuaW5jbHVkZXMoYy5pZCkgfSkpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVUYWJDaGFuZ2UoZXZlbnQ6IEFYVGFiU3RyaXBDaGFuZ2VkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbmR4ID0gZXZlbnQuaW5kZXg7XG4gICAgaWYgKHRoaXMuY3VycmVudFRhYkluZGV4KCkgIT0gaW5keCkge1xuICAgICAgdGhpcy5jdXJyZW50VGFiSW5kZXguc2V0KGluZHgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDbGljayhldmVudDogTW91c2VFdmVudCwgd2lkZ2V0OiBBWFBEaXNwbGF5V2lkZ2V0UHJvdmlkZWQpIHtcbiAgICBpZiAoZXZlbnQuY3RybEtleSkge1xuICAgICAgY29uc3QgY3VycmVudFNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0ZWRXaWRnZXRzKCk7XG4gICAgICBjb25zdCBpc0FscmVhZHlTZWxlY3RlZCA9IGN1cnJlbnRTZWxlY3Rpb24uc29tZSgodykgPT4gdyA9PT0gd2lkZ2V0KTtcblxuICAgICAgaWYgKGlzQWxyZWFkeVNlbGVjdGVkKSB7XG4gICAgICAgIC8vIERlc2VsZWN0IHdpZGdldCBpZiBhbHJlYWR5IHNlbGVjdGVkXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzLnNldChjdXJyZW50U2VsZWN0aW9uLmZpbHRlcigodykgPT4gdyAhPT0gd2lkZ2V0KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBBZGQgd2lkZ2V0IHRvIHNlbGVjdGlvblxuICAgICAgICB0aGlzLnNlbGVjdGVkV2lkZ2V0cy5zZXQoWy4uLmN1cnJlbnRTZWxlY3Rpb24sIHdpZGdldF0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiBDVFJMIGlzIG5vdCBwcmVzc2VkLCBzZWxlY3Qgb25seSB0aGUgY2xpY2tlZCB3aWRnZXRcbiAgICAgIHRoaXMuY2xvc2UoeyB3aWRnZXRzOiBbd2lkZ2V0XSB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlUGluQ2xpY2soZTogTW91c2VFdmVudCwgd2lkZ2V0OiBBWFBEaXNwbGF5V2lkZ2V0UHJvdmlkZWQpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHdpZGdldC5waW5uZWQgPSAhd2lkZ2V0LnBpbm5lZDtcbiAgICAvLyBHZXQgdGhlIGN1cnJlbnQgbGlzdCBvZiBwaW5uZWQgd2lkZ2V0cyBmcm9tIHNldHRpbmdzXG4gICAgbGV0IHBpbm5lZFdpZGdldHMgPSAoYXdhaXQgdGhpcy5zZXR0aW5nU2VydmljZS5nZXQ8c3RyaW5nW10+KHRoaXMucGlubmVkU2V0dGluZ0tleSkpIHx8IFtdO1xuXG4gICAgLy8gVXBkYXRlIHRoZSBsaXN0IG9mIHBpbm5lZCB3aWRnZXRzIGJhc2VkIG9uIHRoZSBwaW5uZWQgc3RhdHVzXG4gICAgaWYgKHdpZGdldC5waW5uZWQpIHtcbiAgICAgIGlmICghcGlubmVkV2lkZ2V0cy5pbmNsdWRlcyh3aWRnZXQuaWQpKSB7XG4gICAgICAgIHBpbm5lZFdpZGdldHMucHVzaCh3aWRnZXQuaWQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwaW5uZWRXaWRnZXRzID0gcGlubmVkV2lkZ2V0cy5maWx0ZXIoKG5hbWUpID0+IG5hbWUgIT09IHdpZGdldC5pZCk7XG4gICAgfVxuXG4gICAgLy8gU2F2ZSB0aGUgdXBkYXRlZCBsaXN0IG9mIHBpbm5lZCB3aWRnZXRzXG4gICAgYXdhaXQgdGhpcy5zZXR0aW5nU2VydmljZS5zZXQodGhpcy5waW5uZWRTZXR0aW5nS2V5LCBwaW5uZWRXaWRnZXRzKTtcblxuICAgIC8vIFRyaWdnZXIgYSByZS1yZW5kZXIgb2YgdGhlIHdpZGdldHNcbiAgICB0aGlzLmRpc3BsYXlXaWRnZXRzLnNldChbLi4udGhpcy5kaXNwbGF5V2lkZ2V0cygpXSk7XG4gIH1cblxuICAvLyBDaGVjayBpZiBhIHdpZGdldCBpcyBzZWxlY3RlZFxuICBwcm90ZWN0ZWQgaXNXaWRnZXRTZWxlY3RlZCh3aWRnZXQ6IEFYUERpc3BsYXlXaWRnZXRQcm92aWRlZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkV2lkZ2V0cygpLmluY2x1ZGVzKHdpZGdldCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ29uZmlybVNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlKHsgd2lkZ2V0czogdGhpcy5zZWxlY3RlZFdpZGdldHMoKSB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgbGc6YXgtaC1bNzV2aF1cIj5cbiAgICA8ZGl2PlxuICAgICAgICA8YXgtdGFicyBbbG9va109XCInd2l0aC1saW5lJ1wiIChvbkFjdGl2ZVRhYkNoYW5nZWQpPVwiaGFuZGxlVGFiQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgIEBmb3IodyBvZiB0YWJzO3RyYWNrICRpbmRleClcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgIDxheC10YWItaXRlbSBbdGV4dF09XCJ3LnRpdGxlXCIgW2tleV09XCIkaW5kZXgudG9TdHJpbmcoKVwiXG4gICAgICAgICAgICAgICAgW2FjdGl2ZV09XCJjdXJyZW50VGFiSW5kZXgoKSA9PT0gJGluZGV4XCI+PC9heC10YWItaXRlbT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9heC10YWJzPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheC1vdmVyZmxvdy1hdXRvXCIgI2NvbnRlbnQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1wLTQgYXgtc3RpY2t5IGF4LXRvcC0wIGF4LXotMTAgYXgtdHJhbnNpdGlvbi1hbGwgXCIgI3N0aWNreT1cImF4cFN0aWNreVwiXG4gICAgICAgICAgICBbYXhwU3RpY2t5XT1cIidheC1iZy1zdXJmYWNlIGF4LXNoYWRvdy14bCdcIiBbc3RpY2t5UGFyZW50XT1cImNvbnRlbnRcIiBbc3RpY2t5T2Zmc2V0XT1cIjEwXCI+XG4gICAgICAgICAgICA8YXgtc2VhcmNoLWJveCBsb29rPVwiZmlsbFwiIHBsYWNlaG9sZGVyPVwiZS5nLiBCdXR0b24sIFRleHQsIC4uLlwiIFsobmdNb2RlbCldPVwic2VhcmNoVGVybVwiIFtkZWxheVRpbWVdPVwiMzAwXCJcbiAgICAgICAgICAgICAgICBbYXhBdXRvRm9jdXNdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxheC1jbGVhci1idXR0b24+PC9heC1jbGVhci1idXR0b24+XG4gICAgICAgICAgICA8L2F4LXNlYXJjaC1ib3g+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1wLTQgYXgtcHQtMFwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNpdGVtVHBsIGxldC13PlxuICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudCx3KVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtcHktMiBheC1weC0zIGF4LXJvdW5kZWQtbWQgYXgtZmxleCBheC1nYXAtMyBheC1pdGVtcy1jZW50ZXIgYXgtZ3JvdXAgaG92ZXI6YXgtYmctcHJpbWFyeS0xMDAgZGFyazpob3ZlcjpheC1iZy1wcmltYXJ5LTgwMCBheC1jdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5heC1iZy1wcmltYXJ5LTEwMF09XCJpc1dpZGdldFNlbGVjdGVkKHcpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC13LTEwIGF4LWgtMTAgYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1jZW50ZXIgYXgtcm91bmRlZC1tZCBheC1ib3JkZXIgYXgtYm9yZGVyLW5ldXRyYWwtMjAwIGF4LXRleHQtbmV1dHJhbC01MDAgYXgtYmctb24tc3VyZmFjZSAgZ3JvdXAtaG92ZXI6YXgtYmctcHJpbWFyeS0yMDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmF4LWJnLXByaW1hcnktMjAwXT1cImlzV2lkZ2V0U2VsZWN0ZWQodylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cIncuaWNvblwiIGNsYXNzPVwiYXgtdGV4dC1sZyBncm91cC1ob3ZlcjpheC10ZXh0LXByaW1hcnktNzAwIGF4LXRleHQtb24tc3VyZmFjZS1mb3JlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXgtdGV4dC1wcmltYXJ5LTcwMF09XCJpc1dpZGdldFNlbGVjdGVkKHcpXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTEgYXgtZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZCBheC10ZXh0LXNtXCI+e3t3LnRpdGxlfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJoYW5kbGVQaW5DbGljaygkZXZlbnQsdylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICh3LnBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLXRodW1idGFjayBheC10ZXh0LXNtIGF4LXRleHQtbmV1dHJhbC01MDAgYXgtcm90YXRlLTQ1XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEtbGlnaHQgZmEtdGh1bWJ0YWNrIGF4LXRleHQtc20gYXgtdGV4dC1uZXV0cmFsLTUwMCBheC1yb3RhdGUtNDUgYXgtaW52aXNpYmxlIGdyb3VwLWhvdmVyOmF4LXZpc2libGVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC10ZXh0LXhzIGF4LXRleHQtbmV1dHJhbC00MDAgYXgtdHJ1bmNhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3cuZGVzY3JpcHRpb259fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZCBheC1ncmlkLWNvbHMtMiBheC1nYXAtMiBcIj5cbiAgICAgICAgICAgICAgICBAZm9yKHcgb2YgcGlubmVkTGlzdCgpO3RyYWNrICRpbmRleClcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UcGw7Y29udGV4dDp7ICRpbXBsaWNpdDogd31cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBpZihwaW5uZWRMaXN0KCkubGVuZ3RoKVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgPGhyIGNsYXNzPVwiYXgtbXktNCBheC1ib3JkZXItZGFzaGVkXCI+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZCBheC1ncmlkLWNvbHMtMiBheC1nYXAtMiBcIj5cbiAgICAgICAgICAgICAgICBAZm9yKHcgb2YgcmVndWxhckxpc3QoKTt0cmFjayAkaW5kZXgpXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVHBsO2NvbnRleHQ6eyAkaW1wbGljaXQ6IHd9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5AaWYoc2VsZWN0ZWRXaWRnZXRzKCkubGVuZ3RoKVxue1xuPGF4LWZvb3Rlcj5cbiAgICA8YXgtc3VmZml4PlxuICAgICAgICA8YXgtYnV0dG9uIGxvb2s9XCJzb2xpZFwiIGNvbG9yPVwicHJpbWFyeVwiIHRleHQ9XCJ7eyBzZWxlY3RlZFdpZGdldHMoKS5sZW5ndGggfX0gU2VsZWN0ZWRcIlxuICAgICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlQ29uZmlybVNlbGVjdGlvbigpXCI+PC9heC1idXR0b24+XG4gICAgPC9heC1zdWZmaXg+XG48L2F4LWZvb3Rlcj5cbn0iXX0=