@acorex/platform 18.1.4 → 18.1.6

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 (485) hide show
  1. package/common/lib/app/app-startup.service.d.ts +16 -0
  2. package/common/lib/app/application.types.d.ts +4 -2
  3. package/common/lib/app/index.d.ts +1 -0
  4. package/common/lib/common.module.d.ts +4 -1
  5. package/common/lib/configs/app.config.d.ts +1 -0
  6. package/common/lib/data/data-provider.types.d.ts +1 -0
  7. package/common/lib/data/data.types.d.ts +14 -0
  8. package/common/lib/data/dexie-storage.service.d.ts +7 -5
  9. package/common/lib/data/entity-data-seeder.d.ts +12 -0
  10. package/common/lib/data/entity-storage-service.d.ts +66 -0
  11. package/common/lib/data/index.d.ts +3 -2
  12. package/common/lib/layout/menu/index.d.ts +2 -0
  13. package/common/lib/layout/menu/menu.provider.d.ts +15 -0
  14. package/common/lib/layout/menu/menu.service.d.ts +12 -0
  15. package/common/lib/layout/menu/menu.types.d.ts +8 -1
  16. package/common/lib/layout/theme/components/slots/index.d.ts +0 -1
  17. package/common/lib/layout/theme/store/admin-layout.actions.d.ts +0 -1
  18. package/common/lib/layout/theme/store/admin-layout.effects.d.ts +1 -2
  19. package/common/lib/layout/theme/store/admin-layout.reducers.d.ts +0 -5
  20. package/common/lib/layout/theme/store/admin-layout.selectors.d.ts +0 -1
  21. package/common/lib/layout/theme/store/admin-layout.state.d.ts +0 -3
  22. package/common/lib/schema/widgets/common-widget-filter/boolean-widget-filter.component.d.ts +1 -1
  23. package/common/lib/schema/widgets/dateTime/dateTime-widget-filter.component.d.ts +2 -0
  24. package/common/lib/schema/widgets/lookup/lookup-widget-edit.component.d.ts +1 -0
  25. package/common/lib/settings/index.d.ts +1 -1
  26. package/common/lib/settings/settings.provider.d.ts +7 -0
  27. package/common/lib/settings/settings.service.d.ts +8 -4
  28. package/common/lib/settings/settings.types.d.ts +2 -3
  29. package/common/lib/store/common.actions.d.ts +1 -2
  30. package/common/lib/store/common.effects.d.ts +5 -3
  31. package/common/lib/workflows/common.workflow.d.ts +2 -0
  32. package/core/utils/data-conditioner.d.ts +2 -5
  33. package/esm2022/common/lib/app/app-startup.service.mjs +40 -0
  34. package/esm2022/common/lib/app/application.types.mjs +1 -1
  35. package/esm2022/common/lib/app/index.mjs +2 -1
  36. package/esm2022/common/lib/common.module.mjs +56 -19
  37. package/esm2022/common/lib/configs/app.config.mjs +2 -1
  38. package/esm2022/common/lib/data/data-provider.types.mjs +1 -1
  39. package/esm2022/common/lib/data/data.types.mjs +2 -0
  40. package/esm2022/common/lib/data/dexie-storage.service.mjs +98 -4
  41. package/esm2022/common/lib/data/entity-data-seeder.mjs +25 -0
  42. package/esm2022/common/lib/data/entity-storage-service.mjs +63 -0
  43. package/esm2022/common/lib/data/index.mjs +4 -3
  44. package/esm2022/common/lib/layout/menu/index.mjs +3 -1
  45. package/esm2022/common/lib/layout/menu/menu.provider.mjs +60 -0
  46. package/esm2022/common/lib/layout/menu/menu.service.mjs +73 -0
  47. package/esm2022/common/lib/layout/menu/menu.types.mjs +1 -1
  48. package/esm2022/common/lib/layout/theme/components/slots/index.mjs +1 -2
  49. package/esm2022/common/lib/layout/theme/store/admin-layout.actions.mjs +1 -2
  50. package/esm2022/common/lib/layout/theme/store/admin-layout.effects.mjs +6 -14
  51. package/esm2022/common/lib/layout/theme/store/admin-layout.reducers.mjs +24 -21
  52. package/esm2022/common/lib/layout/theme/store/admin-layout.selectors.mjs +1 -2
  53. package/esm2022/common/lib/layout/theme/store/admin-layout.state.mjs +1 -4
  54. package/esm2022/common/lib/schema/widgets/avatar/avatar-widget-edit.component.mjs +8 -2
  55. package/esm2022/common/lib/schema/widgets/common-widget-filter/boolean-widget-filter.component.mjs +15 -9
  56. package/esm2022/common/lib/schema/widgets/common-widget-filter/number-widget-filter.component.mjs +2 -2
  57. package/esm2022/common/lib/schema/widgets/common-widget-filter/string-widget-filter.component.mjs +2 -2
  58. package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-filter.component.mjs +64 -15
  59. package/esm2022/common/lib/schema/widgets/gallery/gallery-widget-edit.component.mjs +3 -3
  60. package/esm2022/common/lib/schema/widgets/gallery/gallery-widget-view.component.mjs +3 -3
  61. package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-edit.component.mjs +2 -2
  62. package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-filter.component.mjs +44 -16
  63. package/esm2022/common/lib/schema/widgets/number/number-widget-edit.component.mjs +2 -2
  64. package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-filter.component.mjs +10 -6
  65. package/esm2022/common/lib/settings/index.mjs +2 -2
  66. package/esm2022/common/lib/settings/settings.provider.mjs +35 -0
  67. package/esm2022/common/lib/settings/settings.service.mjs +40 -7
  68. package/esm2022/common/lib/settings/settings.types.mjs +1 -1
  69. package/esm2022/common/lib/store/common.actions.mjs +2 -3
  70. package/esm2022/common/lib/store/common.effects.mjs +13 -10
  71. package/esm2022/common/lib/workflows/common.workflow.mjs +7 -4
  72. package/esm2022/core/utils/data-conditioner.mjs +3 -3
  73. package/esm2022/layout/builder/lib/builder/builder.service.mjs +11 -6
  74. package/esm2022/layout/builder/lib/builder/widget-catalog.mjs +2 -1
  75. package/esm2022/layout/builder/lib/builder/widget-container.component.mjs +12 -8
  76. package/esm2022/layout/builder/lib/builder/widget-renderer.component.directive.mjs +34 -11
  77. package/esm2022/layout/builder/lib/builder/widget.types.mjs +21 -19
  78. package/esm2022/layout/designer/index.mjs +3 -1
  79. package/esm2022/layout/designer/lib/designer/components/add-widget-button/add-widget-line-button.component.mjs +49 -0
  80. package/esm2022/layout/designer/lib/designer/components/add-widget-button/add-widget-mini-button.component.mjs +53 -0
  81. package/esm2022/layout/designer/lib/designer/components/add-widget-button/index.mjs +4 -0
  82. package/esm2022/layout/designer/lib/designer/components/board/board.component.mjs +11 -3
  83. package/esm2022/layout/designer/lib/designer/components/drawers/data-sources/data-sources.component.mjs +1 -1
  84. package/esm2022/layout/designer/lib/designer/components/header-menu/header-menu.component.mjs +66 -5
  85. package/esm2022/layout/designer/lib/designer/components/size-mode/view-size-toolbar.component.mjs +54 -0
  86. package/esm2022/layout/designer/lib/designer/components/widget-picker/widget-picker.component.mjs +40 -16
  87. package/esm2022/layout/designer/lib/designer/designer.component.mjs +18 -57
  88. package/esm2022/layout/designer/lib/designer/index.mjs +3 -3
  89. package/esm2022/layout/designer/lib/designer/shared/designer-connector.service.mjs +1 -1
  90. package/esm2022/layout/designer/lib/designer/shared/designer.service.mjs +28 -8
  91. package/esm2022/layout/designer/lib/designer/shared/designer.types.mjs +6 -0
  92. package/esm2022/layout/designer/lib/designer/shared/widget-designer-renderer.directive.mjs +2 -3
  93. package/esm2022/layout/designer/lib/preview/preview-frame.component.mjs +75 -0
  94. package/esm2022/layout/designer/lib/preview/preview-viewer.component.mjs +58 -0
  95. package/esm2022/layout/designer/lib/preview/preview.component.mjs +67 -9
  96. package/esm2022/layout/designer/lib/property-viewer/widget-property-viewer.component.mjs +3 -3
  97. package/esm2022/layout/entity/lib/entity-detail-list.viewmodel.mjs +48 -36
  98. package/esm2022/layout/entity/lib/entity-master-list.viewmodel.mjs +5 -6
  99. package/esm2022/layout/entity/lib/entity-master-single.viewmodel.mjs +1 -2
  100. package/esm2022/layout/entity/lib/entity-registery.service.mjs +5 -5
  101. package/esm2022/layout/entity/lib/entity.config.mjs +28 -2
  102. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.mjs +5 -5
  103. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.mjs +45 -9
  104. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.mjs +2 -2
  105. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.mjs +4 -4
  106. package/esm2022/layout/entity/lib/widgets/widget-selector/widget-selector-widget.config.mjs +2 -1
  107. package/esm2022/layout/entity/lib/workflows/create-entity.workflow.mjs +3 -3
  108. package/esm2022/layout/entity/lib/workflows/delete-entity.workflow.mjs +18 -9
  109. package/esm2022/layout/entity/lib/workflows/modify-section.workflow.mjs +7 -5
  110. package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.mjs +3 -3
  111. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/entity-custom-view/entity-custom-view.component.mjs +1 -1
  112. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-conditions.component.mjs +1 -1
  113. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.mjs +3 -3
  114. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/list-view.config.mjs +9 -5
  115. package/esm2022/layouts/lib/admin/entity-layout/workflows/delete-entity.workflow.mjs +2 -2
  116. package/esm2022/layouts/lib/admin/entity-layout/workflows/modify-entity.workflow.mjs +5 -3
  117. package/esm2022/themes/default/lib/default.module.mjs +7 -3
  118. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.mjs +10 -7
  119. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.mjs +27 -10
  120. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.mjs +3 -3
  121. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.mjs +11 -8
  122. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/overview/entity-single-overview.component.mjs +1 -1
  123. package/esm2022/themes/default/lib/layouts/root-layout/components/header/header.component.mjs +3 -3
  124. package/esm2022/themes/default/lib/layouts/root-layout/components/menu/root-menu.component.mjs +39 -0
  125. package/esm2022/themes/default/lib/layouts/root-layout/index.mjs +2 -1
  126. package/esm2022/themes/default/lib/layouts/root-layout/root-layout.component.mjs +13 -26
  127. package/esm2022/themes/default/lib/layouts/root-layout/root-layout.module.mjs +5 -2
  128. package/esm2022/themes/shared/index.mjs +3 -1
  129. package/esm2022/themes/shared/lib/comments/comment-list-view.component.mjs +28 -20
  130. package/esm2022/themes/shared/lib/comments/comments.service.mjs +3 -2
  131. package/esm2022/themes/shared/lib/comments/comments.type.mjs +1 -1
  132. package/esm2022/themes/shared/lib/components/theme-slot.component.mjs +114 -0
  133. package/esm2022/themes/shared/lib/services/theme.service.mjs +86 -0
  134. package/esm2022/themes/shared/lib/shared.module.mjs +9 -7
  135. package/esm2022/widgets/lib/widgets/actions/button/button-widget-designer.component.mjs +2 -2
  136. package/esm2022/widgets/lib/widgets/actions/button/button-widget-view.component.mjs +1 -2
  137. package/esm2022/widgets/lib/widgets/actions/button/button-widget.config.mjs +3 -2
  138. package/esm2022/widgets/lib/widgets/advance/gallery/gallery-widget-edit.component.mjs +3 -3
  139. package/esm2022/widgets/lib/widgets/advance/gallery/gallery-widget-view.component.mjs +3 -3
  140. package/esm2022/widgets/lib/widgets/advance/qrcode/qrcode-widget-view.component.mjs +4 -4
  141. package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-edit.component.mjs +1 -1
  142. package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-view.component.mjs +35 -23
  143. package/esm2022/widgets/lib/widgets/editors/color/color-box-widget-column.component.mjs +26 -5
  144. package/esm2022/widgets/lib/widgets/editors/color/color-box-widget-designer.component.mjs +3 -2
  145. package/esm2022/widgets/lib/widgets/editors/color/color-box-widget-edit.component.mjs +3 -2
  146. package/esm2022/widgets/lib/widgets/editors/color/color-box-widget-print.component.mjs +3 -3
  147. package/esm2022/widgets/lib/widgets/editors/color/color-box-widget-view.component.mjs +4 -3
  148. package/esm2022/widgets/lib/widgets/editors/contact/contact-widget-column.component.mjs +18 -4
  149. package/esm2022/widgets/lib/widgets/editors/contact/contact-widget-edit.component.mjs +20 -23
  150. package/esm2022/widgets/lib/widgets/editors/contact/contact-widget.config.mjs +6 -29
  151. package/esm2022/widgets/lib/widgets/editors/date-time/date-time-box-widget-column.component.mjs +18 -8
  152. package/esm2022/widgets/lib/widgets/editors/date-time/date-time-box-widget-print.component.mjs +3 -3
  153. package/esm2022/widgets/lib/widgets/editors/large-text/large-text-widget-edit.component.mjs +1 -1
  154. package/esm2022/widgets/lib/widgets/editors/large-text/large-text-widget-view.component.mjs +1 -1
  155. package/esm2022/widgets/lib/widgets/editors/number/number-box-widget-edit.component.mjs +5 -4
  156. package/esm2022/widgets/lib/widgets/editors/number/number-box-widget-view.component.mjs +5 -5
  157. package/esm2022/widgets/lib/widgets/editors/rich-text/rich-text-widget-edit.component.mjs +16 -11
  158. package/esm2022/widgets/lib/widgets/editors/select/select-box-widget-view.component.mjs +15 -19
  159. package/esm2022/widgets/lib/widgets/editors/select/select-box-widget.config.mjs +3 -2
  160. package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget-edit.component.mjs +3 -3
  161. package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget-print.component.mjs +3 -2
  162. package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget-view.component.mjs +68 -28
  163. package/esm2022/widgets/lib/widgets/index.mjs +2 -1
  164. package/esm2022/widgets/lib/widgets/layout/block/block-widget-designer.component.mjs +7 -8
  165. package/esm2022/widgets/lib/widgets/layout/block/block-widget-view.component.mjs +36 -15
  166. package/esm2022/widgets/lib/widgets/layout/block/block-widget.config.mjs +3 -2
  167. package/esm2022/widgets/lib/widgets/layout/form-field/form-field-widget-designer.component.mjs +11 -10
  168. package/esm2022/widgets/lib/widgets/layout/form-field/form-field-widget-view.component.mjs +3 -3
  169. package/esm2022/widgets/lib/widgets/layout/form-field/form-field-widget.config.mjs +6 -2
  170. package/esm2022/widgets/lib/widgets/layout/grid/grid-widget-designer.component.mjs +7 -7
  171. package/esm2022/widgets/lib/widgets/layout/grid/grid-widget-view.component.mjs +5 -4
  172. package/esm2022/widgets/lib/widgets/layout/grid-item/grid-item-widget-designer.component.mjs +8 -19
  173. package/esm2022/widgets/lib/widgets/layout/grid-item/grid-item-widget-view.component.mjs +5 -4
  174. package/esm2022/widgets/lib/widgets/layout/grid-row/grid-row-widget-designer.component.mjs +2 -1
  175. package/esm2022/widgets/lib/widgets/layout/grid-row/grid-row-widget-view.component.mjs +5 -4
  176. package/esm2022/widgets/lib/widgets/layout/page/page-widget-designer.component.mjs +95 -9
  177. package/esm2022/widgets/lib/widgets/layout/page/page-widget-view.component.mjs +3 -3
  178. package/esm2022/widgets/lib/widgets/layout/page/page-widget.config.mjs +18 -3
  179. package/esm2022/widgets/lib/widgets/layout/repeater/repeater-widget-designer.component.mjs +10 -10
  180. package/esm2022/widgets/lib/widgets/layout/repeater/repeater-widget-edit.component.mjs +56 -17
  181. package/esm2022/widgets/lib/widgets/layout/template/index.mjs +5 -0
  182. package/esm2022/widgets/lib/widgets/layout/template/template-widget-designer.component.mjs +70 -0
  183. package/esm2022/widgets/lib/widgets/layout/template/template-widget-edit.component.mjs +55 -0
  184. package/esm2022/widgets/lib/widgets/layout/template/template-widget-view.component.mjs +56 -0
  185. package/esm2022/widgets/lib/widgets/layout/template/template-widget.config.mjs +30 -0
  186. package/esm2022/widgets/lib/widgets/layout/template/template.provider.mjs +41 -0
  187. package/esm2022/widgets/lib/widgets/layout/text-block/text-block-widget.config.mjs +3 -2
  188. package/esm2022/widgets/lib/widgets.module.mjs +4 -1
  189. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  190. package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-CfqY7kKi.mjs → acorex-platform-common-avatar-widget-edit.component-WAlG5E_9.mjs} +17 -8
  191. package/fesm2022/acorex-platform-common-avatar-widget-edit.component-WAlG5E_9.mjs.map +1 -0
  192. package/fesm2022/{acorex-platform-common-avatar-widget-view.component-DXC7INdQ.mjs → acorex-platform-common-avatar-widget-view.component-DRyB3UWf.mjs} +8 -6
  193. package/fesm2022/acorex-platform-common-avatar-widget-view.component-DRyB3UWf.mjs.map +1 -0
  194. package/fesm2022/{acorex-platform-common-boolean-widget-filter.component-DLGnsXy4.mjs → acorex-platform-common-boolean-widget-filter.component-DY4oTjC-.mjs} +19 -12
  195. package/fesm2022/acorex-platform-common-boolean-widget-filter.component-DY4oTjC-.mjs.map +1 -0
  196. package/fesm2022/{acorex-platform-common-change-password.component-BBPFxmB6.mjs → acorex-platform-common-change-password.component-Djd4SeNv.mjs} +6 -6
  197. package/fesm2022/{acorex-platform-common-change-password.component-BBPFxmB6.mjs.map → acorex-platform-common-change-password.component-Djd4SeNv.mjs.map} +1 -1
  198. package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-Ch2bdAjo.mjs → acorex-platform-common-checkbox-widget-column.component-NSXcrUwU.mjs} +10 -8
  199. package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-Ch2bdAjo.mjs.map → acorex-platform-common-checkbox-widget-column.component-NSXcrUwU.mjs.map} +1 -1
  200. package/fesm2022/{acorex-platform-common-checkbox-widget-edit.component-DOGMfGby.mjs → acorex-platform-common-checkbox-widget-edit.component-BU7qV5Cm.mjs} +8 -6
  201. package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-BU7qV5Cm.mjs.map +1 -0
  202. package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-BhGOtblX.mjs → acorex-platform-common-checkbox-widget-view.component-2Du2IzDS.mjs} +10 -8
  203. package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-BhGOtblX.mjs.map → acorex-platform-common-checkbox-widget-view.component-2Du2IzDS.mjs.map} +1 -1
  204. package/fesm2022/{acorex-platform-common-dateTime-widget-column.component-BkUDt0Kj.mjs → acorex-platform-common-dateTime-widget-column.component-Dd7fgwu3.mjs} +8 -6
  205. package/fesm2022/acorex-platform-common-dateTime-widget-column.component-Dd7fgwu3.mjs.map +1 -0
  206. package/fesm2022/{acorex-platform-common-dateTime-widget-edit.component-DEqsapFH.mjs → acorex-platform-common-dateTime-widget-edit.component-B4AelVJp.mjs} +11 -8
  207. package/fesm2022/{acorex-platform-common-dateTime-widget-edit.component-DEqsapFH.mjs.map → acorex-platform-common-dateTime-widget-edit.component-B4AelVJp.mjs.map} +1 -1
  208. package/fesm2022/{acorex-platform-common-dateTime-widget-filter.component-CqddjYjP.mjs → acorex-platform-common-dateTime-widget-filter.component-Ytm-TwOP.mjs} +68 -18
  209. package/fesm2022/acorex-platform-common-dateTime-widget-filter.component-Ytm-TwOP.mjs.map +1 -0
  210. package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-BKUPKE9M.mjs → acorex-platform-common-dateTime-widget-view.component-BKdqOPkb.mjs} +8 -6
  211. package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-BKUPKE9M.mjs.map → acorex-platform-common-dateTime-widget-view.component-BKdqOPkb.mjs.map} +1 -1
  212. package/fesm2022/{acorex-platform-common-email-widget-column.component-BOer2nZi.mjs → acorex-platform-common-email-widget-column.component-CDKqwlPD.mjs} +8 -6
  213. package/fesm2022/acorex-platform-common-email-widget-column.component-CDKqwlPD.mjs.map +1 -0
  214. package/fesm2022/{acorex-platform-common-email-widget-edit.component-BoKsGiEI.mjs → acorex-platform-common-email-widget-edit.component-BT2rJjaW.mjs} +11 -8
  215. package/fesm2022/acorex-platform-common-email-widget-edit.component-BT2rJjaW.mjs.map +1 -0
  216. package/fesm2022/{acorex-platform-common-email-widget-view.component-BZtK5dMd.mjs → acorex-platform-common-email-widget-view.component-DbhRWpB1.mjs} +8 -6
  217. package/fesm2022/{acorex-platform-common-email-widget-view.component-BZtK5dMd.mjs.map → acorex-platform-common-email-widget-view.component-DbhRWpB1.mjs.map} +1 -1
  218. package/fesm2022/{acorex-platform-common-file-widget-column.component-DpcUmwAT.mjs → acorex-platform-common-file-widget-column.component-8U76QgEQ.mjs} +7 -5
  219. package/fesm2022/acorex-platform-common-file-widget-column.component-8U76QgEQ.mjs.map +1 -0
  220. package/fesm2022/{acorex-platform-common-file-widget-edit.component-CNLXguLn.mjs → acorex-platform-common-file-widget-edit.component-OFmiYz_5.mjs} +10 -7
  221. package/fesm2022/{acorex-platform-common-file-widget-edit.component-CNLXguLn.mjs.map → acorex-platform-common-file-widget-edit.component-OFmiYz_5.mjs.map} +1 -1
  222. package/fesm2022/{acorex-platform-common-file-widget-filter.component-Dwt-LYWG.mjs → acorex-platform-common-file-widget-filter.component-ZLnpXMXK.mjs} +8 -6
  223. package/fesm2022/acorex-platform-common-file-widget-filter.component-ZLnpXMXK.mjs.map +1 -0
  224. package/fesm2022/{acorex-platform-common-file-widget-view.component-CjDhjHQR.mjs → acorex-platform-common-file-widget-view.component-BcrM4XrO.mjs} +10 -7
  225. package/fesm2022/{acorex-platform-common-file-widget-view.component-CjDhjHQR.mjs.map → acorex-platform-common-file-widget-view.component-BcrM4XrO.mjs.map} +1 -1
  226. package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-CzKFKaPH.mjs → acorex-platform-common-gallery-widget-edit.component-pBBjrjDP.mjs} +14 -11
  227. package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-CzKFKaPH.mjs.map → acorex-platform-common-gallery-widget-edit.component-pBBjrjDP.mjs.map} +1 -1
  228. package/fesm2022/{acorex-platform-common-gallery-widget-filter.component-B-KxKtY4.mjs → acorex-platform-common-gallery-widget-filter.component-Cp7t9ovC.mjs} +8 -6
  229. package/fesm2022/acorex-platform-common-gallery-widget-filter.component-Cp7t9ovC.mjs.map +1 -0
  230. package/fesm2022/{acorex-platform-common-gallery-widget-view.component-ca-JB8qW.mjs → acorex-platform-common-gallery-widget-view.component-CPS-h3cq.mjs} +13 -10
  231. package/fesm2022/{acorex-platform-common-gallery-widget-view.component-ca-JB8qW.mjs.map → acorex-platform-common-gallery-widget-view.component-CPS-h3cq.mjs.map} +1 -1
  232. package/fesm2022/{acorex-platform-common-largetext-widget-edit.component-DD7S5j12.mjs → acorex-platform-common-largetext-widget-edit.component-DA6r3rVA.mjs} +8 -6
  233. package/fesm2022/acorex-platform-common-largetext-widget-edit.component-DA6r3rVA.mjs.map +1 -0
  234. package/fesm2022/{acorex-platform-common-lookup-widget-column.component-BEZNLQZi.mjs → acorex-platform-common-lookup-widget-column.component-Cxv1yZvE.mjs} +8 -6
  235. package/fesm2022/acorex-platform-common-lookup-widget-column.component-Cxv1yZvE.mjs.map +1 -0
  236. package/fesm2022/{acorex-platform-common-lookup-widget-edit.component-D50jPeKP.mjs → acorex-platform-common-lookup-widget-edit.component-CUtGoAGX.mjs} +9 -7
  237. package/fesm2022/acorex-platform-common-lookup-widget-edit.component-CUtGoAGX.mjs.map +1 -0
  238. package/fesm2022/{acorex-platform-common-lookup-widget-filter.component-CZHDDnR3.mjs → acorex-platform-common-lookup-widget-filter.component-DJZqB3vj.mjs} +47 -17
  239. package/fesm2022/acorex-platform-common-lookup-widget-filter.component-DJZqB3vj.mjs.map +1 -0
  240. package/fesm2022/{acorex-platform-common-lookup-widget-view.component-CQCvJxgi.mjs → acorex-platform-common-lookup-widget-view.component-CghJK1C4.mjs} +8 -6
  241. package/fesm2022/acorex-platform-common-lookup-widget-view.component-CghJK1C4.mjs.map +1 -0
  242. package/fesm2022/{acorex-platform-common-map-widget-edit.component-OanYRQ3B.mjs → acorex-platform-common-map-widget-edit.component-oSb3kVMc.mjs} +8 -6
  243. package/fesm2022/acorex-platform-common-map-widget-edit.component-oSb3kVMc.mjs.map +1 -0
  244. package/fesm2022/{acorex-platform-common-map-widget-view.component-BWdndMYJ.mjs → acorex-platform-common-map-widget-view.component-BrYwr914.mjs} +8 -6
  245. package/fesm2022/{acorex-platform-common-map-widget-view.component-BWdndMYJ.mjs.map → acorex-platform-common-map-widget-view.component-BrYwr914.mjs.map} +1 -1
  246. package/fesm2022/{acorex-platform-common-messenger-widget-column.component-BHP6R3OI.mjs → acorex-platform-common-messenger-widget-column.component-DIJAffxy.mjs} +8 -6
  247. package/fesm2022/acorex-platform-common-messenger-widget-column.component-DIJAffxy.mjs.map +1 -0
  248. package/fesm2022/{acorex-platform-common-messenger-widget-edit.component-B7ycb6tX.mjs → acorex-platform-common-messenger-widget-edit.component-DpGvbM4a.mjs} +10 -7
  249. package/fesm2022/{acorex-platform-common-messenger-widget-edit.component-B7ycb6tX.mjs.map → acorex-platform-common-messenger-widget-edit.component-DpGvbM4a.mjs.map} +1 -1
  250. package/fesm2022/{acorex-platform-common-messenger-widget-view.component-Dz5X-FS5.mjs → acorex-platform-common-messenger-widget-view.component-CeuDEI-j.mjs} +8 -6
  251. package/fesm2022/{acorex-platform-common-messenger-widget-view.component-Dz5X-FS5.mjs.map → acorex-platform-common-messenger-widget-view.component-CeuDEI-j.mjs.map} +1 -1
  252. package/fesm2022/{acorex-platform-common-number-widget-edit.component-XSWI6466.mjs → acorex-platform-common-number-widget-edit.component-B1YGwr60.mjs} +11 -9
  253. package/fesm2022/acorex-platform-common-number-widget-edit.component-B1YGwr60.mjs.map +1 -0
  254. package/fesm2022/{acorex-platform-common-number-widget-filter.component-BOT9wPJ5.mjs → acorex-platform-common-number-widget-filter.component-BmmgPy1w.mjs} +12 -9
  255. package/fesm2022/acorex-platform-common-number-widget-filter.component-BmmgPy1w.mjs.map +1 -0
  256. package/fesm2022/{acorex-platform-common-number-widget-view.component-CP5aboLU.mjs → acorex-platform-common-number-widget-view.component-bqylVHOz.mjs} +8 -6
  257. package/fesm2022/acorex-platform-common-number-widget-view.component-bqylVHOz.mjs.map +1 -0
  258. package/fesm2022/{acorex-platform-common-password-widget-column.component-CGxTbd_S.mjs → acorex-platform-common-password-widget-column.component-DVdZh7s4.mjs} +8 -6
  259. package/fesm2022/{acorex-platform-common-password-widget-column.component-CGxTbd_S.mjs.map → acorex-platform-common-password-widget-column.component-DVdZh7s4.mjs.map} +1 -1
  260. package/fesm2022/{acorex-platform-common-password-widget-edit.component-CHQ_Kp4t.mjs → acorex-platform-common-password-widget-edit.component-OjHwMT5d.mjs} +12 -10
  261. package/fesm2022/acorex-platform-common-password-widget-edit.component-OjHwMT5d.mjs.map +1 -0
  262. package/fesm2022/{acorex-platform-common-password-widget-view.component-BQ9jlt6g.mjs → acorex-platform-common-password-widget-view.component-BeSk1OgU.mjs} +9 -6
  263. package/fesm2022/{acorex-platform-common-password-widget-view.component-BQ9jlt6g.mjs.map → acorex-platform-common-password-widget-view.component-BeSk1OgU.mjs.map} +1 -1
  264. package/fesm2022/{acorex-platform-common-phone-widget-column.component-RJp6wHul.mjs → acorex-platform-common-phone-widget-column.component-DOfzGKBi.mjs} +8 -6
  265. package/fesm2022/acorex-platform-common-phone-widget-column.component-DOfzGKBi.mjs.map +1 -0
  266. package/fesm2022/{acorex-platform-common-phone-widget-edit.component-BB5wTbjd.mjs → acorex-platform-common-phone-widget-edit.component-BJ-iEyLP.mjs} +10 -8
  267. package/fesm2022/{acorex-platform-common-phone-widget-edit.component-BB5wTbjd.mjs.map → acorex-platform-common-phone-widget-edit.component-BJ-iEyLP.mjs.map} +1 -1
  268. package/fesm2022/{acorex-platform-common-phone-widget-view.component-SIzFWfjV.mjs → acorex-platform-common-phone-widget-view.component-DW4AHCE6.mjs} +8 -6
  269. package/fesm2022/{acorex-platform-common-phone-widget-view.component-SIzFWfjV.mjs.map → acorex-platform-common-phone-widget-view.component-DW4AHCE6.mjs.map} +1 -1
  270. package/fesm2022/{acorex-platform-common-rich-text-widget-column.component-Ced0WqvI.mjs → acorex-platform-common-rich-text-widget-column.component-2zZBG6Ze.mjs} +8 -6
  271. package/fesm2022/{acorex-platform-common-rich-text-widget-column.component-Ced0WqvI.mjs.map → acorex-platform-common-rich-text-widget-column.component-2zZBG6Ze.mjs.map} +1 -1
  272. package/fesm2022/{acorex-platform-common-rich-text-widget-edit.component-Do3YcmKg.mjs → acorex-platform-common-rich-text-widget-edit.component-BJveJgHZ.mjs} +8 -5
  273. package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-BJveJgHZ.mjs.map +1 -0
  274. package/fesm2022/{acorex-platform-common-rich-text-widget-view.component-BIRyPRtw.mjs → acorex-platform-common-rich-text-widget-view.component-CiViWpBX.mjs} +8 -6
  275. package/fesm2022/acorex-platform-common-rich-text-widget-view.component-CiViWpBX.mjs.map +1 -0
  276. package/fesm2022/{acorex-platform-common-selection-list-widget-column.component-DxeK2RPc.mjs → acorex-platform-common-selection-list-widget-column.component-D9lsVFgo.mjs} +8 -6
  277. package/fesm2022/acorex-platform-common-selection-list-widget-column.component-D9lsVFgo.mjs.map +1 -0
  278. package/fesm2022/{acorex-platform-common-selection-list-widget-edit.component-CBLEeILz.mjs → acorex-platform-common-selection-list-widget-edit.component-ocEwyUP7.mjs} +10 -8
  279. package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-ocEwyUP7.mjs.map +1 -0
  280. package/fesm2022/{acorex-platform-common-selection-list-widget-filter.component-B01t7mso.mjs → acorex-platform-common-selection-list-widget-filter.component-CS0f_jCx.mjs} +16 -12
  281. package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-CS0f_jCx.mjs.map +1 -0
  282. package/fesm2022/{acorex-platform-common-selection-list-widget-view.component-QJMp11dd.mjs → acorex-platform-common-selection-list-widget-view.component-C65lbpo_.mjs} +8 -6
  283. package/fesm2022/acorex-platform-common-selection-list-widget-view.component-C65lbpo_.mjs.map +1 -0
  284. package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-BQiY7RIp.mjs → acorex-platform-common-signature-pad-widget-edit.component-DbfQSGxm.mjs} +10 -7
  285. package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-BQiY7RIp.mjs.map → acorex-platform-common-signature-pad-widget-edit.component-DbfQSGxm.mjs.map} +1 -1
  286. package/fesm2022/{acorex-platform-common-signature-pad-widget-view.component-CEhRqgEn.mjs → acorex-platform-common-signature-pad-widget-view.component-CDY3JdP-.mjs} +8 -6
  287. package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-CDY3JdP-.mjs.map +1 -0
  288. package/fesm2022/{acorex-platform-common-string-widget-filter.component--L4PeRCB.mjs → acorex-platform-common-string-widget-filter.component-BW2ehdOx.mjs} +12 -9
  289. package/fesm2022/acorex-platform-common-string-widget-filter.component-BW2ehdOx.mjs.map +1 -0
  290. package/fesm2022/{acorex-platform-common-text-widget-column.component-ytX4OqZX.mjs → acorex-platform-common-text-widget-column.component-bhx0QWAX.mjs} +8 -6
  291. package/fesm2022/acorex-platform-common-text-widget-column.component-bhx0QWAX.mjs.map +1 -0
  292. package/fesm2022/{acorex-platform-common-text-widget-edit.component-CN7OyTfJ.mjs → acorex-platform-common-text-widget-edit.component-Cb1k59hs.mjs} +10 -7
  293. package/fesm2022/acorex-platform-common-text-widget-edit.component-Cb1k59hs.mjs.map +1 -0
  294. package/fesm2022/{acorex-platform-common-text-widget-view.component-B-R4-5Ra.mjs → acorex-platform-common-text-widget-view.component-CGwY9c2O.mjs} +8 -6
  295. package/fesm2022/{acorex-platform-common-text-widget-view.component-B-R4-5Ra.mjs.map → acorex-platform-common-text-widget-view.component-CGwY9c2O.mjs.map} +1 -1
  296. package/fesm2022/{acorex-platform-common-toggle-widget-column.component-B5NFRPgX.mjs → acorex-platform-common-toggle-widget-column.component-BxAwa7jw.mjs} +10 -8
  297. package/fesm2022/{acorex-platform-common-toggle-widget-column.component-B5NFRPgX.mjs.map → acorex-platform-common-toggle-widget-column.component-BxAwa7jw.mjs.map} +1 -1
  298. package/fesm2022/{acorex-platform-common-toggle-widget-edit.component-CLWHwf8V.mjs → acorex-platform-common-toggle-widget-edit.component-CT2fRAKm.mjs} +8 -5
  299. package/fesm2022/acorex-platform-common-toggle-widget-edit.component-CT2fRAKm.mjs.map +1 -0
  300. package/fesm2022/{acorex-platform-common-toggle-widget-view.component-Di2S7vub.mjs → acorex-platform-common-toggle-widget-view.component-9tquFHhE.mjs} +10 -8
  301. package/fesm2022/{acorex-platform-common-toggle-widget-view.component-Di2S7vub.mjs.map → acorex-platform-common-toggle-widget-view.component-9tquFHhE.mjs.map} +1 -1
  302. package/fesm2022/acorex-platform-common.mjs +652 -302
  303. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  304. package/fesm2022/acorex-platform-core.mjs +2 -2
  305. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  306. package/fesm2022/acorex-platform-layout-builder.mjs +71 -36
  307. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  308. package/fesm2022/acorex-platform-layout-designer.mjs +476 -72
  309. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  310. package/fesm2022/acorex-platform-layout-entity.mjs +149 -68
  311. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  312. package/fesm2022/acorex-platform-layouts-entity-create-view.component-CPGbLM4C.mjs.map +1 -1
  313. package/fesm2022/acorex-platform-layouts-entity-import-view.component-CZpEcVi9.mjs.map +1 -1
  314. package/fesm2022/acorex-platform-layouts-entity-modify-view.component-Bt4MLEou.mjs.map +1 -1
  315. package/fesm2022/acorex-platform-layouts.mjs +16 -11
  316. package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
  317. package/fesm2022/acorex-platform-mocks.mjs.map +1 -1
  318. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  319. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-Q8eTfAVx.mjs → acorex-platform-themes-default-entity-master-create-view.component-i6vjEhti.mjs} +3 -3
  320. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-Q8eTfAVx.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-i6vjEhti.mjs.map} +1 -1
  321. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-fZ6QEYcd.mjs → acorex-platform-themes-default-entity-master-list-view.component-BGKWaCth.mjs} +37 -20
  322. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BGKWaCth.mjs.map +1 -0
  323. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-BijYXMme.mjs → acorex-platform-themes-default-entity-master-modify-view.component-B3phYOIw.mjs} +5 -5
  324. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-B3phYOIw.mjs.map +1 -0
  325. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-Bnrabotu.mjs → acorex-platform-themes-default-entity-master-single-view.component-DyZHE0o-.mjs} +16 -13
  326. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DyZHE0o-.mjs.map +1 -0
  327. package/fesm2022/acorex-platform-themes-default-error-401.component-D5QQ2HAv.mjs.map +1 -1
  328. package/fesm2022/acorex-platform-themes-default-error-404.component-DSY_D3Iq.mjs.map +1 -1
  329. package/fesm2022/acorex-platform-themes-default-error-offline.component-B6wSkMdd.mjs.map +1 -1
  330. package/fesm2022/acorex-platform-themes-default.mjs +83 -56
  331. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  332. package/fesm2022/acorex-platform-themes-shared.mjs +225 -27
  333. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  334. package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-B9bfVuC4.mjs → acorex-platform-widgets-button-widget-designer.component-M_JuDPbt.mjs} +2 -2
  335. package/fesm2022/acorex-platform-widgets-button-widget-designer.component-M_JuDPbt.mjs.map +1 -0
  336. package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-j1jG8pCr.mjs.map +1 -1
  337. package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-DzGg-uFi.mjs.map +1 -1
  338. package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-tPk6Gylo.mjs → acorex-platform-widgets-checkbox-widget-view.component-CDA7Jwov.mjs} +35 -23
  339. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-CDA7Jwov.mjs.map +1 -0
  340. package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-Bb3aXCNZ.mjs → acorex-platform-widgets-color-box-widget-designer.component-DIvi0BtT.mjs} +3 -2
  341. package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-DIvi0BtT.mjs.map +1 -0
  342. package/fesm2022/acorex-platform-widgets-contact-widget-filter.component-GTwK51nJ.mjs.map +1 -1
  343. package/fesm2022/acorex-platform-widgets-page-widget-designer.component-BL_EAwUs.mjs +153 -0
  344. package/fesm2022/acorex-platform-widgets-page-widget-designer.component-BL_EAwUs.mjs.map +1 -0
  345. package/fesm2022/acorex-platform-widgets-rich-text-popup.component-RCdFIz45.mjs.map +1 -1
  346. package/fesm2022/acorex-platform-widgets-template-widget-edit.component-gvAh-gH1.mjs +96 -0
  347. package/fesm2022/acorex-platform-widgets-template-widget-edit.component-gvAh-gH1.mjs.map +1 -0
  348. package/fesm2022/acorex-platform-widgets-text-block-widget-designer.component-Bi9hlpvB.mjs.map +1 -1
  349. package/fesm2022/acorex-platform-widgets.mjs +563 -235
  350. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  351. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  352. package/layout/builder/lib/builder/builder.service.d.ts +1 -1
  353. package/layout/builder/lib/builder/widget-container.component.d.ts +3 -2
  354. package/layout/builder/lib/builder/widget-renderer.component.directive.d.ts +5 -1
  355. package/layout/builder/lib/builder/widget.types.d.ts +8 -5
  356. package/layout/designer/index.d.ts +2 -0
  357. package/layout/designer/lib/designer/components/add-widget-button/add-widget-line-button.component.d.ts +8 -0
  358. package/layout/designer/lib/designer/components/add-widget-button/add-widget-mini-button.component.d.ts +9 -0
  359. package/layout/designer/lib/designer/components/add-widget-button/index.d.ts +3 -0
  360. package/layout/designer/lib/designer/components/board/board.component.d.ts +2 -0
  361. package/layout/designer/lib/designer/components/drawers/data-sources/data-sources.component.d.ts +1 -1
  362. package/layout/designer/lib/designer/components/header-menu/header-menu.component.d.ts +1 -0
  363. package/layout/designer/lib/designer/components/size-mode/view-size-toolbar.component.d.ts +6 -0
  364. package/layout/designer/lib/designer/components/widget-picker/widget-picker.component.d.ts +4 -2
  365. package/layout/designer/lib/designer/designer.component.d.ts +1 -1
  366. package/layout/designer/lib/designer/index.d.ts +2 -2
  367. package/layout/designer/lib/designer/shared/designer-connector.service.d.ts +1 -1
  368. package/layout/designer/lib/designer/shared/designer.service.d.ts +8 -3
  369. package/layout/designer/lib/preview/preview-frame.component.d.ts +8 -0
  370. package/layout/designer/lib/preview/preview-viewer.component.d.ts +14 -0
  371. package/layout/designer/lib/preview/preview.component.d.ts +17 -3
  372. package/layout/entity/lib/entity-detail-list.viewmodel.d.ts +4 -4
  373. package/layout/entity/lib/entity-master-create.viewmodel.d.ts +1 -1
  374. package/layout/entity/lib/entity-master-list.viewmodel.d.ts +2 -1
  375. package/layout/entity/lib/entity-master-single.viewmodel.d.ts +1 -5
  376. package/layout/entity/lib/entity-master-update.viewmodel.d.ts +1 -1
  377. package/layout/entity/lib/entity-registery.service.d.ts +1 -1
  378. package/layout/entity/lib/entity.config.d.ts +7 -0
  379. package/layout/entity/lib/entity.viewmodel.d.ts +1 -1
  380. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +2 -1
  381. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.d.ts +2 -1
  382. package/layout/entity/lib/workflows/delete-entity.workflow.d.ts +1 -0
  383. package/layout/entity/lib/workflows/modify-section.workflow.d.ts +1 -0
  384. package/layouts/lib/admin/entity-layout/workflows/modify-entity.workflow.d.ts +1 -0
  385. package/package.json +13 -13
  386. package/themes/default/lib/default.module.d.ts +2 -1
  387. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +3 -1
  388. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +1 -1
  389. package/themes/default/lib/layouts/root-layout/components/menu/root-menu.component.d.ts +22 -0
  390. package/themes/default/lib/layouts/root-layout/index.d.ts +1 -0
  391. package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +1 -4
  392. package/themes/default/lib/layouts/root-layout/root-layout.module.d.ts +17 -16
  393. package/themes/shared/index.d.ts +2 -0
  394. package/themes/shared/lib/comments/comment-list-view.component.d.ts +16 -11
  395. package/themes/shared/lib/comments/comments.service.d.ts +4 -7
  396. package/themes/shared/lib/comments/comments.type.d.ts +24 -20
  397. package/themes/shared/lib/components/theme-slot.component.d.ts +23 -0
  398. package/themes/shared/lib/services/theme.service.d.ts +21 -0
  399. package/themes/shared/lib/shared.module.d.ts +5 -4
  400. package/widgets/lib/widgets/advance/map/map-box-widget-view.component.d.ts +1 -1
  401. package/widgets/lib/widgets/advance/qrcode/qrcode-widget-view.component.d.ts +1 -1
  402. package/widgets/lib/widgets/advance/signature/signature-pad-widget-view.component.d.ts +1 -1
  403. package/widgets/lib/widgets/editors/color/color-box-widget-column.component.d.ts +3 -0
  404. package/widgets/lib/widgets/editors/color/color-box-widget-designer.component.d.ts +1 -1
  405. package/widgets/lib/widgets/editors/color/color-box-widget-edit.component.d.ts +1 -1
  406. package/widgets/lib/widgets/editors/color/color-box-widget-view.component.d.ts +1 -1
  407. package/widgets/lib/widgets/editors/contact/contact-widget-column.component.d.ts +2 -0
  408. package/widgets/lib/widgets/editors/contact/contact-widget-edit.component.d.ts +1 -1
  409. package/widgets/lib/widgets/editors/contact/contact-widget-view.component.d.ts +1 -1
  410. package/widgets/lib/widgets/editors/date-time/date-time-box-widget-column.component.d.ts +3 -0
  411. package/widgets/lib/widgets/editors/number/number-box-widget-edit.component.d.ts +1 -0
  412. package/widgets/lib/widgets/editors/number/number-box-widget-view.component.d.ts +1 -1
  413. package/widgets/lib/widgets/editors/password/password-box-widget-view.component.d.ts +1 -1
  414. package/widgets/lib/widgets/editors/rich-text/rich-text-widget-edit.component.d.ts +3 -2
  415. package/widgets/lib/widgets/editors/toggle/toggle-widget-edit.component.d.ts +1 -1
  416. package/widgets/lib/widgets/editors/toggle/toggle-widget-print.component.d.ts +1 -1
  417. package/widgets/lib/widgets/editors/toggle/toggle-widget-view.component.d.ts +1 -1
  418. package/widgets/lib/widgets/index.d.ts +1 -0
  419. package/widgets/lib/widgets/layout/block/block-widget-view.component.d.ts +4 -2
  420. package/widgets/lib/widgets/layout/grid/grid-widget-view.component.d.ts +1 -1
  421. package/widgets/lib/widgets/layout/grid-item/grid-item-widget-designer.component.d.ts +0 -2
  422. package/widgets/lib/widgets/layout/grid-item/grid-item-widget-view.component.d.ts +1 -1
  423. package/widgets/lib/widgets/layout/grid-row/grid-row-widget-view.component.d.ts +1 -1
  424. package/widgets/lib/widgets/layout/page/page-widget-designer.component.d.ts +11 -1
  425. package/widgets/lib/widgets/layout/repeater/repeater-widget-edit.component.d.ts +4 -3
  426. package/widgets/lib/widgets/layout/template/index.d.ts +4 -0
  427. package/widgets/lib/widgets/layout/template/template-widget-designer.component.d.ts +11 -0
  428. package/widgets/lib/widgets/layout/template/template-widget-edit.component.d.ts +10 -0
  429. package/widgets/lib/widgets/layout/template/template-widget-view.component.d.ts +10 -0
  430. package/widgets/lib/widgets/layout/template/template-widget.config.d.ts +7 -0
  431. package/widgets/lib/widgets/layout/template/template.provider.d.ts +21 -0
  432. package/common/lib/data/entity-data-provider.d.ts +0 -14
  433. package/common/lib/data/storage-service.d.ts +0 -22
  434. package/common/lib/layout/theme/components/slots/theme-slot.component.d.ts +0 -8
  435. package/common/lib/settings/settings.loader.d.ts +0 -8
  436. package/esm2022/common/lib/data/entity-data-provider.mjs +0 -26
  437. package/esm2022/common/lib/data/storage-service.mjs +0 -5
  438. package/esm2022/common/lib/layout/theme/components/slots/theme-slot.component.mjs +0 -48
  439. package/esm2022/common/lib/settings/settings.loader.mjs +0 -17
  440. package/esm2022/layout/designer/lib/designer/shared/designer.typs.mjs +0 -6
  441. package/fesm2022/acorex-platform-common-avatar-widget-edit.component-CfqY7kKi.mjs.map +0 -1
  442. package/fesm2022/acorex-platform-common-avatar-widget-view.component-DXC7INdQ.mjs.map +0 -1
  443. package/fesm2022/acorex-platform-common-boolean-widget-filter.component-DLGnsXy4.mjs.map +0 -1
  444. package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-DOGMfGby.mjs.map +0 -1
  445. package/fesm2022/acorex-platform-common-dateTime-widget-column.component-BkUDt0Kj.mjs.map +0 -1
  446. package/fesm2022/acorex-platform-common-dateTime-widget-filter.component-CqddjYjP.mjs.map +0 -1
  447. package/fesm2022/acorex-platform-common-email-widget-column.component-BOer2nZi.mjs.map +0 -1
  448. package/fesm2022/acorex-platform-common-email-widget-edit.component-BoKsGiEI.mjs.map +0 -1
  449. package/fesm2022/acorex-platform-common-file-widget-column.component-DpcUmwAT.mjs.map +0 -1
  450. package/fesm2022/acorex-platform-common-file-widget-filter.component-Dwt-LYWG.mjs.map +0 -1
  451. package/fesm2022/acorex-platform-common-gallery-widget-filter.component-B-KxKtY4.mjs.map +0 -1
  452. package/fesm2022/acorex-platform-common-largetext-widget-edit.component-DD7S5j12.mjs.map +0 -1
  453. package/fesm2022/acorex-platform-common-lookup-widget-column.component-BEZNLQZi.mjs.map +0 -1
  454. package/fesm2022/acorex-platform-common-lookup-widget-edit.component-D50jPeKP.mjs.map +0 -1
  455. package/fesm2022/acorex-platform-common-lookup-widget-filter.component-CZHDDnR3.mjs.map +0 -1
  456. package/fesm2022/acorex-platform-common-lookup-widget-view.component-CQCvJxgi.mjs.map +0 -1
  457. package/fesm2022/acorex-platform-common-map-widget-edit.component-OanYRQ3B.mjs.map +0 -1
  458. package/fesm2022/acorex-platform-common-messenger-widget-column.component-BHP6R3OI.mjs.map +0 -1
  459. package/fesm2022/acorex-platform-common-number-widget-edit.component-XSWI6466.mjs.map +0 -1
  460. package/fesm2022/acorex-platform-common-number-widget-filter.component-BOT9wPJ5.mjs.map +0 -1
  461. package/fesm2022/acorex-platform-common-number-widget-view.component-CP5aboLU.mjs.map +0 -1
  462. package/fesm2022/acorex-platform-common-password-widget-edit.component-CHQ_Kp4t.mjs.map +0 -1
  463. package/fesm2022/acorex-platform-common-phone-widget-column.component-RJp6wHul.mjs.map +0 -1
  464. package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-Do3YcmKg.mjs.map +0 -1
  465. package/fesm2022/acorex-platform-common-rich-text-widget-view.component-BIRyPRtw.mjs.map +0 -1
  466. package/fesm2022/acorex-platform-common-selection-list-widget-column.component-DxeK2RPc.mjs.map +0 -1
  467. package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-CBLEeILz.mjs.map +0 -1
  468. package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-B01t7mso.mjs.map +0 -1
  469. package/fesm2022/acorex-platform-common-selection-list-widget-view.component-QJMp11dd.mjs.map +0 -1
  470. package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-CEhRqgEn.mjs.map +0 -1
  471. package/fesm2022/acorex-platform-common-string-widget-filter.component--L4PeRCB.mjs.map +0 -1
  472. package/fesm2022/acorex-platform-common-text-widget-column.component-ytX4OqZX.mjs.map +0 -1
  473. package/fesm2022/acorex-platform-common-text-widget-edit.component-CN7OyTfJ.mjs.map +0 -1
  474. package/fesm2022/acorex-platform-common-toggle-widget-edit.component-CLWHwf8V.mjs.map +0 -1
  475. package/fesm2022/acorex-platform-layout-designer-preview.component-CaRHf4x_.mjs +0 -23
  476. package/fesm2022/acorex-platform-layout-designer-preview.component-CaRHf4x_.mjs.map +0 -1
  477. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-fZ6QEYcd.mjs.map +0 -1
  478. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BijYXMme.mjs.map +0 -1
  479. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Bnrabotu.mjs.map +0 -1
  480. package/fesm2022/acorex-platform-widgets-button-widget-designer.component-B9bfVuC4.mjs.map +0 -1
  481. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-tPk6Gylo.mjs.map +0 -1
  482. package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-Bb3aXCNZ.mjs.map +0 -1
  483. package/fesm2022/acorex-platform-widgets-page-widget-designer.component-6BMZ0qRw.mjs +0 -67
  484. package/fesm2022/acorex-platform-widgets-page-widget-designer.component-6BMZ0qRw.mjs.map +0 -1
  485. /package/layout/designer/lib/designer/shared/{designer.typs.d.ts → designer.types.d.ts} +0 -0
@@ -1,7 +1,7 @@
1
1
  import { AXDecoratorModule } from '@acorex/components/decorators';
2
2
  import { AXMenuModule } from '@acorex/components/menu';
3
3
  import { CommonModule } from '@angular/common';
4
- import { Component, inject } from '@angular/core';
4
+ import { Component, HostListener, inject } from '@angular/core';
5
5
  import { AXPDesignerService } from '../../shared/designer.service';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@acorex/components/decorators";
@@ -10,8 +10,66 @@ export class AXPDesignerHeaderMenuComponent {
10
10
  constructor() {
11
11
  this.service = inject(AXPDesignerService);
12
12
  }
13
+ handleKeyboardEvent(event) {
14
+ if (event.shiftKey && event.target == document.body) {
15
+ switch (event.code) {
16
+ case 'KeyN':
17
+ event.preventDefault();
18
+ this.service.new();
19
+ break;
20
+ }
21
+ }
22
+ //
23
+ if (event.ctrlKey && event.target == document.body) {
24
+ console.log(event.code);
25
+ switch (event.code) {
26
+ case 'KeyR':
27
+ event.preventDefault();
28
+ if (event.shiftKey) {
29
+ this.service.openPreviewWindow();
30
+ }
31
+ else {
32
+ this.service.openPreviewDialog();
33
+ }
34
+ break;
35
+ case 'KeyZ':
36
+ event.preventDefault();
37
+ this.service.undo();
38
+ break;
39
+ case 'KeyY':
40
+ event.preventDefault();
41
+ this.service.redo();
42
+ break;
43
+ case 'KeyC':
44
+ if (this.service.canCutCopy()) {
45
+ event.preventDefault();
46
+ this.service.copy();
47
+ }
48
+ break;
49
+ case 'KeyD':
50
+ if (this.service.canCutCopy()) {
51
+ event.preventDefault();
52
+ this.service.clone();
53
+ }
54
+ break;
55
+ case 'KeyX':
56
+ if (this.service.canCutCopy()) {
57
+ // ;
58
+ event.preventDefault();
59
+ this.service.cut();
60
+ }
61
+ break;
62
+ case 'KeyV':
63
+ if (this.service.canPaste()) {
64
+ event.preventDefault();
65
+ this.service.paste();
66
+ }
67
+ break;
68
+ }
69
+ }
70
+ }
13
71
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerHeaderMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPDesignerHeaderMenuComponent, isStandalone: true, selector: "axp-designer-header-menu", ngImport: i0, template: "<ax-menu [openOn]=\"'hover'\">\n <ax-menu-item>\n <ax-text>Home</ax-text>\n <ax-menu-item (onClick)=\"service.new()\">\n <ax-text>New</ax-text>\n <ax-suffix>\n <ax-text>\n Shift+N\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-divider></ax-divider>\n <ax-menu-item>\n <ax-text>Export</ax-text>\n <ax-menu-item (onClick)=\"service.downloadJson()\">\n <ax-text>Download JSON</ax-text>\n </ax-menu-item>\n </ax-menu-item>\n <ax-menu-item>\n <ax-text>Import</ax-text>\n <ax-menu-item (onClick)=\"service.importJSon()\">\n <ax-text>Import JSON</ax-text>\n </ax-menu-item>\n </ax-menu-item>\n </ax-menu-item>\n <ax-menu-item>\n <ax-text>Edit</ax-text>\n <ax-menu-item [disabled]=\"!service.canUndo()\" (onClick)=\"service.undo()\">\n <ax-text>Undo</ax-text>\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-rotate-left\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+Z\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item [disabled]=\"!service.canRedo()\" (onClick)=\"service.redo()\">\n <ax-text>Redo</ax-text>\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-rotate-right\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+Y\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-divider></ax-divider>\n <ax-menu-item [disabled]=\"!service.canCutCopy()\" (onClick)=\"service.cut()\">\n <ax-text>Cut</ax-text>\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-cut\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+X\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item [disabled]=\"!service.canCutCopy()\" (onClick)=\"service.copy()\">\n <ax-text>Copy</ax-text>\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-copy\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+C\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item [disabled]=\"!service.canPaste()\" (onClick)=\"service.paste()\">\n <ax-text>Paste</ax-text>\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-paste\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+V\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n </ax-menu-item>\n <ax-menu-item>\n <ax-text>Help</ax-text>\n <ax-menu-item>\n <ax-text>About</ax-text>\n </ax-menu-item>\n </ax-menu-item>\n</ax-menu>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i1.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: AXMenuModule }, { kind: "component", type: i2.AXMenuItemComponent, selector: "ax-menu-item", inputs: ["name", "data", "disabled", "color"], outputs: ["onClick"] }, { kind: "component", type: i2.AXMenuComponent, selector: "ax-menu", inputs: ["orientation", "openOn", "closeOn", "items"], outputs: ["onItemClick"] }] }); }
72
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPDesignerHeaderMenuComponent, isStandalone: true, selector: "axp-designer-header-menu", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, ngImport: i0, template: "<ax-menu [openOn]=\"'hover'\" [hasArrow]=\"false\">\n <ax-menu-item>\n <ax-text>Home</ax-text>\n <ax-menu-item (onClick)=\"service.new()\">\n <ax-text>New</ax-text>\n <ax-suffix>\n <ax-text> Shift+N </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-divider></ax-divider>\n <ax-menu-item>\n <ax-text>Export</ax-text>\n <ax-menu-item (onClick)=\"service.downloadJson()\">\n <ax-text>Download JSON</ax-text>\n </ax-menu-item>\n </ax-menu-item>\n <ax-menu-item>\n <ax-text>Import</ax-text>\n <ax-menu-item (onClick)=\"service.importJSon()\">\n <ax-text>Import JSON</ax-text>\n </ax-menu-item>\n </ax-menu-item>\n </ax-menu-item>\n <ax-menu-item>\n <ax-text>Edit</ax-text>\n <ax-menu-item [disabled]=\"!service.canUndo()\" (onClick)=\"service.undo()\">\n <ax-text>Undo</ax-text>\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-rotate-left\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text> Ctrl+Z </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item [disabled]=\"!service.canRedo()\" (onClick)=\"service.redo()\">\n <ax-text>Redo</ax-text>\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-rotate-right\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text> Ctrl+Y </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-divider></ax-divider>\n <ax-menu-item [disabled]=\"!service.canCutCopy()\" (onClick)=\"service.cut()\">\n <ax-text>Cut</ax-text>\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-cut\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text> Ctrl+X </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item [disabled]=\"!service.canCutCopy()\" (onClick)=\"service.copy()\">\n <ax-text>Copy</ax-text>\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-copy\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text> Ctrl+C </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item [disabled]=\"!service.canPaste()\" (onClick)=\"service.paste()\">\n <ax-text>Paste</ax-text>\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-paste\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>Ctrl+V</ax-text>\n </ax-suffix>\n </ax-menu-item>\n </ax-menu-item>\n <ax-menu-item>\n <ax-text>Run</ax-text>\n <ax-menu-item (onClick)=\"service.openPreviewDialog()\">\n <ax-text>Preview</ax-text>\n <ax-prefix>\n </ax-prefix>\n <ax-suffix>\n <ax-text>Ctrl+R</ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item (onClick)=\"service.openPreviewWindow()\">\n <ax-text>Preview in seperate window</ax-text>\n <ax-prefix> </ax-prefix>\n <ax-suffix>\n <ax-text>Ctrl+Shift+F5</ax-text>\n </ax-suffix>\n </ax-menu-item>\n </ax-menu-item>\n <ax-menu-item>\n <ax-text>Help</ax-text>\n <ax-menu-item>\n <ax-text>About</ax-text>\n </ax-menu-item>\n </ax-menu-item>\n</ax-menu>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i1.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: AXMenuModule }, { kind: "component", type: i2.AXMenuItemComponent, selector: "ax-menu-item", inputs: ["name", "data", "disabled", "color"], outputs: ["onClick"] }, { kind: "component", type: i2.AXMenuComponent, selector: "ax-menu", inputs: ["orientation", "openOn", "closeOn", "items", "hasArrow"], outputs: ["onItemClick"] }] }); }
15
73
  }
16
74
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerHeaderMenuComponent, decorators: [{
17
75
  type: Component,
@@ -19,6 +77,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
19
77
  CommonModule,
20
78
  AXDecoratorModule,
21
79
  AXMenuModule,
22
- ], selector: 'axp-designer-header-menu', template: "<ax-menu [openOn]=\"'hover'\">\n <ax-menu-item>\n <ax-text>Home</ax-text>\n <ax-menu-item (onClick)=\"service.new()\">\n <ax-text>New</ax-text>\n <ax-suffix>\n <ax-text>\n Shift+N\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-divider></ax-divider>\n <ax-menu-item>\n <ax-text>Export</ax-text>\n <ax-menu-item (onClick)=\"service.downloadJson()\">\n <ax-text>Download JSON</ax-text>\n </ax-menu-item>\n </ax-menu-item>\n <ax-menu-item>\n <ax-text>Import</ax-text>\n <ax-menu-item (onClick)=\"service.importJSon()\">\n <ax-text>Import JSON</ax-text>\n </ax-menu-item>\n </ax-menu-item>\n </ax-menu-item>\n <ax-menu-item>\n <ax-text>Edit</ax-text>\n <ax-menu-item [disabled]=\"!service.canUndo()\" (onClick)=\"service.undo()\">\n <ax-text>Undo</ax-text>\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-rotate-left\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+Z\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item [disabled]=\"!service.canRedo()\" (onClick)=\"service.redo()\">\n <ax-text>Redo</ax-text>\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-rotate-right\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+Y\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-divider></ax-divider>\n <ax-menu-item [disabled]=\"!service.canCutCopy()\" (onClick)=\"service.cut()\">\n <ax-text>Cut</ax-text>\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-cut\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+X\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item [disabled]=\"!service.canCutCopy()\" (onClick)=\"service.copy()\">\n <ax-text>Copy</ax-text>\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-copy\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+C\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item [disabled]=\"!service.canPaste()\" (onClick)=\"service.paste()\">\n <ax-text>Paste</ax-text>\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-paste\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+V\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n </ax-menu-item>\n <ax-menu-item>\n <ax-text>Help</ax-text>\n <ax-menu-item>\n <ax-text>About</ax-text>\n </ax-menu-item>\n </ax-menu-item>\n</ax-menu>" }]
23
- }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2hlYWRlci1tZW51L2hlYWRlci1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvY29tcG9uZW50cy9oZWFkZXItbWVudS9oZWFkZXItbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7O0FBYW5FLE1BQU0sT0FBTyw4QkFBOEI7SUFYM0M7UUFZYyxZQUFPLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FDbEQ7OEdBRlksOEJBQThCO2tHQUE5Qiw4QkFBOEIsb0ZDakIzQyxrekdBb0dVLDJDRDNGRixZQUFZLDhCQUNaLGlCQUFpQix1VkFDakIsWUFBWTs7MkZBTVAsOEJBQThCO2tCQVgxQyxTQUFTO2lDQUNNLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsWUFBWTtxQkFDZixZQUNTLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhNZW51TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21lbnUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUERlc2lnbmVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9kZXNpZ25lci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgICAgIEFYTWVudU1vZHVsZSxcbiAgICBdLFxuICAgIHNlbGVjdG9yOiAnYXhwLWRlc2lnbmVyLWhlYWRlci1tZW51JyxcbiAgICB0ZW1wbGF0ZVVybDogJ2hlYWRlci1tZW51LmNvbXBvbmVudC5odG1sJ1xufSlcblxuZXhwb3J0IGNsYXNzIEFYUERlc2lnbmVySGVhZGVyTWVudUNvbXBvbmVudCB7XG4gICAgcHJvdGVjdGVkIHNlcnZpY2UgPSBpbmplY3QoQVhQRGVzaWduZXJTZXJ2aWNlKTtcbn0iLCI8YXgtbWVudSBbb3Blbk9uXT1cIidob3ZlcidcIj5cbiAgICA8YXgtbWVudS1pdGVtPlxuICAgICAgICA8YXgtdGV4dD5Ib21lPC9heC10ZXh0PlxuICAgICAgICA8YXgtbWVudS1pdGVtIChvbkNsaWNrKT1cInNlcnZpY2UubmV3KClcIj5cbiAgICAgICAgICAgIDxheC10ZXh0Pk5ldzwvYXgtdGV4dD5cbiAgICAgICAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgICAgICAgICAgPGF4LXRleHQ+XG4gICAgICAgICAgICAgICAgICAgIFNoaWZ0K05cbiAgICAgICAgICAgICAgICA8L2F4LXRleHQ+XG4gICAgICAgICAgICA8L2F4LXN1ZmZpeD5cbiAgICAgICAgPC9heC1tZW51LWl0ZW0+XG4gICAgICAgIDxheC1kaXZpZGVyPjwvYXgtZGl2aWRlcj5cbiAgICAgICAgPGF4LW1lbnUtaXRlbT5cbiAgICAgICAgICAgIDxheC10ZXh0PkV4cG9ydDwvYXgtdGV4dD5cbiAgICAgICAgICAgIDxheC1tZW51LWl0ZW0gKG9uQ2xpY2spPVwic2VydmljZS5kb3dubG9hZEpzb24oKVwiPlxuICAgICAgICAgICAgICAgIDxheC10ZXh0PkRvd25sb2FkIEpTT048L2F4LXRleHQ+XG4gICAgICAgICAgICA8L2F4LW1lbnUtaXRlbT5cbiAgICAgICAgPC9heC1tZW51LWl0ZW0+XG4gICAgICAgIDxheC1tZW51LWl0ZW0+XG4gICAgICAgICAgICA8YXgtdGV4dD5JbXBvcnQ8L2F4LXRleHQ+XG4gICAgICAgICAgICA8YXgtbWVudS1pdGVtIChvbkNsaWNrKT1cInNlcnZpY2UuaW1wb3J0SlNvbigpXCI+XG4gICAgICAgICAgICAgICAgPGF4LXRleHQ+SW1wb3J0IEpTT048L2F4LXRleHQ+XG4gICAgICAgICAgICA8L2F4LW1lbnUtaXRlbT5cbiAgICAgICAgPC9heC1tZW51LWl0ZW0+XG4gICAgPC9heC1tZW51LWl0ZW0+XG4gICAgPGF4LW1lbnUtaXRlbT5cbiAgICAgICAgPGF4LXRleHQ+RWRpdDwvYXgtdGV4dD5cbiAgICAgICAgPGF4LW1lbnUtaXRlbSBbZGlzYWJsZWRdPVwiIXNlcnZpY2UuY2FuVW5kbygpXCIgKG9uQ2xpY2spPVwic2VydmljZS51bmRvKClcIj5cbiAgICAgICAgICAgIDxheC10ZXh0PlVuZG88L2F4LXRleHQ+XG4gICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICAgIDxheC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLXJvdGF0ZS1sZWZ0XCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvYXgtaWNvbj5cbiAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgICAgICAgICA8YXgtdGV4dD5cbiAgICAgICAgICAgICAgICAgICAgQ3RybCtaXG4gICAgICAgICAgICAgICAgPC9heC10ZXh0PlxuICAgICAgICAgICAgPC9heC1zdWZmaXg+XG4gICAgICAgIDwvYXgtbWVudS1pdGVtPlxuICAgICAgICA8YXgtbWVudS1pdGVtIFtkaXNhYmxlZF09XCIhc2VydmljZS5jYW5SZWRvKClcIiAob25DbGljayk9XCJzZXJ2aWNlLnJlZG8oKVwiPlxuICAgICAgICAgICAgPGF4LXRleHQ+UmVkbzwvYXgtdGV4dD5cbiAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgPGF4LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtcm90YXRlLXJpZ2h0XCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvYXgtaWNvbj5cbiAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgICAgICAgICA8YXgtdGV4dD5cbiAgICAgICAgICAgICAgICAgICAgQ3RybCtZXG4gICAgICAgICAgICAgICAgPC9heC10ZXh0PlxuICAgICAgICAgICAgPC9heC1zdWZmaXg+XG4gICAgICAgIDwvYXgtbWVudS1pdGVtPlxuICAgICAgICA8YXgtZGl2aWRlcj48L2F4LWRpdmlkZXI+XG4gICAgICAgIDxheC1tZW51LWl0ZW0gW2Rpc2FibGVkXT1cIiFzZXJ2aWNlLmNhbkN1dENvcHkoKVwiIChvbkNsaWNrKT1cInNlcnZpY2UuY3V0KClcIj5cbiAgICAgICAgICAgIDxheC10ZXh0PkN1dDwvYXgtdGV4dD5cbiAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgPGF4LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtY3V0XCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvYXgtaWNvbj5cbiAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgICAgICAgICA8YXgtdGV4dD5cbiAgICAgICAgICAgICAgICAgICAgQ3RybCtYXG4gICAgICAgICAgICAgICAgPC9heC10ZXh0PlxuICAgICAgICAgICAgPC9heC1zdWZmaXg+XG4gICAgICAgIDwvYXgtbWVudS1pdGVtPlxuICAgICAgICA8YXgtbWVudS1pdGVtIFtkaXNhYmxlZF09XCIhc2VydmljZS5jYW5DdXRDb3B5KClcIiAob25DbGljayk9XCJzZXJ2aWNlLmNvcHkoKVwiPlxuICAgICAgICAgICAgPGF4LXRleHQ+Q29weTwvYXgtdGV4dD5cbiAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgPGF4LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtY29weVwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L2F4LWljb24+XG4gICAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgICAgICAgICAgPGF4LXRleHQ+XG4gICAgICAgICAgICAgICAgICAgIEN0cmwrQ1xuICAgICAgICAgICAgICAgIDwvYXgtdGV4dD5cbiAgICAgICAgICAgIDwvYXgtc3VmZml4PlxuICAgICAgICA8L2F4LW1lbnUtaXRlbT5cbiAgICAgICAgPGF4LW1lbnUtaXRlbSBbZGlzYWJsZWRdPVwiIXNlcnZpY2UuY2FuUGFzdGUoKVwiIChvbkNsaWNrKT1cInNlcnZpY2UucGFzdGUoKVwiPlxuICAgICAgICAgICAgPGF4LXRleHQ+UGFzdGU8L2F4LXRleHQ+XG4gICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICAgIDxheC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLXBhc3RlXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvYXgtaWNvbj5cbiAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgICAgICAgICA8YXgtdGV4dD5cbiAgICAgICAgICAgICAgICAgICAgQ3RybCtWXG4gICAgICAgICAgICAgICAgPC9heC10ZXh0PlxuICAgICAgICAgICAgPC9heC1zdWZmaXg+XG4gICAgICAgIDwvYXgtbWVudS1pdGVtPlxuICAgIDwvYXgtbWVudS1pdGVtPlxuICAgIDxheC1tZW51LWl0ZW0+XG4gICAgICAgIDxheC10ZXh0PkhlbHA8L2F4LXRleHQ+XG4gICAgICAgIDxheC1tZW51LWl0ZW0+XG4gICAgICAgICAgICA8YXgtdGV4dD5BYm91dDwvYXgtdGV4dD5cbiAgICAgICAgPC9heC1tZW51LWl0ZW0+XG4gICAgPC9heC1tZW51LWl0ZW0+XG48L2F4LW1lbnU+Il19
80
+ ], selector: 'axp-designer-header-menu', template: "<ax-menu [openOn]=\"'hover'\" [hasArrow]=\"false\">\n <ax-menu-item>\n <ax-text>Home</ax-text>\n <ax-menu-item (onClick)=\"service.new()\">\n <ax-text>New</ax-text>\n <ax-suffix>\n <ax-text> Shift+N </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-divider></ax-divider>\n <ax-menu-item>\n <ax-text>Export</ax-text>\n <ax-menu-item (onClick)=\"service.downloadJson()\">\n <ax-text>Download JSON</ax-text>\n </ax-menu-item>\n </ax-menu-item>\n <ax-menu-item>\n <ax-text>Import</ax-text>\n <ax-menu-item (onClick)=\"service.importJSon()\">\n <ax-text>Import JSON</ax-text>\n </ax-menu-item>\n </ax-menu-item>\n </ax-menu-item>\n <ax-menu-item>\n <ax-text>Edit</ax-text>\n <ax-menu-item [disabled]=\"!service.canUndo()\" (onClick)=\"service.undo()\">\n <ax-text>Undo</ax-text>\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-rotate-left\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text> Ctrl+Z </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item [disabled]=\"!service.canRedo()\" (onClick)=\"service.redo()\">\n <ax-text>Redo</ax-text>\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-rotate-right\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text> Ctrl+Y </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-divider></ax-divider>\n <ax-menu-item [disabled]=\"!service.canCutCopy()\" (onClick)=\"service.cut()\">\n <ax-text>Cut</ax-text>\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-cut\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text> Ctrl+X </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item [disabled]=\"!service.canCutCopy()\" (onClick)=\"service.copy()\">\n <ax-text>Copy</ax-text>\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-copy\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text> Ctrl+C </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item [disabled]=\"!service.canPaste()\" (onClick)=\"service.paste()\">\n <ax-text>Paste</ax-text>\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-paste\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>Ctrl+V</ax-text>\n </ax-suffix>\n </ax-menu-item>\n </ax-menu-item>\n <ax-menu-item>\n <ax-text>Run</ax-text>\n <ax-menu-item (onClick)=\"service.openPreviewDialog()\">\n <ax-text>Preview</ax-text>\n <ax-prefix>\n </ax-prefix>\n <ax-suffix>\n <ax-text>Ctrl+R</ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item (onClick)=\"service.openPreviewWindow()\">\n <ax-text>Preview in seperate window</ax-text>\n <ax-prefix> </ax-prefix>\n <ax-suffix>\n <ax-text>Ctrl+Shift+F5</ax-text>\n </ax-suffix>\n </ax-menu-item>\n </ax-menu-item>\n <ax-menu-item>\n <ax-text>Help</ax-text>\n <ax-menu-item>\n <ax-text>About</ax-text>\n </ax-menu-item>\n </ax-menu-item>\n</ax-menu>" }]
81
+ }], propDecorators: { handleKeyboardEvent: [{
82
+ type: HostListener,
83
+ args: ['document:keydown', ['$event']]
84
+ }] } });
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2hlYWRlci1tZW51L2hlYWRlci1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvY29tcG9uZW50cy9oZWFkZXItbWVudS9oZWFkZXItbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQWFuRSxNQUFNLE9BQU8sOEJBQThCO0lBWDNDO1FBWWMsWUFBTyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0tBOERsRDtJQTNEVyxtQkFBbUIsQ0FBQyxLQUFvQjtRQUM1QyxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEQsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2pCLEtBQUssTUFBTTtvQkFDUCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQ25CLE1BQU07WUFDZCxDQUFDO1FBQ0wsQ0FBQztRQUNELEVBQUU7UUFDRixJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDdkIsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2pCLEtBQUssTUFBTTtvQkFDUCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3ZCLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO3dCQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUM7b0JBQ3JDLENBQUM7eUJBQ0ksQ0FBQzt3QkFDRixJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUM7b0JBQ3JDLENBQUM7b0JBRUQsTUFBTTtnQkFDVixLQUFLLE1BQU07b0JBQ1AsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNwQixNQUFNO2dCQUNWLEtBQUssTUFBTTtvQkFDUCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3BCLE1BQU07Z0JBQ1YsS0FBSyxNQUFNO29CQUNQLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO3dCQUM1QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7d0JBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3hCLENBQUM7b0JBQ0QsTUFBTTtnQkFDVixLQUFLLE1BQU07b0JBQ1AsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7d0JBQzVCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQzt3QkFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDekIsQ0FBQztvQkFDRCxNQUFNO2dCQUNWLEtBQUssTUFBTTtvQkFDUCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQzt3QkFDNUIsSUFBSTt3QkFDSixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7d0JBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQ3ZCLENBQUM7b0JBQ0QsTUFBTTtnQkFDVixLQUFLLE1BQU07b0JBQ1AsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7d0JBQzFCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQzt3QkFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDekIsQ0FBQztvQkFDRCxNQUFNO1lBQ2QsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDOzhHQTlEUSw4QkFBOEI7a0dBQTlCLDhCQUE4QixnS0NqQjNDLHFvR0EwR1UsMkNEakdGLFlBQVksOEJBQ1osaUJBQWlCLHVWQUNqQixZQUFZOzsyRkFNUCw4QkFBOEI7a0JBWDFDLFNBQVM7aUNBQ00sSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixZQUFZO3FCQUNmLFlBQ1MsMEJBQTBCOzhCQVE1QixtQkFBbUI7c0JBRDFCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYTWVudU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9tZW51JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUERlc2lnbmVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9kZXNpZ25lci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgICAgIEFYTWVudU1vZHVsZSxcbiAgICBdLFxuICAgIHNlbGVjdG9yOiAnYXhwLWRlc2lnbmVyLWhlYWRlci1tZW51JyxcbiAgICB0ZW1wbGF0ZVVybDogJ2hlYWRlci1tZW51LmNvbXBvbmVudC5odG1sJ1xufSlcblxuZXhwb3J0IGNsYXNzIEFYUERlc2lnbmVySGVhZGVyTWVudUNvbXBvbmVudCB7XG4gICAgcHJvdGVjdGVkIHNlcnZpY2UgPSBpbmplY3QoQVhQRGVzaWduZXJTZXJ2aWNlKTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxuICAgIHByaXZhdGUgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoZXZlbnQuc2hpZnRLZXkgJiYgZXZlbnQudGFyZ2V0ID09IGRvY3VtZW50LmJvZHkpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ0tleU4nOlxuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UubmV3KCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vXG4gICAgICAgIGlmIChldmVudC5jdHJsS2V5ICYmIGV2ZW50LnRhcmdldCA9PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhldmVudC5jb2RlKVxuICAgICAgICAgICAgc3dpdGNoIChldmVudC5jb2RlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnS2V5Uic6XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLm9wZW5QcmV2aWV3V2luZG93KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2Uub3BlblByZXZpZXdEaWFsb2coKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ0tleVonOlxuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UudW5kbygpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdLZXlZJzpcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnJlZG8oKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnS2V5Qyc6XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlcnZpY2UuY2FuQ3V0Q29weSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmNvcHkoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdLZXlEJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VydmljZS5jYW5DdXRDb3B5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UuY2xvbmUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdLZXlYJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VydmljZS5jYW5DdXRDb3B5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UuY3V0KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnS2V5Vic6XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlcnZpY2UuY2FuUGFzdGUoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZS5wYXN0ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIjxheC1tZW51IFtvcGVuT25dPVwiJ2hvdmVyJ1wiIFtoYXNBcnJvd109XCJmYWxzZVwiPlxuICA8YXgtbWVudS1pdGVtPlxuICAgIDxheC10ZXh0PkhvbWU8L2F4LXRleHQ+XG4gICAgPGF4LW1lbnUtaXRlbSAob25DbGljayk9XCJzZXJ2aWNlLm5ldygpXCI+XG4gICAgICA8YXgtdGV4dD5OZXc8L2F4LXRleHQ+XG4gICAgICA8YXgtc3VmZml4PlxuICAgICAgICA8YXgtdGV4dD4gU2hpZnQrTiA8L2F4LXRleHQ+XG4gICAgICA8L2F4LXN1ZmZpeD5cbiAgICA8L2F4LW1lbnUtaXRlbT5cbiAgICA8YXgtZGl2aWRlcj48L2F4LWRpdmlkZXI+XG4gICAgPGF4LW1lbnUtaXRlbT5cbiAgICAgIDxheC10ZXh0PkV4cG9ydDwvYXgtdGV4dD5cbiAgICAgIDxheC1tZW51LWl0ZW0gKG9uQ2xpY2spPVwic2VydmljZS5kb3dubG9hZEpzb24oKVwiPlxuICAgICAgICA8YXgtdGV4dD5Eb3dubG9hZCBKU09OPC9heC10ZXh0PlxuICAgICAgPC9heC1tZW51LWl0ZW0+XG4gICAgPC9heC1tZW51LWl0ZW0+XG4gICAgPGF4LW1lbnUtaXRlbT5cbiAgICAgIDxheC10ZXh0PkltcG9ydDwvYXgtdGV4dD5cbiAgICAgIDxheC1tZW51LWl0ZW0gKG9uQ2xpY2spPVwic2VydmljZS5pbXBvcnRKU29uKClcIj5cbiAgICAgICAgPGF4LXRleHQ+SW1wb3J0IEpTT048L2F4LXRleHQ+XG4gICAgICA8L2F4LW1lbnUtaXRlbT5cbiAgICA8L2F4LW1lbnUtaXRlbT5cbiAgPC9heC1tZW51LWl0ZW0+XG4gIDxheC1tZW51LWl0ZW0+XG4gICAgPGF4LXRleHQ+RWRpdDwvYXgtdGV4dD5cbiAgICA8YXgtbWVudS1pdGVtIFtkaXNhYmxlZF09XCIhc2VydmljZS5jYW5VbmRvKClcIiAob25DbGljayk9XCJzZXJ2aWNlLnVuZG8oKVwiPlxuICAgICAgPGF4LXRleHQ+VW5kbzwvYXgtdGV4dD5cbiAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgIDxheC1pY29uPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtcm90YXRlLWxlZnRcIj48L2k+XG4gICAgICAgIDwvYXgtaWNvbj5cbiAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgPGF4LXRleHQ+IEN0cmwrWiA8L2F4LXRleHQ+XG4gICAgICA8L2F4LXN1ZmZpeD5cbiAgICA8L2F4LW1lbnUtaXRlbT5cbiAgICA8YXgtbWVudS1pdGVtIFtkaXNhYmxlZF09XCIhc2VydmljZS5jYW5SZWRvKClcIiAob25DbGljayk9XCJzZXJ2aWNlLnJlZG8oKVwiPlxuICAgICAgPGF4LXRleHQ+UmVkbzwvYXgtdGV4dD5cbiAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgIDxheC1pY29uPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtcm90YXRlLXJpZ2h0XCI+PC9pPlxuICAgICAgICA8L2F4LWljb24+XG4gICAgICA8L2F4LXByZWZpeD5cbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC10ZXh0PiBDdHJsK1kgPC9heC10ZXh0PlxuICAgICAgPC9heC1zdWZmaXg+XG4gICAgPC9heC1tZW51LWl0ZW0+XG4gICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxuICAgIDxheC1tZW51LWl0ZW0gW2Rpc2FibGVkXT1cIiFzZXJ2aWNlLmNhbkN1dENvcHkoKVwiIChvbkNsaWNrKT1cInNlcnZpY2UuY3V0KClcIj5cbiAgICAgIDxheC10ZXh0PkN1dDwvYXgtdGV4dD5cbiAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgIDxheC1pY29uPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtY3V0XCI+PC9pPlxuICAgICAgICA8L2F4LWljb24+XG4gICAgICA8L2F4LXByZWZpeD5cbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC10ZXh0PiBDdHJsK1ggPC9heC10ZXh0PlxuICAgICAgPC9heC1zdWZmaXg+XG4gICAgPC9heC1tZW51LWl0ZW0+XG4gICAgPGF4LW1lbnUtaXRlbSBbZGlzYWJsZWRdPVwiIXNlcnZpY2UuY2FuQ3V0Q29weSgpXCIgKG9uQ2xpY2spPVwic2VydmljZS5jb3B5KClcIj5cbiAgICAgIDxheC10ZXh0PkNvcHk8L2F4LXRleHQ+XG4gICAgICA8YXgtcHJlZml4PlxuICAgICAgICA8YXgtaWNvbj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWNvcHlcIj48L2k+XG4gICAgICAgIDwvYXgtaWNvbj5cbiAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgPGF4LXRleHQ+IEN0cmwrQyA8L2F4LXRleHQ+XG4gICAgICA8L2F4LXN1ZmZpeD5cbiAgICA8L2F4LW1lbnUtaXRlbT5cbiAgICA8YXgtbWVudS1pdGVtIFtkaXNhYmxlZF09XCIhc2VydmljZS5jYW5QYXN0ZSgpXCIgKG9uQ2xpY2spPVwic2VydmljZS5wYXN0ZSgpXCI+XG4gICAgICA8YXgtdGV4dD5QYXN0ZTwvYXgtdGV4dD5cbiAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgIDxheC1pY29uPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtcGFzdGVcIj48L2k+XG4gICAgICAgIDwvYXgtaWNvbj5cbiAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgPGF4LXRleHQ+Q3RybCtWPC9heC10ZXh0PlxuICAgICAgPC9heC1zdWZmaXg+XG4gICAgPC9heC1tZW51LWl0ZW0+XG4gIDwvYXgtbWVudS1pdGVtPlxuICA8YXgtbWVudS1pdGVtPlxuICAgIDxheC10ZXh0PlJ1bjwvYXgtdGV4dD5cbiAgICA8YXgtbWVudS1pdGVtIChvbkNsaWNrKT1cInNlcnZpY2Uub3BlblByZXZpZXdEaWFsb2coKVwiPlxuICAgICAgPGF4LXRleHQ+UHJldmlldzwvYXgtdGV4dD5cbiAgICAgIDxheC1wcmVmaXg+XG4gICAgICA8L2F4LXByZWZpeD5cbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC10ZXh0PkN0cmwrUjwvYXgtdGV4dD5cbiAgICAgIDwvYXgtc3VmZml4PlxuICAgIDwvYXgtbWVudS1pdGVtPlxuICAgIDxheC1tZW51LWl0ZW0gKG9uQ2xpY2spPVwic2VydmljZS5vcGVuUHJldmlld1dpbmRvdygpXCI+XG4gICAgICA8YXgtdGV4dD5QcmV2aWV3IGluIHNlcGVyYXRlIHdpbmRvdzwvYXgtdGV4dD5cbiAgICAgIDxheC1wcmVmaXg+IDwvYXgtcHJlZml4PlxuICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgPGF4LXRleHQ+Q3RybCtTaGlmdCtGNTwvYXgtdGV4dD5cbiAgICAgIDwvYXgtc3VmZml4PlxuICAgIDwvYXgtbWVudS1pdGVtPlxuICA8L2F4LW1lbnUtaXRlbT5cbiAgPGF4LW1lbnUtaXRlbT5cbiAgICA8YXgtdGV4dD5IZWxwPC9heC10ZXh0PlxuICAgIDxheC1tZW51LWl0ZW0+XG4gICAgICA8YXgtdGV4dD5BYm91dDwvYXgtdGV4dD5cbiAgICA8L2F4LW1lbnUtaXRlbT5cbiAgPC9heC1tZW51LWl0ZW0+XG48L2F4LW1lbnU+Il19
@@ -0,0 +1,54 @@
1
+ import { AXDecoratorModule } from '@acorex/components/decorators';
2
+ import { AXMenuModule } from '@acorex/components/menu';
3
+ import { CommonModule } from '@angular/common';
4
+ import { Component, model } from '@angular/core';
5
+ import { AXButtonGroupModule } from '@acorex/components/button-group';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@acorex/components/button-group";
8
+ import * as i2 from "@acorex/components/decorators";
9
+ export class AXPDesignerViewSizeToolbarComponent {
10
+ constructor() {
11
+ this.size = model('xl');
12
+ }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerViewSizeToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", type: AXPDesignerViewSizeToolbarComponent, isStandalone: true, selector: "axp-designer-view-sizes", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { size: "sizeChange" }, ngImport: i0, template: `
15
+ <ax-button-group color="ghost" look="twotone" [selection]="'single'">
16
+ <ax-button-group-item [selected]="size() == 'xl'" [data]="'xl'" (onClick)="size.set('xl')">
17
+ <ax-icon class="fa-light fa-desktop"></ax-icon>
18
+ </ax-button-group-item>
19
+ <ax-button-group-item [selected]="size() == 'lg'" [data]="'lg'" (onClick)="size.set('lg')">
20
+ <ax-icon class="fa-light fa-tablet"></ax-icon>
21
+ </ax-button-group-item>
22
+ <ax-button-group-item [selected]="size() == 'sm'" [data]="'sm'" (onClick)="size.set('sm')">
23
+ <ax-icon class="fa-light fa-mobile"></ax-icon>
24
+ </ax-button-group-item>
25
+ </ax-button-group>
26
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonGroupModule }, { kind: "component", type: i1.AXButtonGroupComponent, selector: "ax-button-group", inputs: ["disabled", "color", "look", "selection"], outputs: ["onBlur", "onFocus", "lookChange", "colorChange", "disabledChange", "onClick", "selectionChange"] }, { kind: "component", type: i1.AXButtonGroupItemComponent, selector: "ax-button-group-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXMenuModule }] }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerViewSizeToolbarComponent, decorators: [{
29
+ type: Component,
30
+ args: [{
31
+ selector: 'axp-designer-view-sizes',
32
+ standalone: true,
33
+ imports: [
34
+ CommonModule,
35
+ AXButtonGroupModule,
36
+ AXDecoratorModule,
37
+ AXMenuModule,
38
+ ],
39
+ template: `
40
+ <ax-button-group color="ghost" look="twotone" [selection]="'single'">
41
+ <ax-button-group-item [selected]="size() == 'xl'" [data]="'xl'" (onClick)="size.set('xl')">
42
+ <ax-icon class="fa-light fa-desktop"></ax-icon>
43
+ </ax-button-group-item>
44
+ <ax-button-group-item [selected]="size() == 'lg'" [data]="'lg'" (onClick)="size.set('lg')">
45
+ <ax-icon class="fa-light fa-tablet"></ax-icon>
46
+ </ax-button-group-item>
47
+ <ax-button-group-item [selected]="size() == 'sm'" [data]="'sm'" (onClick)="size.set('sm')">
48
+ <ax-icon class="fa-light fa-mobile"></ax-icon>
49
+ </ax-button-group-item>
50
+ </ax-button-group>
51
+ `
52
+ }]
53
+ }] });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1zaXplLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL3NpemUtbW9kZS92aWV3LXNpemUtdG9vbGJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7OztBQTBCdEUsTUFBTSxPQUFPLG1DQUFtQztJQXhCaEQ7UUEwQlcsU0FBSSxHQUFHLEtBQUssQ0FBUyxJQUFJLENBQUMsQ0FBQztLQUVyQzs4R0FKWSxtQ0FBbUM7a0dBQW5DLG1DQUFtQyxxUEFmbEM7Ozs7Ozs7Ozs7OztLQVlULDJEQWpCRyxZQUFZLDhCQUNaLG1CQUFtQiw2ZkFDbkIsaUJBQWlCLCtIQUNqQixZQUFZOzsyRkFpQlAsbUNBQW1DO2tCQXhCL0MsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLFlBQVk7cUJBQ2Y7b0JBQ0QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7S0FZVDtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhNZW51TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21lbnUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBtb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhCdXR0b25Hcm91cE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24tZ3JvdXAnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2F4cC1kZXNpZ25lci12aWV3LXNpemVzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBBWEJ1dHRvbkdyb3VwTW9kdWxlLFxuICAgICAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICAgICAgQVhNZW51TW9kdWxlLFxuICAgIF0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGF4LWJ1dHRvbi1ncm91cCBjb2xvcj1cImdob3N0XCIgbG9vaz1cInR3b3RvbmVcIiBbc2VsZWN0aW9uXT1cIidzaW5nbGUnXCI+XG4gICAgICAgICAgICA8YXgtYnV0dG9uLWdyb3VwLWl0ZW0gW3NlbGVjdGVkXT1cInNpemUoKSA9PSAneGwnXCIgW2RhdGFdPVwiJ3hsJ1wiIChvbkNsaWNrKT1cInNpemUuc2V0KCd4bCcpXCI+XG4gICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtbGlnaHQgZmEtZGVza3RvcFwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgIDwvYXgtYnV0dG9uLWdyb3VwLWl0ZW0+XG4gICAgICAgICAgICA8YXgtYnV0dG9uLWdyb3VwLWl0ZW0gW3NlbGVjdGVkXT1cInNpemUoKSA9PSAnbGcnXCIgW2RhdGFdPVwiJ2xnJ1wiIChvbkNsaWNrKT1cInNpemUuc2V0KCdsZycpXCI+XG4gICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtbGlnaHQgZmEtdGFibGV0XCI+PC9heC1pY29uPlxuICAgICAgICAgICAgPC9heC1idXR0b24tZ3JvdXAtaXRlbT5cbiAgICAgICAgICAgIDxheC1idXR0b24tZ3JvdXAtaXRlbSBbc2VsZWN0ZWRdPVwic2l6ZSgpID09ICdzbSdcIiBbZGF0YV09XCInc20nXCIgKG9uQ2xpY2spPVwic2l6ZS5zZXQoJ3NtJylcIj5cbiAgICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1saWdodCBmYS1tb2JpbGVcIj48L2F4LWljb24+XG4gICAgICAgICAgICA8L2F4LWJ1dHRvbi1ncm91cC1pdGVtPlxuICAgICAgICA8L2F4LWJ1dHRvbi1ncm91cD5cbiAgICBgXG59KVxuXG5leHBvcnQgY2xhc3MgQVhQRGVzaWduZXJWaWV3U2l6ZVRvb2xiYXJDb21wb25lbnQge1xuXG4gICAgcHVibGljIHNpemUgPSBtb2RlbDxzdHJpbmc+KCd4bCcpO1xuXG59Il19
@@ -4,10 +4,10 @@ import { AXDecoratorModule } from '@acorex/components/decorators';
4
4
  import { AXBasePageComponent } from '@acorex/components/page';
5
5
  import { AXSearchBoxModule } from '@acorex/components/search-box';
6
6
  import { AXTabsModule } from '@acorex/components/tabs';
7
- import { AXPStickyDirective } from '@acorex/platform/common';
7
+ import { AXPSettingsService, AXPStickyDirective } from '@acorex/platform/common';
8
8
  import { AXP_WIDGETS_GROUPS } from '@acorex/platform/layout/builder';
9
9
  import { CommonModule } from '@angular/common';
10
- import { Component, computed, model, signal, ViewEncapsulation } from '@angular/core';
10
+ import { Component, computed, inject, model, signal, ViewEncapsulation } from '@angular/core';
11
11
  import { FormsModule } from '@angular/forms';
12
12
  import { orderBy } from 'lodash-es';
13
13
  import * as i0 from "@angular/core";
@@ -21,6 +21,8 @@ import * as i7 from "@acorex/components/search-box";
21
21
  export class AXPDesignerWidgetPickerComponent extends AXBasePageComponent {
22
22
  constructor() {
23
23
  super(...arguments);
24
+ this.settingService = inject(AXPSettingsService);
25
+ this.pinnedSettingKey = 'forms:widgets:picker:pinned';
24
26
  this.searchTerm = model('');
25
27
  // Signals
26
28
  this.widgets = [];
@@ -31,23 +33,24 @@ export class AXPDesignerWidgetPickerComponent extends AXBasePageComponent {
31
33
  this.orderedList = computed(() => {
32
34
  const search = this.searchTerm().toLowerCase();
33
35
  const selectedTabName = this.selectedTab().name;
34
- return orderBy(this.displayWidgets().filter(w => {
36
+ return orderBy(this.displayWidgets().filter((w) => {
35
37
  const matchesTab = selectedTabName === 'all' || w.group.name === selectedTabName;
36
38
  const matchesSearch = !search || w.title.toLowerCase().includes(search) || w.description?.toLowerCase().includes(search);
37
39
  return matchesTab && matchesSearch;
38
40
  }), ['pinned', 'title'], ['desc', 'asc']);
39
41
  });
40
42
  // Pinned and regular lists
41
- this.pinnedList = computed(() => this.orderedList().filter(c => c.pinned));
42
- this.regularList = computed(() => this.orderedList().filter(c => !c.pinned));
43
+ this.pinnedList = computed(() => this.orderedList().filter((c) => c.pinned));
44
+ this.regularList = computed(() => this.orderedList().filter((c) => !c.pinned));
43
45
  // Tabs for the widget groups
44
- this.tabs = orderBy([{ name: 'all', title: 'All', order: 0 }, ...AXP_WIDGETS_GROUPS], c => c.order);
46
+ this.tabs = orderBy([{ name: 'all', title: 'All', order: 0 }, ...AXP_WIDGETS_GROUPS], (c) => c.order);
45
47
  this.currentTabIndex = signal(0);
46
48
  this.selectedTab = computed(() => this.tabs[this.currentTabIndex()]);
47
49
  }
48
- ngOnInit() {
50
+ async ngOnInit() {
49
51
  super.ngOnInit();
50
- this.displayWidgets.set(this.widgets.map(c => ({ ...c, pinned: false })));
52
+ const pinnedWidgets = (await this.settingService.get(this.pinnedSettingKey)) || [];
53
+ this.displayWidgets.set(this.widgets.map((c) => ({ ...c, pinned: pinnedWidgets.includes(c.name) })));
51
54
  }
52
55
  handleTabChange(event) {
53
56
  const indx = event.index;
@@ -56,13 +59,12 @@ export class AXPDesignerWidgetPickerComponent extends AXBasePageComponent {
56
59
  }
57
60
  }
58
61
  handleClick(event, widget) {
59
- //this.close({ widgets: [widget] });
60
62
  if (event.ctrlKey) {
61
63
  const currentSelection = this.selectedWidgets();
62
- const isAlreadySelected = currentSelection.some(w => w === widget);
64
+ const isAlreadySelected = currentSelection.some((w) => w === widget);
63
65
  if (isAlreadySelected) {
64
66
  // Deselect widget if already selected
65
- this.selectedWidgets.set(currentSelection.filter(w => w !== widget));
67
+ this.selectedWidgets.set(currentSelection.filter((w) => w !== widget));
66
68
  }
67
69
  else {
68
70
  // Add widget to selection
@@ -71,13 +73,26 @@ export class AXPDesignerWidgetPickerComponent extends AXBasePageComponent {
71
73
  }
72
74
  else {
73
75
  // If CTRL is not pressed, select only the clicked widget
74
- //this.selectedWidgets.set([widget]);
75
76
  this.close({ widgets: [widget] });
76
77
  }
77
78
  }
78
- handlePinClick(e, widget) {
79
+ async handlePinClick(e, widget) {
79
80
  e.stopPropagation();
80
81
  widget.pinned = !widget.pinned;
82
+ // Get the current list of pinned widgets from settings
83
+ let pinnedWidgets = (await this.settingService.get(this.pinnedSettingKey)) || [];
84
+ // Update the list of pinned widgets based on the pinned status
85
+ if (widget.pinned) {
86
+ if (!pinnedWidgets.includes(widget.name)) {
87
+ pinnedWidgets.push(widget.name);
88
+ }
89
+ }
90
+ else {
91
+ pinnedWidgets = pinnedWidgets.filter((name) => name !== widget.name);
92
+ }
93
+ // Save the updated list of pinned widgets
94
+ await this.settingService.set(this.pinnedSettingKey, pinnedWidgets);
95
+ // Trigger a re-render of the widgets
81
96
  this.displayWidgets.set([...this.displayWidgets()]);
82
97
  }
83
98
  // Check if a widget is selected
@@ -88,10 +103,19 @@ export class AXPDesignerWidgetPickerComponent extends AXBasePageComponent {
88
103
  this.close({ widgets: this.selectedWidgets() });
89
104
  }
90
105
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerWidgetPickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
91
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPDesignerWidgetPickerComponent, 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 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-neutral-100 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\"\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));--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-primary-100),var(--tw-bg-opacity))}.selected-widget i{--tw-text-opacity: 1;color:rgba(var(--ax-color-primary-500),var(--tw-text-opacity))}\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
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPDesignerWidgetPickerComponent, 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));--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-primary-100),var(--tw-bg-opacity))}.selected-widget i{--tw-text-opacity: 1;color:rgba(var(--ax-color-primary-500),var(--tw-text-opacity))}\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 }); }
92
107
  }
93
108
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerWidgetPickerComponent, decorators: [{
94
109
  type: Component,
95
- args: [{ standalone: true, imports: [CommonModule, AXCommonModule, FormsModule, AXButtonModule, AXDecoratorModule, AXTabsModule, AXSearchBoxModule, AXPStickyDirective], 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 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-neutral-100 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\"\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));--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-primary-100),var(--tw-bg-opacity))}.selected-widget i{--tw-text-opacity: 1;color:rgba(var(--ax-color-primary-500),var(--tw-text-opacity))}\n"] }]
110
+ args: [{ standalone: true, imports: [
111
+ CommonModule,
112
+ AXCommonModule,
113
+ FormsModule,
114
+ AXButtonModule,
115
+ AXDecoratorModule,
116
+ AXTabsModule,
117
+ AXSearchBoxModule,
118
+ AXPStickyDirective,
119
+ ], 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));--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-primary-100),var(--tw-bg-opacity))}.selected-widget i{--tw-text-opacity: 1;color:rgba(var(--ax-color-primary-500),var(--tw-text-opacity))}\n"] }]
96
120
  }] });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL2Rlc2lnbmVyL2NvbXBvbmVudHMvd2lkZ2V0LXBpY2tlci93aWRnZXQtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvY29tcG9uZW50cy93aWRnZXQtcGlja2VyL3dpZGdldC1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUEwQixNQUFNLHlCQUF5QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBbUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxF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LGdDQUFnQztJQUN0QixnQkFBZ0IsQ0FBQyxNQUE4QjtRQUN2RCxPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVTLHNCQUFzQjtRQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQzs4R0FsRlUsZ0NBQWdDO2tHQUFoQyxnQ0FBZ0MsK1JDMUI3Qyw4eEhBMEVDLDhYRHJEVyxZQUFZLG1TQUFFLGNBQWMsMkpBQUUsV0FBVyw4VkFBRSxjQUFjLHVaQUFFLGlCQUFpQixzV0FBRSxZQUFZLGthQUFFLGlCQUFpQiw0WEFBRSxrQkFBa0I7OzJGQUtoSSxnQ0FBZ0M7a0JBUDVDLFNBQVM7aUNBQ0ksSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsQ0FBQyxpQkFFN0gsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWENvbW1vbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWEJhc2VQYWdlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BhZ2UnO1xuaW1wb3J0IHsgQVhTZWFyY2hCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VhcmNoLWJveCc7XG5pbXBvcnQgeyBBWFRhYnNNb2R1bGUsIEFYVGFiU3RyaXBDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFicyc7XG5pbXBvcnQgeyBBWFBTdGlja3lEaXJlY3RpdmUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBfV0lER0VUU19HUk9VUFMsIEFYUFdpZGdldENvbmZpZywgQVhQV2lkZ2V0R3JvdXAgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBtb2RlbCwgc2lnbmFsLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBvcmRlckJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERpc3BsYXlXaWRnZXRDb25maWcgZXh0ZW5kcyBBWFBXaWRnZXRDb25maWcge1xuICBwaW5uZWQ6IGJvb2xlYW47XG59XG5cblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEFYQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgQVhCdXR0b25Nb2R1bGUsIEFYRGVjb3JhdG9yTW9kdWxlLCBBWFRhYnNNb2R1bGUsIEFYU2VhcmNoQm94TW9kdWxlLCBBWFBTdGlja3lEaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZVVybDogJy4vd2lkZ2V0LXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0eWxlVXJsczogWycuL3dpZGdldC1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRGVzaWduZXJXaWRnZXRQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VQYWdlQ29tcG9uZW50IHtcblxuXG4gIHByb3RlY3RlZCBzZWFyY2hUZXJtID0gbW9kZWwoJycpO1xuXG4gIC8vIFNpZ25hbHNcbiAgcHJpdmF0ZSB3aWRnZXRzOiBBWFBXaWRnZXRDb25maWdbXSA9IFtdO1xuICBwcml2YXRlIGRpc3BsYXlXaWRnZXRzID0gc2lnbmFsPEFYUERpc3BsYXlXaWRnZXRDb25maWdbXT4oW10pO1xuXG4gIC8vIFNpZ25hbCB0byB0cmFjayBzZWxlY3RlZCB3aWRnZXRzXG4gIHByb3RlY3RlZCBzZWxlY3RlZFdpZGdldHMgPSBzaWduYWw8QVhQRGlzcGxheVdpZGdldENvbmZpZ1tdPihbXSk7XG5cbiAgLy8gQ29tcHV0ZWQgZm9yIGZpbHRlcmVkIGFuZCBvcmRlcmVkIHdpZGdldCBsaXN0XG4gIHByaXZhdGUgb3JkZXJlZExpc3QgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc2VhcmNoID0gdGhpcy5zZWFyY2hUZXJtKCkudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBzZWxlY3RlZFRhYk5hbWUgPSB0aGlzLnNlbGVjdGVkVGFiKCkubmFtZTtcblxuICAgIHJldHVybiBvcmRlckJ5KFxuICAgICAgdGhpcy5kaXNwbGF5V2lkZ2V0cygpLmZpbHRlcih3ID0+IHtcbiAgICAgICAgY29uc3QgbWF0Y2hlc1RhYiA9IHNlbGVjdGVkVGFiTmFtZSA9PT0gJ2FsbCcgfHwgdy5ncm91cC5uYW1lID09PSBzZWxlY3RlZFRhYk5hbWU7XG4gICAgICAgIGNvbnN0IG1hdGNoZXNTZWFyY2ggPSAhc2VhcmNoIHx8IHcudGl0bGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpIHx8IHcuZGVzY3JpcHRpb24/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoKTtcbiAgICAgICAgcmV0dXJuIG1hdGNoZXNUYWIgJiYgbWF0Y2hlc1NlYXJjaDtcbiAgICAgIH0pLFxuICAgICAgWydwaW5uZWQnLCAndGl0bGUnXSwgWydkZXNjJywgJ2FzYyddXG4gICAgKTtcbiAgfSk7XG5cbiAgLy8gUGlubmVkIGFuZCByZWd1bGFyIGxpc3RzXG4gIHByb3RlY3RlZCBwaW5uZWRMaXN0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcmRlcmVkTGlzdCgpLmZpbHRlcihjID0+IGMucGlubmVkKSk7XG4gIHByb3RlY3RlZCByZWd1bGFyTGlzdCA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3JkZXJlZExpc3QoKS5maWx0ZXIoYyA9PiAhYy5waW5uZWQpKTtcblxuICAvLyBUYWJzIGZvciB0aGUgd2lkZ2V0IGdyb3Vwc1xuICBwcm90ZWN0ZWQgdGFiczogQVhQV2lkZ2V0R3JvdXBbXSA9IG9yZGVyQnkoW3sgbmFtZTogJ2FsbCcsIHRpdGxlOiAnQWxsJywgb3JkZXI6IDAgfSwgLi4uQVhQX1dJREdFVFNfR1JPVVBTXSwgYyA9PiBjLm9yZGVyKTtcbiAgcHJvdGVjdGVkIGN1cnJlbnRUYWJJbmRleCA9IHNpZ25hbCgwKTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkVGFiID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50YWJzW3RoaXMuY3VycmVudFRhYkluZGV4KCldKTtcblxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuZGlzcGxheVdpZGdldHMuc2V0KHRoaXMud2lkZ2V0cy5tYXAoYyA9PiAoeyAuLi5jLCBwaW5uZWQ6IGZhbHNlIH0pKSlcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVUYWJDaGFuZ2UoZXZlbnQ6IEFYVGFiU3RyaXBDaGFuZ2VkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbmR4ID0gZXZlbnQuaW5kZXg7XG4gICAgaWYgKHRoaXMuY3VycmVudFRhYkluZGV4KCkgIT0gaW5keCkge1xuICAgICAgdGhpcy5jdXJyZW50VGFiSW5kZXguc2V0KGluZHgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDbGljayhldmVudDogTW91c2VFdmVudCwgd2lkZ2V0OiBBWFBEaXNwbGF5V2lkZ2V0Q29uZmlnKSB7XG4gICAgLy90aGlzLmNsb3NlKHsgd2lkZ2V0czogW3dpZGdldF0gfSk7XG4gICAgaWYgKGV2ZW50LmN0cmxLZXkpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRTZWxlY3Rpb24gPSB0aGlzLnNlbGVjdGVkV2lkZ2V0cygpO1xuICAgICAgY29uc3QgaXNBbHJlYWR5U2VsZWN0ZWQgPSBjdXJyZW50U2VsZWN0aW9uLnNvbWUodyA9PiB3ID09PSB3aWRnZXQpO1xuXG4gICAgICBpZiAoaXNBbHJlYWR5U2VsZWN0ZWQpIHtcbiAgICAgICAgLy8gRGVzZWxlY3Qgd2lkZ2V0IGlmIGFscmVhZHkgc2VsZWN0ZWRcbiAgICAgICAgdGhpcy5zZWxlY3RlZFdpZGdldHMuc2V0KGN1cnJlbnRTZWxlY3Rpb24uZmlsdGVyKHcgPT4gdyAhPT0gd2lkZ2V0KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBBZGQgd2lkZ2V0IHRvIHNlbGVjdGlvblxuICAgICAgICB0aGlzLnNlbGVjdGVkV2lkZ2V0cy5zZXQoWy4uLmN1cnJlbnRTZWxlY3Rpb24sIHdpZGdldF0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiBDVFJMIGlzIG5vdCBwcmVzc2VkLCBzZWxlY3Qgb25seSB0aGUgY2xpY2tlZCB3aWRnZXRcbiAgICAgIC8vdGhpcy5zZWxlY3RlZFdpZGdldHMuc2V0KFt3aWRnZXRdKTtcbiAgICAgIHRoaXMuY2xvc2UoeyB3aWRnZXRzOiBbd2lkZ2V0XSB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlUGluQ2xpY2soZTogTW91c2VFdmVudCwgd2lkZ2V0OiBBWFBEaXNwbGF5V2lkZ2V0Q29uZmlnKSB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB3aWRnZXQucGlubmVkID0gIXdpZGdldC5waW5uZWQ7XG4gICAgdGhpcy5kaXNwbGF5V2lkZ2V0cy5zZXQoWy4uLnRoaXMuZGlzcGxheVdpZGdldHMoKV0pO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgYSB3aWRnZXQgaXMgc2VsZWN0ZWRcbiAgcHJvdGVjdGVkIGlzV2lkZ2V0U2VsZWN0ZWQod2lkZ2V0OiBBWFBEaXNwbGF5V2lkZ2V0Q29uZmlnKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRXaWRnZXRzKCkuaW5jbHVkZXMod2lkZ2V0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDb25maXJtU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2UoeyB3aWRnZXRzOiB0aGlzLnNlbGVjdGVkV2lkZ2V0cygpIH0pO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGxnOmF4LWgtWzc1dmhdXCI+XG4gICAgPGRpdj5cbiAgICAgICAgPGF4LXRhYnMgW2xvb2tdPVwiJ3dpdGgtbGluZSdcIiAob25BY3RpdmVUYWJDaGFuZ2VkKT1cImhhbmRsZVRhYkNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICBAZm9yKHcgb2YgdGFiczt0cmFjayAkaW5kZXgpXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICA8YXgtdGFiLWl0ZW0gW3RleHRdPVwidy50aXRsZVwiIFtrZXldPVwiJGluZGV4LnRvU3RyaW5nKClcIlxuICAgICAgICAgICAgICAgIFthY3RpdmVdPVwiY3VycmVudFRhYkluZGV4KCkgPT09ICRpbmRleFwiPjwvYXgtdGFiLWl0ZW0+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvYXgtdGFicz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtb3ZlcmZsb3ctYXV0b1wiICNjb250ZW50PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtcC00IGF4LXN0aWNreSBheC10b3AtMCBheC16LTEwIGF4LXRyYW5zaXRpb24tYWxsIFwiICNzdGlja3k9XCJheHBTdGlja3lcIlxuICAgICAgICAgICAgW2F4cFN0aWNreV09XCInYXgtYmctc3VyZmFjZSBheC1zaGFkb3cteGwnXCIgW3N0aWNreVBhcmVudF09XCJjb250ZW50XCIgW3N0aWNreU9mZnNldF09XCIxMFwiPlxuICAgICAgICAgICAgPGF4LXNlYXJjaC1ib3ggbG9vaz1cImZpbGxcIiBwbGFjZWhvbGRlcj1cImUuZy4gQnV0dG9uLCBUZXh0LCAuLi5cIiBbKG5nTW9kZWwpXT1cInNlYXJjaFRlcm1cIiBbZGVsYXlUaW1lXT1cIjMwMFwiXG4gICAgICAgICAgICAgICAgW2F4QXV0b0ZvY3VzXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8YXgtY2xlYXItYnV0dG9uPjwvYXgtY2xlYXItYnV0dG9uPlxuICAgICAgICAgICAgPC9heC1zZWFyY2gtYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtcC00IGF4LXB0LTBcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaXRlbVRwbCBsZXQtdz5cbiAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJoYW5kbGVDbGljaygkZXZlbnQsdylcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LXB5LTIgYXgtcHgtMyBheC1yb3VuZGVkLW1kIGF4LWZsZXggYXgtZ2FwLTMgYXgtaXRlbXMtY2VudGVyIGF4LWdyb3VwIGhvdmVyOmF4LWJnLXByaW1hcnktMTAwIGF4LWN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmF4LWJnLXByaW1hcnktMTAwXT1cImlzV2lkZ2V0U2VsZWN0ZWQodylcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXctMTAgYXgtaC0xMCBheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWNlbnRlciBheC1yb3VuZGVkLW1kIGF4LWJvcmRlciBheC1ib3JkZXItbmV1dHJhbC0yMDAgYXgtdGV4dC1uZXV0cmFsLTUwMCBheC1iZy1uZXV0cmFsLTEwMCAgZ3JvdXAtaG92ZXI6YXgtYmctcHJpbWFyeS0yMDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmF4LWJnLXByaW1hcnktMjAwXT1cImlzV2lkZ2V0U2VsZWN0ZWQodylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cIncuaWNvblwiIGNsYXNzPVwiYXgtdGV4dC1sZyBncm91cC1ob3ZlcjpheC10ZXh0LXByaW1hcnktNzAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXgtdGV4dC1wcmltYXJ5LTcwMF09XCJpc1dpZGdldFNlbGVjdGVkKHcpXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTEgYXgtZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZCBheC10ZXh0LXNtXCI+e3t3LnRpdGxlfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJoYW5kbGVQaW5DbGljaygkZXZlbnQsdylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICh3LnBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLXRodW1idGFjayBheC10ZXh0LXNtIGF4LXRleHQtbmV1dHJhbC01MDAgYXgtcm90YXRlLTQ1XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEtbGlnaHQgZmEtdGh1bWJ0YWNrIGF4LXRleHQtc20gYXgtdGV4dC1uZXV0cmFsLTUwMCBheC1yb3RhdGUtNDUgYXgtaW52aXNpYmxlIGdyb3VwLWhvdmVyOmF4LXZpc2libGVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC10ZXh0LXhzIGF4LXRleHQtbmV1dHJhbC00MDAgYXgtdHJ1bmNhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3cuZGVzY3JpcHRpb259fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZCBheC1ncmlkLWNvbHMtMiBheC1nYXAtMiBcIj5cbiAgICAgICAgICAgICAgICBAZm9yKHcgb2YgcGlubmVkTGlzdCgpO3RyYWNrICRpbmRleClcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UcGw7Y29udGV4dDp7ICRpbXBsaWNpdDogd31cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBpZihwaW5uZWRMaXN0KCkubGVuZ3RoKVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgPGhyIGNsYXNzPVwiYXgtbXktNCBheC1ib3JkZXItZGFzaGVkXCI+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZCBheC1ncmlkLWNvbHMtMiBheC1nYXAtMiBcIj5cbiAgICAgICAgICAgICAgICBAZm9yKHcgb2YgcmVndWxhckxpc3QoKTt0cmFjayAkaW5kZXgpXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVHBsO2NvbnRleHQ6eyAkaW1wbGljaXQ6IHd9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5AaWYoc2VsZWN0ZWRXaWRnZXRzKCkubGVuZ3RoKVxue1xuPGF4LWZvb3Rlcj5cbiAgICA8YXgtc3VmZml4PlxuICAgICAgICA8YXgtYnV0dG9uIGxvb2s9XCJzb2xpZFwiIGNvbG9yPVwicHJpbWFyeVwiIHRleHQ9XCJ7eyBzZWxlY3RlZFdpZGdldHMoKS5sZW5ndGggfX0gU2VsZWN0ZWRcIlxuICAgICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlQ29uZmlybVNlbGVjdGlvbigpXCI+PC9heC1idXR0b24+XG4gICAgPC9heC1zdWZmaXg+XG48L2F4LWZvb3Rlcj5cbn0iXX0=
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL2Rlc2lnbmVyL2NvbXBvbmVudHMvd2lkZ2V0LXBpY2tlci93aWRnZXQtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvY29tcG9uZW50cy93aWRnZXQtcGlja2VyL3dpZGdldC1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUEwQixNQUFNLHlCQUF5QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBbUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdC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LHNCQUFzQjtRQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQzs4R0F0R1UsZ0NBQWdDO2tHQUFoQyxnQ0FBZ0MsK1JDakM3QyxrMUhBMEVDLDhYRHRERyxZQUFZLG1TQUNaLGNBQWMsMkpBQ2QsV0FBVyw4VkFDWCxjQUFjLHVaQUNkLGlCQUFpQixzV0FDakIsWUFBWSxrYUFDWixpQkFBaUIsNFhBQ2pCLGtCQUFrQjs7MkZBTVQsZ0NBQWdDO2tCQWhCNUMsU0FBUztpQ0FDSSxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixrQkFBa0I7cUJBQ25CLGlCQUVjLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhDb21tb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhCYXNlUGFnZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wYWdlJztcbmltcG9ydCB7IEFYU2VhcmNoQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gnO1xuaW1wb3J0IHsgQVhUYWJzTW9kdWxlLCBBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhYnMnO1xuaW1wb3J0IHsgQVhQU2V0dGluZ3NTZXJ2aWNlLCBBWFBTdGlja3lEaXJlY3RpdmUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBfV0lER0VUU19HUk9VUFMsIEFYUFdpZGdldENvbmZpZywgQVhQV2lkZ2V0R3JvdXAgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIG1vZGVsLCBzaWduYWwsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IG9yZGVyQnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERpc3BsYXlXaWRnZXRDb25maWcgZXh0ZW5kcyBBWFBXaWRnZXRDb25maWcge1xuICBwaW5uZWQ6IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEFYQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYVGFic01vZHVsZSxcbiAgICBBWFNlYXJjaEJveE1vZHVsZSxcbiAgICBBWFBTdGlja3lEaXJlY3RpdmUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3R5bGVVcmxzOiBbJy4vd2lkZ2V0LXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBEZXNpZ25lcldpZGdldFBpY2tlckNvbXBvbmVudCBleHRlbmRzIEFYQmFzZVBhZ2VDb21wb25lbnQge1xuICBwcml2YXRlIHNldHRpbmdTZXJ2aWNlID0gaW5qZWN0KEFYUFNldHRpbmdzU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGlubmVkU2V0dGluZ0tleSA9ICdmb3Jtczp3aWRnZXRzOnBpY2tlcjpwaW5uZWQnO1xuXG4gIHByb3RlY3RlZCBzZWFyY2hUZXJtID0gbW9kZWwoJycpO1xuXG4gIC8vIFNpZ25hbHNcbiAgcHJpdmF0ZSB3aWRnZXRzOiBBWFBXaWRnZXRDb25maWdbXSA9IFtdO1xuICBwcml2YXRlIGRpc3BsYXlXaWRnZXRzID0gc2lnbmFsPEFYUERpc3BsYXlXaWRnZXRDb25maWdbXT4oW10pO1xuXG4gIC8vIFNpZ25hbCB0byB0cmFjayBzZWxlY3RlZCB3aWRnZXRzXG4gIHByb3RlY3RlZCBzZWxlY3RlZFdpZGdldHMgPSBzaWduYWw8QVhQRGlzcGxheVdpZGdldENvbmZpZ1tdPihbXSk7XG5cbiAgLy8gQ29tcHV0ZWQgZm9yIGZpbHRlcmVkIGFuZCBvcmRlcmVkIHdpZGdldCBsaXN0XG4gIHByaXZhdGUgb3JkZXJlZExpc3QgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc2VhcmNoID0gdGhpcy5zZWFyY2hUZXJtKCkudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBzZWxlY3RlZFRhYk5hbWUgPSB0aGlzLnNlbGVjdGVkVGFiKCkubmFtZTtcblxuICAgIHJldHVybiBvcmRlckJ5KFxuICAgICAgdGhpcy5kaXNwbGF5V2lkZ2V0cygpLmZpbHRlcigodykgPT4ge1xuICAgICAgICBjb25zdCBtYXRjaGVzVGFiID0gc2VsZWN0ZWRUYWJOYW1lID09PSAnYWxsJyB8fCB3Lmdyb3VwLm5hbWUgPT09IHNlbGVjdGVkVGFiTmFtZTtcbiAgICAgICAgY29uc3QgbWF0Y2hlc1NlYXJjaCA9XG4gICAgICAgICAgIXNlYXJjaCB8fCB3LnRpdGxlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoKSB8fCB3LmRlc2NyaXB0aW9uPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCk7XG4gICAgICAgIHJldHVybiBtYXRjaGVzVGFiICYmIG1hdGNoZXNTZWFyY2g7XG4gICAgICB9KSxcbiAgICAgIFsncGlubmVkJywgJ3RpdGxlJ10sXG4gICAgICBbJ2Rlc2MnLCAnYXNjJ11cbiAgICApO1xuICB9KTtcblxuICAvLyBQaW5uZWQgYW5kIHJlZ3VsYXIgbGlzdHNcbiAgcHJvdGVjdGVkIHBpbm5lZExpc3QgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9yZGVyZWRMaXN0KCkuZmlsdGVyKChjKSA9PiBjLnBpbm5lZCkpO1xuICBwcm90ZWN0ZWQgcmVndWxhckxpc3QgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9yZGVyZWRMaXN0KCkuZmlsdGVyKChjKSA9PiAhYy5waW5uZWQpKTtcblxuICAvLyBUYWJzIGZvciB0aGUgd2lkZ2V0IGdyb3Vwc1xuICBwcm90ZWN0ZWQgdGFiczogQVhQV2lkZ2V0R3JvdXBbXSA9IG9yZGVyQnkoXG4gICAgW3sgbmFtZTogJ2FsbCcsIHRpdGxlOiAnQWxsJywgb3JkZXI6IDAgfSwgLi4uQVhQX1dJREdFVFNfR1JPVVBTXSxcbiAgICAoYykgPT4gYy5vcmRlclxuICApO1xuICBwcm90ZWN0ZWQgY3VycmVudFRhYkluZGV4ID0gc2lnbmFsKDApO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRUYWIgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnRhYnNbdGhpcy5jdXJyZW50VGFiSW5kZXgoKV0pO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIGNvbnN0IHBpbm5lZFdpZGdldHMgPSAoYXdhaXQgdGhpcy5zZXR0aW5nU2VydmljZS5nZXQ8c3RyaW5nW10+KHRoaXMucGlubmVkU2V0dGluZ0tleSkpIHx8IFtdO1xuICAgIHRoaXMuZGlzcGxheVdpZGdldHMuc2V0KHRoaXMud2lkZ2V0cy5tYXAoKGMpID0+ICh7IC4uLmMsIHBpbm5lZDogcGlubmVkV2lkZ2V0cy5pbmNsdWRlcyhjLm5hbWUpIH0pKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlVGFiQ2hhbmdlKGV2ZW50OiBBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaW5keCA9IGV2ZW50LmluZGV4O1xuICAgIGlmICh0aGlzLmN1cnJlbnRUYWJJbmRleCgpICE9IGluZHgpIHtcbiAgICAgIHRoaXMuY3VycmVudFRhYkluZGV4LnNldChpbmR4KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQsIHdpZGdldDogQVhQRGlzcGxheVdpZGdldENvbmZpZykge1xuICAgIGlmIChldmVudC5jdHJsS2V5KSB7XG4gICAgICBjb25zdCBjdXJyZW50U2VsZWN0aW9uID0gdGhpcy5zZWxlY3RlZFdpZGdldHMoKTtcbiAgICAgIGNvbnN0IGlzQWxyZWFkeVNlbGVjdGVkID0gY3VycmVudFNlbGVjdGlvbi5zb21lKCh3KSA9PiB3ID09PSB3aWRnZXQpO1xuXG4gICAgICBpZiAoaXNBbHJlYWR5U2VsZWN0ZWQpIHtcbiAgICAgICAgLy8gRGVzZWxlY3Qgd2lkZ2V0IGlmIGFscmVhZHkgc2VsZWN0ZWRcbiAgICAgICAgdGhpcy5zZWxlY3RlZFdpZGdldHMuc2V0KGN1cnJlbnRTZWxlY3Rpb24uZmlsdGVyKCh3KSA9PiB3ICE9PSB3aWRnZXQpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEFkZCB3aWRnZXQgdG8gc2VsZWN0aW9uXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzLnNldChbLi4uY3VycmVudFNlbGVjdGlvbiwgd2lkZ2V0XSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElmIENUUkwgaXMgbm90IHByZXNzZWQsIHNlbGVjdCBvbmx5IHRoZSBjbGlja2VkIHdpZGdldFxuICAgICAgdGhpcy5jbG9zZSh7IHdpZGdldHM6IFt3aWRnZXRdIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVQaW5DbGljayhlOiBNb3VzZUV2ZW50LCB3aWRnZXQ6IEFYUERpc3BsYXlXaWRnZXRDb25maWcpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHdpZGdldC5waW5uZWQgPSAhd2lkZ2V0LnBpbm5lZDtcbiAgICAvLyBHZXQgdGhlIGN1cnJlbnQgbGlzdCBvZiBwaW5uZWQgd2lkZ2V0cyBmcm9tIHNldHRpbmdzXG4gICAgbGV0IHBpbm5lZFdpZGdldHMgPSAoYXdhaXQgdGhpcy5zZXR0aW5nU2VydmljZS5nZXQ8c3RyaW5nW10+KHRoaXMucGlubmVkU2V0dGluZ0tleSkpIHx8IFtdO1xuXG4gICAgLy8gVXBkYXRlIHRoZSBsaXN0IG9mIHBpbm5lZCB3aWRnZXRzIGJhc2VkIG9uIHRoZSBwaW5uZWQgc3RhdHVzXG4gICAgaWYgKHdpZGdldC5waW5uZWQpIHtcbiAgICAgIGlmICghcGlubmVkV2lkZ2V0cy5pbmNsdWRlcyh3aWRnZXQubmFtZSkpIHtcbiAgICAgICAgcGlubmVkV2lkZ2V0cy5wdXNoKHdpZGdldC5uYW1lKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGlubmVkV2lkZ2V0cyA9IHBpbm5lZFdpZGdldHMuZmlsdGVyKChuYW1lKSA9PiBuYW1lICE9PSB3aWRnZXQubmFtZSk7XG4gICAgfVxuXG4gICAgLy8gU2F2ZSB0aGUgdXBkYXRlZCBsaXN0IG9mIHBpbm5lZCB3aWRnZXRzXG4gICAgYXdhaXQgdGhpcy5zZXR0aW5nU2VydmljZS5zZXQodGhpcy5waW5uZWRTZXR0aW5nS2V5LCBwaW5uZWRXaWRnZXRzKTtcblxuICAgIC8vIFRyaWdnZXIgYSByZS1yZW5kZXIgb2YgdGhlIHdpZGdldHNcbiAgICB0aGlzLmRpc3BsYXlXaWRnZXRzLnNldChbLi4udGhpcy5kaXNwbGF5V2lkZ2V0cygpXSk7XG4gIH1cblxuICAvLyBDaGVjayBpZiBhIHdpZGdldCBpcyBzZWxlY3RlZFxuICBwcm90ZWN0ZWQgaXNXaWRnZXRTZWxlY3RlZCh3aWRnZXQ6IEFYUERpc3BsYXlXaWRnZXRDb25maWcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFdpZGdldHMoKS5pbmNsdWRlcyh3aWRnZXQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNvbmZpcm1TZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZSh7IHdpZGdldHM6IHRoaXMuc2VsZWN0ZWRXaWRnZXRzKCkgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGxnOmF4LWgtWzc1dmhdXCI+XG4gICAgPGRpdj5cbiAgICAgICAgPGF4LXRhYnMgW2xvb2tdPVwiJ3dpdGgtbGluZSdcIiAob25BY3RpdmVUYWJDaGFuZ2VkKT1cImhhbmRsZVRhYkNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICBAZm9yKHcgb2YgdGFiczt0cmFjayAkaW5kZXgpXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICA8YXgtdGFiLWl0ZW0gW3RleHRdPVwidy50aXRsZVwiIFtrZXldPVwiJGluZGV4LnRvU3RyaW5nKClcIlxuICAgICAgICAgICAgICAgIFthY3RpdmVdPVwiY3VycmVudFRhYkluZGV4KCkgPT09ICRpbmRleFwiPjwvYXgtdGFiLWl0ZW0+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvYXgtdGFicz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtb3ZlcmZsb3ctYXV0b1wiICNjb250ZW50PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtcC00IGF4LXN0aWNreSBheC10b3AtMCBheC16LTEwIGF4LXRyYW5zaXRpb24tYWxsIFwiICNzdGlja3k9XCJheHBTdGlja3lcIlxuICAgICAgICAgICAgW2F4cFN0aWNreV09XCInYXgtYmctc3VyZmFjZSBheC1zaGFkb3cteGwnXCIgW3N0aWNreVBhcmVudF09XCJjb250ZW50XCIgW3N0aWNreU9mZnNldF09XCIxMFwiPlxuICAgICAgICAgICAgPGF4LXNlYXJjaC1ib3ggbG9vaz1cImZpbGxcIiBwbGFjZWhvbGRlcj1cImUuZy4gQnV0dG9uLCBUZXh0LCAuLi5cIiBbKG5nTW9kZWwpXT1cInNlYXJjaFRlcm1cIiBbZGVsYXlUaW1lXT1cIjMwMFwiXG4gICAgICAgICAgICAgICAgW2F4QXV0b0ZvY3VzXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8YXgtY2xlYXItYnV0dG9uPjwvYXgtY2xlYXItYnV0dG9uPlxuICAgICAgICAgICAgPC9heC1zZWFyY2gtYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtcC00IGF4LXB0LTBcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaXRlbVRwbCBsZXQtdz5cbiAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJoYW5kbGVDbGljaygkZXZlbnQsdylcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LXB5LTIgYXgtcHgtMyBheC1yb3VuZGVkLW1kIGF4LWZsZXggYXgtZ2FwLTMgYXgtaXRlbXMtY2VudGVyIGF4LWdyb3VwIGhvdmVyOmF4LWJnLXByaW1hcnktMTAwIGRhcms6aG92ZXI6YXgtYmctcHJpbWFyeS04MDAgYXgtY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXgtYmctcHJpbWFyeS0xMDBdPVwiaXNXaWRnZXRTZWxlY3RlZCh3KVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtdy0xMCBheC1oLTEwIGF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktY2VudGVyIGF4LXJvdW5kZWQtbWQgYXgtYm9yZGVyIGF4LWJvcmRlci1uZXV0cmFsLTIwMCBheC10ZXh0LW5ldXRyYWwtNTAwIGF4LWJnLW9uLXN1cmZhY2UgIGdyb3VwLWhvdmVyOmF4LWJnLXByaW1hcnktMjAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5heC1iZy1wcmltYXJ5LTIwMF09XCJpc1dpZGdldFNlbGVjdGVkKHcpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBbbmdDbGFzc109XCJ3Lmljb25cIiBjbGFzcz1cImF4LXRleHQtbGcgZ3JvdXAtaG92ZXI6YXgtdGV4dC1wcmltYXJ5LTcwMCBheC10ZXh0LW9uLXN1cmZhY2UtZm9yZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmF4LXRleHQtcHJpbWFyeS03MDBdPVwiaXNXaWRnZXRTZWxlY3RlZCh3KVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC0xIGF4LWZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGQgYXgtdGV4dC1zbVwiPnt7dy50aXRsZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiaGFuZGxlUGluQ2xpY2soJGV2ZW50LHcpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAody5waW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS10aHVtYnRhY2sgYXgtdGV4dC1zbSBheC10ZXh0LW5ldXRyYWwtNTAwIGF4LXJvdGF0ZS00NVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhLWxpZ2h0IGZhLXRodW1idGFjayBheC10ZXh0LXNtIGF4LXRleHQtbmV1dHJhbC01MDAgYXgtcm90YXRlLTQ1IGF4LWludmlzaWJsZSBncm91cC1ob3ZlcjpheC12aXNpYmxlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdGV4dC14cyBheC10ZXh0LW5ldXRyYWwtNDAwIGF4LXRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3t3LmRlc2NyaXB0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWdyaWQgYXgtZ3JpZC1jb2xzLTIgYXgtZ2FwLTIgXCI+XG4gICAgICAgICAgICAgICAgQGZvcih3IG9mIHBpbm5lZExpc3QoKTt0cmFjayAkaW5kZXgpXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVHBsO2NvbnRleHQ6eyAkaW1wbGljaXQ6IHd9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBAaWYocGlubmVkTGlzdCgpLmxlbmd0aClcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgIDxociBjbGFzcz1cImF4LW15LTQgYXgtYm9yZGVyLWRhc2hlZFwiPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWdyaWQgYXgtZ3JpZC1jb2xzLTIgYXgtZ2FwLTIgXCI+XG4gICAgICAgICAgICAgICAgQGZvcih3IG9mIHJlZ3VsYXJMaXN0KCk7dHJhY2sgJGluZGV4KVxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbVRwbDtjb250ZXh0OnsgJGltcGxpY2l0OiB3fVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuQGlmKHNlbGVjdGVkV2lkZ2V0cygpLmxlbmd0aClcbntcbjxheC1mb290ZXI+XG4gICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgPGF4LWJ1dHRvbiBsb29rPVwic29saWRcIiBjb2xvcj1cInByaW1hcnlcIiB0ZXh0PVwie3sgc2VsZWN0ZWRXaWRnZXRzKCkubGVuZ3RoIH19IFNlbGVjdGVkXCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZUNvbmZpcm1TZWxlY3Rpb24oKVwiPjwvYXgtYnV0dG9uPlxuICAgIDwvYXgtc3VmZml4PlxuPC9heC1mb290ZXI+XG59Il19