@acorex/platform 18.0.14 → 18.0.16

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 (264) hide show
  1. package/core/index.d.ts +1 -0
  2. package/core/utils/data-conditioner.d.ts +6 -0
  3. package/esm2022/auth/lib/session.service.mjs +7 -5
  4. package/esm2022/common/lib/schema/widget/widget-renderer.mjs +3 -3
  5. package/esm2022/core/index.mjs +2 -1
  6. package/esm2022/core/utils/data-conditioner.mjs +138 -0
  7. package/esm2022/layout/builder/lib/builder/widget-catalog.mjs +3 -2
  8. package/esm2022/layout/builder/lib/builder/widget-registery.service.mjs +2 -2
  9. package/esm2022/layout/builder/lib/builder/widget-renderer.component.mjs +3 -3
  10. package/esm2022/layout/builder/lib/builder/widget.types.mjs +17 -10
  11. package/esm2022/layout/designer/index.mjs +2 -7
  12. package/esm2022/layout/designer/lib/{helpers → designer/components}/add-widget-button/add-widget-button.component.mjs +2 -2
  13. package/esm2022/layout/designer/lib/designer/components/board/board.component.mjs +112 -0
  14. package/esm2022/layout/designer/lib/designer/components/breadcrumbs/breadcrumbs.component.mjs +64 -0
  15. package/esm2022/layout/designer/lib/designer/components/drawers/data-sources/data-sources.component.mjs +32 -0
  16. package/esm2022/layout/designer/lib/designer/components/drawers/history/history.component.mjs +30 -0
  17. package/esm2022/layout/designer/lib/designer/components/drawers/outline/outline.component.mjs +61 -0
  18. package/esm2022/layout/designer/lib/designer/components/drawers/pages/pages.component.mjs +28 -0
  19. package/esm2022/layout/designer/lib/designer/components/grid-drawer/grid-drawer.component.mjs +82 -0
  20. package/esm2022/layout/designer/lib/designer/components/header-menu/header-menu.component.mjs +24 -0
  21. package/esm2022/layout/designer/lib/{widget-picker → designer/components/widget-picker}/widget-picker.component.mjs +1 -1
  22. package/esm2022/layout/designer/lib/designer/designer.component.mjs +28 -17
  23. package/esm2022/layout/designer/lib/designer/index.mjs +8 -0
  24. package/esm2022/layout/designer/lib/designer/shared/command.mjs +185 -0
  25. package/esm2022/layout/designer/lib/designer/shared/designer-connector.service.mjs +10 -0
  26. package/esm2022/layout/designer/lib/designer/shared/designer.service.mjs +488 -0
  27. package/esm2022/layout/designer/lib/designer/shared/designer.typs.mjs +2 -0
  28. package/esm2022/layout/designer/lib/designer/shared/drawer-content/drawer-content.component.mjs +16 -0
  29. package/esm2022/layout/designer/lib/designer/shared/widget-designer-renderer.directive.mjs +224 -0
  30. package/esm2022/layout/designer/lib/preview/preview.component.mjs +3 -3
  31. package/esm2022/layout/designer/lib/property-viewer/widget-property-viewer.component.mjs +17 -5
  32. package/esm2022/layout/entity/lib/entity-master-create.viewmodel.mjs +2 -5
  33. package/esm2022/layout/entity/lib/entity-master-list.viewmodel.mjs +15 -5
  34. package/esm2022/layout/entity/lib/entity-registery.service.mjs +3 -3
  35. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget.config.mjs +2 -1
  36. package/esm2022/themes/default/index.mjs +3 -2
  37. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.mjs +29 -20
  38. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.mjs +19 -9
  39. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comment-list-view.component.mjs +123 -0
  40. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comments.service.mjs +3 -0
  41. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.mjs +22 -23
  42. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/overview/entity-single-overview.component.mjs +68 -0
  43. package/esm2022/themes/default/lib/layouts/entity-layouts/index.mjs +2 -0
  44. package/esm2022/widgets/lib/properties/data-source.props.mjs +21 -0
  45. package/esm2022/widgets/lib/properties/editors.props.mjs +27 -90
  46. package/esm2022/widgets/lib/properties/general.props.mjs +124 -0
  47. package/esm2022/widgets/lib/properties/index.mjs +4 -1
  48. package/esm2022/widgets/lib/properties/layout.props.mjs +138 -33
  49. package/esm2022/widgets/lib/properties/table-column.props.mjs +2 -2
  50. package/esm2022/widgets/lib/widgets/actions/button/button-widget-designer.component.mjs +54 -0
  51. package/esm2022/widgets/lib/widgets/actions/button/button-widget-view.component.mjs +3 -2
  52. package/esm2022/widgets/lib/widgets/actions/button/button-widget.config.mjs +3 -2
  53. package/esm2022/widgets/lib/widgets/advance/file/file-box-widget-edit.component.mjs +13 -4
  54. package/esm2022/widgets/lib/widgets/advance/file/file-box-widget.config.mjs +4 -2
  55. package/esm2022/widgets/lib/widgets/advance/gallery/gallery-widget-edit.component.mjs +13 -4
  56. package/esm2022/widgets/lib/widgets/advance/gallery/gallery-widget.config.mjs +2 -1
  57. package/esm2022/widgets/lib/widgets/advance/map/index.mjs +1 -4
  58. package/esm2022/widgets/lib/widgets/advance/map/map-box-widget-edit.component.mjs +54 -157
  59. package/esm2022/widgets/lib/widgets/advance/map/map-box-widget-view.component.mjs +40 -53
  60. package/esm2022/widgets/lib/widgets/advance/map/map-box-widget.config.mjs +100 -11
  61. package/esm2022/widgets/lib/widgets/advance/qrcode/qrcode-widget-view.component.mjs +23 -14
  62. package/esm2022/widgets/lib/widgets/advance/qrcode/qrcode-widget.config.mjs +9 -7
  63. package/esm2022/widgets/lib/widgets/advance/signature/signature-pad-widget-edit.component.mjs +12 -3
  64. package/esm2022/widgets/lib/widgets/advance/signature/signature-pad-widget.config.mjs +5 -6
  65. package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-designer.component.mjs +54 -0
  66. package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-edit.component.mjs +21 -21
  67. package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-view.component.mjs +4 -1
  68. package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget.config.mjs +14 -5
  69. package/esm2022/widgets/lib/widgets/editors/color/color-box-widget-designer.component.mjs +53 -0
  70. package/esm2022/widgets/lib/widgets/editors/color/color-box-widget-edit.component.mjs +24 -12
  71. package/esm2022/widgets/lib/widgets/editors/color/color-box-widget.config.mjs +15 -6
  72. package/esm2022/widgets/lib/widgets/editors/contact/contact-widget-edit.component.mjs +13 -4
  73. package/esm2022/widgets/lib/widgets/editors/contact/contact-widget.config.mjs +2 -1
  74. package/esm2022/widgets/lib/widgets/editors/date-time/date-time-box-widget-edit.component.mjs +13 -4
  75. package/esm2022/widgets/lib/widgets/editors/date-time/date-time-box-widget.config.mjs +5 -2
  76. package/esm2022/widgets/lib/widgets/editors/email/email-box-widget-edit.component.mjs +13 -4
  77. package/esm2022/widgets/lib/widgets/editors/email/email-box-widget.config.mjs +4 -2
  78. package/esm2022/widgets/lib/widgets/editors/large-text/large-text-widget-edit.component.mjs +13 -4
  79. package/esm2022/widgets/lib/widgets/editors/large-text/large-text-widget.config.mjs +4 -2
  80. package/esm2022/widgets/lib/widgets/editors/link/link-widget-edit.component.mjs +13 -4
  81. package/esm2022/widgets/lib/widgets/editors/link/link-widget.config.mjs +2 -1
  82. package/esm2022/widgets/lib/widgets/editors/number/number-box-widget-edit.component.mjs +14 -5
  83. package/esm2022/widgets/lib/widgets/editors/number/number-box-widget.config.mjs +4 -2
  84. package/esm2022/widgets/lib/widgets/editors/password/password-box-widget-edit.component.mjs +12 -8
  85. package/esm2022/widgets/lib/widgets/editors/password/password-box-widget.config.mjs +4 -2
  86. package/esm2022/widgets/lib/widgets/editors/phone/phone-box-widget-edit.component.mjs +13 -4
  87. package/esm2022/widgets/lib/widgets/editors/phone/phone-box-widget.config.mjs +2 -1
  88. package/esm2022/widgets/lib/widgets/editors/rich-text/rich-text-widget-edit.component.mjs +14 -5
  89. package/esm2022/widgets/lib/widgets/editors/rich-text/rich-text-widget.config.mjs +4 -2
  90. package/esm2022/widgets/lib/widgets/editors/select/select-box-widget-edit.component.mjs +25 -4
  91. package/esm2022/widgets/lib/widgets/editors/select/select-box-widget-view.component.mjs +13 -4
  92. package/esm2022/widgets/lib/widgets/editors/select/select-box-widget.config.mjs +2 -1
  93. package/esm2022/widgets/lib/widgets/editors/selection-list/index.mjs +2 -1
  94. package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-designer.component.mjs +75 -0
  95. package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-edit.component.mjs +25 -13
  96. package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-view.component.mjs +2 -3
  97. package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget.config.mjs +16 -3
  98. package/esm2022/widgets/lib/widgets/editors/text/text-box-widget-edit.component.mjs +13 -4
  99. package/esm2022/widgets/lib/widgets/editors/text/text-box-widget.config.mjs +4 -2
  100. package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget-edit.component.mjs +14 -4
  101. package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget.config.mjs +4 -2
  102. package/esm2022/widgets/lib/widgets/layout/block/block-widget-designer.component.mjs +40 -17
  103. package/esm2022/widgets/lib/widgets/layout/block/block-widget-view.component.mjs +17 -3
  104. package/esm2022/widgets/lib/widgets/layout/block/block-widget.config.mjs +9 -4
  105. package/esm2022/widgets/lib/widgets/layout/document/document-widget.config.mjs +2 -2
  106. package/esm2022/widgets/lib/widgets/layout/form-field/form-field-widget-designer.component.mjs +19 -9
  107. package/esm2022/widgets/lib/widgets/layout/form-field/form-field-widget.config.mjs +4 -3
  108. package/esm2022/widgets/lib/widgets/layout/grid/grid-widget-designer.component.mjs +21 -10
  109. package/esm2022/widgets/lib/widgets/layout/grid/grid-widget.config.mjs +8 -5
  110. package/esm2022/widgets/lib/widgets/layout/grid-item/grid-item-widget-designer.component.mjs +49 -41
  111. package/esm2022/widgets/lib/widgets/layout/grid-item/grid-item-widget.config.mjs +6 -9
  112. package/esm2022/widgets/lib/widgets/layout/grid-row/grid-row-widget-designer.component.mjs +84 -0
  113. package/esm2022/widgets/lib/widgets/layout/grid-row/grid-row-widget-print.component.mjs +19 -0
  114. package/esm2022/widgets/lib/widgets/layout/grid-row/grid-row-widget-view.component.mjs +18 -0
  115. package/esm2022/widgets/lib/widgets/layout/grid-row/grid-row-widget.config.mjs +28 -0
  116. package/esm2022/widgets/lib/widgets/layout/grid-row/index.mjs +5 -0
  117. package/esm2022/widgets/lib/widgets/layout/page/page-widget-designer.component.mjs +8 -9
  118. package/esm2022/widgets/lib/widgets/layout/page/page-widget-view.component.mjs +1 -2
  119. package/esm2022/widgets/lib/widgets/layout/page/page-widget.config.mjs +8 -4
  120. package/esm2022/widgets/lib/widgets/layout/repeater/repeater-widget-designer.component.mjs +6 -6
  121. package/esm2022/widgets/lib/widgets/layout/repeater/repeater-widget.config.mjs +2 -2
  122. package/esm2022/widgets/lib/widgets/layout/text-block/text-block-widget-designer.component.mjs +38 -0
  123. package/esm2022/widgets/lib/widgets/layout/text-block/text-block-widget-view.component.mjs +3 -2
  124. package/esm2022/widgets/lib/widgets/layout/text-block/text-block-widget.config.mjs +5 -5
  125. package/esm2022/widgets/lib/widgets.module.mjs +4 -1
  126. package/fesm2022/acorex-platform-auth.mjs +6 -4
  127. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  128. package/fesm2022/acorex-platform-common.mjs +1 -1
  129. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  130. package/fesm2022/acorex-platform-core.mjs +139 -1
  131. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  132. package/fesm2022/acorex-platform-layout-builder.mjs +21 -13
  133. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  134. package/fesm2022/acorex-platform-layout-designer-preview.component-CaRHf4x_.mjs +23 -0
  135. package/fesm2022/acorex-platform-layout-designer-preview.component-CaRHf4x_.mjs.map +1 -0
  136. package/fesm2022/{acorex-platform-layout-designer-widget-picker.component-DXgcm-fP.mjs → acorex-platform-layout-designer-widget-picker.component-BZryrCyh.mjs} +4 -4
  137. package/fesm2022/acorex-platform-layout-designer-widget-picker.component-BZryrCyh.mjs.map +1 -0
  138. package/fesm2022/acorex-platform-layout-designer.mjs +496 -345
  139. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  140. package/fesm2022/acorex-platform-layout-entity.mjs +14 -6
  141. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  142. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-DKNRxpQk.mjs → acorex-platform-themes-default-entity-master-create-view.component-Q8eTfAVx.mjs} +23 -13
  143. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Q8eTfAVx.mjs.map +1 -0
  144. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-BDk03AnX.mjs → acorex-platform-themes-default-entity-master-modify-view.component-BijYXMme.mjs} +4 -4
  145. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BijYXMme.mjs.map +1 -0
  146. package/fesm2022/acorex-platform-themes-default.mjs +226 -66
  147. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  148. package/fesm2022/acorex-platform-widgets-button-widget-designer.component-C0S_HJkl.mjs +57 -0
  149. package/fesm2022/acorex-platform-widgets-button-widget-designer.component-C0S_HJkl.mjs.map +1 -0
  150. package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-DAGbdSTk.mjs +57 -0
  151. package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-DAGbdSTk.mjs.map +1 -0
  152. package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-BCsej7C6.mjs → acorex-platform-widgets-checkbox-widget-view.component-tPk6Gylo.mjs} +4 -1
  153. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-tPk6Gylo.mjs.map +1 -0
  154. package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-Bb3aXCNZ.mjs +56 -0
  155. package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-Bb3aXCNZ.mjs.map +1 -0
  156. package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-DlfG4EP1.mjs → acorex-platform-widgets-page-widget-designer.component-6BMZ0qRw.mjs} +8 -9
  157. package/fesm2022/acorex-platform-widgets-page-widget-designer.component-6BMZ0qRw.mjs.map +1 -0
  158. package/fesm2022/acorex-platform-widgets-text-block-widget-designer.component-Bi9hlpvB.mjs +41 -0
  159. package/fesm2022/acorex-platform-widgets-text-block-widget-designer.component-Bi9hlpvB.mjs.map +1 -0
  160. package/fesm2022/acorex-platform-widgets.mjs +1391 -777
  161. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  162. package/layout/builder/lib/builder/widget.types.d.ts +20 -8
  163. package/layout/designer/index.d.ts +1 -6
  164. package/layout/designer/lib/{board → designer/components/board}/board.component.d.ts +3 -1
  165. package/layout/designer/lib/{breadcrumbs → designer/components/breadcrumbs}/breadcrumbs.component.d.ts +1 -1
  166. package/layout/designer/lib/designer/components/drawers/data-sources/data-sources.component.d.ts +12 -0
  167. package/layout/designer/lib/{history → designer/components/drawers/history}/history.component.d.ts +1 -1
  168. package/layout/designer/lib/{outline → designer/components/drawers/outline}/outline.component.d.ts +1 -1
  169. package/layout/designer/lib/{pages → designer/components/drawers/pages}/pages.component.d.ts +1 -1
  170. package/layout/designer/lib/{header-menu → designer/components/header-menu}/header-menu.component.d.ts +1 -1
  171. package/layout/designer/lib/designer/designer.component.d.ts +1 -1
  172. package/layout/designer/lib/designer/index.d.ts +7 -0
  173. package/layout/designer/lib/designer/shared/designer-connector.service.d.ts +11 -0
  174. package/layout/designer/lib/{designer.service.d.ts → designer/shared/designer.service.d.ts} +9 -12
  175. package/layout/designer/lib/designer/shared/designer.typs.d.ts +4 -0
  176. package/layout/designer/lib/designer/shared/drawer-content/drawer-content.component.d.ts +8 -0
  177. package/layout/designer/lib/{widget-designer-renderer.component.d.ts → designer/shared/widget-designer-renderer.directive.d.ts} +6 -8
  178. package/layout/designer/lib/property-viewer/widget-property-viewer.component.d.ts +8 -0
  179. package/layout/entity/lib/entity-registery.service.d.ts +1 -1
  180. package/package.json +7 -7
  181. package/themes/default/index.d.ts +2 -1
  182. package/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.d.ts +7 -2
  183. package/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.d.ts +1 -1
  184. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comment-list-view.component.d.ts +33 -0
  185. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comments.service.d.ts +11 -0
  186. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +3 -2
  187. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/overview/entity-single-overview.component.d.ts +11 -0
  188. package/themes/default/lib/layouts/entity-layouts/index.d.ts +1 -0
  189. package/widgets/lib/properties/data-source.props.d.ts +2 -0
  190. package/widgets/lib/properties/editors.props.d.ts +2 -5
  191. package/widgets/lib/properties/general.props.d.ts +7 -0
  192. package/widgets/lib/properties/index.d.ts +3 -0
  193. package/widgets/lib/properties/layout.props.d.ts +12 -3
  194. package/widgets/lib/widgets/actions/button/button-widget-designer.component.d.ts +15 -0
  195. package/widgets/lib/widgets/actions/button/button-widget-view.component.d.ts +1 -1
  196. package/widgets/lib/widgets/advance/file/file-box-widget-edit.component.d.ts +1 -0
  197. package/widgets/lib/widgets/advance/gallery/gallery-widget-edit.component.d.ts +1 -0
  198. package/widgets/lib/widgets/advance/map/index.d.ts +0 -3
  199. package/widgets/lib/widgets/advance/map/map-box-widget-edit.component.d.ts +10 -32
  200. package/widgets/lib/widgets/advance/map/map-box-widget-view.component.d.ts +6 -11
  201. package/widgets/lib/widgets/advance/qrcode/qrcode-widget-view.component.d.ts +5 -4
  202. package/widgets/lib/widgets/advance/signature/signature-pad-widget-edit.component.d.ts +1 -0
  203. package/widgets/lib/widgets/editors/checkbox/checkbox-widget-designer.component.d.ts +10 -0
  204. package/widgets/lib/widgets/editors/checkbox/checkbox-widget-edit.component.d.ts +2 -5
  205. package/widgets/lib/widgets/editors/checkbox/checkbox-widget-view.component.d.ts +3 -0
  206. package/widgets/lib/widgets/editors/color/color-box-widget-designer.component.d.ts +11 -0
  207. package/widgets/lib/widgets/editors/color/color-box-widget-edit.component.d.ts +3 -0
  208. package/widgets/lib/widgets/editors/contact/contact-widget-edit.component.d.ts +1 -0
  209. package/widgets/lib/widgets/editors/date-time/date-time-box-widget-edit.component.d.ts +1 -0
  210. package/widgets/lib/widgets/editors/email/email-box-widget-edit.component.d.ts +1 -0
  211. package/widgets/lib/widgets/editors/large-text/large-text-widget-edit.component.d.ts +1 -0
  212. package/widgets/lib/widgets/editors/link/link-widget-edit.component.d.ts +1 -0
  213. package/widgets/lib/widgets/editors/number/number-box-widget-edit.component.d.ts +1 -0
  214. package/widgets/lib/widgets/editors/password/password-box-widget-edit.component.d.ts +1 -2
  215. package/widgets/lib/widgets/editors/phone/phone-box-widget-edit.component.d.ts +1 -0
  216. package/widgets/lib/widgets/editors/rich-text/rich-text-widget-edit.component.d.ts +1 -0
  217. package/widgets/lib/widgets/editors/select/select-box-widget-edit.component.d.ts +1 -0
  218. package/widgets/lib/widgets/editors/select/select-box-widget-view.component.d.ts +1 -0
  219. package/widgets/lib/widgets/editors/selection-list/index.d.ts +1 -0
  220. package/widgets/lib/widgets/editors/selection-list/selection-list-widget-designer.component.d.ts +16 -0
  221. package/widgets/lib/widgets/editors/selection-list/selection-list-widget-edit.component.d.ts +4 -2
  222. package/widgets/lib/widgets/editors/selection-list/selection-list-widget-view.component.d.ts +1 -1
  223. package/widgets/lib/widgets/editors/text/text-box-widget-edit.component.d.ts +1 -0
  224. package/widgets/lib/widgets/editors/toggle/toggle-widget-edit.component.d.ts +2 -1
  225. package/widgets/lib/widgets/layout/block/block-widget-designer.component.d.ts +5 -1
  226. package/widgets/lib/widgets/layout/block/block-widget-view.component.d.ts +3 -0
  227. package/widgets/lib/widgets/layout/form-field/form-field-widget-designer.component.d.ts +2 -1
  228. package/widgets/lib/widgets/layout/grid/grid-widget-designer.component.d.ts +3 -2
  229. package/widgets/lib/widgets/layout/grid-item/grid-item-widget-designer.component.d.ts +6 -4
  230. package/widgets/lib/widgets/layout/grid-row/grid-row-widget-designer.component.d.ts +15 -0
  231. package/widgets/lib/widgets/layout/grid-row/grid-row-widget-print.component.d.ts +6 -0
  232. package/widgets/lib/widgets/layout/grid-row/grid-row-widget-view.component.d.ts +6 -0
  233. package/widgets/lib/widgets/layout/grid-row/grid-row-widget.config.d.ts +7 -0
  234. package/widgets/lib/widgets/layout/grid-row/index.d.ts +4 -0
  235. package/widgets/lib/widgets/layout/page/page-widget-designer.component.d.ts +3 -2
  236. package/widgets/lib/widgets/layout/text-block/text-block-widget-designer.component.d.ts +11 -0
  237. package/widgets/lib/widgets/layout/text-block/text-block-widget-view.component.d.ts +1 -1
  238. package/esm2022/layout/designer/lib/board/board.component.mjs +0 -92
  239. package/esm2022/layout/designer/lib/breadcrumbs/breadcrumbs.component.mjs +0 -64
  240. package/esm2022/layout/designer/lib/command.mjs +0 -185
  241. package/esm2022/layout/designer/lib/designer.service.mjs +0 -399
  242. package/esm2022/layout/designer/lib/header-menu/header-menu.component.mjs +0 -24
  243. package/esm2022/layout/designer/lib/helpers/grid-drawer/grid-drawer.component.mjs +0 -82
  244. package/esm2022/layout/designer/lib/history/history.component.mjs +0 -28
  245. package/esm2022/layout/designer/lib/outline/outline.component.mjs +0 -56
  246. package/esm2022/layout/designer/lib/pages/pages.component.mjs +0 -28
  247. package/esm2022/layout/designer/lib/widget-designer-renderer.component.mjs +0 -251
  248. package/esm2022/widgets/lib/widgets/advance/map/map-box-widget-column.component.mjs +0 -19
  249. package/esm2022/widgets/lib/widgets/advance/map/map-box-widget-filter.component.mjs +0 -20
  250. package/esm2022/widgets/lib/widgets/advance/map/map-box-widget-print.component.mjs +0 -19
  251. package/fesm2022/acorex-platform-layout-designer-preview.component-xkvSLydm.mjs +0 -23
  252. package/fesm2022/acorex-platform-layout-designer-preview.component-xkvSLydm.mjs.map +0 -1
  253. package/fesm2022/acorex-platform-layout-designer-widget-picker.component-DXgcm-fP.mjs.map +0 -1
  254. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-DKNRxpQk.mjs.map +0 -1
  255. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BDk03AnX.mjs.map +0 -1
  256. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-BCsej7C6.mjs.map +0 -1
  257. package/fesm2022/acorex-platform-widgets-page-widget-designer.component-DlfG4EP1.mjs.map +0 -1
  258. package/widgets/lib/widgets/advance/map/map-box-widget-column.component.d.ts +0 -6
  259. package/widgets/lib/widgets/advance/map/map-box-widget-filter.component.d.ts +0 -6
  260. package/widgets/lib/widgets/advance/map/map-box-widget-print.component.d.ts +0 -6
  261. /package/layout/designer/lib/{helpers → designer/components}/add-widget-button/add-widget-button.component.d.ts +0 -0
  262. /package/layout/designer/lib/{helpers → designer/components}/grid-drawer/grid-drawer.component.d.ts +0 -0
  263. /package/layout/designer/lib/{widget-picker → designer/components/widget-picker}/widget-picker.component.d.ts +0 -0
  264. /package/layout/designer/lib/{command.d.ts → designer/shared/command.d.ts} +0 -0
@@ -0,0 +1,224 @@
1
+ import { AXUnsubscriber } from '@acorex/core/utils';
2
+ import { AXP_WIDGET_TOKEN, AXPWidgetRegistryService, } from '@acorex/platform/layout/builder';
3
+ import { Directive, effect, HostListener, inject, Injector, input, NgZone, signal, ViewContainerRef, } from '@angular/core';
4
+ import { cloneDeep, get, merge, set } from 'lodash-es';
5
+ import { first } from 'rxjs';
6
+ import { AXPDesignerService } from './designer.service';
7
+ import * as i0 from "@angular/core";
8
+ export class AXPWidgetDesignerRendererDirective {
9
+ /**
10
+ * @ignore
11
+ */
12
+ constructor() {
13
+ this.mergedOptions = signal({});
14
+ this.injector = inject(Injector);
15
+ this.widgetRegistery = inject(AXPWidgetRegistryService);
16
+ this.unsubscriber = inject(AXUnsubscriber);
17
+ this.zone = inject(NgZone);
18
+ this.isLoading = signal(true);
19
+ this.service = inject(AXPDesignerService);
20
+ this.viewContainerRef = inject(ViewContainerRef);
21
+ this.parentNode = input();
22
+ this.index = input();
23
+ this.mode = input.required();
24
+ this.node = input.required();
25
+ this.hostElement = () => this.instance?.host;
26
+ this.isCurrentWidget = (w) => get(w, '__meta__.id') == get(this.node(), '__meta__.id');
27
+ this.service.onUpdate.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {
28
+ if (this.isCurrentWidget(c.widget)) {
29
+ this.applyOptions(c.values?.options);
30
+ }
31
+ });
32
+ //
33
+ this.service.onSelected.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {
34
+ this.zone.runOutsideAngular(() => {
35
+ if (this.isCurrentWidget(c.widget)) {
36
+ this.select();
37
+ }
38
+ else {
39
+ this.unselect();
40
+ }
41
+ });
42
+ });
43
+ //
44
+ this.service.onFocused.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {
45
+ if (c.widget && this.isCurrentWidget(c.widget)) {
46
+ this.addOverlay();
47
+ }
48
+ else {
49
+ this.removeOverlay();
50
+ }
51
+ });
52
+ //
53
+ this.service.onRefresh.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {
54
+ if (this.isCurrentWidget(c.widget)) {
55
+ this.instance?.setChildren(this.node().children ?? []);
56
+ }
57
+ });
58
+ //
59
+ effect(async () => {
60
+ await this.loadComponent();
61
+ }, { allowSignalWrites: true });
62
+ }
63
+ async loadComponent() {
64
+ //console.log('loadComponent', this.node().type);
65
+ this.viewContainerRef.clear();
66
+ this.isLoading.set(true);
67
+ this.config = this.widgetRegistery.resolve(this.node().type);
68
+ //
69
+ const props = this.config?.components[this.mode()]?.properties
70
+ ?.filter((c) => c.schema.defaultValue)
71
+ .map((c) => ({ [c.name]: c.schema.defaultValue }))
72
+ .reduce((acc, curr) => {
73
+ return { ...acc, ...curr };
74
+ }, {});
75
+ //
76
+ this.mergedOptions.set(merge(props, this.node().options) || {});
77
+ this.preprocessAndInitialOptions(cloneDeep(this.node().options));
78
+ const tokenValue = {
79
+ node: this.node(),
80
+ options: this.mergedOptions(),
81
+ config: this.config,
82
+ defaultValue: this.node().defaultValue,
83
+ };
84
+ const token = Injector.create({
85
+ parent: this.injector,
86
+ providers: [
87
+ {
88
+ provide: AXP_WIDGET_TOKEN,
89
+ useValue: tokenValue,
90
+ },
91
+ ],
92
+ });
93
+ var com = await this.config?.components[this.mode()]?.component();
94
+ this.instance = this.viewContainerRef.createComponent(com, { injector: token }).instance;
95
+ this.instance.parent = this.parentNode();
96
+ this.instance.index = this.index();
97
+ this.instance.mode = this.mode();
98
+ //
99
+ this.instance.onReady.pipe(first()).subscribe(() => {
100
+ const host = this.hostElement();
101
+ host.classList.add("axp-widget-host");
102
+ if (this.mode() == 'designer' && host) {
103
+ host.addEventListener('mouseover', (e) => {
104
+ e.stopPropagation();
105
+ this.addOverlay();
106
+ this.service.focus({ widget: this.node() });
107
+ });
108
+ host.addEventListener('mouseleave', (e) => {
109
+ e.stopPropagation();
110
+ this.removeOverlay();
111
+ this.service.focus({ widget: null });
112
+ });
113
+ host.addEventListener('click', (e) => {
114
+ e.stopPropagation();
115
+ this.select();
116
+ this.service.select({ widget: this.node() });
117
+ });
118
+ this.service.register({
119
+ config: this.config,
120
+ id: get(this.node(), '__meta__.id'),
121
+ instance: this.instance,
122
+ widget: this.node(),
123
+ });
124
+ }
125
+ });
126
+ }
127
+ select() {
128
+ this.hostElement()?.classList.add('axp-state-selected');
129
+ this.hostElement()?.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
130
+ }
131
+ unselect() {
132
+ this.hostElement()?.classList.remove('axp-state-selected');
133
+ }
134
+ addOverlay() {
135
+ this.zone.runOutsideAngular(() => {
136
+ if (this.hostElement()) {
137
+ this.hostElement()?.classList.add('axp-state-hover');
138
+ //
139
+ if (this.hostElement().querySelector('.axp-widget-overlay') || this.config?.type == 'container') {
140
+ return;
141
+ }
142
+ ;
143
+ this.overlay = document.createElement('div');
144
+ this.overlay.classList.add('axp-widget-overlay');
145
+ this.overlay.addEventListener('click', (e) => {
146
+ e.preventDefault();
147
+ e.stopPropagation();
148
+ this.service.select({ widget: this.node() });
149
+ });
150
+ this.overlay.addEventListener('mouseleave', (e) => {
151
+ e.preventDefault();
152
+ e.stopPropagation();
153
+ this.service.focus({ widget: null });
154
+ });
155
+ this.hostElement().appendChild(this.overlay);
156
+ }
157
+ });
158
+ }
159
+ removeOverlay() {
160
+ this.zone.runOutsideAngular(() => {
161
+ if (this.hostElement()) {
162
+ this.hostElement()?.classList.remove('axp-state-hover');
163
+ //
164
+ this.overlay?.remove();
165
+ }
166
+ });
167
+ }
168
+ preprocessAndInitialOptions(obj, pathPrefix = '') {
169
+ if (!obj)
170
+ return;
171
+ Object.entries(obj).forEach(([key, value]) => {
172
+ const currentPath = pathPrefix ? `${pathPrefix}.${key}` : key;
173
+ this.mergedOptions.update((currentOptions) => {
174
+ return set(currentOptions, currentPath, value);
175
+ });
176
+ });
177
+ }
178
+ applyOptions(values) {
179
+ if (this.instance && this.node().defaultValue != null) {
180
+ this.instance.setValue(this.node().defaultValue);
181
+ }
182
+ this.mergedOptions.update((currentOptions) => {
183
+ return merge(currentOptions, values);
184
+ });
185
+ this.instance?.setOptions(this.mergedOptions());
186
+ }
187
+ async onKeydownHandler(event) {
188
+ if (this.service.selectedNode() && this.isCurrentWidget(this.service.selectedNode()) && event.target == document.body) {
189
+ // handle delete
190
+ if (event.key == "Delete") {
191
+ event.preventDefault();
192
+ event.stopPropagation();
193
+ this.service.removeWidget(this.node());
194
+ }
195
+ //
196
+ // handle delete
197
+ if (this.config?.type == 'container' && event.key == "Insert") {
198
+ this.service.showPicker(this.node());
199
+ }
200
+ }
201
+ }
202
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPWidgetDesignerRendererDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
203
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.0", type: AXPWidgetDesignerRendererDirective, isStandalone: true, selector: "[axp-widget-designer-renderer]", inputs: { parentNode: { classPropertyName: "parentNode", publicName: "parentNode", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: true, transformFunction: null }, node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "document:keydown": "onKeydownHandler($event)" } }, providers: [
204
+ {
205
+ provide: AXUnsubscriber,
206
+ },
207
+ ], ngImport: i0 }); }
208
+ }
209
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPWidgetDesignerRendererDirective, decorators: [{
210
+ type: Directive,
211
+ args: [{
212
+ selector: '[axp-widget-designer-renderer]',
213
+ standalone: true,
214
+ providers: [
215
+ {
216
+ provide: AXUnsubscriber,
217
+ },
218
+ ],
219
+ }]
220
+ }], ctorParameters: () => [], propDecorators: { onKeydownHandler: [{
221
+ type: HostListener,
222
+ args: ['document:keydown', ['$event']]
223
+ }] } });
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWRlc2lnbmVyLXJlbmRlcmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvc2hhcmVkL3dpZGdldC1kZXNpZ25lci1yZW5kZXJlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxnQkFBZ0IsRUFLaEIsd0JBQXdCLEdBRXpCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sZ0JBQWdCLEdBRWpCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFXeEQsTUFBTSxPQUFPLGtDQUFrQztJQXlCN0M7O09BRUc7SUFDSDtRQTNCVSxrQkFBYSxHQUF3QixNQUFNLENBQU0sRUFBRSxDQUFDLENBQUM7UUFFdkQsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQixvQkFBZSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ25ELGlCQUFZLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RDLFNBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENB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USxFQUFFLENBQUM7Z0JBQzFCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN6QyxDQUFDO1lBQ0QsRUFBRTtZQUNGLGdCQUFnQjtZQUNoQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxJQUFJLFdBQVcsSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUM5RCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN2QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7OEdBek5VLGtDQUFrQztrR0FBbEMsa0NBQWtDLHlvQkFObEM7WUFDVDtnQkFDRSxPQUFPLEVBQUUsY0FBYzthQUN4QjtTQUNGOzsyRkFFVSxrQ0FBa0M7a0JBVDlDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdDQUFnQztvQkFDMUMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsY0FBYzt5QkFDeEI7cUJBQ0Y7aUJBQ0Y7d0RBNE1PLGdCQUFnQjtzQkFEckIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYVW5zdWJzY3JpYmVyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7XG4gIEFYUF9XSURHRVRfVE9LRU4sXG4gIEFYUFdpZGdldENvbXBvbmVudCxcbiAgQVhQV2lkZ2V0Q29uZmlnLFxuICBBWFBXaWRnZXROb2RlLFxuICBBWFBXaWRnZXROb2RlVG9rZW4sXG4gIEFYUFdpZGdldFJlZ2lzdHJ5U2VydmljZSxcbiAgQVhQV2lkZ2V0UmVuZGVyTW9kZSxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIGVmZmVjdCxcbiAgSG9zdExpc3RlbmVyLFxuICBpbmplY3QsXG4gIEluamVjdG9yLFxuICBpbnB1dCxcbiAgTmdab25lLFxuICBzaWduYWwsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIFdyaXRhYmxlU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgZ2V0LCBtZXJnZSwgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFBEZXNpZ25lclNlcnZpY2UgfSBmcm9tICcuL2Rlc2lnbmVyLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhwLXdpZGdldC1kZXNpZ25lci1yZW5kZXJlcl0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFVuc3Vic2NyaWJlcixcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBXaWRnZXREZXNpZ25lclJlbmRlcmVyRGlyZWN0aXZlIHtcbiAgcHJvdGVjdGVkIG1lcmdlZE9wdGlvbnM6IFdyaXRhYmxlU2lnbmFsPGFueT4gPSBzaWduYWw8YW55Pih7fSk7XG5cbiAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByb3RlY3RlZCB3aWRnZXRSZWdpc3RlcnkgPSBpbmplY3QoQVhQV2lkZ2V0UmVnaXN0cnlTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHVuc3Vic2NyaWJlciA9IGluamVjdChBWFVuc3Vic2NyaWJlcik7XG4gIHByb3RlY3RlZCB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgcHJvdGVjdGVkIGlzTG9hZGluZyA9IHNpZ25hbCh0cnVlKTtcbiAgcHJpdmF0ZSBpbnN0YW5jZSE6IEFYUFdpZGdldENvbXBvbmVudDtcbiAgcHJpdmF0ZSBjb25maWc/OiBBWFBXaWRnZXRDb25maWcgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBzZXJ2aWNlID0gaW5qZWN0KEFYUERlc2lnbmVyU2VydmljZSk7XG4gIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcblxuICBwYXJlbnROb2RlID0gaW5wdXQ8QVhQV2lkZ2V0Q29tcG9uZW50IHwgbnVsbD4oKTtcblxuICBpbmRleCA9IGlucHV0PG51bWJlciB8IG51bGw+KCk7XG5cbiAgbW9kZSA9IGlucHV0LnJlcXVpcmVkPEFYUFdpZGdldFJlbmRlck1vZGU+KCk7XG4gIG5vZGUgPSBpbnB1dC5yZXF1aXJlZDxBWFBXaWRnZXROb2RlPigpO1xuXG4gIHByaXZhdGUgaG9zdEVsZW1lbnQgPSAoKSA9PiB0aGlzLmluc3RhbmNlPy5ob3N0IGFzIEhUTUxEaXZFbGVtZW50O1xuICBwcml2YXRlIGlzQ3VycmVudFdpZGdldCA9ICh3OiBBWFBXaWRnZXROb2RlKSA9PiBnZXQodywgJ19fbWV0YV9fLmlkJykgPT0gZ2V0KHRoaXMubm9kZSgpLCAnX19tZXRhX18uaWQnKTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLm9uVXBkYXRlLnBpcGUodGhpcy51bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc0N1cnJlbnRXaWRnZXQoYy53aWRnZXQpKSB7XG4gICAgICAgIHRoaXMuYXBwbHlPcHRpb25zKGMudmFsdWVzPy5vcHRpb25zKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICAvL1xuICAgIHRoaXMuc2VydmljZS5vblNlbGVjdGVkLnBpcGUodGhpcy51bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5pc0N1cnJlbnRXaWRnZXQoYy53aWRnZXQpKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3QoKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudW5zZWxlY3QoKVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICAvL1xuICAgIHRoaXMuc2VydmljZS5vbkZvY3VzZWQucGlwZSh0aGlzLnVuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKGMpID0+IHtcbiAgICAgIGlmIChjLndpZGdldCAmJiB0aGlzLmlzQ3VycmVudFdpZGdldChjLndpZGdldCkpIHtcbiAgICAgICAgdGhpcy5hZGRPdmVybGF5KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZU92ZXJsYXkoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICAvL1xuICAgIHRoaXMuc2VydmljZS5vblJlZnJlc2gucGlwZSh0aGlzLnVuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKGMpID0+IHtcbiAgICAgIGlmICh0aGlzLmlzQ3VycmVudFdpZGdldChjLndpZGdldCkpIHtcbiAgICAgICAgdGhpcy5pbnN0YW5jZT8uc2V0Q2hpbGRyZW4odGhpcy5ub2RlKCkuY2hpbGRyZW4gPz8gW10pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIC8vXG4gICAgZWZmZWN0KFxuICAgICAgYXN5bmMgKCkgPT4ge1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRDb21wb25lbnQoKTtcbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICApO1xuICB9XG5cblxuICBwcml2YXRlIGFzeW5jIGxvYWRDb21wb25lbnQoKSB7XG4gICAgLy9jb25zb2xlLmxvZygnbG9hZENvbXBvbmVudCcsIHRoaXMubm9kZSgpLnR5cGUpO1xuICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLmNvbmZpZyA9IHRoaXMud2lkZ2V0UmVnaXN0ZXJ5LnJlc29sdmUodGhpcy5ub2RlKCkudHlwZSk7XG4gICAgLy9cbiAgICBjb25zdCBwcm9wcyA9IHRoaXMuY29uZmlnPy5jb21wb25lbnRzW3RoaXMubW9kZSgpXT8ucHJvcGVydGllc1xuICAgICAgPy5maWx0ZXIoKGMpID0+IGMuc2NoZW1hLmRlZmF1bHRWYWx1ZSlcbiAgICAgIC5tYXAoKGMpID0+ICh7IFtjLm5hbWVdOiBjLnNjaGVtYS5kZWZhdWx0VmFsdWUgfSkpXG4gICAgICAucmVkdWNlKChhY2MsIGN1cnIpID0+IHtcbiAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCAuLi5jdXJyIH07XG4gICAgICB9LCB7fSk7XG4gICAgLy9cbiAgICB0aGlzLm1lcmdlZE9wdGlvbnMuc2V0KG1lcmdlKHByb3BzLCB0aGlzLm5vZGUoKS5vcHRpb25zKSB8fCB7fSk7XG4gICAgdGhpcy5wcmVwcm9jZXNzQW5kSW5pdGlhbE9wdGlvbnMoY2xvbmVEZWVwKHRoaXMubm9kZSgpLm9wdGlvbnMpKTtcblxuICAgIGNvbnN0IHRva2VuVmFsdWUgPSB7XG4gICAgICBub2RlOiB0aGlzLm5vZGUoKSxcbiAgICAgIG9wdGlvbnM6IHRoaXMubWVyZ2VkT3B0aW9ucygpLFxuICAgICAgY29uZmlnOiB0aGlzLmNvbmZpZyxcbiAgICAgIGRlZmF1bHRWYWx1ZTogdGhpcy5ub2RlKCkuZGVmYXVsdFZhbHVlLFxuICAgIH0gYXMgQVhQV2lkZ2V0Tm9kZVRva2VuO1xuXG4gICAgY29uc3QgdG9rZW4gPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBBWFBfV0lER0VUX1RPS0VOLFxuICAgICAgICAgIHVzZVZhbHVlOiB0b2tlblZhbHVlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgICB2YXIgY29tID0gYXdhaXQgdGhpcy5jb25maWc/LmNvbXBvbmVudHNbdGhpcy5tb2RlKCldPy5jb21wb25lbnQoKTtcbiAgICB0aGlzLmluc3RhbmNlID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudDxBWFBXaWRnZXRDb21wb25lbnQ8YW55Pj4oY29tLCB7IGluamVjdG9yOiB0b2tlbiB9KS5pbnN0YW5jZTtcbiAgICB0aGlzLmluc3RhbmNlLnBhcmVudCA9IHRoaXMucGFyZW50Tm9kZSgpO1xuICAgIHRoaXMuaW5zdGFuY2UuaW5kZXggPSB0aGlzLmluZGV4KCk7XG4gICAgdGhpcy5pbnN0YW5jZS5tb2RlID0gdGhpcy5tb2RlKCk7XG4gICAgLy9cbiAgICB0aGlzLmluc3RhbmNlLm9uUmVhZHkucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgaG9zdCA9IHRoaXMuaG9zdEVsZW1lbnQoKTtcbiAgICAgIGhvc3QuY2xhc3NMaXN0LmFkZChcImF4cC13aWRnZXQtaG9zdFwiKTtcbiAgICAgIGlmICh0aGlzLm1vZGUoKSA9PSAnZGVzaWduZXInICYmIGhvc3QpIHtcbiAgICAgICAgaG9zdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW92ZXInLCAoZSkgPT4ge1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgdGhpcy5hZGRPdmVybGF5KCk7XG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLmZvY3VzKHsgd2lkZ2V0OiB0aGlzLm5vZGUoKSB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGhvc3QuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIChlKSA9PiB7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICB0aGlzLnJlbW92ZU92ZXJsYXkoKTtcbiAgICAgICAgICB0aGlzLnNlcnZpY2UuZm9jdXMoeyB3aWRnZXQ6IG51bGwgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGhvc3QuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4ge1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgdGhpcy5zZWxlY3QoKTtcbiAgICAgICAgICB0aGlzLnNlcnZpY2Uuc2VsZWN0KHsgd2lkZ2V0OiB0aGlzLm5vZGUoKSB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2VydmljZS5yZWdpc3Rlcih7XG4gICAgICAgICAgY29uZmlnOiB0aGlzLmNvbmZpZyEsXG4gICAgICAgICAgaWQ6IGdldCh0aGlzLm5vZGUoKSwgJ19fbWV0YV9fLmlkJykgYXMgYW55IGFzIG51bWJlcixcbiAgICAgICAgICBpbnN0YW5jZTogdGhpcy5pbnN0YW5jZSxcbiAgICAgICAgICB3aWRnZXQ6IHRoaXMubm9kZSgpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb3ZlcmxheTogSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gIHByaXZhdGUgc2VsZWN0KCkge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQoKT8uY2xhc3NMaXN0LmFkZCgnYXhwLXN0YXRlLXNlbGVjdGVkJyk7XG4gICAgdGhpcy5ob3N0RWxlbWVudCgpPy5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICduZWFyZXN0JyB9KTtcbiAgfVxuXG4gIHVuc2VsZWN0KCkge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQoKT8uY2xhc3NMaXN0LnJlbW92ZSgnYXhwLXN0YXRlLXNlbGVjdGVkJyk7XG4gIH1cblxuICBwcml2YXRlIGFkZE92ZXJsYXkoKSB7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmhvc3RFbGVtZW50KCkpIHtcbiAgICAgICAgdGhpcy5ob3N0RWxlbWVudCgpPy5jbGFzc0xpc3QuYWRkKCdheHAtc3RhdGUtaG92ZXInKTtcbiAgICAgICAgLy9cbiAgICAgICAgaWYgKHRoaXMuaG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yKCcuYXhwLXdpZGdldC1vdmVybGF5JykgfHwgdGhpcy5jb25maWc/LnR5cGUgPT0gJ2NvbnRhaW5lcicpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5vdmVybGF5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMub3ZlcmxheS5jbGFzc0xpc3QuYWRkKCdheHAtd2lkZ2V0LW92ZXJsYXknKTtcbiAgICAgICAgdGhpcy5vdmVybGF5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+IHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICB0aGlzLnNlcnZpY2Uuc2VsZWN0KHsgd2lkZ2V0OiB0aGlzLm5vZGUoKSB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub3ZlcmxheS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgKGUpID0+IHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICB0aGlzLnNlcnZpY2UuZm9jdXMoeyB3aWRnZXQ6IG51bGwgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmhvc3RFbGVtZW50KCkuYXBwZW5kQ2hpbGQodGhpcy5vdmVybGF5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlT3ZlcmxheSgpIHtcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaG9zdEVsZW1lbnQoKSkge1xuICAgICAgICB0aGlzLmhvc3RFbGVtZW50KCk/LmNsYXNzTGlzdC5yZW1vdmUoJ2F4cC1zdGF0ZS1ob3ZlcicpO1xuICAgICAgICAvL1xuICAgICAgICB0aGlzLm92ZXJsYXk/LnJlbW92ZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJlcHJvY2Vzc0FuZEluaXRpYWxPcHRpb25zKG9iajogYW55LCBwYXRoUHJlZml4OiBzdHJpbmcgPSAnJyk6IHZvaWQge1xuICAgIGlmICghb2JqKSByZXR1cm47XG4gICAgT2JqZWN0LmVudHJpZXMob2JqKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gcGF0aFByZWZpeCA/IGAke3BhdGhQcmVmaXh9LiR7a2V5fWAgOiBrZXk7XG4gICAgICB0aGlzLm1lcmdlZE9wdGlvbnMudXBkYXRlKChjdXJyZW50T3B0aW9ucykgPT4ge1xuICAgICAgICByZXR1cm4gc2V0KGN1cnJlbnRPcHRpb25zLCBjdXJyZW50UGF0aCwgdmFsdWUpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5T3B0aW9ucyh2YWx1ZXM6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmluc3RhbmNlICYmIHRoaXMubm9kZSgpLmRlZmF1bHRWYWx1ZSAhPSBudWxsKSB7XG4gICAgICB0aGlzLmluc3RhbmNlLnNldFZhbHVlKHRoaXMubm9kZSgpLmRlZmF1bHRWYWx1ZSk7XG4gICAgfVxuICAgIHRoaXMubWVyZ2VkT3B0aW9ucy51cGRhdGUoKGN1cnJlbnRPcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gbWVyZ2UoY3VycmVudE9wdGlvbnMsIHZhbHVlcyk7XG4gICAgfSk7XG4gICAgdGhpcy5pbnN0YW5jZT8uc2V0T3B0aW9ucyh0aGlzLm1lcmdlZE9wdGlvbnMoKSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgYXN5bmMgb25LZXlkb3duSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLnNlcnZpY2Uuc2VsZWN0ZWROb2RlKCkgJiYgdGhpcy5pc0N1cnJlbnRXaWRnZXQodGhpcy5zZXJ2aWNlLnNlbGVjdGVkTm9kZSgpISkgJiYgZXZlbnQudGFyZ2V0ID09IGRvY3VtZW50LmJvZHkpIHtcbiAgICAgIC8vIGhhbmRsZSBkZWxldGVcbiAgICAgIGlmIChldmVudC5rZXkgPT0gXCJEZWxldGVcIikge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLnJlbW92ZVdpZGdldCh0aGlzLm5vZGUoKSk7XG4gICAgICB9XG4gICAgICAvL1xuICAgICAgLy8gaGFuZGxlIGRlbGV0ZVxuICAgICAgaWYgKHRoaXMuY29uZmlnPy50eXBlID09ICdjb250YWluZXInICYmIGV2ZW50LmtleSA9PSBcIkluc2VydFwiKSB7XG4gICAgICAgIHRoaXMuc2VydmljZS5zaG93UGlja2VyKHRoaXMubm9kZSgpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -8,13 +8,13 @@ export class AXPLayoutDesignerPreviewComponent {
8
8
  constructor() { }
9
9
  ngOnInit() { }
10
10
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLayoutDesignerPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPLayoutDesignerPreviewComponent, isStandalone: true, selector: "axp-layout-preview", ngImport: i0, template: "<div class=\"ax-flex ax-items-center ax-justify-between ax-h-12 ax-bg-neutral-800 ax-dark\">\n <ax-button look=\"blank\" class=\"ax-lg\">\n <ax-prefix>\n <ax-icon class=\"fa-regular fa-edit\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <p class=\"ax-text-neutral-100\">Preview Title</p>\n <div class=\"ax-flex\">\n <ax-button look=\"blank\" class=\"ax-lg\">\n <ax-prefix>\n <ax-icon class=\"fa-regular fa-sliders\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <ax-button look=\"blank\" class=\"ax-lg\">\n <ax-prefix>\n <ax-icon class=\"fa-regular fa-up-right-and-down-left-from-center\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n\n</div>\n<ax-button look=\"blank\" class=\"ax-lg ax-absolute ax-bottom-2\">\n <ax-prefix>\n <ax-icon class=\"fa-regular fa-sliders\"></ax-icon>\n </ax-prefix>\n</ax-button>", styles: [""], dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.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" }], encapsulation: i0.ViewEncapsulation.None }); }
11
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPLayoutDesignerPreviewComponent, isStandalone: true, selector: "axp-layout-preview", ngImport: i0, template: "<div class=\"ax-dark ax-h-full ax-relative ax-bg-default\">\n <div class=\"ax-flex ax-items-center ax-justify-between ax-h-12 ax-bg-surface ax-shadow\">\n <ax-button look=\"blank\" class=\"ax-lg\">\n <ax-prefix>\n <ax-icon class=\"fa-regular fa-edit\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <p class=\"ax-text-neutral-100\">Preview Title</p>\n <div class=\"ax-flex\">\n <ax-button look=\"blank\" class=\"ax-lg\">\n <ax-prefix>\n <ax-icon class=\"fa-regular fa-sliders\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <ax-button look=\"blank\" class=\"ax-lg\">\n <ax-prefix>\n <ax-icon class=\"fa-regular fa-up-right-and-down-left-from-center\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n\n </div>\n <div\n class=\"ax-select-none ax-flex ax-items-center ax-gap-1 ax-w-fit ax-rounded-full ax-text-sm ax-font-medium ax-p-1 ax-text-neutral-100 ax-bg-surface ax-absolute ax-bottom-3 ax-inset-x-0 ax-mx-auto\">\n <ax-button class=\"ax-sm\" look=\"blank\">\n <ax-prefix>\n <ax-icon class=\"fa-solid fa-chevron-left\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <p>1 of 10</p>\n <ax-button class=\"ax-sm\" look=\"blank\">\n <ax-prefix>\n <ax-icon class=\"fa-solid fa-chevron-right\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.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" }], encapsulation: i0.ViewEncapsulation.None }); }
12
12
  }
13
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLayoutDesignerPreviewComponent, decorators: [{
14
14
  type: Component,
15
15
  args: [{ selector: 'axp-layout-preview', encapsulation: ViewEncapsulation.None, standalone: true, imports: [
16
16
  AXButtonModule,
17
17
  AXDecoratorModule
18
- ], template: "<div class=\"ax-flex ax-items-center ax-justify-between ax-h-12 ax-bg-neutral-800 ax-dark\">\n <ax-button look=\"blank\" class=\"ax-lg\">\n <ax-prefix>\n <ax-icon class=\"fa-regular fa-edit\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <p class=\"ax-text-neutral-100\">Preview Title</p>\n <div class=\"ax-flex\">\n <ax-button look=\"blank\" class=\"ax-lg\">\n <ax-prefix>\n <ax-icon class=\"fa-regular fa-sliders\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <ax-button look=\"blank\" class=\"ax-lg\">\n <ax-prefix>\n <ax-icon class=\"fa-regular fa-up-right-and-down-left-from-center\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n\n</div>\n<ax-button look=\"blank\" class=\"ax-lg ax-absolute ax-bottom-2\">\n <ax-prefix>\n <ax-icon class=\"fa-regular fa-sliders\"></ax-icon>\n </ax-prefix>\n</ax-button>" }]
18
+ ], template: "<div class=\"ax-dark ax-h-full ax-relative ax-bg-default\">\n <div class=\"ax-flex ax-items-center ax-justify-between ax-h-12 ax-bg-surface ax-shadow\">\n <ax-button look=\"blank\" class=\"ax-lg\">\n <ax-prefix>\n <ax-icon class=\"fa-regular fa-edit\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <p class=\"ax-text-neutral-100\">Preview Title</p>\n <div class=\"ax-flex\">\n <ax-button look=\"blank\" class=\"ax-lg\">\n <ax-prefix>\n <ax-icon class=\"fa-regular fa-sliders\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <ax-button look=\"blank\" class=\"ax-lg\">\n <ax-prefix>\n <ax-icon class=\"fa-regular fa-up-right-and-down-left-from-center\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n\n </div>\n <div\n class=\"ax-select-none ax-flex ax-items-center ax-gap-1 ax-w-fit ax-rounded-full ax-text-sm ax-font-medium ax-p-1 ax-text-neutral-100 ax-bg-surface ax-absolute ax-bottom-3 ax-inset-x-0 ax-mx-auto\">\n <ax-button class=\"ax-sm\" look=\"blank\">\n <ax-prefix>\n <ax-icon class=\"fa-solid fa-chevron-left\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <p>1 of 10</p>\n <ax-button class=\"ax-sm\" look=\"blank\">\n <ax-prefix>\n <ax-icon class=\"fa-solid fa-chevron-right\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n</div>" }]
19
19
  }], ctorParameters: () => [] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL3ByZXZpZXcvcHJldmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL3ByZXZpZXcvcHJldmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQWFyRSxNQUFNLE9BQU8saUNBQWlDO0lBQzFDLGdCQUFnQixDQUFDO0lBRWpCLFFBQVEsS0FBVyxDQUFDOzhHQUhYLGlDQUFpQztrR0FBakMsaUNBQWlDLDhFQ2Y5QyxxOEJBeUJZLHlERGRKLGNBQWMsdVpBQ2QsaUJBQWlCOzsyRkFHWixpQ0FBaUM7a0JBWDdDLFNBQVM7K0JBQ0ksb0JBQW9CLGlCQUdmLGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQO3dCQUNMLGNBQWM7d0JBQ2QsaUJBQWlCO3FCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2F4cC1sYXlvdXQtcHJldmlldycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3ByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3ByZXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgQVhEZWNvcmF0b3JNb2R1bGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEFYUExheW91dERlc2lnbmVyUHJldmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgY29uc3RydWN0b3IoKSB7IH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQgeyB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1iZXR3ZWVuIGF4LWgtMTIgYXgtYmctbmV1dHJhbC04MDAgYXgtZGFya1wiPlxuICAgIDxheC1idXR0b24gbG9vaz1cImJsYW5rXCIgY2xhc3M9XCJheC1sZ1wiPlxuICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1yZWd1bGFyIGZhLWVkaXRcIj48L2F4LWljb24+XG4gICAgICAgIDwvYXgtcHJlZml4PlxuICAgIDwvYXgtYnV0dG9uPlxuICAgIDxwIGNsYXNzPVwiYXgtdGV4dC1uZXV0cmFsLTEwMFwiPlByZXZpZXcgVGl0bGU8L3A+XG4gICAgPGRpdiBjbGFzcz1cImF4LWZsZXhcIj5cbiAgICAgICAgPGF4LWJ1dHRvbiBsb29rPVwiYmxhbmtcIiBjbGFzcz1cImF4LWxnXCI+XG4gICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtcmVndWxhciBmYS1zbGlkZXJzXCI+PC9heC1pY29uPlxuICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICA8YXgtYnV0dG9uIGxvb2s9XCJibGFua1wiIGNsYXNzPVwiYXgtbGdcIj5cbiAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1yZWd1bGFyIGZhLXVwLXJpZ2h0LWFuZC1kb3duLWxlZnQtZnJvbS1jZW50ZXJcIj48L2F4LWljb24+XG4gICAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgPC9kaXY+XG5cbjwvZGl2PlxuPGF4LWJ1dHRvbiBsb29rPVwiYmxhbmtcIiBjbGFzcz1cImF4LWxnIGF4LWFic29sdXRlIGF4LWJvdHRvbS0yXCI+XG4gICAgPGF4LXByZWZpeD5cbiAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1yZWd1bGFyIGZhLXNsaWRlcnNcIj48L2F4LWljb24+XG4gICAgPC9heC1wcmVmaXg+XG48L2F4LWJ1dHRvbj4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL3ByZXZpZXcvcHJldmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL3ByZXZpZXcvcHJldmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQWFyRSxNQUFNLE9BQU8saUNBQWlDO0lBQzFDLGdCQUFnQixDQUFDO0lBRWpCLFFBQVEsS0FBVyxDQUFDOzhHQUhYLGlDQUFpQztrR0FBakMsaUNBQWlDLDhFQ2Y5QywraURBb0NNLHlERHpCRSxjQUFjLHVaQUNkLGlCQUFpQjs7MkZBR1osaUNBQWlDO2tCQVg3QyxTQUFTOytCQUNJLG9CQUFvQixpQkFHZixpQkFBaUIsQ0FBQyxJQUFJLGNBQ3pCLElBQUksV0FDUDt3QkFDTCxjQUFjO3dCQUNkLGlCQUFpQjtxQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdheHAtbGF5b3V0LXByZXZpZXcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcmV2aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wcmV2aWV3LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgICAgIEFYRGVjb3JhdG9yTW9kdWxlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBBWFBMYXlvdXREZXNpZ25lclByZXZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHsgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF4LWRhcmsgYXgtaC1mdWxsIGF4LXJlbGF0aXZlIGF4LWJnLWRlZmF1bHRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1iZXR3ZWVuIGF4LWgtMTIgYXgtYmctc3VyZmFjZSBheC1zaGFkb3dcIj5cbiAgICAgICAgPGF4LWJ1dHRvbiBsb29rPVwiYmxhbmtcIiBjbGFzcz1cImF4LWxnXCI+XG4gICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtcmVndWxhciBmYS1lZGl0XCI+PC9heC1pY29uPlxuICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICA8cCBjbGFzcz1cImF4LXRleHQtbmV1dHJhbC0xMDBcIj5QcmV2aWV3IFRpdGxlPC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleFwiPlxuICAgICAgICAgICAgPGF4LWJ1dHRvbiBsb29rPVwiYmxhbmtcIiBjbGFzcz1cImF4LWxnXCI+XG4gICAgICAgICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1yZWd1bGFyIGZhLXNsaWRlcnNcIj48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgICAgIDxheC1idXR0b24gbG9vaz1cImJsYW5rXCIgY2xhc3M9XCJheC1sZ1wiPlxuICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtcmVndWxhciBmYS11cC1yaWdodC1hbmQtZG93bi1sZWZ0LWZyb20tY2VudGVyXCI+PC9heC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImF4LXNlbGVjdC1ub25lIGF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC0xIGF4LXctZml0IGF4LXJvdW5kZWQtZnVsbCBheC10ZXh0LXNtIGF4LWZvbnQtbWVkaXVtIGF4LXAtMSBheC10ZXh0LW5ldXRyYWwtMTAwIGF4LWJnLXN1cmZhY2UgYXgtYWJzb2x1dGUgYXgtYm90dG9tLTMgYXgtaW5zZXQteC0wIGF4LW14LWF1dG9cIj5cbiAgICAgICAgPGF4LWJ1dHRvbiBjbGFzcz1cImF4LXNtXCIgbG9vaz1cImJsYW5rXCI+XG4gICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtY2hldnJvbi1sZWZ0XCI+PC9heC1pY29uPlxuICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICA8cD4xIG9mIDEwPC9wPlxuICAgICAgICA8YXgtYnV0dG9uIGNsYXNzPVwiYXgtc21cIiBsb29rPVwiYmxhbmtcIj5cbiAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1jaGV2cm9uLXJpZ2h0XCI+PC9heC1pY29uPlxuICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+Il19
@@ -4,6 +4,7 @@ import { AXPLayoutBuilderModule, AXPWidgetRegistryService } from '@acorex/platfo
4
4
  import { CommonModule } from '@angular/common';
5
5
  import { ChangeDetectionStrategy, Component, computed, effect, EventEmitter, inject, input, Output, signal, untracked } from '@angular/core';
6
6
  import { capitalize, cloneDeep, isArray, isEmpty, isNil, merge, set, sortBy, unionBy } from 'lodash-es';
7
+ import { AXPDesignerConnectorAbstract } from '../designer';
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "@acorex/components/collapse";
9
10
  import * as i2 from "@acorex/components/tabs";
@@ -12,6 +13,7 @@ export class AXPWidgetPropertyViewerComponent {
12
13
  constructor() {
13
14
  this.widget = input.required();
14
15
  this.widgetRegistryService = inject(AXPWidgetRegistryService);
16
+ this.connector = inject(AXPDesignerConnectorAbstract);
15
17
  this.currentTabIndex = signal(0);
16
18
  this.config = signal(null);
17
19
  this.allPoperties = [];
@@ -19,9 +21,13 @@ export class AXPWidgetPropertyViewerComponent {
19
21
  this.groups = computed(() => {
20
22
  return this.tabs().length ? this.tabs()[this.currentTabIndex()].groups : [];
21
23
  });
24
+ this.groupCollapsedStates = new Map();
22
25
  this.onChanged = new EventEmitter();
23
26
  this.context = signal({});
24
27
  this.initialContext = {};
28
+ this.functions = {
29
+ getDataSourceNames: this.getDataSourceNames.bind(this)
30
+ };
25
31
  effect(() => {
26
32
  if (!this.widget())
27
33
  return;
@@ -62,7 +68,7 @@ export class AXPWidgetPropertyViewerComponent {
62
68
  //
63
69
  this.allPoperties.push(...props);
64
70
  tab.groups = unionBy(sortBy(props.map((pg) => ({
65
- isCollapsed: false,
71
+ isCollapsed: !!this.groupCollapsedStates.get(pg.group.name),
66
72
  name: pg.group.name,
67
73
  title: pg.group.title,
68
74
  props: sortBy(props.filter((p) => p.group.name == pg.group.name), 'title'),
@@ -73,7 +79,7 @@ export class AXPWidgetPropertyViewerComponent {
73
79
  this.initialContext = this.allPoperties
74
80
  .filter((c) => (!isArray(c.schema.defaultValue) && !isNil(c.schema.defaultValue)) || (isArray(c.schema.defaultValue) && !isEmpty(c.schema.defaultValue)))
75
81
  .reduce((acc, c) => {
76
- set(acc, c.schema.interface.path, c.schema.defaultValue); // Use lodash's set
82
+ set(acc, c.schema.interface.path, c.schema.defaultValue);
77
83
  return acc;
78
84
  }, {});
79
85
  //
@@ -94,13 +100,19 @@ export class AXPWidgetPropertyViewerComponent {
94
100
  this.currentTabIndex.set(indx);
95
101
  }
96
102
  }
103
+ handleCollapsedChange(group, collapsed) {
104
+ this.groupCollapsedStates.set(group, collapsed);
105
+ }
106
+ getDataSourceNames() {
107
+ return this.connector.getDataSourcesNames();
108
+ }
97
109
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPWidgetPropertyViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
98
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPWidgetPropertyViewerComponent, isStandalone: true, selector: "axp-widget-property-viewer", inputs: { widget: { classPropertyName: "widget", publicName: "widget", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onChanged: "onChanged" }, ngImport: i0, template: "<axp-widgets-container [context]=\"context()\" (onChanged)=\"handleContextChange($event)\">\n <div class=\"ax-flex ax-flex-col\">\n <div class=\"ax-pb-2\">\n <ax-tabs look=\"default\" (onActiveTabChanged)=\"handleTabChange($event)\" [look]=\"'with-line'\">\n @for( tab of tabs();track $index){\n <ax-tab-item [text]=\"tab.title\" [key]=\"$index.toString()\" [active]=\"currentTabIndex() === $index\">\n </ax-tab-item>\n }\n </ax-tabs>\n </div>\n <div class=\"ax-flex-1 ax-overflow-auto\">\n <ax-collapse-group class=\"ax-h-fit\" look=\"blank\">\n @for( group of groups();track $index){\n <ax-collapse [caption]=\"group.title\" look=\"solid\" [(isCollapsed)]=\"group.isCollapsed\">\n <div class=\"ax-flex ax-flex-col ax-divide-y\">\n @for( p of group.props;track $index){\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-py-2 first:ax-pt-0 last:ax-pb-0\">\n <span class=\"ax-font-semibold\">{{p.title}}</span>\n @if(p.schema.interface)\n {\n <axp-widget-renderer [node]=\"p.schema.interface\" [mode]=\"'edit'\">\n </axp-widget-renderer>\n }\n </div>\n }\n </div>\n </ax-collapse>\n }\n </ax-collapse-group>\n </div>\n </div>\n</axp-widgets-container>", styles: ["ax-collapse .ax-collapse-header{font-weight:600}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXCollapseModule }, { kind: "component", type: i1.AXCollapseComponent, selector: "ax-collapse", inputs: ["disabled", "look", "isCollapsed", "showHeader", "caption", "icon", "isLoading", "headerTemplate"], outputs: ["onClick", "isCollapsedChange"] }, { kind: "component", type: i1.AXCollapseGroupComponent, selector: "ax-collapse-group", inputs: ["look", "accordion", "activeIndex"], outputs: ["accordionChange", "activeIndexChange"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i2.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i2.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i3.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "variables", "functions"], outputs: ["onChanged", "contextChange"] }, { kind: "component", type: i3.AXPWidgetRendererComponent, selector: "axp-widget-renderer", inputs: ["node", "mode", "parentNode", "index"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
110
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPWidgetPropertyViewerComponent, isStandalone: true, selector: "axp-widget-property-viewer", inputs: { widget: { classPropertyName: "widget", publicName: "widget", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onChanged: "onChanged" }, ngImport: i0, template: "<axp-widgets-container [context]=\"context()\" (onChanged)=\"handleContextChange($event)\" [functions]=\"functions\">\n <div class=\"ax-flex ax-flex-col\">\n <div class=\"ax-pb-2\">\n <ax-tabs look=\"default\" (onActiveTabChanged)=\"handleTabChange($event)\" [look]=\"'with-line'\">\n @for( tab of tabs();track $index){\n <ax-tab-item [text]=\"tab.title\" [key]=\"$index.toString()\" [active]=\"currentTabIndex() === $index\">\n </ax-tab-item>\n }\n </ax-tabs>\n </div>\n <div class=\"ax-flex-1 ax-overflow-auto\">\n <ax-collapse-group class=\"ax-h-fit\" look=\"blank\">\n @for( group of groups();track $index){\n <ax-collapse [caption]=\"group.title\" look=\"solid\" [(isCollapsed)]=\"group.isCollapsed\"\n (isCollapsedChange)=\"handleCollapsedChange(group.name,$event)\">\n <div class=\"ax-flex ax-flex-col ax-divide-y\">\n @for( p of group.props;track $index){\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-py-2 first:ax-pt-0 last:ax-pb-0\">\n <span class=\"ax-font-semibold\">{{p.title}}</span>\n @if(p.schema.interface)\n {\n <axp-widget-renderer [node]=\"p.schema.interface\" [mode]=\"'edit'\">\n </axp-widget-renderer>\n }\n </div>\n }\n </div>\n </ax-collapse>\n }\n </ax-collapse-group>\n </div>\n </div>\n</axp-widgets-container>", styles: ["ax-collapse .ax-collapse-header{font-weight:600}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXCollapseModule }, { kind: "component", type: i1.AXCollapseComponent, selector: "ax-collapse", inputs: ["disabled", "look", "isCollapsed", "showHeader", "caption", "icon", "isLoading", "headerTemplate"], outputs: ["onClick", "isCollapsedChange"] }, { kind: "component", type: i1.AXCollapseGroupComponent, selector: "ax-collapse-group", inputs: ["look", "accordion", "activeIndex"], outputs: ["accordionChange", "activeIndexChange"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i2.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i2.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i3.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "variables", "functions"], outputs: ["onChanged", "contextChange"] }, { kind: "component", type: i3.AXPWidgetRendererComponent, selector: "axp-widget-renderer", inputs: ["node", "mode", "parentNode", "index"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
99
111
  }
100
112
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPWidgetPropertyViewerComponent, decorators: [{
101
113
  type: Component,
102
- args: [{ selector: 'axp-widget-property-viewer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, AXCollapseModule, AXTabsModule, AXPLayoutBuilderModule], template: "<axp-widgets-container [context]=\"context()\" (onChanged)=\"handleContextChange($event)\">\n <div class=\"ax-flex ax-flex-col\">\n <div class=\"ax-pb-2\">\n <ax-tabs look=\"default\" (onActiveTabChanged)=\"handleTabChange($event)\" [look]=\"'with-line'\">\n @for( tab of tabs();track $index){\n <ax-tab-item [text]=\"tab.title\" [key]=\"$index.toString()\" [active]=\"currentTabIndex() === $index\">\n </ax-tab-item>\n }\n </ax-tabs>\n </div>\n <div class=\"ax-flex-1 ax-overflow-auto\">\n <ax-collapse-group class=\"ax-h-fit\" look=\"blank\">\n @for( group of groups();track $index){\n <ax-collapse [caption]=\"group.title\" look=\"solid\" [(isCollapsed)]=\"group.isCollapsed\">\n <div class=\"ax-flex ax-flex-col ax-divide-y\">\n @for( p of group.props;track $index){\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-py-2 first:ax-pt-0 last:ax-pb-0\">\n <span class=\"ax-font-semibold\">{{p.title}}</span>\n @if(p.schema.interface)\n {\n <axp-widget-renderer [node]=\"p.schema.interface\" [mode]=\"'edit'\">\n </axp-widget-renderer>\n }\n </div>\n }\n </div>\n </ax-collapse>\n }\n </ax-collapse-group>\n </div>\n </div>\n</axp-widgets-container>", styles: ["ax-collapse .ax-collapse-header{font-weight:600}\n"] }]
114
+ args: [{ selector: 'axp-widget-property-viewer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, AXCollapseModule, AXTabsModule, AXPLayoutBuilderModule], template: "<axp-widgets-container [context]=\"context()\" (onChanged)=\"handleContextChange($event)\" [functions]=\"functions\">\n <div class=\"ax-flex ax-flex-col\">\n <div class=\"ax-pb-2\">\n <ax-tabs look=\"default\" (onActiveTabChanged)=\"handleTabChange($event)\" [look]=\"'with-line'\">\n @for( tab of tabs();track $index){\n <ax-tab-item [text]=\"tab.title\" [key]=\"$index.toString()\" [active]=\"currentTabIndex() === $index\">\n </ax-tab-item>\n }\n </ax-tabs>\n </div>\n <div class=\"ax-flex-1 ax-overflow-auto\">\n <ax-collapse-group class=\"ax-h-fit\" look=\"blank\">\n @for( group of groups();track $index){\n <ax-collapse [caption]=\"group.title\" look=\"solid\" [(isCollapsed)]=\"group.isCollapsed\"\n (isCollapsedChange)=\"handleCollapsedChange(group.name,$event)\">\n <div class=\"ax-flex ax-flex-col ax-divide-y\">\n @for( p of group.props;track $index){\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-py-2 first:ax-pt-0 last:ax-pb-0\">\n <span class=\"ax-font-semibold\">{{p.title}}</span>\n @if(p.schema.interface)\n {\n <axp-widget-renderer [node]=\"p.schema.interface\" [mode]=\"'edit'\">\n </axp-widget-renderer>\n }\n </div>\n }\n </div>\n </ax-collapse>\n }\n </ax-collapse-group>\n </div>\n </div>\n</axp-widgets-container>", styles: ["ax-collapse .ax-collapse-header{font-weight:600}\n"] }]
103
115
  }], ctorParameters: () => [], propDecorators: { onChanged: [{
104
116
  type: Output
105
117
  }] } });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXByb3BlcnR5LXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL3Byb3BlcnR5LXZpZXdlci93aWRnZXQtcHJvcGVydHktdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvcHJvcGVydHktdmlld2VyL3dpZGdldC1wcm9wZXJ0eS12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBMEIsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQTRFLHdCQUF3QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0ssT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFTLEtBQUssRUFBUyxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBNkIsTUFBTSxlQUFlLENBQUM7QUFDdEwsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQU8sT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7OztBQTJCN0csTUFBTSxPQUFPLGdDQUFnQztJQTBCM0M7UUF6QkEsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWlCLENBQUM7UUFFakMsMEJBQXFCLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixD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QyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDcEYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVMsZUFBZSxDQUFDLEtBQTZCO1FBQ3JELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUM7OEdBckhVLGdDQUFnQztrR0FBaEMsZ0NBQWdDLGlRQ2pDN0MsdW1EQStCd0IsMkdEQVosWUFBWSw4QkFBRSxnQkFBZ0IsOGJBQUUsWUFBWSxrYUFBRSxzQkFBc0I7OzJGQUVuRSxnQ0FBZ0M7a0JBUjVDLFNBQVM7K0JBQ0UsNEJBQTRCLG1CQUdyQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsc0JBQXNCLENBQUM7d0RBb0IvRSxTQUFTO3NCQURSLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbGxhcHNlTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbGxhcHNlJztcbmltcG9ydCB7IEFYVGFic01vZHVsZSwgQVhUYWJTdHJpcENoYW5nZWRFdmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90YWJzJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJNb2R1bGUsIEFYUExheW91dENvbnRleHRFdmVudCwgQVhQV2lkZ2V0Q29uZmlnLCBBWFBXaWRnZXROb2RlLCBBWFBXaWRnZXRQcm9wZXJ0eSwgQVhQV2lkZ2V0UmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIGlucHV0LCBtb2RlbCwgT3V0cHV0LCBzaWduYWwsIHVudHJhY2tlZCwgdmlld0NoaWxkLCBXcml0YWJsZVNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2FwaXRhbGl6ZSwgY2xvbmVEZWVwLCBnZXQsIGlzQXJyYXksIGlzRW1wdHksIGlzTmlsLCBtZXJnZSwgc2V0LCBzb3J0QnksIHVuaW9uQnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdpZGdldFByb3BlcnR5VGFiIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBncm91cHM6IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBpc0NvbGxhcHNlZDogYm9vbGVhbjtcbiAgICBwcm9wczogQVhQV2lkZ2V0UHJvcGVydHlbXTtcbiAgfVtdO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV2lkZ2V0UHJvcGVydGllc0NoYW5nZWRFdmVudCB7XG4gIHZhbHVlczogYW55LFxuICBtb2RlOiAnaW5pdCcgfCAndXBkYXRlJ1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtd2lkZ2V0LXByb3BlcnR5LXZpZXdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtcHJvcGVydHktdmlld2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd2lkZ2V0LXByb3BlcnR5LXZpZXdlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQVhDb2xsYXBzZU1vZHVsZSwgQVhUYWJzTW9kdWxlLCBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQV2lkZ2V0UHJvcGVydHlWaWV3ZXJDb21wb25lbnQge1xuICB3aWRnZXQgPSBpbnB1dC5yZXF1aXJlZDxBWFBXaWRnZXROb2RlPigpO1xuXG4gIHByaXZhdGUgd2lkZ2V0UmVnaXN0cnlTZXJ2aWNlID0gaW5qZWN0KEFYUFdpZGdldFJlZ2lzdHJ5U2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIGN1cnJlbnRUYWJJbmRleDogV3JpdGFibGVTaWduYWw8bnVtYmVyPiA9IHNpZ25hbCgwKTtcblxuICBwcm90ZWN0ZWQgY29uZmlnID0gc2lnbmFsPEFYUFdpZGdldENvbmZpZyB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgYWxsUG9wZXJ0aWVzOiBBWFBXaWRnZXRQcm9wZXJ0eVtdID0gW107XG5cbiAgcHJvdGVjdGVkIHRhYnMgPSBzaWduYWw8QVhQV2lkZ2V0UHJvcGVydHlUYWJbXT4oW10pO1xuXG4gIHByb3RlY3RlZCBncm91cHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMudGFicygpLmxlbmd0aCA/IHRoaXMudGFicygpW3RoaXMuY3VycmVudFRhYkluZGV4KCldLmdyb3VwcyA6IFtdO1xuICB9KTtcblxuXG4gIEBPdXRwdXQoKVxuICBvbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEFYUFdpZGdldFByb3BlcnRpZXNDaGFuZ2VkRXZlbnQ+KCk7XG5cbiAgcHJvdGVjdGVkIGNvbnRleHQgPSBzaWduYWw8YW55Pih7fSk7XG5cblxuICBwcm90ZWN0ZWQgaW5pdGlhbENvbnRleHQ6IGFueSA9IHt9O1xuXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMud2lkZ2V0KCkpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMud2lkZ2V0UmVnaXN0cnlTZXJ2aWNlLnJlc29sdmUodGhpcy53aWRnZXQoKT8udHlwZSk7XG4gICAgICAgIGlmIChjb25maWcpIHtcbiAgICAgICAgICB0aGlzLmluaXRpYWxDb250ZXh0ID0ge307XG4gICAgICAgICAgdGhpcy5jb25maWcuc2V0KGNvbmZpZyk7XG4gICAgICAgICAgdGhpcy5maWxsVGFicygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEludmFsaWQgd2lkZ2V0IG5hbWU6ICR7dGhpcy53aWRnZXQoKX1gKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlKHZhbHVlczogYW55KSB7XG4gICAgdGhpcy5jb250ZXh0LnNldChtZXJnZShjbG9uZURlZXAodGhpcy5jb250ZXh0KCkpLCB2YWx1ZXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgZmlsbFRhYnMoKSB7XG4gICAgY29uc3QgdGFiczogQVhQV2lkZ2V0UHJvcGVydHlUYWJbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2dlbmVyYWwnLFxuICAgICAgICB0aXRsZTogJ0dlbmVyYWwnLFxuICAgICAgICBncm91cHM6IFtdLFxuICAgICAgfSxcbiAgICBdO1xuICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuY29uZmlnKCk/LmNvbXBvbmVudHMgPz8ge30pLmZvckVhY2goKGMpID0+IHtcbiAgICAgIGlmIChjWzFdLmNvbXBvbmVudCAhPSBudWxsICYmIGNbMV0ucHJvcGVydGllcz8ubGVuZ3RoKSB7XG4gICAgICAgIHRhYnMucHVzaCh7IG5hbWU6IGNbMF0sIHRpdGxlOiBjYXBpdGFsaXplKGNbMF0pLCBncm91cHM6IFtdIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIC8vL1xuICAgIHRoaXMuYWxsUG9wZXJ0aWVzID0gW107XG4gICAgLy8vXG4gICAgdGFicy5mb3JFYWNoKCh0YWIpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzID1cbiAgICAgICAgdGFiLm5hbWUgPT0gJ2dlbmVyYWwnXG4gICAgICAgICAgPyB0aGlzLmNvbmZpZygpPy5wcm9wZXJ0aWVzID8/IFtdXG4gICAgICAgICAgOiAoKCh0aGlzLmNvbmZpZygpPy5jb21wb25lbnRzIGFzIGFueSlbdGFiLm5hbWVdPy5wcm9wZXJ0aWVzIGFzIEFYUFdpZGdldFByb3BlcnR5W10pID8/IFtdKS5maWx0ZXIoKGMpID0+IGMudmlzaWJsZSk7XG4gICAgICAvL1xuICAgICAgdGhpcy5hbGxQb3BlcnRpZXMucHVzaCguLi5wcm9wcyk7XG4gICAgICB0YWIuZ3JvdXBzID0gdW5pb25CeShcbiAgICAgICAgc29ydEJ5KFxuICAgICAgICAgIHByb3BzLm1hcCgocGcpID0+ICh7XG4gICAgICAgICAgICBpc0NvbGxhcHNlZDogZmFsc2UsXG4gICAgICAgICAgICBuYW1lOiBwZy5ncm91cC5uYW1lLFxuICAgICAgICAgICAgdGl0bGU6IHBnLmdyb3VwLnRpdGxlLFxuICAgICAgICAgICAgcHJvcHM6IHNvcnRCeShcbiAgICAgICAgICAgICAgcHJvcHMuZmlsdGVyKChwKSA9PiBwLmdyb3VwLm5hbWUgPT0gcGcuZ3JvdXAubmFtZSksXG4gICAgICAgICAgICAgICd0aXRsZSdcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSkpLFxuICAgICAgICAgICd0aXRsZSdcbiAgICAgICAgKSxcbiAgICAgICAgJ25hbWUnXG4gICAgICApO1xuICAgIH0pO1xuICAgIHRoaXMudGFicy5zZXQodGFicy5maWx0ZXIoKGMpID0+IGMuZ3JvdXBzLmxlbmd0aCkpO1xuICAgIC8vXG4gICAgdGhpcy5pbml0aWFsQ29udGV4dCA9IHRoaXMuYWxsUG9wZXJ0aWVzXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAoYykgPT5cbiAgICAgICAgICAoIWlzQXJyYXkoYy5zY2hlbWEuZGVmYXVsdFZhbHVlKSAmJiAhaXNOaWwoYy5zY2hlbWEuZGVmYXVsdFZhbHVlKSkgfHwgKGlzQXJyYXkoYy5zY2hlbWEuZGVmYXVsdFZhbHVlKSAmJiAhaXNFbXB0eShjLnNjaGVtYS5kZWZhdWx0VmFsdWUpKVxuICAgICAgKVxuICAgICAgLnJlZHVjZSgoYWNjLCBjKSA9PiB7XG4gICAgICAgIHNldChhY2MsIGMuc2NoZW1hLmludGVyZmFjZS5wYXRoLCBjLnNjaGVtYS5kZWZhdWx0VmFsdWUpOyAvLyBVc2UgbG9kYXNoJ3Mgc2V0XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCB7fSk7XG4gICAgLy9cbiAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgdGhpcy5jb250ZXh0LnNldChtZXJnZShjbG9uZURlZXAodGhpcy5pbml0aWFsQ29udGV4dCksIHRoaXMud2lkZ2V0KCkpKTtcbiAgICAgIHRoaXMub25DaGFuZ2VkLmVtaXQoeyB2YWx1ZXM6IHRoaXMuY29udGV4dCgpLCBtb2RlOiAnaW5pdCcgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ29udGV4dENoYW5nZShlOiBBWFBMYXlvdXRDb250ZXh0RXZlbnQpIHtcbiAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgdGhpcy5jb250ZXh0LnNldChlLmRhdGEpO1xuICAgICAgdGhpcy5vbkNoYW5nZWQuZW1pdCh7IHZhbHVlczogdGhpcy5jb250ZXh0KCksIG1vZGU6IGUuaW5pdCA/ICdpbml0JyA6ICd1cGRhdGUnIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZVRhYkNoYW5nZShldmVudDogQVhUYWJTdHJpcENoYW5nZWRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGluZHggPSBldmVudC5pbmRleDtcbiAgICBpZiAodGhpcy5jdXJyZW50VGFiSW5kZXgoKSAhPSBpbmR4KSB7XG4gICAgICB0aGlzLmN1cnJlbnRUYWJJbmRleC5zZXQoaW5keCk7XG4gICAgfVxuICB9XG59XG4iLCI8YXhwLXdpZGdldHMtY29udGFpbmVyIFtjb250ZXh0XT1cImNvbnRleHQoKVwiIChvbkNoYW5nZWQpPVwiaGFuZGxlQ29udGV4dENoYW5nZSgkZXZlbnQpXCI+XG4gICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2xcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LXBiLTJcIj5cbiAgICAgICAgICAgIDxheC10YWJzIGxvb2s9XCJkZWZhdWx0XCIgKG9uQWN0aXZlVGFiQ2hhbmdlZCk9XCJoYW5kbGVUYWJDaGFuZ2UoJGV2ZW50KVwiIFtsb29rXT1cIid3aXRoLWxpbmUnXCI+XG4gICAgICAgICAgICAgICAgQGZvciggdGFiIG9mIHRhYnMoKTt0cmFjayAkaW5kZXgpe1xuICAgICAgICAgICAgICAgIDxheC10YWItaXRlbSBbdGV4dF09XCJ0YWIudGl0bGVcIiBba2V5XT1cIiRpbmRleC50b1N0cmluZygpXCIgW2FjdGl2ZV09XCJjdXJyZW50VGFiSW5kZXgoKSA9PT0gJGluZGV4XCI+XG4gICAgICAgICAgICAgICAgPC9heC10YWItaXRlbT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2F4LXRhYnM+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleC0xIGF4LW92ZXJmbG93LWF1dG9cIj5cbiAgICAgICAgICAgIDxheC1jb2xsYXBzZS1ncm91cCBjbGFzcz1cImF4LWgtZml0XCIgbG9vaz1cImJsYW5rXCI+XG4gICAgICAgICAgICAgICAgQGZvciggZ3JvdXAgb2YgZ3JvdXBzKCk7dHJhY2sgJGluZGV4KXtcbiAgICAgICAgICAgICAgICA8YXgtY29sbGFwc2UgW2NhcHRpb25dPVwiZ3JvdXAudGl0bGVcIiBsb29rPVwic29saWRcIiBbKGlzQ29sbGFwc2VkKV09XCJncm91cC5pc0NvbGxhcHNlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1kaXZpZGUteVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciggcCBvZiBncm91cC5wcm9wczt0cmFjayAkaW5kZXgpe1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTEgYXgtcHktMiBmaXJzdDpheC1wdC0wIGxhc3Q6YXgtcGItMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZFwiPnt7cC50aXRsZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihwLnNjaGVtYS5pbnRlcmZhY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheHAtd2lkZ2V0LXJlbmRlcmVyIFtub2RlXT1cInAuc2NoZW1hLmludGVyZmFjZVwiIFttb2RlXT1cIidlZGl0J1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXhwLXdpZGdldC1yZW5kZXJlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9heC1jb2xsYXBzZT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2F4LWNvbGxhcHNlLWdyb3VwPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvYXhwLXdpZGdldHMtY29udGFpbmVyPiJdfQ==
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXByb3BlcnR5LXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL3Byb3BlcnR5LXZpZXdlci93aWRnZXQtcHJvcGVydHktdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvcHJvcGVydHktdmlld2VyL3dpZGdldC1wcm9wZXJ0eS12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFL0QsT0FBTyxFQUFFLFlBQVksRUFBMEIsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQTRFLHdCQUF3QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0ssT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDN0osT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3hHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7QUEyQjNELE1BQU0sT0FBTyxnQ0FBZ0M7SUE4QjNDO1FBN0JBLFdBQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFp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QUFFLFlBQVksRUFBRSxzQkFBc0IsQ0FBQzt3REF3Qi9FLFNBQVM7c0JBRFIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29sbGFwc2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29sbGFwc2UnO1xuaW1wb3J0IHsgY29udmVydEFycmF5VG9EYXRhU291cmNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWFRhYnNNb2R1bGUsIEFYVGFiU3RyaXBDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFicyc7XG5pbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlLCBBWFBMYXlvdXRDb250ZXh0RXZlbnQsIEFYUFdpZGdldENvbmZpZywgQVhQV2lkZ2V0Tm9kZSwgQVhQV2lkZ2V0UHJvcGVydHksIEFYUFdpZGdldFJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIGlucHV0LCBPdXRwdXQsIHNpZ25hbCwgdW50cmFja2VkLCBXcml0YWJsZVNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2FwaXRhbGl6ZSwgY2xvbmVEZWVwLCBpc0FycmF5LCBpc0VtcHR5LCBpc05pbCwgbWVyZ2UsIHNldCwgc29ydEJ5LCB1bmlvbkJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFYUERlc2lnbmVyQ29ubmVjdG9yQWJzdHJhY3QgfSBmcm9tICcuLi9kZXNpZ25lcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV2lkZ2V0UHJvcGVydHlUYWIge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGdyb3Vwczoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGlzQ29sbGFwc2VkOiBib29sZWFuO1xuICAgIHByb3BzOiBBWFBXaWRnZXRQcm9wZXJ0eVtdO1xuICB9W107XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBBWFBXaWRnZXRQcm9wZXJ0aWVzQ2hhbmdlZEV2ZW50IHtcbiAgdmFsdWVzOiBhbnksXG4gIG1vZGU6ICdpbml0JyB8ICd1cGRhdGUnXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC13aWRnZXQtcHJvcGVydHktdmlld2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldC1wcm9wZXJ0eS12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93aWRnZXQtcHJvcGVydHktdmlld2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBWENvbGxhcHNlTW9kdWxlLCBBWFRhYnNNb2R1bGUsIEFYUExheW91dEJ1aWxkZXJNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBXaWRnZXRQcm9wZXJ0eVZpZXdlckNvbXBvbmVudCB7XG4gIHdpZGdldCA9IGlucHV0LnJlcXVpcmVkPEFYUFdpZGdldE5vZGU+KCk7XG5cbiAgcHJpdmF0ZSB3aWRnZXRSZWdpc3RyeVNlcnZpY2UgPSBpbmplY3QoQVhQV2lkZ2V0UmVnaXN0cnlTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgY29ubmVjdG9yID0gaW5qZWN0KEFYUERlc2lnbmVyQ29ubmVjdG9yQWJzdHJhY3QpO1xuXG4gIHByb3RlY3RlZCBjdXJyZW50VGFiSW5kZXg6IFdyaXRhYmxlU2lnbmFsPG51bWJlcj4gPSBzaWduYWwoMCk7XG5cbiAgcHJvdGVjdGVkIGNvbmZpZyA9IHNpZ25hbDxBWFBXaWRnZXRDb25maWcgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIGFsbFBvcGVydGllczogQVhQV2lkZ2V0UHJvcGVydHlbXSA9IFtdO1xuXG4gIHByb3RlY3RlZCB0YWJzID0gc2lnbmFsPEFYUFdpZGdldFByb3BlcnR5VGFiW10+KFtdKTtcblxuICBwcm90ZWN0ZWQgZ3JvdXBzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnRhYnMoKS5sZW5ndGggPyB0aGlzLnRhYnMoKVt0aGlzLmN1cnJlbnRUYWJJbmRleCgpXS5ncm91cHMgOiBbXTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGdyb3VwQ29sbGFwc2VkU3RhdGVzOiBNYXA8c3RyaW5nLCBib29sZWFuPiA9IG5ldyBNYXAoKTtcblxuXG4gIEBPdXRwdXQoKVxuICBvbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEFYUFdpZGdldFByb3BlcnRpZXNDaGFuZ2VkRXZlbnQ+KCk7XG5cbiAgcHJvdGVjdGVkIGNvbnRleHQgPSBzaWduYWw8YW55Pih7fSk7XG5cblxuICBwcm90ZWN0ZWQgaW5pdGlhbENvbnRleHQ6IGFueSA9IHt9O1xuXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMud2lkZ2V0KCkpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMud2lkZ2V0UmVnaXN0cnlTZXJ2aWNlLnJlc29sdmUodGhpcy53aWRnZXQoKT8udHlwZSk7XG4gICAgICAgIGlmIChjb25maWcpIHtcbiAgICAgICAgICB0aGlzLmluaXRpYWxDb250ZXh0ID0ge307XG4gICAgICAgICAgdGhpcy5jb25maWcuc2V0KGNvbmZpZyk7XG4gICAgICAgICAgdGhpcy5maWxsVGFicygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEludmFsaWQgd2lkZ2V0IG5hbWU6ICR7dGhpcy53aWRnZXQoKX1gKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlKHZhbHVlczogYW55KSB7XG4gICAgdGhpcy5jb250ZXh0LnNldChtZXJnZShjbG9uZURlZXAodGhpcy5jb250ZXh0KCkpLCB2YWx1ZXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgZmlsbFRhYnMoKSB7XG4gICAgY29uc3QgdGFiczogQVhQV2lkZ2V0UHJvcGVydHlUYWJbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2dlbmVyYWwnLFxuICAgICAgICB0aXRsZTogJ0dlbmVyYWwnLFxuICAgICAgICBncm91cHM6IFtdLFxuICAgICAgfSxcbiAgICBdO1xuICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuY29uZmlnKCk/LmNvbXBvbmVudHMgPz8ge30pLmZvckVhY2goKGMpID0+IHtcbiAgICAgIGlmIChjWzFdLmNvbXBvbmVudCAhPSBudWxsICYmIGNbMV0ucHJvcGVydGllcz8ubGVuZ3RoKSB7XG4gICAgICAgIHRhYnMucHVzaCh7IG5hbWU6IGNbMF0sIHRpdGxlOiBjYXBpdGFsaXplKGNbMF0pLCBncm91cHM6IFtdIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIC8vL1xuICAgIHRoaXMuYWxsUG9wZXJ0aWVzID0gW107XG4gICAgLy8vXG4gICAgdGFicy5mb3JFYWNoKCh0YWIpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzID1cbiAgICAgICAgdGFiLm5hbWUgPT0gJ2dlbmVyYWwnXG4gICAgICAgICAgPyB0aGlzLmNvbmZpZygpPy5wcm9wZXJ0aWVzID8/IFtdXG4gICAgICAgICAgOiAoKCh0aGlzLmNvbmZpZygpPy5jb21wb25lbnRzIGFzIGFueSlbdGFiLm5hbWVdPy5wcm9wZXJ0aWVzIGFzIEFYUFdpZGdldFByb3BlcnR5W10pID8/IFtdKS5maWx0ZXIoKGMpID0+IGMudmlzaWJsZSk7XG4gICAgICAvL1xuICAgICAgdGhpcy5hbGxQb3BlcnRpZXMucHVzaCguLi5wcm9wcyk7XG4gICAgICB0YWIuZ3JvdXBzID0gdW5pb25CeShcbiAgICAgICAgc29ydEJ5KFxuICAgICAgICAgIHByb3BzLm1hcCgocGcpID0+ICh7XG4gICAgICAgICAgICBpc0NvbGxhcHNlZDogISF0aGlzLmdyb3VwQ29sbGFwc2VkU3RhdGVzLmdldChwZy5ncm91cC5uYW1lKSxcbiAgICAgICAgICAgIG5hbWU6IHBnLmdyb3VwLm5hbWUsXG4gICAgICAgICAgICB0aXRsZTogcGcuZ3JvdXAudGl0bGUsXG4gICAgICAgICAgICBwcm9wczogc29ydEJ5KFxuICAgICAgICAgICAgICBwcm9wcy5maWx0ZXIoKHApID0+IHAuZ3JvdXAubmFtZSA9PSBwZy5ncm91cC5uYW1lKSxcbiAgICAgICAgICAgICAgJ3RpdGxlJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9KSksXG4gICAgICAgICAgJ3RpdGxlJ1xuICAgICAgICApLFxuICAgICAgICAnbmFtZSdcbiAgICAgICk7XG4gICAgfSk7XG4gICAgdGhpcy50YWJzLnNldCh0YWJzLmZpbHRlcigoYykgPT4gYy5ncm91cHMubGVuZ3RoKSk7XG4gICAgLy9cbiAgICB0aGlzLmluaXRpYWxDb250ZXh0ID0gdGhpcy5hbGxQb3BlcnRpZXNcbiAgICAgIC5maWx0ZXIoXG4gICAgICAgIChjKSA9PlxuICAgICAgICAgICghaXNBcnJheShjLnNjaGVtYS5kZWZhdWx0VmFsdWUpICYmICFpc05pbChjLnNjaGVtYS5kZWZhdWx0VmFsdWUpKSB8fCAoaXNBcnJheShjLnNjaGVtYS5kZWZhdWx0VmFsdWUpICYmICFpc0VtcHR5KGMuc2NoZW1hLmRlZmF1bHRWYWx1ZSkpXG4gICAgICApXG4gICAgICAucmVkdWNlKChhY2MsIGMpID0+IHtcbiAgICAgICAgc2V0KGFjYywgYy5zY2hlbWEuaW50ZXJmYWNlLnBhdGgsIGMuc2NoZW1hLmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCB7fSk7XG4gICAgLy9cbiAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgdGhpcy5jb250ZXh0LnNldChtZXJnZShjbG9uZURlZXAodGhpcy5pbml0aWFsQ29udGV4dCksIHRoaXMud2lkZ2V0KCkpKTtcbiAgICAgIHRoaXMub25DaGFuZ2VkLmVtaXQoeyB2YWx1ZXM6IHRoaXMuY29udGV4dCgpLCBtb2RlOiAnaW5pdCcgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ29udGV4dENoYW5nZShlOiBBWFBMYXlvdXRDb250ZXh0RXZlbnQpIHtcbiAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgdGhpcy5jb250ZXh0LnNldChlLmRhdGEpO1xuICAgICAgdGhpcy5vbkNoYW5nZWQuZW1pdCh7IHZhbHVlczogdGhpcy5jb250ZXh0KCksIG1vZGU6IGUuaW5pdCA/ICdpbml0JyA6ICd1cGRhdGUnIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZVRhYkNoYW5nZShldmVudDogQVhUYWJTdHJpcENoYW5nZWRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGluZHggPSBldmVudC5pbmRleDtcbiAgICBpZiAodGhpcy5jdXJyZW50VGFiSW5kZXgoKSAhPSBpbmR4KSB7XG4gICAgICB0aGlzLmN1cnJlbnRUYWJJbmRleC5zZXQoaW5keCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNvbGxhcHNlZENoYW5nZShncm91cDogc3RyaW5nLCBjb2xsYXBzZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmdyb3VwQ29sbGFwc2VkU3RhdGVzLnNldChncm91cCwgY29sbGFwc2VkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBmdW5jdGlvbnMgPSB7XG4gICAgZ2V0RGF0YVNvdXJjZU5hbWVzOiB0aGlzLmdldERhdGFTb3VyY2VOYW1lcy5iaW5kKHRoaXMpXG4gIH1cblxuICBwcml2YXRlIGdldERhdGFTb3VyY2VOYW1lcygpIHtcbiAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZ2V0RGF0YVNvdXJjZXNOYW1lcygpO1xuICB9XG59XG4iLCI8YXhwLXdpZGdldHMtY29udGFpbmVyIFtjb250ZXh0XT1cImNvbnRleHQoKVwiIChvbkNoYW5nZWQpPVwiaGFuZGxlQ29udGV4dENoYW5nZSgkZXZlbnQpXCIgW2Z1bmN0aW9uc109XCJmdW5jdGlvbnNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtcGItMlwiPlxuICAgICAgICAgICAgPGF4LXRhYnMgbG9vaz1cImRlZmF1bHRcIiAob25BY3RpdmVUYWJDaGFuZ2VkKT1cImhhbmRsZVRhYkNoYW5nZSgkZXZlbnQpXCIgW2xvb2tdPVwiJ3dpdGgtbGluZSdcIj5cbiAgICAgICAgICAgICAgICBAZm9yKCB0YWIgb2YgdGFicygpO3RyYWNrICRpbmRleCl7XG4gICAgICAgICAgICAgICAgPGF4LXRhYi1pdGVtIFt0ZXh0XT1cInRhYi50aXRsZVwiIFtrZXldPVwiJGluZGV4LnRvU3RyaW5nKClcIiBbYWN0aXZlXT1cImN1cnJlbnRUYWJJbmRleCgpID09PSAkaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8L2F4LXRhYi1pdGVtPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvYXgtdGFicz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4LTEgYXgtb3ZlcmZsb3ctYXV0b1wiPlxuICAgICAgICAgICAgPGF4LWNvbGxhcHNlLWdyb3VwIGNsYXNzPVwiYXgtaC1maXRcIiBsb29rPVwiYmxhbmtcIj5cbiAgICAgICAgICAgICAgICBAZm9yKCBncm91cCBvZiBncm91cHMoKTt0cmFjayAkaW5kZXgpe1xuICAgICAgICAgICAgICAgIDxheC1jb2xsYXBzZSBbY2FwdGlvbl09XCJncm91cC50aXRsZVwiIGxvb2s9XCJzb2xpZFwiIFsoaXNDb2xsYXBzZWQpXT1cImdyb3VwLmlzQ29sbGFwc2VkXCJcbiAgICAgICAgICAgICAgICAgICAgKGlzQ29sbGFwc2VkQ2hhbmdlKT1cImhhbmRsZUNvbGxhcHNlZENoYW5nZShncm91cC5uYW1lLCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZGl2aWRlLXlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IoIHAgb2YgZ3JvdXAucHJvcHM7dHJhY2sgJGluZGV4KXtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC0xIGF4LXB5LTIgZmlyc3Q6YXgtcHQtMCBsYXN0OmF4LXBiLTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGRcIj57e3AudGl0bGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYocC5zY2hlbWEuaW50ZXJmYWNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXhwLXdpZGdldC1yZW5kZXJlciBbbm9kZV09XCJwLnNjaGVtYS5pbnRlcmZhY2VcIiBbbW9kZV09XCInZWRpdCdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4cC13aWRnZXQtcmVuZGVyZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvYXgtY29sbGFwc2U+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9heC1jb2xsYXBzZS1ncm91cD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2F4cC13aWRnZXRzLWNvbnRhaW5lcj4iXX0=
@@ -116,10 +116,7 @@ export class AXPEntityMasterCreateViewModel {
116
116
  }
117
117
  async createNewOne() {
118
118
  await this.workflow.execute('create-entity', {
119
- payload: {
120
- module: this.entityDef.module,
121
- entity: this.entityDef.name,
122
- },
119
+ entity: this.entityDef.source
123
120
  });
124
121
  }
125
122
  }
@@ -142,4 +139,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
142
139
  type: Injectable,
143
140
  args: [{ providedIn: 'root' }]
144
141
  }] });
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1jcmVhdGUudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1hc3Rlci1jcmVhdGUudmlld21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVsRCxPQUFPLEVBQThFLGdCQUFnQixFQUFxRCxNQUFNLHlCQUF5QixDQUFDOztBQUUxTCxNQUFNLE9BQU8sbUNBQW1DO0lBRTVDLFlBQW9CLE1BQWlCLEVBQVUsT0FBNkI7UUFBeEQsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUFVLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBSTVFLFVBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFFLENBQUM7UUFDaEUsU0FBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTdCLFVBQUssR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENB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QUNqQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLEtBQUssQ0FBQyxZQUFZO1FBQ3JCLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFO1lBQ3pDLE9BQU8sRUFBRTtnQkFDTCxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNO2dCQUM3QixNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJO2FBQzlCO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKO0FBR0QsTUFBTSxPQUFPLCtCQUErQjtJQUQ1QztRQUVZLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDM0QsV0FBTSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2xDLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7S0FRdkM7SUFOVSxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQWtCLEVBQUUsVUFBa0IsRUFBRSxjQUFtQixJQUFJO1FBQy9FLElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxPQUFPLElBQUksOEJBQThCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDbEYsQ0FBQzs4R0FWUSwrQkFBK0I7a0hBQS9CLCtCQUErQixjQURsQixNQUFNOzsyRkFDbkIsK0JBQStCO2tCQUQzQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCwgSW5qZWN0b3IsIGNvbXB1dGVkLCBzaWduYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gXCIuL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZVwiO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlIH0gZnJvbSBcIkBhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3dcIjtcbmltcG9ydCB7IGNsb25lRGVlcCwgbWVyZ2UsIHNldCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IEFYUFdpZGdldE5vZGUgfSBmcm9tIFwiQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlclwiO1xuaW1wb3J0IHsgQVhQRW50aXR5LCBBWFBFbnRpdHlQcm9wZXJ0eUdyb3VwLCBBWFBHcmlkTGF5b3V0T3B0aW9ucywgQVhQRW50aXR5UHJvcGVydHksIEFYUExheW91dFNlcnZpY2UsIEFYUEVudGl0eVByb3BlcnR5Q3JlYXRlVmlldywgQVhQRW50aXR5U2VjdGlvblZpZXcgfSBmcm9tIFwiQGFjb3JleC9wbGF0Zm9ybS9jb21tb25cIjtcblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUNyZWF0ZVZpZXdTZWN0aW9uVmlld01vZGVsIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZW50aXR5OiBBWFBFbnRpdHksIHByaXZhdGUgc2VjdGlvbjogQVhQRW50aXR5U2VjdGlvblZpZXcpIHtcbiAgICB9XG5cblxuICAgIGdyb3VwID0gdGhpcy5lbnRpdHkuZ3JvdXBzPy5maW5kKGMgPT4gYy5pZCA9PSB0aGlzLnNlY3Rpb24uaWQpITtcbiAgICBuYW1lID0gc2lnbmFsKHRoaXMuZ3JvdXAuaWQpO1xuXG4gICAgdGl0bGUgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JvdXAudGl0bGUgPz8gdGhpcy5ncm91cC5pZDtcbiAgICB9KTtcblxuICAgIGRlc2NyaXB0aW9uID0gY29tcHV0ZWQ8c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZD4oKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ncm91cC5kZXNjcmlwdGlvbjs7XG4gICAgfSk7XG5cbiAgICBsYXlvdXQgPSBjb21wdXRlZDxBWFBHcmlkTGF5b3V0T3B0aW9ucz4oKCkgPT4ge1xuICAgICAgICBjb25zdCBzb3VyY2UgPSBjbG9uZURlZXAodGhpcy5zZWN0aW9uLmxheW91dCA/PyB7fSkgYXMgb2JqZWN0O1xuICAgICAgICBzZXQoc291cmNlLCBcInBvc2l0aW9ucy5kZWZhdWx0LmNvbFNwYW5cIiwgMTIpO1xuICAgICAgICByZXR1cm4gc291cmNlIGFzIEFYUEdyaWRMYXlvdXRPcHRpb25zO1xuICAgIH0pO1xuXG5cbiAgICBlbGVtZW50cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgeyBpbnRlcmZhY2VzLCBwcm9wZXJ0aWVzIH0gPSB0aGlzLmVudGl0eTtcbiAgICAgICAgY29uc3QgY3JlYXRlUHJvcHMgPSBpbnRlcmZhY2VzPy5tYXN0ZXI/LmNyZWF0ZT8ucHJvcGVydGllcyA/PyBbXTtcbiAgICAgICAgY29uc3QgY3JlYXRlUHJvcE5hbWVzID0gbmV3IFNldChjcmVhdGVQcm9wcy5tYXAoKHsgbmFtZSB9KSA9PiBuYW1lKSk7XG5cbiAgICAgICAgY29uc3QgZmlsdGVyZWRQcm9wZXJ0aWVzID0gcHJvcGVydGllcy5maWx0ZXIoKHsgZ3JvdXBJZCwgc2NoZW1hLCBuYW1lIH0pID0+XG4gICAgICAgICAgICBncm91cElkID09PSB0aGlzLmdyb3VwLmlkICYmXG4gICAgICAgICAgICAhc2NoZW1hLmhpZGRlbiAmJlxuICAgICAgICAgICAgY3JlYXRlUHJvcE5hbWVzLmhhcyhuYW1lKVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBmaWx0ZXJlZFByb3BlcnRpZXMubWFwKHByb3BlcnR5ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZVByb3AgPSBjcmVhdGVQcm9wcy5maW5kKCh7IG5hbWUgfSkgPT4gbmFtZSA9PT0gcHJvcGVydHkubmFtZSk7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEFYUEVudGl0eUNyZWF0ZVZpZXdFbGVtZW50Vmlld01vZGVsKHRoaXMuZW50aXR5LCB0aGlzLCBwcm9wZXJ0eSwgY3JlYXRlUHJvcCEpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn1cblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUNyZWF0ZVZpZXdFbGVtZW50Vmlld01vZGVsIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZW50aXR5OiBBWFBFbnRpdHksIHByaXZhdGUgc2VjdGlvbjogQVhQRW50aXR5Q3JlYXRlVmlld1NlY3Rpb25WaWV3TW9kZWwsIHByaXZhdGUgcHJvcGVydHk6IEFYUEVudGl0eVByb3BlcnR5LCBwcml2YXRlIGNyZWF0ZVByb3A6IEFYUEVudGl0eVByb3BlcnR5Q3JlYXRlVmlldykge1xuXG4gICAgfVxuXG4gICAgbmFtZSA9IHNpZ25hbCh0aGlzLnByb3BlcnR5Lm5hbWUpO1xuICAgIHRpdGxlID0gc2lnbmFsKHRoaXMucHJvcGVydHkudGl0bGUpO1xuICAgIGRlc2NyaXB0aW9uID0gc2lnbmFsKHRoaXMucHJvcGVydHkuZGVzY3JpcHRpb24pO1xuXG4gICAgZWRpdGFibGUgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgICAgIHJldHVybiAhKHRoaXMucHJvcGVydHkuc2NoZW1hLnJlYWRvbmx5ID8/IGZhbHNlKVxuICAgIH0pO1xuXG4gICAgaXNSZXF1aXJlZCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydHkudmFsaWRhdGlvbnM/LnNvbWUoYyA9PiBjLnJ1bGUgPT0gJ3JlcXVpcmVkJykgfHwgZmFsc2VcbiAgICB9KTtcblxuICAgIGxheW91dCA9IGNvbXB1dGVkPEFYUEdyaWRMYXlvdXRPcHRpb25zPigoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IGNsb25lRGVlcCh0aGlzLmNyZWF0ZVByb3AubGF5b3V0ID8/IHt9KSBhcyBvYmplY3Q7XG4gICAgICAgIHNldChzb3VyY2UsIFwicG9zaXRpb25zLmRlZmF1bHQuY29sU3BhblwiLCAxMik7XG4gICAgICAgIHJldHVybiBzb3VyY2UgYXMgQVhQR3JpZExheW91dE9wdGlvbnM7XG4gICAgfSk7XG5cbiAgICBub2RlID0gY29tcHV0ZWQ8QVhQV2lkZ2V0Tm9kZT4oKCkgPT4ge1xuICAgICAgICBjb25zdCBzY2hlbWEgPSB0aGlzLnByb3BlcnR5LnNjaGVtYSE7XG4gICAgICAgIGNvbnN0IHdpZGdldCA9IHNjaGVtYS5pbnRlcmZhY2UhO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogd2lkZ2V0LnR5cGUsXG4gICAgICAgICAgICBtb2RlOiB0aGlzLmVkaXRhYmxlKCkgPyAnZWRpdCcgOiAndmlldycsXG4gICAgICAgICAgICBwYXRoOiB0aGlzLm5hbWUoKSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiB3aWRnZXQuY2hpbGRyZW4sXG4gICAgICAgICAgICBmb3JtdWxhOiB3aWRnZXQuZm9ybXVsYSxcbiAgICAgICAgICAgIHRyaWdnZXJzOiB3aWRnZXQudHJpZ2dlcnMsXG4gICAgICAgICAgICBvcHRpb25zOiBtZXJnZShcbiAgICAgICAgICAgICAgICBzY2hlbWEuaW50ZXJmYWNlPy5vcHRpb25zLFxuICAgICAgICAgICAgICAgIC8vdGhpcy5wcm9wZXJ0eS5vcHRpb25zPy5jcmVhdGU/LndpZGdldCxcbiAgICAgICAgICAgICAgICB7IHZhbGlkYXRpb25SdWxlczogdGhpcy5wcm9wZXJ0eS52YWxpZGF0aW9ucyB9LFxuICAgICAgICAgICAgKVxuICAgICAgICB9IGFzIEFYUFdpZGdldE5vZGU7XG4gICAgfSlcbn1cblxuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyQ3JlYXRlVmlld01vZGVsIHtcblxuICAgIHByaXZhdGUgZW50aXR5RGVmID0gY2xvbmVEZWVwKHRoaXMuY29uZmlnKSE7XG5cbiAgICBwcml2YXRlIHdvcmtmbG93ID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQV29ya2Zsb3dTZXJ2aWNlKVxuXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgY29uZmlnOiBBWFBFbnRpdHksXG4gICAgICAgIHByaXZhdGUgaW5pdGlhbERhdGE6IGFueSA9IHt9LFxuICAgICkge1xuXG4gICAgICAgIGlmICghaW5pdGlhbERhdGEpXG4gICAgICAgICAgICBpbml0aWFsRGF0YSA9IHt9O1xuICAgICAgICB0aGlzLmNvbmZpZy5wcm9wZXJ0aWVzXG4gICAgICAgICAgICAuZmlsdGVyKGMgPT4gYy5zY2hlbWEuZGVmYXVsdFZhbHVlICE9IG51bGwpXG4gICAgICAgICAgICAuZm9yRWFjaChwID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHAuc2NoZW1hLmRlZmF1bHRWYWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmdW5jID0gcC5zY2hlbWEuZGVmYXVsdFZhbHVlIGFzIEZ1bmN0aW9uO1xuICAgICAgICAgICAgICAgICAgICBzZXQoaW5pdGlhbERhdGEsIHAubmFtZSwgZnVuYyhpbml0aWFsRGF0YSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0KGluaXRpYWxEYXRhLCBwLm5hbWUsIHAuc2NoZW1hLmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29udGV4dC5zZXQoaW5pdGlhbERhdGEpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb250ZXh0ID0gc2lnbmFsPGFueT4odGhpcy5pbml0aWFsRGF0YSA/PyB7fSk7XG5cbiAgICBwdWJsaWMgaXNJblByb2dyZXNzID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIHB1YmxpYyBzZWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eUNyZWF0ZVZpZXdTZWN0aW9uVmlld01vZGVsW10+KCgpID0+IHtcbiAgICAgICAgY29uc3QgeyBpbnRlcmZhY2VzLCBwcm9wZXJ0aWVzIH0gPSB0aGlzLmVudGl0eURlZjtcbiAgICAgICAgY29uc3QgY3JlYXRlUHJvcHMgPSBpbnRlcmZhY2VzPy5tYXN0ZXI/LmNyZWF0ZT8ucHJvcGVydGllcz8ubWFwKCh7IG5hbWUgfSkgPT4gbmFtZSkgPz8gW107XG5cbiAgICAgICAgY29uc3QgdmlzaWJsZVByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLmZpbHRlcigoeyBncm91cElkLCBzY2hlbWEsIG5hbWUgfSkgPT5cbiAgICAgICAgICAgIGdyb3VwSWQgJiYgIXNjaGVtYS5oaWRkZW4gJiYgY3JlYXRlUHJvcHMuaW5jbHVkZXMobmFtZSlcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBzZWN0aW9ucyA9IGludGVyZmFjZXM/Lm1hc3Rlcj8uY3JlYXRlPy5zZWN0aW9ucz8uZmlsdGVyKCh7IGlkIH0pID0+XG4gICAgICAgICAgICB2aXNpYmxlUHJvcGVydGllcy5zb21lKCh7IGdyb3VwSWQgfSkgPT4gZ3JvdXBJZCA9PT0gaWQpXG4gICAgICAgICkgPz8gW107XG5cbiAgICAgICAgcmV0dXJuIHNlY3Rpb25zLm1hcChzZWN0aW9uID0+IG5ldyBBWFBFbnRpdHlDcmVhdGVWaWV3U2VjdGlvblZpZXdNb2RlbCh0aGlzLmVudGl0eURlZiwgc2VjdGlvbikpO1xuICAgIH0pO1xuXG4gICAgcHVibGljIGFzeW5jIHNhdmUoKTogUHJvbWlzZTxhbnkgfCB2b2lkPiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLmlzSW5Qcm9ncmVzcy5zZXQodHJ1ZSk7XG4gICAgICAgICAgICBjb25zdCBleGVjID0gdGhpcy5lbnRpdHlEZWYuY29tbWFuZHM/LmNyZWF0ZT8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBleGVjKCh0aGlzLmNvbnRleHQoKSkpO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5pc0luUHJvZ3Jlc3Muc2V0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBjcmVhdGVOZXdPbmUoKSB7XG4gICAgICAgIGF3YWl0IHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnY3JlYXRlLWVudGl0eScsIHtcbiAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgICBtb2R1bGU6IHRoaXMuZW50aXR5RGVmLm1vZHVsZSxcbiAgICAgICAgICAgICAgICBlbnRpdHk6IHRoaXMuZW50aXR5RGVmLm5hbWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5Q3JlYXRlVmlld01vZGVsRmFjdG9yeSB7XG4gICAgcHJpdmF0ZSBlbnRpdHlTZXJ2aWNlID0gaW5qZWN0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xuICAgIHByaXZhdGUgbGF5b3V0ID0gaW5qZWN0KEFYUExheW91dFNlcnZpY2UpO1xuICAgIHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gICAgcHVibGljIGFzeW5jIGNyZWF0ZShtb2R1bGVOYW1lOiBzdHJpbmcsIGVudGl0eU5hbWU6IHN0cmluZywgaW5pdGlhbERhdGE6IGFueSA9IG51bGwpOiBQcm9taXNlPEFYUEVudGl0eU1hc3RlckNyZWF0ZVZpZXdNb2RlbD4ge1xuICAgICAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyh0cnVlKTtcbiAgICAgICAgY29uc3QgY29uZmlnID0gYXdhaXQgdGhpcy5lbnRpdHlTZXJ2aWNlLnJlc29sdmUobW9kdWxlTmFtZSwgZW50aXR5TmFtZSk7XG4gICAgICAgIHRoaXMubGF5b3V0LnNldE5hdmlnYXRpb25Mb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgcmV0dXJuIG5ldyBBWFBFbnRpdHlNYXN0ZXJDcmVhdGVWaWV3TW9kZWwodGhpcy5pbmplY3RvciwgY29uZmlnLCBpbml0aWFsRGF0YSk7XG4gICAgfVxufVxuXG4iXX0=
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1jcmVhdGUudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1hc3Rlci1jcmVhdGUudmlld21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVsRCxPQUFPLEVBQThFLGdCQUFnQixFQUFxRCxNQUFNLHlCQUF5QixDQUFDOztBQUUxTCxNQUFNLE9BQU8sbUNBQW1DO0lBRTVDLFlBQW9CLE1BQWlCLEVBQVUsT0FBNkI7UUFBeEQsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUFVLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBSTVFLFVBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFFLENBQUM7UUFDaEUsU0FBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTdCLFVBQUssR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENB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QUNqQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLEtBQUssQ0FBQyxZQUFZO1FBQ3JCLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFO1lBQ3pDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU07U0FDaEMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKO0FBR0QsTUFBTSxPQUFPLCtCQUErQjtJQUQ1QztRQUVZLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDM0QsV0FBTSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2xDLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7S0FRdkM7SUFOVSxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQWtCLEVBQUUsVUFBa0IsRUFBRSxjQUFtQixJQUFJO1FBQy9FLElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxPQUFPLElBQUksOEJBQThCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDbEYsQ0FBQzs4R0FWUSwrQkFBK0I7a0hBQS9CLCtCQUErQixjQURsQixNQUFNOzsyRkFDbkIsK0JBQStCO2tCQUQzQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCwgSW5qZWN0b3IsIGNvbXB1dGVkLCBzaWduYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gXCIuL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZVwiO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlIH0gZnJvbSBcIkBhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3dcIjtcbmltcG9ydCB7IGNsb25lRGVlcCwgbWVyZ2UsIHNldCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IEFYUFdpZGdldE5vZGUgfSBmcm9tIFwiQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlclwiO1xuaW1wb3J0IHsgQVhQRW50aXR5LCBBWFBFbnRpdHlQcm9wZXJ0eUdyb3VwLCBBWFBHcmlkTGF5b3V0T3B0aW9ucywgQVhQRW50aXR5UHJvcGVydHksIEFYUExheW91dFNlcnZpY2UsIEFYUEVudGl0eVByb3BlcnR5Q3JlYXRlVmlldywgQVhQRW50aXR5U2VjdGlvblZpZXcgfSBmcm9tIFwiQGFjb3JleC9wbGF0Zm9ybS9jb21tb25cIjtcblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUNyZWF0ZVZpZXdTZWN0aW9uVmlld01vZGVsIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZW50aXR5OiBBWFBFbnRpdHksIHByaXZhdGUgc2VjdGlvbjogQVhQRW50aXR5U2VjdGlvblZpZXcpIHtcbiAgICB9XG5cblxuICAgIGdyb3VwID0gdGhpcy5lbnRpdHkuZ3JvdXBzPy5maW5kKGMgPT4gYy5pZCA9PSB0aGlzLnNlY3Rpb24uaWQpITtcbiAgICBuYW1lID0gc2lnbmFsKHRoaXMuZ3JvdXAuaWQpO1xuXG4gICAgdGl0bGUgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JvdXAudGl0bGUgPz8gdGhpcy5ncm91cC5pZDtcbiAgICB9KTtcblxuICAgIGRlc2NyaXB0aW9uID0gY29tcHV0ZWQ8c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZD4oKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ncm91cC5kZXNjcmlwdGlvbjs7XG4gICAgfSk7XG5cbiAgICBsYXlvdXQgPSBjb21wdXRlZDxBWFBHcmlkTGF5b3V0T3B0aW9ucz4oKCkgPT4ge1xuICAgICAgICBjb25zdCBzb3VyY2UgPSBjbG9uZURlZXAodGhpcy5zZWN0aW9uLmxheW91dCA/PyB7fSkgYXMgb2JqZWN0O1xuICAgICAgICBzZXQoc291cmNlLCBcInBvc2l0aW9ucy5kZWZhdWx0LmNvbFNwYW5cIiwgMTIpO1xuICAgICAgICByZXR1cm4gc291cmNlIGFzIEFYUEdyaWRMYXlvdXRPcHRpb25zO1xuICAgIH0pO1xuXG5cbiAgICBlbGVtZW50cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgeyBpbnRlcmZhY2VzLCBwcm9wZXJ0aWVzIH0gPSB0aGlzLmVudGl0eTtcbiAgICAgICAgY29uc3QgY3JlYXRlUHJvcHMgPSBpbnRlcmZhY2VzPy5tYXN0ZXI/LmNyZWF0ZT8ucHJvcGVydGllcyA/PyBbXTtcbiAgICAgICAgY29uc3QgY3JlYXRlUHJvcE5hbWVzID0gbmV3IFNldChjcmVhdGVQcm9wcy5tYXAoKHsgbmFtZSB9KSA9PiBuYW1lKSk7XG5cbiAgICAgICAgY29uc3QgZmlsdGVyZWRQcm9wZXJ0aWVzID0gcHJvcGVydGllcy5maWx0ZXIoKHsgZ3JvdXBJZCwgc2NoZW1hLCBuYW1lIH0pID0+XG4gICAgICAgICAgICBncm91cElkID09PSB0aGlzLmdyb3VwLmlkICYmXG4gICAgICAgICAgICAhc2NoZW1hLmhpZGRlbiAmJlxuICAgICAgICAgICAgY3JlYXRlUHJvcE5hbWVzLmhhcyhuYW1lKVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBmaWx0ZXJlZFByb3BlcnRpZXMubWFwKHByb3BlcnR5ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZVByb3AgPSBjcmVhdGVQcm9wcy5maW5kKCh7IG5hbWUgfSkgPT4gbmFtZSA9PT0gcHJvcGVydHkubmFtZSk7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEFYUEVudGl0eUNyZWF0ZVZpZXdFbGVtZW50Vmlld01vZGVsKHRoaXMuZW50aXR5LCB0aGlzLCBwcm9wZXJ0eSwgY3JlYXRlUHJvcCEpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn1cblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUNyZWF0ZVZpZXdFbGVtZW50Vmlld01vZGVsIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZW50aXR5OiBBWFBFbnRpdHksIHByaXZhdGUgc2VjdGlvbjogQVhQRW50aXR5Q3JlYXRlVmlld1NlY3Rpb25WaWV3TW9kZWwsIHByaXZhdGUgcHJvcGVydHk6IEFYUEVudGl0eVByb3BlcnR5LCBwcml2YXRlIGNyZWF0ZVByb3A6IEFYUEVudGl0eVByb3BlcnR5Q3JlYXRlVmlldykge1xuXG4gICAgfVxuXG4gICAgbmFtZSA9IHNpZ25hbCh0aGlzLnByb3BlcnR5Lm5hbWUpO1xuICAgIHRpdGxlID0gc2lnbmFsKHRoaXMucHJvcGVydHkudGl0bGUpO1xuICAgIGRlc2NyaXB0aW9uID0gc2lnbmFsKHRoaXMucHJvcGVydHkuZGVzY3JpcHRpb24pO1xuXG4gICAgZWRpdGFibGUgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgICAgIHJldHVybiAhKHRoaXMucHJvcGVydHkuc2NoZW1hLnJlYWRvbmx5ID8/IGZhbHNlKVxuICAgIH0pO1xuXG4gICAgaXNSZXF1aXJlZCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydHkudmFsaWRhdGlvbnM/LnNvbWUoYyA9PiBjLnJ1bGUgPT0gJ3JlcXVpcmVkJykgfHwgZmFsc2VcbiAgICB9KTtcblxuICAgIGxheW91dCA9IGNvbXB1dGVkPEFYUEdyaWRMYXlvdXRPcHRpb25zPigoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IGNsb25lRGVlcCh0aGlzLmNyZWF0ZVByb3AubGF5b3V0ID8/IHt9KSBhcyBvYmplY3Q7XG4gICAgICAgIHNldChzb3VyY2UsIFwicG9zaXRpb25zLmRlZmF1bHQuY29sU3BhblwiLCAxMik7XG4gICAgICAgIHJldHVybiBzb3VyY2UgYXMgQVhQR3JpZExheW91dE9wdGlvbnM7XG4gICAgfSk7XG5cbiAgICBub2RlID0gY29tcHV0ZWQ8QVhQV2lkZ2V0Tm9kZT4oKCkgPT4ge1xuICAgICAgICBjb25zdCBzY2hlbWEgPSB0aGlzLnByb3BlcnR5LnNjaGVtYSE7XG4gICAgICAgIGNvbnN0IHdpZGdldCA9IHNjaGVtYS5pbnRlcmZhY2UhO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogd2lkZ2V0LnR5cGUsXG4gICAgICAgICAgICBtb2RlOiB0aGlzLmVkaXRhYmxlKCkgPyAnZWRpdCcgOiAndmlldycsXG4gICAgICAgICAgICBwYXRoOiB0aGlzLm5hbWUoKSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiB3aWRnZXQuY2hpbGRyZW4sXG4gICAgICAgICAgICBmb3JtdWxhOiB3aWRnZXQuZm9ybXVsYSxcbiAgICAgICAgICAgIHRyaWdnZXJzOiB3aWRnZXQudHJpZ2dlcnMsXG4gICAgICAgICAgICBvcHRpb25zOiBtZXJnZShcbiAgICAgICAgICAgICAgICBzY2hlbWEuaW50ZXJmYWNlPy5vcHRpb25zLFxuICAgICAgICAgICAgICAgIC8vdGhpcy5wcm9wZXJ0eS5vcHRpb25zPy5jcmVhdGU/LndpZGdldCxcbiAgICAgICAgICAgICAgICB7IHZhbGlkYXRpb25SdWxlczogdGhpcy5wcm9wZXJ0eS52YWxpZGF0aW9ucyB9LFxuICAgICAgICAgICAgKVxuICAgICAgICB9IGFzIEFYUFdpZGdldE5vZGU7XG4gICAgfSlcbn1cblxuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyQ3JlYXRlVmlld01vZGVsIHtcblxuICAgIHByaXZhdGUgZW50aXR5RGVmID0gY2xvbmVEZWVwKHRoaXMuY29uZmlnKSE7XG5cbiAgICBwcml2YXRlIHdvcmtmbG93ID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQV29ya2Zsb3dTZXJ2aWNlKVxuXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgY29uZmlnOiBBWFBFbnRpdHksXG4gICAgICAgIHByaXZhdGUgaW5pdGlhbERhdGE6IGFueSA9IHt9LFxuICAgICkge1xuXG4gICAgICAgIGlmICghaW5pdGlhbERhdGEpXG4gICAgICAgICAgICBpbml0aWFsRGF0YSA9IHt9O1xuICAgICAgICB0aGlzLmNvbmZpZy5wcm9wZXJ0aWVzXG4gICAgICAgICAgICAuZmlsdGVyKGMgPT4gYy5zY2hlbWEuZGVmYXVsdFZhbHVlICE9IG51bGwpXG4gICAgICAgICAgICAuZm9yRWFjaChwID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHAuc2NoZW1hLmRlZmF1bHRWYWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmdW5jID0gcC5zY2hlbWEuZGVmYXVsdFZhbHVlIGFzIEZ1bmN0aW9uO1xuICAgICAgICAgICAgICAgICAgICBzZXQoaW5pdGlhbERhdGEsIHAubmFtZSwgZnVuYyhpbml0aWFsRGF0YSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0KGluaXRpYWxEYXRhLCBwLm5hbWUsIHAuc2NoZW1hLmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29udGV4dC5zZXQoaW5pdGlhbERhdGEpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb250ZXh0ID0gc2lnbmFsPGFueT4odGhpcy5pbml0aWFsRGF0YSA/PyB7fSk7XG5cbiAgICBwdWJsaWMgaXNJblByb2dyZXNzID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIHB1YmxpYyBzZWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eUNyZWF0ZVZpZXdTZWN0aW9uVmlld01vZGVsW10+KCgpID0+IHtcbiAgICAgICAgY29uc3QgeyBpbnRlcmZhY2VzLCBwcm9wZXJ0aWVzIH0gPSB0aGlzLmVudGl0eURlZjtcbiAgICAgICAgY29uc3QgY3JlYXRlUHJvcHMgPSBpbnRlcmZhY2VzPy5tYXN0ZXI/LmNyZWF0ZT8ucHJvcGVydGllcz8ubWFwKCh7IG5hbWUgfSkgPT4gbmFtZSkgPz8gW107XG5cbiAgICAgICAgY29uc3QgdmlzaWJsZVByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLmZpbHRlcigoeyBncm91cElkLCBzY2hlbWEsIG5hbWUgfSkgPT5cbiAgICAgICAgICAgIGdyb3VwSWQgJiYgIXNjaGVtYS5oaWRkZW4gJiYgY3JlYXRlUHJvcHMuaW5jbHVkZXMobmFtZSlcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBzZWN0aW9ucyA9IGludGVyZmFjZXM/Lm1hc3Rlcj8uY3JlYXRlPy5zZWN0aW9ucz8uZmlsdGVyKCh7IGlkIH0pID0+XG4gICAgICAgICAgICB2aXNpYmxlUHJvcGVydGllcy5zb21lKCh7IGdyb3VwSWQgfSkgPT4gZ3JvdXBJZCA9PT0gaWQpXG4gICAgICAgICkgPz8gW107XG5cbiAgICAgICAgcmV0dXJuIHNlY3Rpb25zLm1hcChzZWN0aW9uID0+IG5ldyBBWFBFbnRpdHlDcmVhdGVWaWV3U2VjdGlvblZpZXdNb2RlbCh0aGlzLmVudGl0eURlZiwgc2VjdGlvbikpO1xuICAgIH0pO1xuXG4gICAgcHVibGljIGFzeW5jIHNhdmUoKTogUHJvbWlzZTxhbnkgfCB2b2lkPiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLmlzSW5Qcm9ncmVzcy5zZXQodHJ1ZSk7XG4gICAgICAgICAgICBjb25zdCBleGVjID0gdGhpcy5lbnRpdHlEZWYuY29tbWFuZHM/LmNyZWF0ZT8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBleGVjKCh0aGlzLmNvbnRleHQoKSkpO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5pc0luUHJvZ3Jlc3Muc2V0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBjcmVhdGVOZXdPbmUoKSB7XG4gICAgICAgIGF3YWl0IHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnY3JlYXRlLWVudGl0eScsIHtcbiAgICAgICAgICAgIGVudGl0eTogdGhpcy5lbnRpdHlEZWYuc291cmNlXG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlDcmVhdGVWaWV3TW9kZWxGYWN0b3J5IHtcbiAgICBwcml2YXRlIGVudGl0eVNlcnZpY2UgPSBpbmplY3QoQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSk7XG4gICAgcHJpdmF0ZSBsYXlvdXQgPSBpbmplY3QoQVhQTGF5b3V0U2VydmljZSk7XG4gICAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgICBwdWJsaWMgYXN5bmMgY3JlYXRlKG1vZHVsZU5hbWU6IHN0cmluZywgZW50aXR5TmFtZTogc3RyaW5nLCBpbml0aWFsRGF0YTogYW55ID0gbnVsbCk6IFByb21pc2U8QVhQRW50aXR5TWFzdGVyQ3JlYXRlVmlld01vZGVsPiB7XG4gICAgICAgIHRoaXMubGF5b3V0LnNldE5hdmlnYXRpb25Mb2FkaW5nKHRydWUpO1xuICAgICAgICBjb25zdCBjb25maWcgPSBhd2FpdCB0aGlzLmVudGl0eVNlcnZpY2UucmVzb2x2ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcbiAgICAgICAgdGhpcy5sYXlvdXQuc2V0TmF2aWdhdGlvbkxvYWRpbmcoZmFsc2UpO1xuICAgICAgICByZXR1cm4gbmV3IEFYUEVudGl0eU1hc3RlckNyZWF0ZVZpZXdNb2RlbCh0aGlzLmluamVjdG9yLCBjb25maWcsIGluaXRpYWxEYXRhKTtcbiAgICB9XG59XG5cbiJdfQ==