@acorex/platform 18.1.5 → 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 (350) hide show
  1. package/common/lib/app/application.types.d.ts +1 -1
  2. package/common/lib/common.module.d.ts +3 -6
  3. package/common/lib/data/data-provider.types.d.ts +1 -0
  4. package/common/lib/data/data.types.d.ts +14 -0
  5. package/common/lib/data/dexie-storage.service.d.ts +6 -20
  6. package/common/lib/data/entity-data-seeder.d.ts +12 -0
  7. package/common/lib/data/entity-storage-service.d.ts +59 -15
  8. package/common/lib/data/index.d.ts +2 -1
  9. package/common/lib/layout/menu/index.d.ts +2 -0
  10. package/common/lib/layout/menu/menu.provider.d.ts +15 -0
  11. package/common/lib/layout/menu/menu.service.d.ts +12 -0
  12. package/common/lib/layout/menu/menu.types.d.ts +8 -1
  13. package/common/lib/schema/widgets/dateTime/dateTime-widget-filter.component.d.ts +2 -0
  14. package/common/lib/schema/widgets/lookup/lookup-widget-edit.component.d.ts +1 -0
  15. package/common/lib/settings/settings.service.d.ts +3 -3
  16. package/common/lib/store/common.actions.d.ts +1 -8
  17. package/common/lib/store/common.effects.d.ts +3 -6
  18. package/common/lib/workflows/common.workflow.d.ts +2 -0
  19. package/core/utils/data-conditioner.d.ts +2 -5
  20. package/esm2022/common/lib/app/app-startup.service.mjs +3 -3
  21. package/esm2022/common/lib/app/application.types.mjs +1 -1
  22. package/esm2022/common/lib/common.module.mjs +38 -31
  23. package/esm2022/common/lib/data/data-provider.types.mjs +1 -1
  24. package/esm2022/common/lib/data/data.types.mjs +2 -0
  25. package/esm2022/common/lib/data/dexie-storage.service.mjs +95 -83
  26. package/esm2022/common/lib/data/entity-data-seeder.mjs +25 -0
  27. package/esm2022/common/lib/data/entity-storage-service.mjs +59 -1
  28. package/esm2022/common/lib/data/index.mjs +3 -2
  29. package/esm2022/common/lib/layout/menu/index.mjs +3 -1
  30. package/esm2022/common/lib/layout/menu/menu.provider.mjs +60 -0
  31. package/esm2022/common/lib/layout/menu/menu.service.mjs +73 -0
  32. package/esm2022/common/lib/layout/menu/menu.types.mjs +1 -1
  33. package/esm2022/common/lib/layout/theme/store/admin-layout.reducers.mjs +24 -19
  34. package/esm2022/common/lib/schema/widgets/avatar/avatar-widget-edit.component.mjs +8 -2
  35. package/esm2022/common/lib/schema/widgets/common-widget-filter/boolean-widget-filter.component.mjs +2 -2
  36. package/esm2022/common/lib/schema/widgets/common-widget-filter/number-widget-filter.component.mjs +2 -2
  37. package/esm2022/common/lib/schema/widgets/common-widget-filter/string-widget-filter.component.mjs +2 -2
  38. package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-filter.component.mjs +27 -5
  39. package/esm2022/common/lib/schema/widgets/gallery/gallery-widget-edit.component.mjs +3 -3
  40. package/esm2022/common/lib/schema/widgets/gallery/gallery-widget-view.component.mjs +3 -3
  41. package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-edit.component.mjs +2 -2
  42. package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-filter.component.mjs +3 -3
  43. package/esm2022/common/lib/settings/settings.service.mjs +10 -7
  44. package/esm2022/common/lib/store/common.actions.mjs +2 -4
  45. package/esm2022/common/lib/store/common.effects.mjs +8 -9
  46. package/esm2022/common/lib/workflows/common.workflow.mjs +7 -4
  47. package/esm2022/core/utils/data-conditioner.mjs +3 -3
  48. package/esm2022/layout/builder/lib/builder/builder.service.mjs +8 -1
  49. package/esm2022/layout/builder/lib/builder/widget-catalog.mjs +2 -1
  50. package/esm2022/layout/builder/lib/builder/widget-container.component.mjs +12 -8
  51. package/esm2022/layout/builder/lib/builder/widget-renderer.component.directive.mjs +2 -1
  52. package/esm2022/layout/builder/lib/builder/widget.types.mjs +12 -8
  53. package/esm2022/layout/designer/index.mjs +3 -1
  54. package/esm2022/layout/designer/lib/designer/components/board/board.component.mjs +7 -3
  55. package/esm2022/layout/designer/lib/designer/components/header-menu/header-menu.component.mjs +66 -5
  56. package/esm2022/layout/designer/lib/designer/components/size-mode/view-size-toolbar.component.mjs +54 -0
  57. package/esm2022/layout/designer/lib/designer/components/widget-picker/widget-picker.component.mjs +24 -15
  58. package/esm2022/layout/designer/lib/designer/designer.component.mjs +17 -56
  59. package/esm2022/layout/designer/lib/designer/shared/designer.service.mjs +27 -5
  60. package/esm2022/layout/designer/lib/designer/shared/widget-designer-renderer.directive.mjs +1 -1
  61. package/esm2022/layout/designer/lib/preview/preview-frame.component.mjs +75 -0
  62. package/esm2022/layout/designer/lib/preview/preview-viewer.component.mjs +58 -0
  63. package/esm2022/layout/designer/lib/preview/preview.component.mjs +67 -9
  64. package/esm2022/layout/entity/lib/entity-detail-list.viewmodel.mjs +48 -36
  65. package/esm2022/layout/entity/lib/entity-master-list.viewmodel.mjs +3 -3
  66. package/esm2022/layout/entity/lib/entity-master-single.viewmodel.mjs +1 -2
  67. package/esm2022/layout/entity/lib/entity-registery.service.mjs +5 -5
  68. package/esm2022/layout/entity/lib/entity.config.mjs +28 -2
  69. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.mjs +5 -5
  70. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.mjs +2 -2
  71. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.mjs +4 -4
  72. package/esm2022/layout/entity/lib/widgets/widget-selector/widget-selector-widget.config.mjs +2 -1
  73. package/esm2022/layout/entity/lib/workflows/create-entity.workflow.mjs +3 -3
  74. package/esm2022/layout/entity/lib/workflows/delete-entity.workflow.mjs +18 -9
  75. package/esm2022/layout/entity/lib/workflows/modify-section.workflow.mjs +7 -5
  76. package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.mjs +3 -3
  77. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/entity-custom-view/entity-custom-view.component.mjs +1 -1
  78. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-conditions.component.mjs +1 -1
  79. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.mjs +3 -3
  80. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/list-view.config.mjs +9 -5
  81. package/esm2022/layouts/lib/admin/entity-layout/workflows/delete-entity.workflow.mjs +2 -2
  82. package/esm2022/layouts/lib/admin/entity-layout/workflows/modify-entity.workflow.mjs +5 -3
  83. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.mjs +10 -7
  84. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.mjs +13 -9
  85. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.mjs +3 -3
  86. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.mjs +11 -8
  87. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/overview/entity-single-overview.component.mjs +1 -1
  88. package/esm2022/themes/default/lib/layouts/root-layout/components/menu/root-menu.component.mjs +39 -0
  89. package/esm2022/themes/default/lib/layouts/root-layout/index.mjs +2 -1
  90. package/esm2022/themes/default/lib/layouts/root-layout/root-layout.component.mjs +13 -31
  91. package/esm2022/themes/default/lib/layouts/root-layout/root-layout.module.mjs +5 -2
  92. package/esm2022/themes/shared/lib/comments/comment-list-view.component.mjs +28 -20
  93. package/esm2022/themes/shared/lib/comments/comments.service.mjs +3 -2
  94. package/esm2022/themes/shared/lib/comments/comments.type.mjs +1 -1
  95. package/esm2022/themes/shared/lib/components/theme-slot.component.mjs +85 -88
  96. package/esm2022/themes/shared/lib/services/theme.service.mjs +20 -13
  97. package/esm2022/themes/shared/lib/shared.module.mjs +5 -9
  98. package/esm2022/widgets/lib/widgets/advance/gallery/gallery-widget-edit.component.mjs +3 -3
  99. package/esm2022/widgets/lib/widgets/advance/gallery/gallery-widget-view.component.mjs +3 -3
  100. package/esm2022/widgets/lib/widgets/advance/qrcode/qrcode-widget-view.component.mjs +4 -4
  101. package/esm2022/widgets/lib/widgets/editors/color/color-box-widget-column.component.mjs +26 -5
  102. package/esm2022/widgets/lib/widgets/editors/contact/contact-widget-column.component.mjs +18 -4
  103. package/esm2022/widgets/lib/widgets/editors/contact/contact-widget-edit.component.mjs +7 -10
  104. package/esm2022/widgets/lib/widgets/editors/contact/contact-widget.config.mjs +2 -6
  105. package/esm2022/widgets/lib/widgets/editors/date-time/date-time-box-widget-column.component.mjs +18 -8
  106. package/esm2022/widgets/lib/widgets/editors/large-text/large-text-widget-edit.component.mjs +1 -1
  107. package/esm2022/widgets/lib/widgets/editors/large-text/large-text-widget-view.component.mjs +1 -1
  108. package/esm2022/widgets/lib/widgets/editors/rich-text/rich-text-widget-edit.component.mjs +16 -11
  109. package/esm2022/widgets/lib/widgets/editors/select/select-box-widget-view.component.mjs +15 -19
  110. package/esm2022/widgets/lib/widgets/editors/select/select-box-widget.config.mjs +3 -2
  111. package/esm2022/widgets/lib/widgets/index.mjs +2 -1
  112. package/esm2022/widgets/lib/widgets/layout/block/block-widget-view.component.mjs +36 -15
  113. package/esm2022/widgets/lib/widgets/layout/grid/grid-widget-designer.component.mjs +2 -2
  114. package/esm2022/widgets/lib/widgets/layout/repeater/repeater-widget-edit.component.mjs +42 -10
  115. package/esm2022/widgets/lib/widgets/layout/template/index.mjs +5 -0
  116. package/esm2022/widgets/lib/widgets/layout/template/template-widget-designer.component.mjs +70 -0
  117. package/esm2022/widgets/lib/widgets/layout/template/template-widget-edit.component.mjs +55 -0
  118. package/esm2022/widgets/lib/widgets/layout/template/template-widget-view.component.mjs +56 -0
  119. package/esm2022/widgets/lib/widgets/layout/template/template-widget.config.mjs +30 -0
  120. package/esm2022/widgets/lib/widgets/layout/template/template.provider.mjs +41 -0
  121. package/esm2022/widgets/lib/widgets.module.mjs +4 -1
  122. package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-CSSz-dqg.mjs → acorex-platform-common-avatar-widget-edit.component-WAlG5E_9.mjs} +15 -6
  123. package/fesm2022/acorex-platform-common-avatar-widget-edit.component-WAlG5E_9.mjs.map +1 -0
  124. package/fesm2022/{acorex-platform-common-avatar-widget-view.component-WofmamJK.mjs → acorex-platform-common-avatar-widget-view.component-DRyB3UWf.mjs} +8 -5
  125. package/fesm2022/acorex-platform-common-avatar-widget-view.component-DRyB3UWf.mjs.map +1 -0
  126. package/fesm2022/{acorex-platform-common-boolean-widget-filter.component-ByoMpVAs.mjs → acorex-platform-common-boolean-widget-filter.component-DY4oTjC-.mjs} +8 -6
  127. package/fesm2022/acorex-platform-common-boolean-widget-filter.component-DY4oTjC-.mjs.map +1 -0
  128. package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-BAK1Wlh_.mjs → acorex-platform-common-checkbox-widget-column.component-NSXcrUwU.mjs} +8 -5
  129. package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-BAK1Wlh_.mjs.map → acorex-platform-common-checkbox-widget-column.component-NSXcrUwU.mjs.map} +1 -1
  130. package/fesm2022/{acorex-platform-common-checkbox-widget-edit.component-C1PgHZsE.mjs → acorex-platform-common-checkbox-widget-edit.component-BU7qV5Cm.mjs} +8 -5
  131. package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-BU7qV5Cm.mjs.map +1 -0
  132. package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-B4BG4mCQ.mjs → acorex-platform-common-checkbox-widget-view.component-2Du2IzDS.mjs} +8 -5
  133. package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-B4BG4mCQ.mjs.map → acorex-platform-common-checkbox-widget-view.component-2Du2IzDS.mjs.map} +1 -1
  134. package/fesm2022/{acorex-platform-common-dateTime-widget-column.component-BnW8m1wn.mjs → acorex-platform-common-dateTime-widget-column.component-Dd7fgwu3.mjs} +8 -5
  135. package/fesm2022/acorex-platform-common-dateTime-widget-column.component-Dd7fgwu3.mjs.map +1 -0
  136. package/fesm2022/{acorex-platform-common-dateTime-widget-edit.component-DCYX2iyT.mjs → acorex-platform-common-dateTime-widget-edit.component-B4AelVJp.mjs} +8 -5
  137. package/fesm2022/{acorex-platform-common-dateTime-widget-edit.component-DCYX2iyT.mjs.map → acorex-platform-common-dateTime-widget-edit.component-B4AelVJp.mjs.map} +1 -1
  138. package/fesm2022/{acorex-platform-common-dateTime-widget-filter.component-Dbxz84tm.mjs → acorex-platform-common-dateTime-widget-filter.component-Ytm-TwOP.mjs} +33 -9
  139. package/fesm2022/acorex-platform-common-dateTime-widget-filter.component-Ytm-TwOP.mjs.map +1 -0
  140. package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-Bg1h8xAj.mjs → acorex-platform-common-dateTime-widget-view.component-BKdqOPkb.mjs} +8 -5
  141. package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-Bg1h8xAj.mjs.map → acorex-platform-common-dateTime-widget-view.component-BKdqOPkb.mjs.map} +1 -1
  142. package/fesm2022/{acorex-platform-common-email-widget-column.component-BqRR2jW9.mjs → acorex-platform-common-email-widget-column.component-CDKqwlPD.mjs} +8 -5
  143. package/fesm2022/acorex-platform-common-email-widget-column.component-CDKqwlPD.mjs.map +1 -0
  144. package/fesm2022/{acorex-platform-common-email-widget-edit.component-C7oCyByG.mjs → acorex-platform-common-email-widget-edit.component-BT2rJjaW.mjs} +8 -5
  145. package/fesm2022/{acorex-platform-common-email-widget-edit.component-C7oCyByG.mjs.map → acorex-platform-common-email-widget-edit.component-BT2rJjaW.mjs.map} +1 -1
  146. package/fesm2022/{acorex-platform-common-email-widget-view.component-hfVZnW_L.mjs → acorex-platform-common-email-widget-view.component-DbhRWpB1.mjs} +8 -5
  147. package/fesm2022/{acorex-platform-common-email-widget-view.component-hfVZnW_L.mjs.map → acorex-platform-common-email-widget-view.component-DbhRWpB1.mjs.map} +1 -1
  148. package/fesm2022/{acorex-platform-common-file-widget-column.component-Dt2mR6hJ.mjs → acorex-platform-common-file-widget-column.component-8U76QgEQ.mjs} +7 -4
  149. package/fesm2022/acorex-platform-common-file-widget-column.component-8U76QgEQ.mjs.map +1 -0
  150. package/fesm2022/{acorex-platform-common-file-widget-edit.component-DQol3UN8.mjs → acorex-platform-common-file-widget-edit.component-OFmiYz_5.mjs} +8 -5
  151. package/fesm2022/{acorex-platform-common-file-widget-edit.component-DQol3UN8.mjs.map → acorex-platform-common-file-widget-edit.component-OFmiYz_5.mjs.map} +1 -1
  152. package/fesm2022/{acorex-platform-common-file-widget-filter.component-CGd1mY-z.mjs → acorex-platform-common-file-widget-filter.component-ZLnpXMXK.mjs} +8 -5
  153. package/fesm2022/acorex-platform-common-file-widget-filter.component-ZLnpXMXK.mjs.map +1 -0
  154. package/fesm2022/{acorex-platform-common-file-widget-view.component-lKWnGSSb.mjs → acorex-platform-common-file-widget-view.component-BcrM4XrO.mjs} +8 -5
  155. package/fesm2022/{acorex-platform-common-file-widget-view.component-lKWnGSSb.mjs.map → acorex-platform-common-file-widget-view.component-BcrM4XrO.mjs.map} +1 -1
  156. package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-DgjY3ZWk.mjs → acorex-platform-common-gallery-widget-edit.component-pBBjrjDP.mjs} +9 -6
  157. package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-DgjY3ZWk.mjs.map → acorex-platform-common-gallery-widget-edit.component-pBBjrjDP.mjs.map} +1 -1
  158. package/fesm2022/{acorex-platform-common-gallery-widget-filter.component-CUw4kxTW.mjs → acorex-platform-common-gallery-widget-filter.component-Cp7t9ovC.mjs} +8 -5
  159. package/fesm2022/acorex-platform-common-gallery-widget-filter.component-Cp7t9ovC.mjs.map +1 -0
  160. package/fesm2022/{acorex-platform-common-gallery-widget-view.component-DK52JTds.mjs → acorex-platform-common-gallery-widget-view.component-CPS-h3cq.mjs} +9 -6
  161. package/fesm2022/{acorex-platform-common-gallery-widget-view.component-DK52JTds.mjs.map → acorex-platform-common-gallery-widget-view.component-CPS-h3cq.mjs.map} +1 -1
  162. package/fesm2022/{acorex-platform-common-largetext-widget-edit.component-7bbHUOnp.mjs → acorex-platform-common-largetext-widget-edit.component-DA6r3rVA.mjs} +8 -5
  163. package/fesm2022/acorex-platform-common-largetext-widget-edit.component-DA6r3rVA.mjs.map +1 -0
  164. package/fesm2022/{acorex-platform-common-lookup-widget-column.component-PGf5qjC4.mjs → acorex-platform-common-lookup-widget-column.component-Cxv1yZvE.mjs} +8 -5
  165. package/fesm2022/acorex-platform-common-lookup-widget-column.component-Cxv1yZvE.mjs.map +1 -0
  166. package/fesm2022/{acorex-platform-common-lookup-widget-edit.component-CGZf6rH2.mjs → acorex-platform-common-lookup-widget-edit.component-CUtGoAGX.mjs} +9 -6
  167. package/fesm2022/acorex-platform-common-lookup-widget-edit.component-CUtGoAGX.mjs.map +1 -0
  168. package/fesm2022/{acorex-platform-common-lookup-widget-filter.component-CUBdIuu9.mjs → acorex-platform-common-lookup-widget-filter.component-DJZqB3vj.mjs} +9 -7
  169. package/fesm2022/acorex-platform-common-lookup-widget-filter.component-DJZqB3vj.mjs.map +1 -0
  170. package/fesm2022/{acorex-platform-common-lookup-widget-view.component-dmGctRc9.mjs → acorex-platform-common-lookup-widget-view.component-CghJK1C4.mjs} +8 -5
  171. package/fesm2022/acorex-platform-common-lookup-widget-view.component-CghJK1C4.mjs.map +1 -0
  172. package/fesm2022/{acorex-platform-common-map-widget-edit.component-Cyi6AF9u.mjs → acorex-platform-common-map-widget-edit.component-oSb3kVMc.mjs} +8 -5
  173. package/fesm2022/acorex-platform-common-map-widget-edit.component-oSb3kVMc.mjs.map +1 -0
  174. package/fesm2022/{acorex-platform-common-map-widget-view.component-Cbl1KClC.mjs → acorex-platform-common-map-widget-view.component-BrYwr914.mjs} +8 -5
  175. package/fesm2022/acorex-platform-common-map-widget-view.component-BrYwr914.mjs.map +1 -0
  176. package/fesm2022/{acorex-platform-common-messenger-widget-column.component-BGiTw0jL.mjs → acorex-platform-common-messenger-widget-column.component-DIJAffxy.mjs} +8 -5
  177. package/fesm2022/acorex-platform-common-messenger-widget-column.component-DIJAffxy.mjs.map +1 -0
  178. package/fesm2022/{acorex-platform-common-messenger-widget-edit.component-BBSmai_5.mjs → acorex-platform-common-messenger-widget-edit.component-DpGvbM4a.mjs} +8 -5
  179. package/fesm2022/acorex-platform-common-messenger-widget-edit.component-DpGvbM4a.mjs.map +1 -0
  180. package/fesm2022/{acorex-platform-common-messenger-widget-view.component-C15KdEZ6.mjs → acorex-platform-common-messenger-widget-view.component-CeuDEI-j.mjs} +8 -5
  181. package/fesm2022/{acorex-platform-common-messenger-widget-view.component-C15KdEZ6.mjs.map → acorex-platform-common-messenger-widget-view.component-CeuDEI-j.mjs.map} +1 -1
  182. package/fesm2022/{acorex-platform-common-number-widget-edit.component-CGmS-gd7.mjs → acorex-platform-common-number-widget-edit.component-B1YGwr60.mjs} +8 -5
  183. package/fesm2022/acorex-platform-common-number-widget-edit.component-B1YGwr60.mjs.map +1 -0
  184. package/fesm2022/{acorex-platform-common-number-widget-filter.component-8RC01k_0.mjs → acorex-platform-common-number-widget-filter.component-BmmgPy1w.mjs} +9 -6
  185. package/fesm2022/acorex-platform-common-number-widget-filter.component-BmmgPy1w.mjs.map +1 -0
  186. package/fesm2022/{acorex-platform-common-number-widget-view.component-DGPcZ-yE.mjs → acorex-platform-common-number-widget-view.component-bqylVHOz.mjs} +8 -5
  187. package/fesm2022/acorex-platform-common-number-widget-view.component-bqylVHOz.mjs.map +1 -0
  188. package/fesm2022/{acorex-platform-common-password-widget-column.component-O3L2DvZq.mjs → acorex-platform-common-password-widget-column.component-DVdZh7s4.mjs} +8 -5
  189. package/fesm2022/{acorex-platform-common-password-widget-column.component-O3L2DvZq.mjs.map → acorex-platform-common-password-widget-column.component-DVdZh7s4.mjs.map} +1 -1
  190. package/fesm2022/{acorex-platform-common-password-widget-edit.component-DZz6rAL3.mjs → acorex-platform-common-password-widget-edit.component-OjHwMT5d.mjs} +8 -5
  191. package/fesm2022/acorex-platform-common-password-widget-edit.component-OjHwMT5d.mjs.map +1 -0
  192. package/fesm2022/{acorex-platform-common-password-widget-view.component-OxinnOs8.mjs → acorex-platform-common-password-widget-view.component-BeSk1OgU.mjs} +8 -5
  193. package/fesm2022/{acorex-platform-common-password-widget-view.component-OxinnOs8.mjs.map → acorex-platform-common-password-widget-view.component-BeSk1OgU.mjs.map} +1 -1
  194. package/fesm2022/{acorex-platform-common-phone-widget-column.component-D9AXNMVq.mjs → acorex-platform-common-phone-widget-column.component-DOfzGKBi.mjs} +8 -5
  195. package/fesm2022/{acorex-platform-common-phone-widget-column.component-D9AXNMVq.mjs.map → acorex-platform-common-phone-widget-column.component-DOfzGKBi.mjs.map} +1 -1
  196. package/fesm2022/{acorex-platform-common-phone-widget-edit.component-CKvODAMQ.mjs → acorex-platform-common-phone-widget-edit.component-BJ-iEyLP.mjs} +7 -5
  197. package/fesm2022/{acorex-platform-common-phone-widget-edit.component-CKvODAMQ.mjs.map → acorex-platform-common-phone-widget-edit.component-BJ-iEyLP.mjs.map} +1 -1
  198. package/fesm2022/{acorex-platform-common-phone-widget-view.component-Cx-SrpUs.mjs → acorex-platform-common-phone-widget-view.component-DW4AHCE6.mjs} +8 -5
  199. package/fesm2022/{acorex-platform-common-phone-widget-view.component-Cx-SrpUs.mjs.map → acorex-platform-common-phone-widget-view.component-DW4AHCE6.mjs.map} +1 -1
  200. package/fesm2022/{acorex-platform-common-rich-text-widget-column.component-C7IqYbqM.mjs → acorex-platform-common-rich-text-widget-column.component-2zZBG6Ze.mjs} +8 -5
  201. package/fesm2022/{acorex-platform-common-rich-text-widget-column.component-C7IqYbqM.mjs.map → acorex-platform-common-rich-text-widget-column.component-2zZBG6Ze.mjs.map} +1 -1
  202. package/fesm2022/{acorex-platform-common-rich-text-widget-edit.component-DtEcLWte.mjs → acorex-platform-common-rich-text-widget-edit.component-BJveJgHZ.mjs} +8 -5
  203. package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-BJveJgHZ.mjs.map +1 -0
  204. package/fesm2022/{acorex-platform-common-rich-text-widget-view.component-DI4I6wII.mjs → acorex-platform-common-rich-text-widget-view.component-CiViWpBX.mjs} +8 -5
  205. package/fesm2022/acorex-platform-common-rich-text-widget-view.component-CiViWpBX.mjs.map +1 -0
  206. package/fesm2022/{acorex-platform-common-selection-list-widget-column.component-CHDTopqW.mjs → acorex-platform-common-selection-list-widget-column.component-D9lsVFgo.mjs} +8 -5
  207. package/fesm2022/{acorex-platform-common-selection-list-widget-column.component-CHDTopqW.mjs.map → acorex-platform-common-selection-list-widget-column.component-D9lsVFgo.mjs.map} +1 -1
  208. package/fesm2022/{acorex-platform-common-selection-list-widget-edit.component-Ds7Pc22g.mjs → acorex-platform-common-selection-list-widget-edit.component-ocEwyUP7.mjs} +8 -5
  209. package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-ocEwyUP7.mjs.map +1 -0
  210. package/fesm2022/{acorex-platform-common-selection-list-widget-filter.component-D7h2tUqB.mjs → acorex-platform-common-selection-list-widget-filter.component-CS0f_jCx.mjs} +7 -5
  211. package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-CS0f_jCx.mjs.map +1 -0
  212. package/fesm2022/{acorex-platform-common-selection-list-widget-view.component-DGuotR-q.mjs → acorex-platform-common-selection-list-widget-view.component-C65lbpo_.mjs} +8 -5
  213. package/fesm2022/acorex-platform-common-selection-list-widget-view.component-C65lbpo_.mjs.map +1 -0
  214. package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-DPr0hCtB.mjs → acorex-platform-common-signature-pad-widget-edit.component-DbfQSGxm.mjs} +7 -4
  215. package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-DPr0hCtB.mjs.map → acorex-platform-common-signature-pad-widget-edit.component-DbfQSGxm.mjs.map} +1 -1
  216. package/fesm2022/{acorex-platform-common-signature-pad-widget-view.component-CdqZ17tU.mjs → acorex-platform-common-signature-pad-widget-view.component-CDY3JdP-.mjs} +8 -5
  217. package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-CDY3JdP-.mjs.map +1 -0
  218. package/fesm2022/{acorex-platform-common-string-widget-filter.component-Ctde9CDD.mjs → acorex-platform-common-string-widget-filter.component-BW2ehdOx.mjs} +9 -6
  219. package/fesm2022/acorex-platform-common-string-widget-filter.component-BW2ehdOx.mjs.map +1 -0
  220. package/fesm2022/{acorex-platform-common-text-widget-column.component-BHd_WWKq.mjs → acorex-platform-common-text-widget-column.component-bhx0QWAX.mjs} +8 -5
  221. package/fesm2022/{acorex-platform-common-text-widget-column.component-BHd_WWKq.mjs.map → acorex-platform-common-text-widget-column.component-bhx0QWAX.mjs.map} +1 -1
  222. package/fesm2022/{acorex-platform-common-text-widget-edit.component-BwfelIOW.mjs → acorex-platform-common-text-widget-edit.component-Cb1k59hs.mjs} +8 -5
  223. package/fesm2022/acorex-platform-common-text-widget-edit.component-Cb1k59hs.mjs.map +1 -0
  224. package/fesm2022/{acorex-platform-common-text-widget-view.component-SHWXqKZS.mjs → acorex-platform-common-text-widget-view.component-CGwY9c2O.mjs} +8 -5
  225. package/fesm2022/{acorex-platform-common-text-widget-view.component-SHWXqKZS.mjs.map → acorex-platform-common-text-widget-view.component-CGwY9c2O.mjs.map} +1 -1
  226. package/fesm2022/{acorex-platform-common-toggle-widget-column.component-Dc_Ahdvn.mjs → acorex-platform-common-toggle-widget-column.component-BxAwa7jw.mjs} +8 -5
  227. package/fesm2022/{acorex-platform-common-toggle-widget-column.component-Dc_Ahdvn.mjs.map → acorex-platform-common-toggle-widget-column.component-BxAwa7jw.mjs.map} +1 -1
  228. package/fesm2022/{acorex-platform-common-toggle-widget-edit.component-BnPyXdAA.mjs → acorex-platform-common-toggle-widget-edit.component-CT2fRAKm.mjs} +8 -5
  229. package/fesm2022/acorex-platform-common-toggle-widget-edit.component-CT2fRAKm.mjs.map +1 -0
  230. package/fesm2022/{acorex-platform-common-toggle-widget-view.component-D14GMwWe.mjs → acorex-platform-common-toggle-widget-view.component-9tquFHhE.mjs} +8 -5
  231. package/fesm2022/{acorex-platform-common-toggle-widget-view.component-D14GMwWe.mjs.map → acorex-platform-common-toggle-widget-view.component-9tquFHhE.mjs.map} +1 -1
  232. package/fesm2022/acorex-platform-common.mjs +639 -434
  233. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  234. package/fesm2022/acorex-platform-core.mjs +2 -2
  235. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  236. package/fesm2022/acorex-platform-layout-builder.mjs +28 -11
  237. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  238. package/fesm2022/acorex-platform-layout-designer.mjs +365 -67
  239. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  240. package/fesm2022/acorex-platform-layout-entity.mjs +103 -57
  241. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  242. package/fesm2022/acorex-platform-layouts.mjs +16 -11
  243. package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
  244. 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
  245. 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
  246. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-CNXG0nP4.mjs → acorex-platform-themes-default-entity-master-list-view.component-BGKWaCth.mjs} +22 -18
  247. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BGKWaCth.mjs.map +1 -0
  248. 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
  249. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-B3phYOIw.mjs.map +1 -0
  250. 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
  251. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DyZHE0o-.mjs.map +1 -0
  252. package/fesm2022/acorex-platform-themes-default.mjs +75 -57
  253. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  254. package/fesm2022/acorex-platform-themes-shared.mjs +130 -121
  255. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  256. package/fesm2022/acorex-platform-widgets-template-widget-edit.component-gvAh-gH1.mjs +96 -0
  257. package/fesm2022/acorex-platform-widgets-template-widget-edit.component-gvAh-gH1.mjs.map +1 -0
  258. package/fesm2022/acorex-platform-widgets.mjs +369 -86
  259. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  260. package/layout/builder/lib/builder/widget-container.component.d.ts +3 -2
  261. package/layout/builder/lib/builder/widget.types.d.ts +4 -1
  262. package/layout/designer/index.d.ts +2 -0
  263. package/layout/designer/lib/designer/components/board/board.component.d.ts +1 -0
  264. package/layout/designer/lib/designer/components/header-menu/header-menu.component.d.ts +1 -0
  265. package/layout/designer/lib/designer/components/size-mode/view-size-toolbar.component.d.ts +6 -0
  266. package/layout/designer/lib/designer/components/widget-picker/widget-picker.component.d.ts +1 -1
  267. package/layout/designer/lib/designer/designer.component.d.ts +1 -1
  268. package/layout/designer/lib/designer/shared/designer.service.d.ts +6 -1
  269. package/layout/designer/lib/preview/preview-frame.component.d.ts +8 -0
  270. package/layout/designer/lib/preview/preview-viewer.component.d.ts +14 -0
  271. package/layout/designer/lib/preview/preview.component.d.ts +17 -3
  272. package/layout/entity/lib/entity-detail-list.viewmodel.d.ts +4 -4
  273. package/layout/entity/lib/entity-master-create.viewmodel.d.ts +1 -1
  274. package/layout/entity/lib/entity-master-single.viewmodel.d.ts +1 -5
  275. package/layout/entity/lib/entity-master-update.viewmodel.d.ts +1 -1
  276. package/layout/entity/lib/entity-registery.service.d.ts +1 -1
  277. package/layout/entity/lib/entity.config.d.ts +7 -0
  278. package/layout/entity/lib/entity.viewmodel.d.ts +1 -1
  279. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +2 -1
  280. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.d.ts +2 -1
  281. package/layout/entity/lib/workflows/delete-entity.workflow.d.ts +1 -0
  282. package/layout/entity/lib/workflows/modify-section.workflow.d.ts +1 -0
  283. package/layouts/lib/admin/entity-layout/workflows/modify-entity.workflow.d.ts +1 -0
  284. package/package.json +13 -13
  285. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +1 -1
  286. package/themes/default/lib/layouts/root-layout/components/menu/root-menu.component.d.ts +22 -0
  287. package/themes/default/lib/layouts/root-layout/index.d.ts +1 -0
  288. package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +0 -4
  289. package/themes/default/lib/layouts/root-layout/root-layout.module.d.ts +17 -16
  290. package/themes/shared/lib/comments/comment-list-view.component.d.ts +16 -11
  291. package/themes/shared/lib/comments/comments.service.d.ts +4 -7
  292. package/themes/shared/lib/comments/comments.type.d.ts +23 -19
  293. package/themes/shared/lib/components/theme-slot.component.d.ts +1 -1
  294. package/themes/shared/lib/services/theme.service.d.ts +1 -1
  295. package/themes/shared/lib/shared.module.d.ts +0 -1
  296. package/widgets/lib/widgets/advance/qrcode/qrcode-widget-view.component.d.ts +1 -1
  297. package/widgets/lib/widgets/editors/color/color-box-widget-column.component.d.ts +3 -0
  298. package/widgets/lib/widgets/editors/contact/contact-widget-column.component.d.ts +2 -0
  299. package/widgets/lib/widgets/editors/contact/contact-widget-edit.component.d.ts +1 -1
  300. package/widgets/lib/widgets/editors/contact/contact-widget-view.component.d.ts +1 -1
  301. package/widgets/lib/widgets/editors/date-time/date-time-box-widget-column.component.d.ts +3 -0
  302. package/widgets/lib/widgets/editors/rich-text/rich-text-widget-edit.component.d.ts +3 -2
  303. package/widgets/lib/widgets/index.d.ts +1 -0
  304. package/widgets/lib/widgets/layout/block/block-widget-view.component.d.ts +4 -2
  305. package/widgets/lib/widgets/layout/repeater/repeater-widget-edit.component.d.ts +1 -0
  306. package/widgets/lib/widgets/layout/template/index.d.ts +4 -0
  307. package/widgets/lib/widgets/layout/template/template-widget-designer.component.d.ts +11 -0
  308. package/widgets/lib/widgets/layout/template/template-widget-edit.component.d.ts +10 -0
  309. package/widgets/lib/widgets/layout/template/template-widget-view.component.d.ts +10 -0
  310. package/widgets/lib/widgets/layout/template/template-widget.config.d.ts +7 -0
  311. package/widgets/lib/widgets/layout/template/template.provider.d.ts +21 -0
  312. package/common/lib/data/entity-data-provider.d.ts +0 -14
  313. package/esm2022/common/lib/data/entity-data-provider.mjs +0 -26
  314. package/fesm2022/acorex-platform-common-avatar-widget-edit.component-CSSz-dqg.mjs.map +0 -1
  315. package/fesm2022/acorex-platform-common-avatar-widget-view.component-WofmamJK.mjs.map +0 -1
  316. package/fesm2022/acorex-platform-common-boolean-widget-filter.component-ByoMpVAs.mjs.map +0 -1
  317. package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-C1PgHZsE.mjs.map +0 -1
  318. package/fesm2022/acorex-platform-common-dateTime-widget-column.component-BnW8m1wn.mjs.map +0 -1
  319. package/fesm2022/acorex-platform-common-dateTime-widget-filter.component-Dbxz84tm.mjs.map +0 -1
  320. package/fesm2022/acorex-platform-common-email-widget-column.component-BqRR2jW9.mjs.map +0 -1
  321. package/fesm2022/acorex-platform-common-file-widget-column.component-Dt2mR6hJ.mjs.map +0 -1
  322. package/fesm2022/acorex-platform-common-file-widget-filter.component-CGd1mY-z.mjs.map +0 -1
  323. package/fesm2022/acorex-platform-common-gallery-widget-filter.component-CUw4kxTW.mjs.map +0 -1
  324. package/fesm2022/acorex-platform-common-largetext-widget-edit.component-7bbHUOnp.mjs.map +0 -1
  325. package/fesm2022/acorex-platform-common-lookup-widget-column.component-PGf5qjC4.mjs.map +0 -1
  326. package/fesm2022/acorex-platform-common-lookup-widget-edit.component-CGZf6rH2.mjs.map +0 -1
  327. package/fesm2022/acorex-platform-common-lookup-widget-filter.component-CUBdIuu9.mjs.map +0 -1
  328. package/fesm2022/acorex-platform-common-lookup-widget-view.component-dmGctRc9.mjs.map +0 -1
  329. package/fesm2022/acorex-platform-common-map-widget-edit.component-Cyi6AF9u.mjs.map +0 -1
  330. package/fesm2022/acorex-platform-common-map-widget-view.component-Cbl1KClC.mjs.map +0 -1
  331. package/fesm2022/acorex-platform-common-messenger-widget-column.component-BGiTw0jL.mjs.map +0 -1
  332. package/fesm2022/acorex-platform-common-messenger-widget-edit.component-BBSmai_5.mjs.map +0 -1
  333. package/fesm2022/acorex-platform-common-number-widget-edit.component-CGmS-gd7.mjs.map +0 -1
  334. package/fesm2022/acorex-platform-common-number-widget-filter.component-8RC01k_0.mjs.map +0 -1
  335. package/fesm2022/acorex-platform-common-number-widget-view.component-DGPcZ-yE.mjs.map +0 -1
  336. package/fesm2022/acorex-platform-common-password-widget-edit.component-DZz6rAL3.mjs.map +0 -1
  337. package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-DtEcLWte.mjs.map +0 -1
  338. package/fesm2022/acorex-platform-common-rich-text-widget-view.component-DI4I6wII.mjs.map +0 -1
  339. package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-Ds7Pc22g.mjs.map +0 -1
  340. package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-D7h2tUqB.mjs.map +0 -1
  341. package/fesm2022/acorex-platform-common-selection-list-widget-view.component-DGuotR-q.mjs.map +0 -1
  342. package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-CdqZ17tU.mjs.map +0 -1
  343. package/fesm2022/acorex-platform-common-string-widget-filter.component-Ctde9CDD.mjs.map +0 -1
  344. package/fesm2022/acorex-platform-common-text-widget-edit.component-BwfelIOW.mjs.map +0 -1
  345. package/fesm2022/acorex-platform-common-toggle-widget-edit.component-BnPyXdAA.mjs.map +0 -1
  346. package/fesm2022/acorex-platform-layout-designer-preview.component-CaRHf4x_.mjs +0 -23
  347. package/fesm2022/acorex-platform-layout-designer-preview.component-CaRHf4x_.mjs.map +0 -1
  348. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CNXG0nP4.mjs.map +0 -1
  349. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BijYXMme.mjs.map +0 -1
  350. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Bnrabotu.mjs.map +0 -1
@@ -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
@@ -22,7 +22,7 @@ export class AXPDesignerWidgetPickerComponent extends AXBasePageComponent {
22
22
  constructor() {
23
23
  super(...arguments);
24
24
  this.settingService = inject(AXPSettingsService);
25
- this.pinnedSettingKey = 'widgets:pinned';
25
+ this.pinnedSettingKey = 'forms:widgets:picker:pinned';
26
26
  this.searchTerm = model('');
27
27
  // Signals
28
28
  this.widgets = [];
@@ -33,24 +33,24 @@ export class AXPDesignerWidgetPickerComponent extends AXBasePageComponent {
33
33
  this.orderedList = computed(() => {
34
34
  const search = this.searchTerm().toLowerCase();
35
35
  const selectedTabName = this.selectedTab().name;
36
- return orderBy(this.displayWidgets().filter(w => {
36
+ return orderBy(this.displayWidgets().filter((w) => {
37
37
  const matchesTab = selectedTabName === 'all' || w.group.name === selectedTabName;
38
38
  const matchesSearch = !search || w.title.toLowerCase().includes(search) || w.description?.toLowerCase().includes(search);
39
39
  return matchesTab && matchesSearch;
40
40
  }), ['pinned', 'title'], ['desc', 'asc']);
41
41
  });
42
42
  // Pinned and regular lists
43
- this.pinnedList = computed(() => this.orderedList().filter(c => c.pinned));
44
- 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));
45
45
  // Tabs for the widget groups
46
- 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);
47
47
  this.currentTabIndex = signal(0);
48
48
  this.selectedTab = computed(() => this.tabs[this.currentTabIndex()]);
49
49
  }
50
50
  async ngOnInit() {
51
51
  super.ngOnInit();
52
- const pinnedWidgets = this.settingService.get(this.pinnedSettingKey) || [];
53
- this.displayWidgets.set(this.widgets.map(c => ({ ...c, pinned: pinnedWidgets.includes(c.name) })));
52
+ const pinnedWidgets = (await this.settingService.get(this.pinnedSettingKey)) || [];
53
+ this.displayWidgets.set(this.widgets.map((c) => ({ ...c, pinned: pinnedWidgets.includes(c.name) })));
54
54
  }
55
55
  handleTabChange(event) {
56
56
  const indx = event.index;
@@ -61,10 +61,10 @@ export class AXPDesignerWidgetPickerComponent extends AXBasePageComponent {
61
61
  handleClick(event, widget) {
62
62
  if (event.ctrlKey) {
63
63
  const currentSelection = this.selectedWidgets();
64
- const isAlreadySelected = currentSelection.some(w => w === widget);
64
+ const isAlreadySelected = currentSelection.some((w) => w === widget);
65
65
  if (isAlreadySelected) {
66
66
  // Deselect widget if already selected
67
- this.selectedWidgets.set(currentSelection.filter(w => w !== widget));
67
+ this.selectedWidgets.set(currentSelection.filter((w) => w !== widget));
68
68
  }
69
69
  else {
70
70
  // Add widget to selection
@@ -76,11 +76,11 @@ export class AXPDesignerWidgetPickerComponent extends AXBasePageComponent {
76
76
  this.close({ widgets: [widget] });
77
77
  }
78
78
  }
79
- handlePinClick(e, widget) {
79
+ async handlePinClick(e, widget) {
80
80
  e.stopPropagation();
81
81
  widget.pinned = !widget.pinned;
82
82
  // Get the current list of pinned widgets from settings
83
- let pinnedWidgets = this.settingService.get(this.pinnedSettingKey) || [];
83
+ let pinnedWidgets = (await this.settingService.get(this.pinnedSettingKey)) || [];
84
84
  // Update the list of pinned widgets based on the pinned status
85
85
  if (widget.pinned) {
86
86
  if (!pinnedWidgets.includes(widget.name)) {
@@ -88,10 +88,10 @@ export class AXPDesignerWidgetPickerComponent extends AXBasePageComponent {
88
88
  }
89
89
  }
90
90
  else {
91
- pinnedWidgets = pinnedWidgets.filter(name => name !== widget.name);
91
+ pinnedWidgets = pinnedWidgets.filter((name) => name !== widget.name);
92
92
  }
93
93
  // Save the updated list of pinned widgets
94
- this.settingService.set(this.pinnedSettingKey, pinnedWidgets);
94
+ await this.settingService.set(this.pinnedSettingKey, pinnedWidgets);
95
95
  // Trigger a re-render of the widgets
96
96
  this.displayWidgets.set([...this.displayWidgets()]);
97
97
  }
@@ -107,6 +107,15 @@ export class AXPDesignerWidgetPickerComponent extends AXBasePageComponent {
107
107
  }
108
108
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerWidgetPickerComponent, decorators: [{
109
109
  type: Component,
110
- 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 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"] }]
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"] }]
111
120
  }] });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL2Rlc2lnbmVyL2NvbXBvbmVudHMvd2lkZ2V0LXBpY2tlci93aWRnZXQtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvY29tcG9uZW50cy93aWRnZXQtcGlja2VyL3dpZGdldC1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUEwQixNQUFNLHlCQUF5QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBbUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdC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Q0FBQzs4R0FuR1UsZ0NBQWdDO2tHQUFoQyxnQ0FBZ0MsK1JDM0I3QyxrMUhBMEVDLDhYRHBEVyxZQUFZLG1TQUFFLGNBQWMsMkpBQUUsV0FBVyw4VkFBRSxjQUFjLHVaQUFFLGlCQUFpQixzV0FBRSxZQUFZLGthQUFFLGlCQUFpQiw0WEFBRSxrQkFBa0I7OzJGQUtoSSxnQ0FBZ0M7a0JBUDVDLFNBQVM7aUNBQ0ksSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsQ0FBQyxpQkFFN0gsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWENvbW1vbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWEJhc2VQYWdlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BhZ2UnO1xuaW1wb3J0IHsgQVhTZWFyY2hCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VhcmNoLWJveCc7XG5pbXBvcnQgeyBBWFRhYnNNb2R1bGUsIEFYVGFiU3RyaXBDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFicyc7XG5pbXBvcnQgeyBBWFBTZXR0aW5nc1NlcnZpY2UsIEFYUFN0aWNreURpcmVjdGl2ZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUF9XSURHRVRTX0dST1VQUywgQVhQV2lkZ2V0Q29uZmlnLCBBWFBXaWRnZXRHcm91cCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgbW9kZWwsIHNpZ25hbCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgb3JkZXJCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBEZXNpZ25lckNvbm5lY3RvckFic3RyYWN0IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Rlc2lnbmVyLWNvbm5lY3Rvci5zZXJ2aWNlJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERpc3BsYXlXaWRnZXRDb25maWcgZXh0ZW5kcyBBWFBXaWRnZXRDb25maWcge1xuICBwaW5uZWQ6IGJvb2xlYW47XG59XG5cblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEFYQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgQVhCdXR0b25Nb2R1bGUsIEFYRGVjb3JhdG9yTW9kdWxlLCBBWFRhYnNNb2R1bGUsIEFYU2VhcmNoQm94TW9kdWxlLCBBWFBTdGlja3lEaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZVVybDogJy4vd2lkZ2V0LXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0eWxlVXJsczogWycuL3dpZGdldC1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRGVzaWduZXJXaWRnZXRQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VQYWdlQ29tcG9uZW50IHtcblxuICBwcml2YXRlIHNldHRpbmdTZXJ2aWNlID0gaW5qZWN0KEFYUFNldHRpbmdzU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGlubmVkU2V0dGluZ0tleSA9ICd3aWRnZXRzOnBpbm5lZCc7XG5cbiAgcHJvdGVjdGVkIHNlYXJjaFRlcm0gPSBtb2RlbCgnJyk7XG5cbiAgLy8gU2lnbmFsc1xuICBwcml2YXRlIHdpZGdldHM6IEFYUFdpZGdldENvbmZpZ1tdID0gW107XG4gIHByaXZhdGUgZGlzcGxheVdpZGdldHMgPSBzaWduYWw8QVhQRGlzcGxheVdpZGdldENvbmZpZ1tdPihbXSk7XG5cbiAgLy8gU2lnbmFsIHRvIHRyYWNrIHNlbGVjdGVkIHdpZGdldHNcbiAgcHJvdGVjdGVkIHNlbGVjdGVkV2lkZ2V0cyA9IHNpZ25hbDxBWFBEaXNwbGF5V2lkZ2V0Q29uZmlnW10+KFtdKTtcblxuICAvLyBDb21wdXRlZCBmb3IgZmlsdGVyZWQgYW5kIG9yZGVyZWQgd2lkZ2V0IGxpc3RcbiAgcHJpdmF0ZSBvcmRlcmVkTGlzdCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzZWFyY2ggPSB0aGlzLnNlYXJjaFRlcm0oKS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IHNlbGVjdGVkVGFiTmFtZSA9IHRoaXMuc2VsZWN0ZWRUYWIoKS5uYW1lO1xuXG4gICAgcmV0dXJuIG9yZGVyQnkoXG4gICAgICB0aGlzLmRpc3BsYXlXaWRnZXRzKCkuZmlsdGVyKHcgPT4ge1xuICAgICAgICBjb25zdCBtYXRjaGVzVGFiID0gc2VsZWN0ZWRUYWJOYW1lID09PSAnYWxsJyB8fCB3Lmdyb3VwLm5hbWUgPT09IHNlbGVjdGVkVGFiTmFtZTtcbiAgICAgICAgY29uc3QgbWF0Y2hlc1NlYXJjaCA9ICFzZWFyY2ggfHwgdy50aXRsZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCkgfHwgdy5kZXNjcmlwdGlvbj8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpO1xuICAgICAgICByZXR1cm4gbWF0Y2hlc1RhYiAmJiBtYXRjaGVzU2VhcmNoO1xuICAgICAgfSksXG4gICAgICBbJ3Bpbm5lZCcsICd0aXRsZSddLCBbJ2Rlc2MnLCAnYXNjJ11cbiAgICApO1xuICB9KTtcblxuICAvLyBQaW5uZWQgYW5kIHJlZ3VsYXIgbGlzdHNcbiAgcHJvdGVjdGVkIHBpbm5lZExpc3QgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9yZGVyZWRMaXN0KCkuZmlsdGVyKGMgPT4gYy5waW5uZWQpKTtcbiAgcHJvdGVjdGVkIHJlZ3VsYXJMaXN0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcmRlcmVkTGlzdCgpLmZpbHRlcihjID0+ICFjLnBpbm5lZCkpO1xuXG4gIC8vIFRhYnMgZm9yIHRoZSB3aWRnZXQgZ3JvdXBzXG4gIHByb3RlY3RlZCB0YWJzOiBBWFBXaWRnZXRHcm91cFtdID0gb3JkZXJCeShbeyBuYW1lOiAnYWxsJywgdGl0bGU6ICdBbGwnLCBvcmRlcjogMCB9LCAuLi5BWFBfV0lER0VUU19HUk9VUFNdLCBjID0+IGMub3JkZXIpO1xuICBwcm90ZWN0ZWQgY3VycmVudFRhYkluZGV4ID0gc2lnbmFsKDApO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRUYWIgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnRhYnNbdGhpcy5jdXJyZW50VGFiSW5kZXgoKV0pO1xuXG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgY29uc3QgcGlubmVkV2lkZ2V0cyA9IHRoaXMuc2V0dGluZ1NlcnZpY2UuZ2V0PHN0cmluZ1tdPih0aGlzLnBpbm5lZFNldHRpbmdLZXkpIHx8IFtdO1xuICAgIHRoaXMuZGlzcGxheVdpZGdldHMuc2V0KHRoaXMud2lkZ2V0cy5tYXAoYyA9PiAoeyAuLi5jLCBwaW5uZWQ6IHBpbm5lZFdpZGdldHMuaW5jbHVkZXMoYy5uYW1lKSB9KSkpXG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlVGFiQ2hhbmdlKGV2ZW50OiBBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaW5keCA9IGV2ZW50LmluZGV4O1xuICAgIGlmICh0aGlzLmN1cnJlbnRUYWJJbmRleCgpICE9IGluZHgpIHtcbiAgICAgIHRoaXMuY3VycmVudFRhYkluZGV4LnNldChpbmR4KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQsIHdpZGdldDogQVhQRGlzcGxheVdpZGdldENvbmZpZykge1xuICAgIGlmIChldmVudC5jdHJsS2V5KSB7XG4gICAgICBjb25zdCBjdXJyZW50U2VsZWN0aW9uID0gdGhpcy5zZWxlY3RlZFdpZGdldHMoKTtcbiAgICAgIGNvbnN0IGlzQWxyZWFkeVNlbGVjdGVkID0gY3VycmVudFNlbGVjdGlvbi5zb21lKHcgPT4gdyA9PT0gd2lkZ2V0KTtcblxuICAgICAgaWYgKGlzQWxyZWFkeVNlbGVjdGVkKSB7XG4gICAgICAgIC8vIERlc2VsZWN0IHdpZGdldCBpZiBhbHJlYWR5IHNlbGVjdGVkXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzLnNldChjdXJyZW50U2VsZWN0aW9uLmZpbHRlcih3ID0+IHcgIT09IHdpZGdldCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQWRkIHdpZGdldCB0byBzZWxlY3Rpb25cbiAgICAgICAgdGhpcy5zZWxlY3RlZFdpZGdldHMuc2V0KFsuLi5jdXJyZW50U2VsZWN0aW9uLCB3aWRnZXRdKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgQ1RSTCBpcyBub3QgcHJlc3NlZCwgc2VsZWN0IG9ubHkgdGhlIGNsaWNrZWQgd2lkZ2V0XG4gICAgICB0aGlzLmNsb3NlKHsgd2lkZ2V0czogW3dpZGdldF0gfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZVBpbkNsaWNrKGU6IE1vdXNlRXZlbnQsIHdpZGdldDogQVhQRGlzcGxheVdpZGdldENvbmZpZykge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgd2lkZ2V0LnBpbm5lZCA9ICF3aWRnZXQucGlubmVkO1xuICAgIC8vIEdldCB0aGUgY3VycmVudCBsaXN0IG9mIHBpbm5lZCB3aWRnZXRzIGZyb20gc2V0dGluZ3NcbiAgICBsZXQgcGlubmVkV2lkZ2V0cyA9IHRoaXMuc2V0dGluZ1NlcnZpY2UuZ2V0PHN0cmluZ1tdPih0aGlzLnBpbm5lZFNldHRpbmdLZXkpIHx8IFtdO1xuXG4gICAgLy8gVXBkYXRlIHRoZSBsaXN0IG9mIHBpbm5lZCB3aWRnZXRzIGJhc2VkIG9uIHRoZSBwaW5uZWQgc3RhdHVzXG4gICAgaWYgKHdpZGdldC5waW5uZWQpIHtcbiAgICAgIGlmICghcGlubmVkV2lkZ2V0cy5pbmNsdWRlcyh3aWRnZXQubmFtZSkpIHtcbiAgICAgICAgcGlubmVkV2lkZ2V0cy5wdXNoKHdpZGdldC5uYW1lKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGlubmVkV2lkZ2V0cyA9IHBpbm5lZFdpZGdldHMuZmlsdGVyKG5hbWUgPT4gbmFtZSAhPT0gd2lkZ2V0Lm5hbWUpO1xuICAgIH1cblxuICAgIC8vIFNhdmUgdGhlIHVwZGF0ZWQgbGlzdCBvZiBwaW5uZWQgd2lkZ2V0c1xuICAgIHRoaXMuc2V0dGluZ1NlcnZpY2Uuc2V0KHRoaXMucGlubmVkU2V0dGluZ0tleSwgcGlubmVkV2lkZ2V0cyk7XG5cbiAgICAvLyBUcmlnZ2VyIGEgcmUtcmVuZGVyIG9mIHRoZSB3aWRnZXRzXG4gICAgdGhpcy5kaXNwbGF5V2lkZ2V0cy5zZXQoWy4uLnRoaXMuZGlzcGxheVdpZGdldHMoKV0pO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgYSB3aWRnZXQgaXMgc2VsZWN0ZWRcbiAgcHJvdGVjdGVkIGlzV2lkZ2V0U2VsZWN0ZWQod2lkZ2V0OiBBWFBEaXNwbGF5V2lkZ2V0Q29uZmlnKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRXaWRnZXRzKCkuaW5jbHVkZXMod2lkZ2V0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDb25maXJtU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2UoeyB3aWRnZXRzOiB0aGlzLnNlbGVjdGVkV2lkZ2V0cygpIH0pO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGxnOmF4LWgtWzc1dmhdXCI+XG4gICAgPGRpdj5cbiAgICAgICAgPGF4LXRhYnMgW2xvb2tdPVwiJ3dpdGgtbGluZSdcIiAob25BY3RpdmVUYWJDaGFuZ2VkKT1cImhhbmRsZVRhYkNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICBAZm9yKHcgb2YgdGFiczt0cmFjayAkaW5kZXgpXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICA8YXgtdGFiLWl0ZW0gW3RleHRdPVwidy50aXRsZVwiIFtrZXldPVwiJGluZGV4LnRvU3RyaW5nKClcIlxuICAgICAgICAgICAgICAgIFthY3RpdmVdPVwiY3VycmVudFRhYkluZGV4KCkgPT09ICRpbmRleFwiPjwvYXgtdGFiLWl0ZW0+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvYXgtdGFicz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtb3ZlcmZsb3ctYXV0b1wiICNjb250ZW50PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtcC00IGF4LXN0aWNreSBheC10b3AtMCBheC16LTEwIGF4LXRyYW5zaXRpb24tYWxsIFwiICNzdGlja3k9XCJheHBTdGlja3lcIlxuICAgICAgICAgICAgW2F4cFN0aWNreV09XCInYXgtYmctc3VyZmFjZSBheC1zaGFkb3cteGwnXCIgW3N0aWNreVBhcmVudF09XCJjb250ZW50XCIgW3N0aWNreU9mZnNldF09XCIxMFwiPlxuICAgICAgICAgICAgPGF4LXNlYXJjaC1ib3ggbG9vaz1cImZpbGxcIiBwbGFjZWhvbGRlcj1cImUuZy4gQnV0dG9uLCBUZXh0LCAuLi5cIiBbKG5nTW9kZWwpXT1cInNlYXJjaFRlcm1cIiBbZGVsYXlUaW1lXT1cIjMwMFwiXG4gICAgICAgICAgICAgICAgW2F4QXV0b0ZvY3VzXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8YXgtY2xlYXItYnV0dG9uPjwvYXgtY2xlYXItYnV0dG9uPlxuICAgICAgICAgICAgPC9heC1zZWFyY2gtYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtcC00IGF4LXB0LTBcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaXRlbVRwbCBsZXQtdz5cbiAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJoYW5kbGVDbGljaygkZXZlbnQsdylcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LXB5LTIgYXgtcHgtMyBheC1yb3VuZGVkLW1kIGF4LWZsZXggYXgtZ2FwLTMgYXgtaXRlbXMtY2VudGVyIGF4LWdyb3VwIGhvdmVyOmF4LWJnLXByaW1hcnktMTAwIGRhcms6aG92ZXI6YXgtYmctcHJpbWFyeS04MDAgYXgtY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXgtYmctcHJpbWFyeS0xMDBdPVwiaXNXaWRnZXRTZWxlY3RlZCh3KVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtdy0xMCBheC1oLTEwIGF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktY2VudGVyIGF4LXJvdW5kZWQtbWQgYXgtYm9yZGVyIGF4LWJvcmRlci1uZXV0cmFsLTIwMCBheC10ZXh0LW5ldXRyYWwtNTAwIGF4LWJnLW9uLXN1cmZhY2UgIGdyb3VwLWhvdmVyOmF4LWJnLXByaW1hcnktMjAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5heC1iZy1wcmltYXJ5LTIwMF09XCJpc1dpZGdldFNlbGVjdGVkKHcpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBbbmdDbGFzc109XCJ3Lmljb25cIiBjbGFzcz1cImF4LXRleHQtbGcgZ3JvdXAtaG92ZXI6YXgtdGV4dC1wcmltYXJ5LTcwMCBheC10ZXh0LW9uLXN1cmZhY2UtZm9yZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmF4LXRleHQtcHJpbWFyeS03MDBdPVwiaXNXaWRnZXRTZWxlY3RlZCh3KVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC0xIGF4LWZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGQgYXgtdGV4dC1zbVwiPnt7dy50aXRsZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiaGFuZGxlUGluQ2xpY2soJGV2ZW50LHcpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAody5waW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS10aHVtYnRhY2sgYXgtdGV4dC1zbSBheC10ZXh0LW5ldXRyYWwtNTAwIGF4LXJvdGF0ZS00NVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhLWxpZ2h0IGZhLXRodW1idGFjayBheC10ZXh0LXNtIGF4LXRleHQtbmV1dHJhbC01MDAgYXgtcm90YXRlLTQ1IGF4LWludmlzaWJsZSBncm91cC1ob3ZlcjpheC12aXNpYmxlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdGV4dC14cyBheC10ZXh0LW5ldXRyYWwtNDAwIGF4LXRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3t3LmRlc2NyaXB0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWdyaWQgYXgtZ3JpZC1jb2xzLTIgYXgtZ2FwLTIgXCI+XG4gICAgICAgICAgICAgICAgQGZvcih3IG9mIHBpbm5lZExpc3QoKTt0cmFjayAkaW5kZXgpXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVHBsO2NvbnRleHQ6eyAkaW1wbGljaXQ6IHd9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBAaWYocGlubmVkTGlzdCgpLmxlbmd0aClcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgIDxociBjbGFzcz1cImF4LW15LTQgYXgtYm9yZGVyLWRhc2hlZFwiPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWdyaWQgYXgtZ3JpZC1jb2xzLTIgYXgtZ2FwLTIgXCI+XG4gICAgICAgICAgICAgICAgQGZvcih3IG9mIHJlZ3VsYXJMaXN0KCk7dHJhY2sgJGluZGV4KVxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbVRwbDtjb250ZXh0OnsgJGltcGxpY2l0OiB3fVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuQGlmKHNlbGVjdGVkV2lkZ2V0cygpLmxlbmd0aClcbntcbjxheC1mb290ZXI+XG4gICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgPGF4LWJ1dHRvbiBsb29rPVwic29saWRcIiBjb2xvcj1cInByaW1hcnlcIiB0ZXh0PVwie3sgc2VsZWN0ZWRXaWRnZXRzKCkubGVuZ3RoIH19IFNlbGVjdGVkXCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZUNvbmZpcm1TZWxlY3Rpb24oKVwiPjwvYXgtYnV0dG9uPlxuICAgIDwvYXgtc3VmZml4PlxuPC9heC1mb290ZXI+XG59Il19
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL2Rlc2lnbmVyL2NvbXBvbmVudHMvd2lkZ2V0LXBpY2tlci93aWRnZXQtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvY29tcG9uZW50cy93aWRnZXQtcGlja2VyL3dpZGdldC1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUEwQixNQUFNLHlCQUF5QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBbUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7OztBQXNCcEMsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLG1CQUFtQjtJQWhCekU7O1FBaUJVLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDbkMscUJBQWdCLEdBQUcsNkJBQTZCLENBQUM7UUFFeEQsZUFBVSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVqQyxVQUFVO1FBQ0YsWUFBTyxHQUFzQixFQUFFLENBQUM7UUFDaEMsbUJBQWMsR0FBRyxNQUFNLENBQTJCLEVBQUUsQ0FBQyxDQUFDO1FBRTlELG1DQUFtQztRQUN6QixvQkFBZSxHQUFHLE1BQU0sQ0FBMkIsRUFBRSxDQUFDLENBQUM7UUFFakUsZ0RBQWdEO1FBQ3hDLGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNsQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDL0MsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQztZQUVoRCxPQUFPLE9BQU8sQ0FDWixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2pDLE1BQU0sVUFBVSxHQUFHLGVBQWUsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDO2dCQUNqRixNQUFNLGFBQWEsR0FDakIsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3JHLE9BQU8sVUFBVSxJQUFJLGFBQWEsQ0FBQztZQUNyQyxDQUFDLENBQUMsRUFDRixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFDbkIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQ2hCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILDJCQUEyQjtRQUNqQixlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFFcEYsNkJBQTZCO1FBQ25CLFNBQUksR0FBcUIsT0FBTyxDQUN4QyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLGtCQUFrQixDQUFDLEVBQ2hFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUNmLENBQUM7UUFDUSxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QixnQkFBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0ErRDNFO0lBN0RvQixLQUFLLENBQUMsUUFBUTtRQUMvQixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsTUFBTSxhQUFhLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFXLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdGLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUVTLGVBQWUsQ0FBQyxLQUE2QjtRQUNyRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDO0lBRVMsV0FBVyxDQUFDLEtBQWlCLEVBQUUsTUFBOEI7UUFDckUsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDaEQsTUFBTSxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUMsQ0FBQztZQUVyRSxJQUFJLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3RCLHNDQUFzQztnQkFDdEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQztZQUN6RSxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sMEJBQTBCO2dCQUMxQixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUMxRCxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTix5REFBeUQ7WUFDekQsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQztJQUVTLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBYSxFQUFFLE1BQThCO1FBQzFFLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNwQixNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUMvQix1REFBdUQ7UUFDdkQsSUFBSSxhQUFhLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFXLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTNGLCtEQUErRDtRQUMvRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDekMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sYUFBYSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkUsQ0FBQztRQUVELDBDQUEwQztRQUMxQyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUVwRSxxQ0FBcUM7UUFDckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELGdDQUFnQztJQUN0QixnQkFBZ0IsQ0FBQyxNQUE4QjtRQUN2RCxPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVTLHNCQUFzQjtRQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQzs4R0F0R1UsZ0NBQWdDO2tHQUFoQyxnQ0FBZ0MsK1JDakM3QyxrMUhBMEVDLDhYRHRERyxZQUFZLG1TQUNaLGNBQWMsMkpBQ2QsV0FBVyw4VkFDWCxjQUFjLHVaQUNkLGlCQUFpQixzV0FDakIsWUFBWSxrYUFDWixpQkFBaUIsNFhBQ2pCLGtCQUFrQjs7MkZBTVQsZ0NBQWdDO2tCQWhCNUMsU0FBUztpQ0FDSSxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixrQkFBa0I7cUJBQ25CLGlCQUVjLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhDb21tb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhCYXNlUGFnZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wYWdlJztcbmltcG9ydCB7IEFYU2VhcmNoQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gnO1xuaW1wb3J0IHsgQVhUYWJzTW9kdWxlLCBBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhYnMnO1xuaW1wb3J0IHsgQVhQU2V0dGluZ3NTZXJ2aWNlLCBBWFBTdGlja3lEaXJlY3RpdmUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBfV0lER0VUU19HUk9VUFMsIEFYUFdpZGdldENvbmZpZywgQVhQV2lkZ2V0R3JvdXAgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIG1vZGVsLCBzaWduYWwsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IG9yZGVyQnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERpc3BsYXlXaWRnZXRDb25maWcgZXh0ZW5kcyBBWFBXaWRnZXRDb25maWcge1xuICBwaW5uZWQ6IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEFYQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYVGFic01vZHVsZSxcbiAgICBBWFNlYXJjaEJveE1vZHVsZSxcbiAgICBBWFBTdGlja3lEaXJlY3RpdmUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3R5bGVVcmxzOiBbJy4vd2lkZ2V0LXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBEZXNpZ25lcldpZGdldFBpY2tlckNvbXBvbmVudCBleHRlbmRzIEFYQmFzZVBhZ2VDb21wb25lbnQge1xuICBwcml2YXRlIHNldHRpbmdTZXJ2aWNlID0gaW5qZWN0KEFYUFNldHRpbmdzU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGlubmVkU2V0dGluZ0tleSA9ICdmb3Jtczp3aWRnZXRzOnBpY2tlcjpwaW5uZWQnO1xuXG4gIHByb3RlY3RlZCBzZWFyY2hUZXJtID0gbW9kZWwoJycpO1xuXG4gIC8vIFNpZ25hbHNcbiAgcHJpdmF0ZSB3aWRnZXRzOiBBWFBXaWRnZXRDb25maWdbXSA9IFtdO1xuICBwcml2YXRlIGRpc3BsYXlXaWRnZXRzID0gc2lnbmFsPEFYUERpc3BsYXlXaWRnZXRDb25maWdbXT4oW10pO1xuXG4gIC8vIFNpZ25hbCB0byB0cmFjayBzZWxlY3RlZCB3aWRnZXRzXG4gIHByb3RlY3RlZCBzZWxlY3RlZFdpZGdldHMgPSBzaWduYWw8QVhQRGlzcGxheVdpZGdldENvbmZpZ1tdPihbXSk7XG5cbiAgLy8gQ29tcHV0ZWQgZm9yIGZpbHRlcmVkIGFuZCBvcmRlcmVkIHdpZGdldCBsaXN0XG4gIHByaXZhdGUgb3JkZXJlZExpc3QgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc2VhcmNoID0gdGhpcy5zZWFyY2hUZXJtKCkudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBzZWxlY3RlZFRhYk5hbWUgPSB0aGlzLnNlbGVjdGVkVGFiKCkubmFtZTtcblxuICAgIHJldHVybiBvcmRlckJ5KFxuICAgICAgdGhpcy5kaXNwbGF5V2lkZ2V0cygpLmZpbHRlcigodykgPT4ge1xuICAgICAgICBjb25zdCBtYXRjaGVzVGFiID0gc2VsZWN0ZWRUYWJOYW1lID09PSAnYWxsJyB8fCB3Lmdyb3VwLm5hbWUgPT09IHNlbGVjdGVkVGFiTmFtZTtcbiAgICAgICAgY29uc3QgbWF0Y2hlc1NlYXJjaCA9XG4gICAgICAgICAgIXNlYXJjaCB8fCB3LnRpdGxlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoKSB8fCB3LmRlc2NyaXB0aW9uPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCk7XG4gICAgICAgIHJldHVybiBtYXRjaGVzVGFiICYmIG1hdGNoZXNTZWFyY2g7XG4gICAgICB9KSxcbiAgICAgIFsncGlubmVkJywgJ3RpdGxlJ10sXG4gICAgICBbJ2Rlc2MnLCAnYXNjJ11cbiAgICApO1xuICB9KTtcblxuICAvLyBQaW5uZWQgYW5kIHJlZ3VsYXIgbGlzdHNcbiAgcHJvdGVjdGVkIHBpbm5lZExpc3QgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9yZGVyZWRMaXN0KCkuZmlsdGVyKChjKSA9PiBjLnBpbm5lZCkpO1xuICBwcm90ZWN0ZWQgcmVndWxhckxpc3QgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9yZGVyZWRMaXN0KCkuZmlsdGVyKChjKSA9PiAhYy5waW5uZWQpKTtcblxuICAvLyBUYWJzIGZvciB0aGUgd2lkZ2V0IGdyb3Vwc1xuICBwcm90ZWN0ZWQgdGFiczogQVhQV2lkZ2V0R3JvdXBbXSA9IG9yZGVyQnkoXG4gICAgW3sgbmFtZTogJ2FsbCcsIHRpdGxlOiAnQWxsJywgb3JkZXI6IDAgfSwgLi4uQVhQX1dJREdFVFNfR1JPVVBTXSxcbiAgICAoYykgPT4gYy5vcmRlclxuICApO1xuICBwcm90ZWN0ZWQgY3VycmVudFRhYkluZGV4ID0gc2lnbmFsKDApO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRUYWIgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnRhYnNbdGhpcy5jdXJyZW50VGFiSW5kZXgoKV0pO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIGNvbnN0IHBpbm5lZFdpZGdldHMgPSAoYXdhaXQgdGhpcy5zZXR0aW5nU2VydmljZS5nZXQ8c3RyaW5nW10+KHRoaXMucGlubmVkU2V0dGluZ0tleSkpIHx8IFtdO1xuICAgIHRoaXMuZGlzcGxheVdpZGdldHMuc2V0KHRoaXMud2lkZ2V0cy5tYXAoKGMpID0+ICh7IC4uLmMsIHBpbm5lZDogcGlubmVkV2lkZ2V0cy5pbmNsdWRlcyhjLm5hbWUpIH0pKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlVGFiQ2hhbmdlKGV2ZW50OiBBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaW5keCA9IGV2ZW50LmluZGV4O1xuICAgIGlmICh0aGlzLmN1cnJlbnRUYWJJbmRleCgpICE9IGluZHgpIHtcbiAgICAgIHRoaXMuY3VycmVudFRhYkluZGV4LnNldChpbmR4KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQsIHdpZGdldDogQVhQRGlzcGxheVdpZGdldENvbmZpZykge1xuICAgIGlmIChldmVudC5jdHJsS2V5KSB7XG4gICAgICBjb25zdCBjdXJyZW50U2VsZWN0aW9uID0gdGhpcy5zZWxlY3RlZFdpZGdldHMoKTtcbiAgICAgIGNvbnN0IGlzQWxyZWFkeVNlbGVjdGVkID0gY3VycmVudFNlbGVjdGlvbi5zb21lKCh3KSA9PiB3ID09PSB3aWRnZXQpO1xuXG4gICAgICBpZiAoaXNBbHJlYWR5U2VsZWN0ZWQpIHtcbiAgICAgICAgLy8gRGVzZWxlY3Qgd2lkZ2V0IGlmIGFscmVhZHkgc2VsZWN0ZWRcbiAgICAgICAgdGhpcy5zZWxlY3RlZFdpZGdldHMuc2V0KGN1cnJlbnRTZWxlY3Rpb24uZmlsdGVyKCh3KSA9PiB3ICE9PSB3aWRnZXQpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEFkZCB3aWRnZXQgdG8gc2VsZWN0aW9uXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzLnNldChbLi4uY3VycmVudFNlbGVjdGlvbiwgd2lkZ2V0XSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElmIENUUkwgaXMgbm90IHByZXNzZWQsIHNlbGVjdCBvbmx5IHRoZSBjbGlja2VkIHdpZGdldFxuICAgICAgdGhpcy5jbG9zZSh7IHdpZGdldHM6IFt3aWRnZXRdIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVQaW5DbGljayhlOiBNb3VzZUV2ZW50LCB3aWRnZXQ6IEFYUERpc3BsYXlXaWRnZXRDb25maWcpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHdpZGdldC5waW5uZWQgPSAhd2lkZ2V0LnBpbm5lZDtcbiAgICAvLyBHZXQgdGhlIGN1cnJlbnQgbGlzdCBvZiBwaW5uZWQgd2lkZ2V0cyBmcm9tIHNldHRpbmdzXG4gICAgbGV0IHBpbm5lZFdpZGdldHMgPSAoYXdhaXQgdGhpcy5zZXR0aW5nU2VydmljZS5nZXQ8c3RyaW5nW10+KHRoaXMucGlubmVkU2V0dGluZ0tleSkpIHx8IFtdO1xuXG4gICAgLy8gVXBkYXRlIHRoZSBsaXN0IG9mIHBpbm5lZCB3aWRnZXRzIGJhc2VkIG9uIHRoZSBwaW5uZWQgc3RhdHVzXG4gICAgaWYgKHdpZGdldC5waW5uZWQpIHtcbiAgICAgIGlmICghcGlubmVkV2lkZ2V0cy5pbmNsdWRlcyh3aWRnZXQubmFtZSkpIHtcbiAgICAgICAgcGlubmVkV2lkZ2V0cy5wdXNoKHdpZGdldC5uYW1lKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGlubmVkV2lkZ2V0cyA9IHBpbm5lZFdpZGdldHMuZmlsdGVyKChuYW1lKSA9PiBuYW1lICE9PSB3aWRnZXQubmFtZSk7XG4gICAgfVxuXG4gICAgLy8gU2F2ZSB0aGUgdXBkYXRlZCBsaXN0IG9mIHBpbm5lZCB3aWRnZXRzXG4gICAgYXdhaXQgdGhpcy5zZXR0aW5nU2VydmljZS5zZXQodGhpcy5waW5uZWRTZXR0aW5nS2V5LCBwaW5uZWRXaWRnZXRzKTtcblxuICAgIC8vIFRyaWdnZXIgYSByZS1yZW5kZXIgb2YgdGhlIHdpZGdldHNcbiAgICB0aGlzLmRpc3BsYXlXaWRnZXRzLnNldChbLi4udGhpcy5kaXNwbGF5V2lkZ2V0cygpXSk7XG4gIH1cblxuICAvLyBDaGVjayBpZiBhIHdpZGdldCBpcyBzZWxlY3RlZFxuICBwcm90ZWN0ZWQgaXNXaWRnZXRTZWxlY3RlZCh3aWRnZXQ6IEFYUERpc3BsYXlXaWRnZXRDb25maWcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFdpZGdldHMoKS5pbmNsdWRlcyh3aWRnZXQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNvbmZpcm1TZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZSh7IHdpZGdldHM6IHRoaXMuc2VsZWN0ZWRXaWRnZXRzKCkgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGxnOmF4LWgtWzc1dmhdXCI+XG4gICAgPGRpdj5cbiAgICAgICAgPGF4LXRhYnMgW2xvb2tdPVwiJ3dpdGgtbGluZSdcIiAob25BY3RpdmVUYWJDaGFuZ2VkKT1cImhhbmRsZVRhYkNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICBAZm9yKHcgb2YgdGFiczt0cmFjayAkaW5kZXgpXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICA8YXgtdGFiLWl0ZW0gW3RleHRdPVwidy50aXRsZVwiIFtrZXldPVwiJGluZGV4LnRvU3RyaW5nKClcIlxuICAgICAgICAgICAgICAgIFthY3RpdmVdPVwiY3VycmVudFRhYkluZGV4KCkgPT09ICRpbmRleFwiPjwvYXgtdGFiLWl0ZW0+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvYXgtdGFicz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtb3ZlcmZsb3ctYXV0b1wiICNjb250ZW50PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtcC00IGF4LXN0aWNreSBheC10b3AtMCBheC16LTEwIGF4LXRyYW5zaXRpb24tYWxsIFwiICNzdGlja3k9XCJheHBTdGlja3lcIlxuICAgICAgICAgICAgW2F4cFN0aWNreV09XCInYXgtYmctc3VyZmFjZSBheC1zaGFkb3cteGwnXCIgW3N0aWNreVBhcmVudF09XCJjb250ZW50XCIgW3N0aWNreU9mZnNldF09XCIxMFwiPlxuICAgICAgICAgICAgPGF4LXNlYXJjaC1ib3ggbG9vaz1cImZpbGxcIiBwbGFjZWhvbGRlcj1cImUuZy4gQnV0dG9uLCBUZXh0LCAuLi5cIiBbKG5nTW9kZWwpXT1cInNlYXJjaFRlcm1cIiBbZGVsYXlUaW1lXT1cIjMwMFwiXG4gICAgICAgICAgICAgICAgW2F4QXV0b0ZvY3VzXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8YXgtY2xlYXItYnV0dG9uPjwvYXgtY2xlYXItYnV0dG9uPlxuICAgICAgICAgICAgPC9heC1zZWFyY2gtYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtcC00IGF4LXB0LTBcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaXRlbVRwbCBsZXQtdz5cbiAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJoYW5kbGVDbGljaygkZXZlbnQsdylcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LXB5LTIgYXgtcHgtMyBheC1yb3VuZGVkLW1kIGF4LWZsZXggYXgtZ2FwLTMgYXgtaXRlbXMtY2VudGVyIGF4LWdyb3VwIGhvdmVyOmF4LWJnLXByaW1hcnktMTAwIGRhcms6aG92ZXI6YXgtYmctcHJpbWFyeS04MDAgYXgtY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXgtYmctcHJpbWFyeS0xMDBdPVwiaXNXaWRnZXRTZWxlY3RlZCh3KVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtdy0xMCBheC1oLTEwIGF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktY2VudGVyIGF4LXJvdW5kZWQtbWQgYXgtYm9yZGVyIGF4LWJvcmRlci1uZXV0cmFsLTIwMCBheC10ZXh0LW5ldXRyYWwtNTAwIGF4LWJnLW9uLXN1cmZhY2UgIGdyb3VwLWhvdmVyOmF4LWJnLXByaW1hcnktMjAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5heC1iZy1wcmltYXJ5LTIwMF09XCJpc1dpZGdldFNlbGVjdGVkKHcpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBbbmdDbGFzc109XCJ3Lmljb25cIiBjbGFzcz1cImF4LXRleHQtbGcgZ3JvdXAtaG92ZXI6YXgtdGV4dC1wcmltYXJ5LTcwMCBheC10ZXh0LW9uLXN1cmZhY2UtZm9yZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmF4LXRleHQtcHJpbWFyeS03MDBdPVwiaXNXaWRnZXRTZWxlY3RlZCh3KVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC0xIGF4LWZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGQgYXgtdGV4dC1zbVwiPnt7dy50aXRsZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiaGFuZGxlUGluQ2xpY2soJGV2ZW50LHcpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAody5waW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS10aHVtYnRhY2sgYXgtdGV4dC1zbSBheC10ZXh0LW5ldXRyYWwtNTAwIGF4LXJvdGF0ZS00NVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhLWxpZ2h0IGZhLXRodW1idGFjayBheC10ZXh0LXNtIGF4LXRleHQtbmV1dHJhbC01MDAgYXgtcm90YXRlLTQ1IGF4LWludmlzaWJsZSBncm91cC1ob3ZlcjpheC12aXNpYmxlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdGV4dC14cyBheC10ZXh0LW5ldXRyYWwtNDAwIGF4LXRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3t3LmRlc2NyaXB0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWdyaWQgYXgtZ3JpZC1jb2xzLTIgYXgtZ2FwLTIgXCI+XG4gICAgICAgICAgICAgICAgQGZvcih3IG9mIHBpbm5lZExpc3QoKTt0cmFjayAkaW5kZXgpXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVHBsO2NvbnRleHQ6eyAkaW1wbGljaXQ6IHd9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBAaWYocGlubmVkTGlzdCgpLmxlbmd0aClcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgIDxociBjbGFzcz1cImF4LW15LTQgYXgtYm9yZGVyLWRhc2hlZFwiPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWdyaWQgYXgtZ3JpZC1jb2xzLTIgYXgtZ2FwLTIgXCI+XG4gICAgICAgICAgICAgICAgQGZvcih3IG9mIHJlZ3VsYXJMaXN0KCk7dHJhY2sgJGluZGV4KVxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbVRwbDtjb250ZXh0OnsgJGltcGxpY2l0OiB3fVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuQGlmKHNlbGVjdGVkV2lkZ2V0cygpLmxlbmd0aClcbntcbjxheC1mb290ZXI+XG4gICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgPGF4LWJ1dHRvbiBsb29rPVwic29saWRcIiBjb2xvcj1cInByaW1hcnlcIiB0ZXh0PVwie3sgc2VsZWN0ZWRXaWRnZXRzKCkubGVuZ3RoIH19IFNlbGVjdGVkXCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZUNvbmZpcm1TZWxlY3Rpb24oKVwiPjwvYXgtYnV0dG9uPlxuICAgIDwvYXgtc3VmZml4PlxuPC9heC1mb290ZXI+XG59Il19