@acorex/platform 1.0.0 → 1.0.1

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 (686) hide show
  1. package/auth/index.d.ts +3 -6
  2. package/auth/lib/application/application.loader.d.ts +2 -3
  3. package/auth/lib/auth.module.d.ts +5 -4
  4. package/auth/lib/auth.strategy.d.ts +17 -6
  5. package/auth/lib/errors.types.d.ts +12 -2
  6. package/auth/lib/feature/feature.directive.d.ts +15 -0
  7. package/auth/lib/feature/feature.guard.d.ts +2 -0
  8. package/auth/lib/feature/feature.loader.d.ts +2 -1
  9. package/auth/lib/feature/index.d.ts +4 -0
  10. package/auth/lib/permission/index.d.ts +4 -0
  11. package/auth/lib/permission/permission.directive.d.ts +5 -6
  12. package/auth/lib/permission/permission.guard.d.ts +1 -1
  13. package/auth/lib/permission/permission.loader.d.ts +2 -1
  14. package/auth/lib/session.service.d.ts +21 -13
  15. package/auth/lib/session.types.d.ts +24 -0
  16. package/auth/lib/tenant/tenant.loader.d.ts +2 -3
  17. package/common/index.d.ts +0 -1
  18. package/common/lib/common.module.d.ts +1 -1
  19. package/common/lib/configs/app.config.d.ts +0 -1
  20. package/common/lib/data/data-provider.types.d.ts +4 -0
  21. package/common/lib/shared/state-persistence/state-persistence.actions.d.ts +1 -1
  22. package/common/lib/store/common.actions.d.ts +3 -3
  23. package/core/README.md +4 -0
  24. package/core/index.d.ts +4 -0
  25. package/core/lib/app/application.types.d.ts +144 -0
  26. package/core/lib/app/operators.d.ts +22 -0
  27. package/core/lib/configs/config.types.d.ts +5 -0
  28. package/core/lib/core.module.d.ts +6 -0
  29. package/esm2022/auth/index.mjs +4 -7
  30. package/esm2022/auth/lib/application/application.loader.mjs +2 -5
  31. package/esm2022/auth/lib/auth-registry.service.mjs +3 -3
  32. package/esm2022/auth/lib/auth.guard.mjs +7 -9
  33. package/esm2022/auth/lib/auth.module.mjs +26 -20
  34. package/esm2022/auth/lib/auth.strategy.mjs +1 -1
  35. package/esm2022/auth/lib/errors.types.mjs +7 -5
  36. package/esm2022/auth/lib/feature/feature.directive.mjs +55 -0
  37. package/esm2022/auth/lib/feature/feature.guard.mjs +19 -0
  38. package/esm2022/auth/lib/feature/feature.loader.mjs +2 -2
  39. package/esm2022/auth/lib/feature/index.mjs +5 -0
  40. package/esm2022/auth/lib/permission/index.mjs +5 -0
  41. package/esm2022/auth/lib/permission/permission.directive.mjs +24 -21
  42. package/esm2022/auth/lib/permission/permission.guard.mjs +12 -9
  43. package/esm2022/auth/lib/permission/permission.loader.mjs +2 -2
  44. package/esm2022/auth/lib/session.service.mjs +116 -121
  45. package/esm2022/auth/lib/session.types.mjs +29 -0
  46. package/esm2022/auth/lib/tenant/tenant.loader.mjs +2 -5
  47. package/esm2022/common/index.mjs +1 -2
  48. package/esm2022/common/lib/common.module.mjs +19 -26
  49. package/esm2022/common/lib/configs/app.config.mjs +2 -3
  50. package/esm2022/common/lib/data/data-provider.types.mjs +1 -1
  51. package/esm2022/common/lib/errors/error-handler-registry.service.mjs +3 -3
  52. package/esm2022/common/lib/errors/global-error-handler.mjs +3 -3
  53. package/esm2022/common/lib/settings/settings.service.mjs +3 -3
  54. package/esm2022/common/lib/shared/state-persistence/state-persistence.module.mjs +4 -4
  55. package/esm2022/common/lib/store/common.effects.mjs +3 -3
  56. package/esm2022/common/lib/utils/clipboard-service.mjs +3 -3
  57. package/esm2022/common/lib/utils/router-util.service.mjs +3 -3
  58. package/esm2022/common/lib/utils/sticky.directive.mjs +3 -3
  59. package/esm2022/core/acorex-platform-core.mjs +5 -0
  60. package/esm2022/core/index.mjs +5 -0
  61. package/esm2022/core/lib/app/application.types.mjs +19 -0
  62. package/esm2022/core/lib/app/operators.mjs +50 -0
  63. package/esm2022/core/lib/configs/config.types.mjs +3 -0
  64. package/esm2022/core/lib/core.module.mjs +16 -0
  65. package/esm2022/layout/acorex-platform-layout.mjs +5 -0
  66. package/esm2022/layout/index.mjs +3 -0
  67. package/esm2022/layout/lib/builder/builder.module.mjs +66 -0
  68. package/esm2022/layout/lib/builder/context.service.mjs +64 -0
  69. package/esm2022/layout/lib/builder/index.mjs +8 -0
  70. package/esm2022/layout/lib/builder/widget-column-renderer.mjs +75 -0
  71. package/esm2022/layout/lib/builder/widget-container.mjs +45 -0
  72. package/esm2022/layout/lib/builder/widget-registery.service.mjs +33 -0
  73. package/esm2022/layout/lib/builder/widget-renderer.mjs +279 -0
  74. package/esm2022/layout/lib/builder/widget.types.mjs +49 -0
  75. package/esm2022/layout/lib/component-slot/component-slot-loader.service.mjs +56 -0
  76. package/esm2022/layout/lib/component-slot/component-slot-registery.service.mjs +28 -0
  77. package/esm2022/layout/lib/component-slot/component-slot.directive.mjs +24 -0
  78. package/esm2022/layout/lib/component-slot/component-slot.module.mjs +72 -0
  79. package/esm2022/layout/lib/component-slot/component-slot.types.mjs +2 -0
  80. package/esm2022/layout/lib/component-slot/index.mjs +6 -0
  81. package/esm2022/layouts/lib/admin/admin-child-layout/admin-child-features-list.component.mjs +3 -3
  82. package/esm2022/layouts/lib/admin/admin-child-layout/admin-child-layout.component.mjs +3 -3
  83. package/esm2022/layouts/lib/admin/admin-child-layout/admin-child-layout.module.mjs +4 -4
  84. package/esm2022/layouts/lib/admin/admin-root-layout/admin-root-layout.component.mjs +6 -6
  85. package/esm2022/layouts/lib/admin/admin-root-layout/admin-root-layout.module.mjs +6 -6
  86. package/esm2022/layouts/lib/admin/admin-root-layout/components/admin-footer/admin-footer.component.mjs +4 -4
  87. package/esm2022/layouts/lib/admin/admin-root-layout/components/admin-header/admin-header.component.mjs +5 -5
  88. package/esm2022/layouts/lib/admin/admin.module.mjs +18 -10
  89. package/esm2022/layouts/lib/admin/admin.routes.mjs +14 -2
  90. package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.component.mjs +4 -4
  91. package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.config.mjs +3 -3
  92. package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/detail-view.config.mjs +3 -3
  93. package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.mjs +15 -15
  94. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/entity-custom-view/entity-custom-view.component.mjs +4 -4
  95. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-columns/list-view-option-columns.component.mjs +3 -3
  96. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-conditions.component.mjs +3 -3
  97. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-filter-operator.component.mjs +6 -6
  98. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-sorting/list-view-option-sorting.component.mjs +3 -3
  99. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.mjs +31 -27
  100. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/list-view.config.mjs +8 -6
  101. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/list-view.module.mjs +11 -7
  102. package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.component.mjs +4 -4
  103. package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.config.mjs +3 -3
  104. package/esm2022/layouts/lib/admin/entity-layout/entity-quick-view/entity-quick-view.component.mjs +16 -18
  105. package/esm2022/layouts/lib/admin/entity-layout/index.mjs +2 -1
  106. package/esm2022/layouts/lib/admin/entity-layout/workflows/create-entity.workflow.mjs +3 -3
  107. package/esm2022/layouts/lib/admin/entity-layout/workflows/delete-entity.workflow.mjs +7 -22
  108. package/esm2022/layouts/lib/admin/entity-layout/workflows/index.mjs +4 -0
  109. package/esm2022/layouts/lib/admin/entity-layout/workflows/modify-entity.workflow.mjs +3 -3
  110. package/esm2022/layouts/lib/admin/entity-layout/workflows/show-details.workflow.mjs +10 -0
  111. package/esm2022/layouts/lib/admin/entity-layout/workflows/show-list.workflow.mjs +10 -0
  112. package/esm2022/layouts/lib/admin/entity-layout/workflows/show-quick-view.workflow.mjs +10 -0
  113. package/esm2022/layouts/lib/admin/entity.resolver.mjs +1 -5
  114. package/esm2022/layouts/lib/admin/store/admin-layout.effects.mjs +3 -3
  115. package/esm2022/layouts/lib/layout.module.mjs +9 -24
  116. package/esm2022/layouts/lib/shared/components/content-view/content-view.page.mjs +4 -4
  117. package/esm2022/layouts/lib/shared/components/error-401/error-401.component.mjs +5 -6
  118. package/esm2022/layouts/lib/shared/components/error-404/error-404.component.mjs +3 -3
  119. package/esm2022/layouts/lib/shared/components/error-offline/error-offline.component.mjs +3 -3
  120. package/esm2022/layouts/lib/shared/components/index.mjs +2 -1
  121. package/esm2022/layouts/lib/shared/components/logo/logo.component.mjs +5 -5
  122. package/esm2022/layouts/lib/shared/components/slots/footer-text-slot.component.mjs +3 -3
  123. package/esm2022/layouts/lib/shared/components/slots/navbar-slot.component.mjs +3 -3
  124. package/esm2022/layouts/lib/shared/components/slots/theme-slot.component.mjs +4 -4
  125. package/esm2022/layouts/lib/shared/entity/entity-registery.service.mjs +3 -3
  126. package/esm2022/layouts/lib/shared/entity/entity.class.mjs +1 -1
  127. package/esm2022/layouts/lib/shared/services/layout.service.mjs +3 -3
  128. package/esm2022/layouts/lib/shared/workflows/common.workflow.mjs +54 -17
  129. package/esm2022/layouts/lib/shared/workflows/error-handler.mjs +3 -3
  130. package/esm2022/layouts/lib/themes/default/entity-layouts/entity-details-view/entity-details-view.component.mjs +73 -0
  131. package/esm2022/layouts/lib/themes/default/entity-layouts/entity-details.viewmodel.mjs +99 -0
  132. package/esm2022/layouts/lib/themes/default/index.mjs +3 -0
  133. package/esm2022/layouts/lib/widgets/avatar/avatar-widget-edit.component.mjs +70 -12
  134. package/esm2022/layouts/lib/widgets/avatar/avatar-widget-view.component.mjs +41 -13
  135. package/esm2022/layouts/lib/widgets/checkbox/checkbox-widget-column.component.mjs +6 -6
  136. package/esm2022/layouts/lib/widgets/checkbox/checkbox-widget-edit.component.mjs +3 -3
  137. package/esm2022/layouts/lib/widgets/checkbox/checkbox-widget-view.component.mjs +5 -5
  138. package/esm2022/layouts/lib/widgets/common-widget-filter/boolean-widget-filter.component.mjs +4 -4
  139. package/esm2022/layouts/lib/widgets/common-widget-filter/number-widget-filter.component.mjs +3 -3
  140. package/esm2022/layouts/lib/widgets/common-widget-filter/string-widget-filter.component.mjs +3 -3
  141. package/esm2022/layouts/lib/widgets/common-widgets.module.mjs +32 -7
  142. package/esm2022/layouts/lib/widgets/dateTime/dateTime-widget-column.component.mjs +7 -7
  143. package/esm2022/layouts/lib/widgets/dateTime/dateTime-widget-edit.component.mjs +12 -9
  144. package/esm2022/layouts/lib/widgets/dateTime/dateTime-widget-filter.component.mjs +10 -26
  145. package/esm2022/layouts/lib/widgets/dateTime/dateTime-widget-view.component.mjs +6 -6
  146. package/esm2022/layouts/lib/widgets/email/email-widget-column.component.mjs +7 -7
  147. package/esm2022/layouts/lib/widgets/email/email-widget-edit.component.mjs +5 -5
  148. package/esm2022/layouts/lib/widgets/email/email-widget-view.component.mjs +5 -5
  149. package/esm2022/layouts/lib/widgets/file/file-widget-column.component.mjs +6 -6
  150. package/esm2022/layouts/lib/widgets/file/file-widget-edit.component.mjs +5 -5
  151. package/esm2022/layouts/lib/widgets/file/file-widget-filter.component.mjs +5 -5
  152. package/esm2022/layouts/lib/widgets/file/file-widget-view.component.mjs +5 -5
  153. package/esm2022/layouts/lib/widgets/gallery/gallery-widget-edit.component.mjs +5 -5
  154. package/esm2022/layouts/lib/widgets/gallery/gallery-widget-filter.component.mjs +5 -5
  155. package/esm2022/layouts/lib/widgets/gallery/gallery-widget-view.component.mjs +6 -6
  156. package/esm2022/layouts/lib/widgets/lookup/lookup-widget-column.component.mjs +6 -6
  157. package/esm2022/layouts/lib/widgets/lookup/lookup-widget-edit.component.mjs +5 -5
  158. package/esm2022/layouts/lib/widgets/lookup/lookup-widget-filter.component.mjs +10 -34
  159. package/esm2022/layouts/lib/widgets/lookup/lookup-widget-view.component.mjs +5 -5
  160. package/esm2022/layouts/lib/widgets/map/map-widget-edit.component.mjs +3 -3
  161. package/esm2022/layouts/lib/widgets/map/map-widget-view.component.mjs +5 -5
  162. package/esm2022/layouts/lib/widgets/messenger/messenger-widget-column.component.mjs +7 -7
  163. package/esm2022/layouts/lib/widgets/messenger/messenger-widget-edit.component.mjs +5 -5
  164. package/esm2022/layouts/lib/widgets/messenger/messenger-widget-view.component.mjs +5 -5
  165. package/esm2022/layouts/lib/widgets/number/number-widget-edit.component.mjs +3 -3
  166. package/esm2022/layouts/lib/widgets/number/number-widget-view.component.mjs +6 -6
  167. package/esm2022/layouts/lib/widgets/password/change-password.component.mjs +5 -5
  168. package/esm2022/layouts/lib/widgets/password/password-widget-column.component.mjs +10 -20
  169. package/esm2022/layouts/lib/widgets/password/password-widget-edit.component.mjs +17 -10
  170. package/esm2022/layouts/lib/widgets/password/password-widget-view.component.mjs +5 -5
  171. package/esm2022/layouts/lib/widgets/phone/phone-widget-column.component.mjs +7 -7
  172. package/esm2022/layouts/lib/widgets/phone/phone-widget-edit.component.mjs +8 -92
  173. package/esm2022/layouts/lib/widgets/phone/phone-widget-view.component.mjs +5 -5
  174. package/esm2022/layouts/lib/widgets/rich-text/rich-text-widget-column.component.mjs +9 -17
  175. package/esm2022/layouts/lib/widgets/rich-text/rich-text-widget-edit.component.mjs +3 -3
  176. package/esm2022/layouts/lib/widgets/rich-text/rich-text-widget-view.component.mjs +5 -5
  177. package/esm2022/layouts/lib/widgets/selection-list/selection-list-widget-column.component.mjs +6 -6
  178. package/esm2022/layouts/lib/widgets/selection-list/selection-list-widget-edit.component.mjs +28 -28
  179. package/esm2022/layouts/lib/widgets/selection-list/selection-list-widget-filter.component.mjs +6 -6
  180. package/esm2022/layouts/lib/widgets/selection-list/selection-list-widget-view.component.mjs +6 -6
  181. package/esm2022/layouts/lib/widgets/signature-pad/signature-pad-widget-edit.component.mjs +5 -5
  182. package/esm2022/layouts/lib/widgets/signature-pad/signature-pad-widget-view.component.mjs +5 -5
  183. package/esm2022/layouts/lib/widgets/text/largetext-widget-edit.component.mjs +3 -3
  184. package/esm2022/layouts/lib/widgets/text/text-widget-column.component.mjs +10 -11
  185. package/esm2022/layouts/lib/widgets/text/text-widget-edit.component.mjs +5 -5
  186. package/esm2022/layouts/lib/widgets/text/text-widget-view.component.mjs +5 -5
  187. package/esm2022/layouts/lib/widgets/toggle/toggle-widget-column.component.mjs +6 -6
  188. package/esm2022/layouts/lib/widgets/toggle/toggle-widget-edit.component.mjs +3 -3
  189. package/esm2022/layouts/lib/widgets/toggle/toggle-widget-view.component.mjs +5 -5
  190. package/esm2022/mocks/lib/mocks.module.mjs +4 -4
  191. package/esm2022/mocks/lib/services/mocker.service.mjs +8 -18
  192. package/esm2022/mocks/lib/storage/storage.mock.service.mjs +6 -9
  193. package/esm2022/native/lib/native.module.mjs +4 -4
  194. package/esm2022/native/lib/native.service.mjs +3 -3
  195. package/esm2022/schema/index.mjs +2 -2
  196. package/esm2022/schema/lib/schema-registery.service.mjs +4 -4
  197. package/esm2022/schema/lib/schema.module.mjs +4 -4
  198. package/esm2022/schema/lib/schema.types.mjs +2 -0
  199. package/esm2022/schema/lib/widget/widget-base.mjs +14 -11
  200. package/esm2022/schema/lib/widget/widget-column-renderer.mjs +36 -17
  201. package/esm2022/schema/lib/widget/widget-filter-renderer.mjs +3 -3
  202. package/esm2022/schema/lib/widget/widget-renderer.mjs +7 -7
  203. package/esm2022/schema/lib/widget/widget-token.mjs +1 -1
  204. package/esm2022/widgets/acorex-platform-widgets.mjs +5 -0
  205. package/esm2022/widgets/index.mjs +2 -0
  206. package/esm2022/widgets/lib/editors/checkbox/checkbox-widget-edit.component.mjs +45 -0
  207. package/esm2022/widgets/lib/editors/checkbox/checkbox-widget.config.mjs +9 -0
  208. package/esm2022/widgets/lib/editors/checkbox/index.mjs +3 -0
  209. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-column.component.mjs +19 -0
  210. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-designer.component.mjs +19 -0
  211. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-edit.component.mjs +113 -0
  212. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-filter.component.mjs +20 -0
  213. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-print.component.mjs +19 -0
  214. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-view.component.mjs +45 -0
  215. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget.config.mjs +24 -0
  216. package/esm2022/widgets/lib/editors/date-time-box-widget/index.mjs +8 -0
  217. package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-column.component.mjs +19 -0
  218. package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-designer.component.mjs +19 -0
  219. package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-edit.component.mjs +196 -0
  220. package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-filter.component.mjs +20 -0
  221. package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-print.component.mjs +19 -0
  222. package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-view.component.mjs +111 -0
  223. package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget.config.mjs +24 -0
  224. package/esm2022/widgets/lib/editors/email-box-widget/index.mjs +8 -0
  225. package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-column.component.mjs +19 -0
  226. package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-designer.component.mjs +19 -0
  227. package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-edit.component.mjs +189 -0
  228. package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-filter.component.mjs +20 -0
  229. package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-print.component.mjs +19 -0
  230. package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-view.component.mjs +147 -0
  231. package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget.config.mjs +24 -0
  232. package/esm2022/widgets/lib/editors/file-box-widget/index.mjs +8 -0
  233. package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-column.component.mjs +19 -0
  234. package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-designer.component.mjs +19 -0
  235. package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-edit.component.mjs +172 -0
  236. package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-filter.component.mjs +20 -0
  237. package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-print.component.mjs +19 -0
  238. package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-types.mjs +2 -0
  239. package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-view.component.mjs +159 -0
  240. package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget.config.mjs +24 -0
  241. package/esm2022/widgets/lib/editors/gallery-widget/index.mjs +8 -0
  242. package/esm2022/widgets/lib/editors/map-box-widget/index.mjs +8 -0
  243. package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-column.component.mjs +19 -0
  244. package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-designer.component.mjs +19 -0
  245. package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-edit.component.mjs +92 -0
  246. package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-filter.component.mjs +20 -0
  247. package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-print.component.mjs +19 -0
  248. package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-view.component.mjs +65 -0
  249. package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget.config.mjs +24 -0
  250. package/esm2022/widgets/lib/editors/number-box-widget/index.mjs +8 -0
  251. package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-column.component.mjs +19 -0
  252. package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-designer.component.mjs +19 -0
  253. package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-edit.component.mjs +135 -0
  254. package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-filter.component.mjs +20 -0
  255. package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-print.component.mjs +19 -0
  256. package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-view.component.mjs +39 -0
  257. package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget.config.mjs +24 -0
  258. package/esm2022/widgets/lib/editors/password-box-widget/index.mjs +8 -0
  259. package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-column.component.mjs +19 -0
  260. package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-designer.component.mjs +19 -0
  261. package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-edit.component.mjs +39 -0
  262. package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-filter.component.mjs +20 -0
  263. package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-print.component.mjs +19 -0
  264. package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-view.component.mjs +73 -0
  265. package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget.config.mjs +24 -0
  266. package/esm2022/widgets/lib/editors/phone-box-widget/index.mjs +8 -0
  267. package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-column.component.mjs +19 -0
  268. package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-designer.component.mjs +19 -0
  269. package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-edit.component.mjs +190 -0
  270. package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-filter.component.mjs +20 -0
  271. package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-print.component.mjs +19 -0
  272. package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-view.component.mjs +113 -0
  273. package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget.config.mjs +24 -0
  274. package/esm2022/widgets/lib/editors/rich-text-widget/index.mjs +8 -0
  275. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-column.component.mjs +19 -0
  276. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-designer.component.mjs +19 -0
  277. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-edit.component.mjs +63 -0
  278. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-filter.component.mjs +20 -0
  279. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-print.component.mjs +19 -0
  280. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-view.component.mjs +33 -0
  281. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget.config.mjs +24 -0
  282. package/esm2022/widgets/lib/editors/select-box-widget/index.mjs +8 -0
  283. package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-column.component.mjs +19 -0
  284. package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-designer.component.mjs +19 -0
  285. package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-edit.component.mjs +80 -0
  286. package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-filter.component.mjs +19 -0
  287. package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-print.component.mjs +19 -0
  288. package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-view.component.mjs +54 -0
  289. package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget.config.mjs +24 -0
  290. package/esm2022/widgets/lib/editors/selection-list-widget/index.mjs +8 -0
  291. package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-column.component.mjs +19 -0
  292. package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-designer.component.mjs +19 -0
  293. package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-edit.component.mjs +58 -0
  294. package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-filter.component.mjs +20 -0
  295. package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-print.component.mjs +19 -0
  296. package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-view.component.mjs +19 -0
  297. package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget.config.mjs +24 -0
  298. package/esm2022/widgets/lib/editors/signature-pad-widget/index.mjs +8 -0
  299. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-column.component.mjs +19 -0
  300. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-designer.component.mjs +19 -0
  301. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-edit.component.mjs +129 -0
  302. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-filter.component.mjs +20 -0
  303. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-print.component.mjs +19 -0
  304. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-view.component.mjs +41 -0
  305. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget.config.mjs +24 -0
  306. package/esm2022/widgets/lib/editors/text-box-widget/index.mjs +8 -0
  307. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-column.component.mjs +19 -0
  308. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-designer.component.mjs +19 -0
  309. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-edit.component.mjs +120 -0
  310. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-filter.component.mjs +20 -0
  311. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-print.component.mjs +19 -0
  312. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-view.component.mjs +39 -0
  313. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget.config.mjs +24 -0
  314. package/esm2022/widgets/lib/layout/block-widget/block-widget.component.mjs +39 -0
  315. package/esm2022/widgets/lib/layout/block-widget/block-widget.config.mjs +9 -0
  316. package/esm2022/widgets/lib/layout/block-widget/index.mjs +3 -0
  317. package/esm2022/widgets/lib/widgets.module.mjs +71 -0
  318. package/esm2022/workflow/lib/workflow-event-dispatcher.service.mjs +3 -3
  319. package/esm2022/workflow/lib/workflow-registery.service.mjs +3 -3
  320. package/esm2022/workflow/lib/workflow.module.mjs +4 -4
  321. package/esm2022/workflow/lib/workflow.service.mjs +3 -3
  322. package/esm2022/workflow/lib/workflow.types.mjs +7 -7
  323. package/fesm2022/acorex-platform-auth.mjs +311 -214
  324. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  325. package/fesm2022/acorex-platform-common.mjs +70 -244
  326. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  327. package/fesm2022/acorex-platform-core.mjs +94 -0
  328. package/fesm2022/acorex-platform-core.mjs.map +1 -0
  329. package/fesm2022/acorex-platform-layout.mjs +756 -0
  330. package/fesm2022/acorex-platform-layout.mjs.map +1 -0
  331. package/fesm2022/{acorex-platform-layouts-avatar-widget-edit.component-PZr1lXj-.mjs → acorex-platform-layouts-avatar-widget-edit.component-a_eCmVu5.mjs} +72 -14
  332. package/fesm2022/acorex-platform-layouts-avatar-widget-edit.component-a_eCmVu5.mjs.map +1 -0
  333. package/fesm2022/acorex-platform-layouts-avatar-widget-view.component-wwI7L0Kc.mjs +64 -0
  334. package/fesm2022/acorex-platform-layouts-avatar-widget-view.component-wwI7L0Kc.mjs.map +1 -0
  335. package/fesm2022/{acorex-platform-layouts-boolean-widget-filter.component-H056Q5Gz.mjs → acorex-platform-layouts-boolean-widget-filter.component-CHW4rgxA.mjs} +6 -6
  336. package/fesm2022/{acorex-platform-layouts-boolean-widget-filter.component-H056Q5Gz.mjs.map → acorex-platform-layouts-boolean-widget-filter.component-CHW4rgxA.mjs.map} +1 -1
  337. package/fesm2022/{acorex-platform-layouts-change-password.component-QMAm6dxN.mjs → acorex-platform-layouts-change-password.component-vUZy2W_B.mjs} +7 -7
  338. package/fesm2022/{acorex-platform-layouts-change-password.component-QMAm6dxN.mjs.map → acorex-platform-layouts-change-password.component-vUZy2W_B.mjs.map} +1 -1
  339. package/fesm2022/{acorex-platform-layouts-checkbox-widget-column.component-vRJI5S-w.mjs → acorex-platform-layouts-checkbox-widget-column.component-BNEtAS7g.mjs} +6 -6
  340. package/fesm2022/acorex-platform-layouts-checkbox-widget-column.component-BNEtAS7g.mjs.map +1 -0
  341. package/fesm2022/{acorex-platform-layouts-checkbox-widget-edit.component-P4cD_Nwg.mjs → acorex-platform-layouts-checkbox-widget-edit.component-Cqn_QBcv.mjs} +4 -4
  342. package/fesm2022/{acorex-platform-layouts-checkbox-widget-edit.component-P4cD_Nwg.mjs.map → acorex-platform-layouts-checkbox-widget-edit.component-Cqn_QBcv.mjs.map} +1 -1
  343. package/fesm2022/{acorex-platform-layouts-checkbox-widget-view.component-m6bF8XFR.mjs → acorex-platform-layouts-checkbox-widget-view.component-DQLggJ9x.mjs} +5 -5
  344. package/fesm2022/acorex-platform-layouts-checkbox-widget-view.component-DQLggJ9x.mjs.map +1 -0
  345. package/fesm2022/{acorex-platform-layouts-dateTime-widget-column.component-qeQRJePy.mjs → acorex-platform-layouts-dateTime-widget-column.component-D0eNN66F.mjs} +7 -7
  346. package/fesm2022/acorex-platform-layouts-dateTime-widget-column.component-D0eNN66F.mjs.map +1 -0
  347. package/fesm2022/{acorex-platform-layouts-dateTime-widget-edit.component-zeJXGXY8.mjs → acorex-platform-layouts-dateTime-widget-edit.component-BLqAWdRX.mjs} +13 -10
  348. package/fesm2022/acorex-platform-layouts-dateTime-widget-edit.component-BLqAWdRX.mjs.map +1 -0
  349. package/fesm2022/{acorex-platform-layouts-dateTime-widget-filter.component-DJ6esclU.mjs → acorex-platform-layouts-dateTime-widget-filter.component-tvc-cTos.mjs} +10 -26
  350. package/fesm2022/acorex-platform-layouts-dateTime-widget-filter.component-tvc-cTos.mjs.map +1 -0
  351. package/fesm2022/{acorex-platform-layouts-dateTime-widget-view.component-BrwycTWz.mjs → acorex-platform-layouts-dateTime-widget-view.component-CjChqiJw.mjs} +6 -6
  352. package/fesm2022/acorex-platform-layouts-dateTime-widget-view.component-CjChqiJw.mjs.map +1 -0
  353. package/fesm2022/{acorex-platform-layouts-email-widget-column.component-ac8gqsFT.mjs → acorex-platform-layouts-email-widget-column.component-CUnxKERe.mjs} +7 -7
  354. package/fesm2022/acorex-platform-layouts-email-widget-column.component-CUnxKERe.mjs.map +1 -0
  355. package/fesm2022/{acorex-platform-layouts-email-widget-edit.component-m2dI7y9X.mjs → acorex-platform-layouts-email-widget-edit.component-DqnNien2.mjs} +8 -8
  356. package/fesm2022/{acorex-platform-layouts-email-widget-edit.component-m2dI7y9X.mjs.map → acorex-platform-layouts-email-widget-edit.component-DqnNien2.mjs.map} +1 -1
  357. package/fesm2022/{acorex-platform-layouts-email-widget-view.component-XrV8va7z.mjs → acorex-platform-layouts-email-widget-view.component-BZsLYW2w.mjs} +5 -5
  358. package/fesm2022/{acorex-platform-layouts-email-widget-view.component-XrV8va7z.mjs.map → acorex-platform-layouts-email-widget-view.component-BZsLYW2w.mjs.map} +1 -1
  359. package/fesm2022/{acorex-platform-layouts-entity-create-view.component-8rtifIvM.mjs → acorex-platform-layouts-entity-create-view.component-C3TUCnB2.mjs} +6 -6
  360. package/fesm2022/{acorex-platform-layouts-entity-create-view.component-8rtifIvM.mjs.map → acorex-platform-layouts-entity-create-view.component-C3TUCnB2.mjs.map} +1 -1
  361. package/fesm2022/{acorex-platform-layouts-entity-modify-view.component-VeTkP3-n.mjs → acorex-platform-layouts-entity-modify-view.component-BnSfJlc5.mjs} +6 -6
  362. package/fesm2022/{acorex-platform-layouts-entity-modify-view.component-VeTkP3-n.mjs.map → acorex-platform-layouts-entity-modify-view.component-BnSfJlc5.mjs.map} +1 -1
  363. package/fesm2022/{acorex-platform-layouts-file-widget-column.component-v7kAdIQ9.mjs → acorex-platform-layouts-file-widget-column.component-f54Z9E5C.mjs} +6 -6
  364. package/fesm2022/acorex-platform-layouts-file-widget-column.component-f54Z9E5C.mjs.map +1 -0
  365. package/fesm2022/{acorex-platform-layouts-file-widget-edit.component-Wrq7ZL9R.mjs → acorex-platform-layouts-file-widget-edit.component-CW9ESi46.mjs} +6 -6
  366. package/fesm2022/{acorex-platform-layouts-file-widget-edit.component-Wrq7ZL9R.mjs.map → acorex-platform-layouts-file-widget-edit.component-CW9ESi46.mjs.map} +1 -1
  367. package/fesm2022/{acorex-platform-layouts-file-widget-filter.component-1-NJh38j.mjs → acorex-platform-layouts-file-widget-filter.component-K3mC1xLX.mjs} +5 -5
  368. package/fesm2022/{acorex-platform-layouts-file-widget-filter.component-1-NJh38j.mjs.map → acorex-platform-layouts-file-widget-filter.component-K3mC1xLX.mjs.map} +1 -1
  369. package/fesm2022/{acorex-platform-layouts-file-widget-view.component-mXBrKX0K.mjs → acorex-platform-layouts-file-widget-view.component-DVlbi33v.mjs} +7 -7
  370. package/fesm2022/acorex-platform-layouts-file-widget-view.component-DVlbi33v.mjs.map +1 -0
  371. package/fesm2022/{acorex-platform-layouts-gallery-widget-edit.component-cWNvVwum.mjs → acorex-platform-layouts-gallery-widget-edit.component-BUlkUU5u.mjs} +6 -6
  372. package/fesm2022/{acorex-platform-layouts-gallery-widget-edit.component-cWNvVwum.mjs.map → acorex-platform-layouts-gallery-widget-edit.component-BUlkUU5u.mjs.map} +1 -1
  373. package/fesm2022/{acorex-platform-layouts-gallery-widget-filter.component-OCz0hj5i.mjs → acorex-platform-layouts-gallery-widget-filter.component-BYFQSXOV.mjs} +5 -5
  374. package/fesm2022/{acorex-platform-layouts-gallery-widget-filter.component-OCz0hj5i.mjs.map → acorex-platform-layouts-gallery-widget-filter.component-BYFQSXOV.mjs.map} +1 -1
  375. package/fesm2022/{acorex-platform-layouts-gallery-widget-view.component-xU52uaP0.mjs → acorex-platform-layouts-gallery-widget-view.component-BqVO3rDH.mjs} +7 -7
  376. package/fesm2022/acorex-platform-layouts-gallery-widget-view.component-BqVO3rDH.mjs.map +1 -0
  377. package/fesm2022/{acorex-platform-layouts-largetext-widget-edit.component-Um_eBRFi.mjs → acorex-platform-layouts-largetext-widget-edit.component-CmH9daul.mjs} +4 -4
  378. package/fesm2022/{acorex-platform-layouts-largetext-widget-edit.component-Um_eBRFi.mjs.map → acorex-platform-layouts-largetext-widget-edit.component-CmH9daul.mjs.map} +1 -1
  379. package/fesm2022/{acorex-platform-layouts-lookup-widget-column.component-Ts0MJe8O.mjs → acorex-platform-layouts-lookup-widget-column.component-C4Bb5AYW.mjs} +6 -6
  380. package/fesm2022/acorex-platform-layouts-lookup-widget-column.component-C4Bb5AYW.mjs.map +1 -0
  381. package/fesm2022/{acorex-platform-layouts-lookup-widget-edit.component-l5nSr9Cm.mjs → acorex-platform-layouts-lookup-widget-edit.component-B2Qyoi4Q.mjs} +8 -7
  382. package/fesm2022/acorex-platform-layouts-lookup-widget-edit.component-B2Qyoi4Q.mjs.map +1 -0
  383. package/fesm2022/{acorex-platform-layouts-lookup-widget-filter.component-gp5skvmz.mjs → acorex-platform-layouts-lookup-widget-filter.component-JJzSun3D.mjs} +14 -37
  384. package/fesm2022/acorex-platform-layouts-lookup-widget-filter.component-JJzSun3D.mjs.map +1 -0
  385. package/fesm2022/{acorex-platform-layouts-lookup-widget-view.component-ftFXFj6k.mjs → acorex-platform-layouts-lookup-widget-view.component-Bmp_zVcQ.mjs} +5 -5
  386. package/fesm2022/acorex-platform-layouts-lookup-widget-view.component-Bmp_zVcQ.mjs.map +1 -0
  387. package/fesm2022/{acorex-platform-layouts-map-widget-edit.component-SOQvPhmX.mjs → acorex-platform-layouts-map-widget-edit.component-EWlgQnx5.mjs} +4 -4
  388. package/fesm2022/{acorex-platform-layouts-map-widget-edit.component-SOQvPhmX.mjs.map → acorex-platform-layouts-map-widget-edit.component-EWlgQnx5.mjs.map} +1 -1
  389. package/fesm2022/{acorex-platform-layouts-map-widget-view.component-1Lj9efbd.mjs → acorex-platform-layouts-map-widget-view.component-cB5Mq7G7.mjs} +5 -5
  390. package/fesm2022/acorex-platform-layouts-map-widget-view.component-cB5Mq7G7.mjs.map +1 -0
  391. package/fesm2022/{acorex-platform-layouts-messenger-widget-column.component-W7ZY-W84.mjs → acorex-platform-layouts-messenger-widget-column.component-DWgWrdmz.mjs} +7 -7
  392. package/fesm2022/acorex-platform-layouts-messenger-widget-column.component-DWgWrdmz.mjs.map +1 -0
  393. package/fesm2022/{acorex-platform-layouts-messenger-widget-edit.component-dAX8nirB.mjs → acorex-platform-layouts-messenger-widget-edit.component-C7VOe49a.mjs} +8 -8
  394. package/fesm2022/acorex-platform-layouts-messenger-widget-edit.component-C7VOe49a.mjs.map +1 -0
  395. package/fesm2022/{acorex-platform-layouts-messenger-widget-view.component-9TJiFdq-.mjs → acorex-platform-layouts-messenger-widget-view.component-uciMJWYn.mjs} +5 -5
  396. package/fesm2022/acorex-platform-layouts-messenger-widget-view.component-uciMJWYn.mjs.map +1 -0
  397. package/fesm2022/{acorex-platform-layouts-number-widget-edit.component-DDi-o_Zn.mjs → acorex-platform-layouts-number-widget-edit.component-CXTwKvM4.mjs} +4 -4
  398. package/fesm2022/{acorex-platform-layouts-number-widget-edit.component-DDi-o_Zn.mjs.map → acorex-platform-layouts-number-widget-edit.component-CXTwKvM4.mjs.map} +1 -1
  399. package/fesm2022/{acorex-platform-layouts-number-widget-filter.component-DPGSzdNm.mjs → acorex-platform-layouts-number-widget-filter.component-ARH7BdkE.mjs} +6 -6
  400. package/fesm2022/{acorex-platform-layouts-number-widget-filter.component-DPGSzdNm.mjs.map → acorex-platform-layouts-number-widget-filter.component-ARH7BdkE.mjs.map} +1 -1
  401. package/fesm2022/{acorex-platform-layouts-number-widget-view.component-hqkAR0LG.mjs → acorex-platform-layouts-number-widget-view.component-B0duuEhX.mjs} +6 -6
  402. package/fesm2022/acorex-platform-layouts-number-widget-view.component-B0duuEhX.mjs.map +1 -0
  403. package/fesm2022/{acorex-platform-layouts-password-widget-column.component-ic1jykZL.mjs → acorex-platform-layouts-password-widget-column.component-Cav_zCe4.mjs} +10 -20
  404. package/fesm2022/acorex-platform-layouts-password-widget-column.component-Cav_zCe4.mjs.map +1 -0
  405. package/fesm2022/acorex-platform-layouts-password-widget-edit.component-Dm2E5zA_.mjs +44 -0
  406. package/fesm2022/acorex-platform-layouts-password-widget-edit.component-Dm2E5zA_.mjs.map +1 -0
  407. package/fesm2022/{acorex-platform-layouts-password-widget-view.component-E2vtPKRO.mjs → acorex-platform-layouts-password-widget-view.component-BaipF6fT.mjs} +8 -8
  408. package/fesm2022/{acorex-platform-layouts-password-widget-view.component-E2vtPKRO.mjs.map → acorex-platform-layouts-password-widget-view.component-BaipF6fT.mjs.map} +1 -1
  409. package/fesm2022/{acorex-platform-layouts-phone-widget-column.component-s04WZfzv.mjs → acorex-platform-layouts-phone-widget-column.component-BtZ5Qke0.mjs} +7 -7
  410. package/fesm2022/acorex-platform-layouts-phone-widget-column.component-BtZ5Qke0.mjs.map +1 -0
  411. package/fesm2022/{acorex-platform-layouts-phone-widget-edit.component-MKzlZ0_B.mjs → acorex-platform-layouts-phone-widget-edit.component-BugCYS-l.mjs} +11 -95
  412. package/fesm2022/acorex-platform-layouts-phone-widget-edit.component-BugCYS-l.mjs.map +1 -0
  413. package/fesm2022/{acorex-platform-layouts-phone-widget-view.component-NEO22XO7.mjs → acorex-platform-layouts-phone-widget-view.component-C7EN8qDk.mjs} +5 -5
  414. package/fesm2022/{acorex-platform-layouts-phone-widget-view.component-NEO22XO7.mjs.map → acorex-platform-layouts-phone-widget-view.component-C7EN8qDk.mjs.map} +1 -1
  415. package/fesm2022/{acorex-platform-layouts-rich-text-widget-column.component-P0YzXTIB.mjs → acorex-platform-layouts-rich-text-widget-column.component-B99s2Zhi.mjs} +11 -19
  416. package/fesm2022/acorex-platform-layouts-rich-text-widget-column.component-B99s2Zhi.mjs.map +1 -0
  417. package/fesm2022/{acorex-platform-layouts-rich-text-widget-edit.component-ro2yg7PR.mjs → acorex-platform-layouts-rich-text-widget-edit.component-Di1P6EQV.mjs} +4 -4
  418. package/fesm2022/{acorex-platform-layouts-rich-text-widget-edit.component-ro2yg7PR.mjs.map → acorex-platform-layouts-rich-text-widget-edit.component-Di1P6EQV.mjs.map} +1 -1
  419. package/fesm2022/{acorex-platform-layouts-rich-text-widget-view.component--Rzxm2a6.mjs → acorex-platform-layouts-rich-text-widget-view.component-B_QG0YJc.mjs} +5 -5
  420. package/fesm2022/acorex-platform-layouts-rich-text-widget-view.component-B_QG0YJc.mjs.map +1 -0
  421. package/fesm2022/{acorex-platform-layouts-selection-list-widget-column.component-9FTkDGmq.mjs → acorex-platform-layouts-selection-list-widget-column.component-Cx9QqR9f.mjs} +6 -6
  422. package/fesm2022/acorex-platform-layouts-selection-list-widget-column.component-Cx9QqR9f.mjs.map +1 -0
  423. package/fesm2022/{acorex-platform-layouts-selection-list-widget-edit.component-FpOQ12Ie.mjs → acorex-platform-layouts-selection-list-widget-edit.component-DU-U-Af-.mjs} +28 -28
  424. package/fesm2022/acorex-platform-layouts-selection-list-widget-edit.component-DU-U-Af-.mjs.map +1 -0
  425. package/fesm2022/{acorex-platform-layouts-selection-list-widget-filter.component-hGk-ZZ78.mjs → acorex-platform-layouts-selection-list-widget-filter.component-B8y8heXR.mjs} +6 -6
  426. package/fesm2022/acorex-platform-layouts-selection-list-widget-filter.component-B8y8heXR.mjs.map +1 -0
  427. package/fesm2022/{acorex-platform-layouts-selection-list-widget-view.component-s9xq___Y.mjs → acorex-platform-layouts-selection-list-widget-view.component-BDupWZy-.mjs} +6 -6
  428. package/fesm2022/acorex-platform-layouts-selection-list-widget-view.component-BDupWZy-.mjs.map +1 -0
  429. package/fesm2022/{acorex-platform-layouts-signature-pad-widget-edit.component-W28Uk9zO.mjs → acorex-platform-layouts-signature-pad-widget-edit.component-bEDsl8mg.mjs} +7 -7
  430. package/fesm2022/{acorex-platform-layouts-signature-pad-widget-edit.component-W28Uk9zO.mjs.map → acorex-platform-layouts-signature-pad-widget-edit.component-bEDsl8mg.mjs.map} +1 -1
  431. package/fesm2022/{acorex-platform-layouts-signature-pad-widget-view.component-R40Ml757.mjs → acorex-platform-layouts-signature-pad-widget-view.component-DB903O2F.mjs} +5 -5
  432. package/fesm2022/acorex-platform-layouts-signature-pad-widget-view.component-DB903O2F.mjs.map +1 -0
  433. package/fesm2022/{acorex-platform-layouts-string-widget-filter.component-4oZ6BVis.mjs → acorex-platform-layouts-string-widget-filter.component-D3ZxVk6S.mjs} +7 -7
  434. package/fesm2022/{acorex-platform-layouts-string-widget-filter.component-4oZ6BVis.mjs.map → acorex-platform-layouts-string-widget-filter.component-D3ZxVk6S.mjs.map} +1 -1
  435. package/fesm2022/{acorex-platform-layouts-text-widget-column.component-qhh6MT79.mjs → acorex-platform-layouts-text-widget-column.component-D8WDAbQB.mjs} +10 -11
  436. package/fesm2022/acorex-platform-layouts-text-widget-column.component-D8WDAbQB.mjs.map +1 -0
  437. package/fesm2022/{acorex-platform-layouts-text-widget-edit.component-TC127Dq8.mjs → acorex-platform-layouts-text-widget-edit.component-BrDbNXgJ.mjs} +6 -6
  438. package/fesm2022/{acorex-platform-layouts-text-widget-edit.component-TC127Dq8.mjs.map → acorex-platform-layouts-text-widget-edit.component-BrDbNXgJ.mjs.map} +1 -1
  439. package/fesm2022/{acorex-platform-layouts-text-widget-view.component-65eOj0qR.mjs → acorex-platform-layouts-text-widget-view.component-XHN41M3T.mjs} +5 -5
  440. package/fesm2022/acorex-platform-layouts-text-widget-view.component-XHN41M3T.mjs.map +1 -0
  441. package/fesm2022/{acorex-platform-layouts-toggle-widget-column.component-uxOXR-bL.mjs → acorex-platform-layouts-toggle-widget-column.component-BjIyTuZj.mjs} +6 -6
  442. package/fesm2022/acorex-platform-layouts-toggle-widget-column.component-BjIyTuZj.mjs.map +1 -0
  443. package/fesm2022/{acorex-platform-layouts-toggle-widget-edit.component-R44L1pgJ.mjs → acorex-platform-layouts-toggle-widget-edit.component-BKbBile6.mjs} +4 -4
  444. package/fesm2022/{acorex-platform-layouts-toggle-widget-edit.component-R44L1pgJ.mjs.map → acorex-platform-layouts-toggle-widget-edit.component-BKbBile6.mjs.map} +1 -1
  445. package/fesm2022/{acorex-platform-layouts-toggle-widget-view.component-DTOeAUiy.mjs → acorex-platform-layouts-toggle-widget-view.component-CyjhQSiV.mjs} +5 -5
  446. package/fesm2022/{acorex-platform-layouts-toggle-widget-view.component-DTOeAUiy.mjs.map → acorex-platform-layouts-toggle-widget-view.component-CyjhQSiV.mjs.map} +1 -1
  447. package/fesm2022/acorex-platform-layouts.mjs +565 -422
  448. package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
  449. package/fesm2022/acorex-platform-mocks.mjs +16 -29
  450. package/fesm2022/acorex-platform-mocks.mjs.map +1 -1
  451. package/fesm2022/acorex-platform-native.mjs +7 -7
  452. package/fesm2022/acorex-platform-schema.mjs +63 -41
  453. package/fesm2022/acorex-platform-schema.mjs.map +1 -1
  454. package/fesm2022/acorex-platform-widgets.mjs +3966 -0
  455. package/fesm2022/acorex-platform-widgets.mjs.map +1 -0
  456. package/fesm2022/acorex-platform-workflow.mjs +19 -19
  457. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  458. package/layout/README.md +4 -0
  459. package/layout/index.d.ts +2 -0
  460. package/layout/lib/builder/builder.module.d.ts +23 -0
  461. package/layout/lib/builder/context.service.d.ts +17 -0
  462. package/layout/lib/builder/index.d.ts +7 -0
  463. package/layout/lib/builder/widget-column-renderer.d.ts +30 -0
  464. package/layout/lib/builder/widget-container.d.ts +13 -0
  465. package/layout/lib/builder/widget-registery.service.d.ts +10 -0
  466. package/layout/lib/builder/widget-renderer.d.ts +41 -0
  467. package/layout/lib/builder/widget.types.d.ts +55 -0
  468. package/layouts/lib/admin/admin-root-layout/admin-root-layout.module.d.ts +1 -1
  469. package/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.d.ts +3 -5
  470. package/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.d.ts +7 -2
  471. package/layouts/lib/admin/entity-layout/entity-list-view/list-view.config.d.ts +2 -0
  472. package/layouts/lib/admin/entity-layout/entity-list-view/list-view.module.d.ts +2 -1
  473. package/layouts/lib/admin/entity-layout/entity-quick-view/entity-quick-view.component.d.ts +3 -0
  474. package/layouts/lib/admin/entity-layout/index.d.ts +1 -0
  475. package/layouts/lib/admin/entity-layout/workflows/index.d.ts +3 -0
  476. package/layouts/lib/admin/entity-layout/workflows/show-details.workflow.d.ts +2 -0
  477. package/layouts/lib/admin/entity-layout/workflows/show-list.workflow.d.ts +2 -0
  478. package/layouts/lib/admin/entity-layout/workflows/show-quick-view.workflow.d.ts +2 -0
  479. package/layouts/lib/admin/store/admin-layout.actions.d.ts +8 -8
  480. package/layouts/lib/admin/store/admin-layout.effects.d.ts +1 -1
  481. package/layouts/lib/admin/store/admin-layout.reducers.d.ts +2 -2
  482. package/layouts/lib/layout.module.d.ts +1 -1
  483. package/layouts/lib/shared/components/error-401/error-401.component.d.ts +1 -4
  484. package/layouts/lib/shared/components/index.d.ts +1 -0
  485. package/layouts/lib/shared/components/slots/theme-slot.component.d.ts +1 -1
  486. package/layouts/lib/shared/entity/entity.class.d.ts +10 -2
  487. package/layouts/lib/shared/workflows/common.workflow.d.ts +9 -0
  488. package/layouts/lib/themes/default/entity-layouts/entity-details-view/entity-details-view.component.d.ts +11 -0
  489. package/layouts/lib/themes/default/entity-layouts/entity-details.viewmodel.d.ts +34 -0
  490. package/layouts/lib/themes/default/index.d.ts +2 -0
  491. package/layouts/lib/widgets/avatar/avatar-widget-edit.component.d.ts +8 -2
  492. package/layouts/lib/widgets/avatar/avatar-widget-view.component.d.ts +6 -1
  493. package/layouts/lib/widgets/checkbox/checkbox-widget-column.component.d.ts +1 -1
  494. package/layouts/lib/widgets/dateTime/dateTime-widget-column.component.d.ts +1 -1
  495. package/layouts/lib/widgets/dateTime/dateTime-widget-edit.component.d.ts +4 -2
  496. package/layouts/lib/widgets/email/email-widget-column.component.d.ts +1 -1
  497. package/layouts/lib/widgets/file/file-widget-column.component.d.ts +1 -1
  498. package/layouts/lib/widgets/lookup/lookup-widget-column.component.d.ts +1 -1
  499. package/layouts/lib/widgets/messenger/messenger-widget-column.component.d.ts +1 -1
  500. package/layouts/lib/widgets/number/number-widget-view.component.d.ts +1 -1
  501. package/layouts/lib/widgets/password/password-widget-column.component.d.ts +2 -2
  502. package/layouts/lib/widgets/phone/phone-widget-column.component.d.ts +1 -1
  503. package/layouts/lib/widgets/rich-text/rich-text-widget-column.component.d.ts +1 -1
  504. package/layouts/lib/widgets/selection-list/selection-list-widget-column.component.d.ts +1 -1
  505. package/layouts/lib/widgets/selection-list/selection-list-widget-edit.component.d.ts +2 -0
  506. package/layouts/lib/widgets/selection-list/selection-list-widget-filter.component.d.ts +1 -1
  507. package/layouts/lib/widgets/selection-list/selection-list-widget-view.component.d.ts +1 -1
  508. package/layouts/lib/widgets/text/text-widget-column.component.d.ts +2 -1
  509. package/layouts/lib/widgets/toggle/toggle-widget-column.component.d.ts +1 -1
  510. package/mocks/lib/storage/storage.mock.service.d.ts +1 -1
  511. package/package.json +19 -1
  512. package/schema/index.d.ts +1 -1
  513. package/schema/lib/schema-registery.service.d.ts +1 -1
  514. package/schema/lib/{schema.d.ts → schema.types.d.ts} +1 -6
  515. package/schema/lib/widget/widget-base.d.ts +3 -1
  516. package/schema/lib/widget/widget-column-renderer.d.ts +10 -3
  517. package/schema/lib/widget/widget-token.d.ts +2 -1
  518. package/widgets/README.md +4 -0
  519. package/widgets/index.d.ts +1 -0
  520. package/widgets/lib/editors/checkbox/checkbox-widget-edit.component.d.ts +13 -0
  521. package/widgets/lib/editors/checkbox/checkbox-widget.config.d.ts +2 -0
  522. package/widgets/lib/editors/checkbox/index.d.ts +2 -0
  523. package/widgets/lib/editors/date-time-box-widget/date-time-box-widget-column.component.d.ts +6 -0
  524. package/widgets/lib/editors/date-time-box-widget/date-time-box-widget-designer.component.d.ts +6 -0
  525. package/widgets/lib/editors/date-time-box-widget/date-time-box-widget-edit.component.d.ts +20 -0
  526. package/widgets/lib/editors/date-time-box-widget/date-time-box-widget-filter.component.d.ts +6 -0
  527. package/widgets/lib/editors/date-time-box-widget/date-time-box-widget-print.component.d.ts +6 -0
  528. package/widgets/lib/editors/date-time-box-widget/date-time-box-widget-view.component.d.ts +11 -0
  529. package/widgets/lib/editors/date-time-box-widget/date-time-box-widget.config.d.ts +2 -0
  530. package/widgets/lib/editors/date-time-box-widget/index.d.ts +7 -0
  531. package/widgets/lib/editors/email-box-widget/email-box-widget-column.component.d.ts +6 -0
  532. package/widgets/lib/editors/email-box-widget/email-box-widget-designer.component.d.ts +6 -0
  533. package/widgets/lib/editors/email-box-widget/email-box-widget-edit.component.d.ts +25 -0
  534. package/widgets/lib/editors/email-box-widget/email-box-widget-filter.component.d.ts +6 -0
  535. package/widgets/lib/editors/email-box-widget/email-box-widget-print.component.d.ts +6 -0
  536. package/widgets/lib/editors/email-box-widget/email-box-widget-view.component.d.ts +12 -0
  537. package/widgets/lib/editors/email-box-widget/email-box-widget.config.d.ts +2 -0
  538. package/widgets/lib/editors/email-box-widget/index.d.ts +7 -0
  539. package/widgets/lib/editors/file-box-widget/file-box-widget-column.component.d.ts +6 -0
  540. package/widgets/lib/editors/file-box-widget/file-box-widget-designer.component.d.ts +6 -0
  541. package/widgets/lib/editors/file-box-widget/file-box-widget-edit.component.d.ts +18 -0
  542. package/widgets/lib/editors/file-box-widget/file-box-widget-filter.component.d.ts +6 -0
  543. package/widgets/lib/editors/file-box-widget/file-box-widget-print.component.d.ts +6 -0
  544. package/widgets/lib/editors/file-box-widget/file-box-widget-view.component.d.ts +17 -0
  545. package/widgets/lib/editors/file-box-widget/file-box-widget.config.d.ts +2 -0
  546. package/widgets/lib/editors/file-box-widget/index.d.ts +7 -0
  547. package/widgets/lib/editors/gallery-widget/gallery-widget-column.component.d.ts +6 -0
  548. package/widgets/lib/editors/gallery-widget/gallery-widget-designer.component.d.ts +6 -0
  549. package/widgets/lib/editors/gallery-widget/gallery-widget-edit.component.d.ts +15 -0
  550. package/widgets/lib/editors/gallery-widget/gallery-widget-filter.component.d.ts +6 -0
  551. package/widgets/lib/editors/gallery-widget/gallery-widget-print.component.d.ts +6 -0
  552. package/widgets/lib/editors/gallery-widget/gallery-widget-types.d.ts +10 -0
  553. package/widgets/lib/editors/gallery-widget/gallery-widget-view.component.d.ts +15 -0
  554. package/widgets/lib/editors/gallery-widget/gallery-widget.config.d.ts +2 -0
  555. package/widgets/lib/editors/gallery-widget/index.d.ts +7 -0
  556. package/widgets/lib/editors/map-box-widget/index.d.ts +7 -0
  557. package/widgets/lib/editors/map-box-widget/map-box-widget-column.component.d.ts +6 -0
  558. package/widgets/lib/editors/map-box-widget/map-box-widget-designer.component.d.ts +6 -0
  559. package/widgets/lib/editors/map-box-widget/map-box-widget-edit.component.d.ts +15 -0
  560. package/widgets/lib/editors/map-box-widget/map-box-widget-filter.component.d.ts +6 -0
  561. package/widgets/lib/editors/map-box-widget/map-box-widget-print.component.d.ts +6 -0
  562. package/widgets/lib/editors/map-box-widget/map-box-widget-view.component.d.ts +16 -0
  563. package/widgets/lib/editors/map-box-widget/map-box-widget.config.d.ts +2 -0
  564. package/widgets/lib/editors/number-box-widget/index.d.ts +7 -0
  565. package/widgets/lib/editors/number-box-widget/number-box-widget-column.component.d.ts +6 -0
  566. package/widgets/lib/editors/number-box-widget/number-box-widget-designer.component.d.ts +6 -0
  567. package/widgets/lib/editors/number-box-widget/number-box-widget-edit.component.d.ts +25 -0
  568. package/widgets/lib/editors/number-box-widget/number-box-widget-filter.component.d.ts +6 -0
  569. package/widgets/lib/editors/number-box-widget/number-box-widget-print.component.d.ts +6 -0
  570. package/widgets/lib/editors/number-box-widget/number-box-widget-view.component.d.ts +8 -0
  571. package/widgets/lib/editors/number-box-widget/number-box-widget.config.d.ts +2 -0
  572. package/widgets/lib/editors/password-box-widget/index.d.ts +7 -0
  573. package/widgets/lib/editors/password-box-widget/password-box-widget-column.component.d.ts +6 -0
  574. package/widgets/lib/editors/password-box-widget/password-box-widget-designer.component.d.ts +6 -0
  575. package/widgets/lib/editors/password-box-widget/password-box-widget-edit.component.d.ts +8 -0
  576. package/widgets/lib/editors/password-box-widget/password-box-widget-filter.component.d.ts +6 -0
  577. package/widgets/lib/editors/password-box-widget/password-box-widget-print.component.d.ts +6 -0
  578. package/widgets/lib/editors/password-box-widget/password-box-widget-view.component.d.ts +13 -0
  579. package/widgets/lib/editors/password-box-widget/password-box-widget.config.d.ts +2 -0
  580. package/widgets/lib/editors/phone-box-widget/index.d.ts +7 -0
  581. package/widgets/lib/editors/phone-box-widget/phone-box-widget-column.component.d.ts +6 -0
  582. package/widgets/lib/editors/phone-box-widget/phone-box-widget-designer.component.d.ts +6 -0
  583. package/widgets/lib/editors/phone-box-widget/phone-box-widget-edit.component.d.ts +25 -0
  584. package/widgets/lib/editors/phone-box-widget/phone-box-widget-filter.component.d.ts +6 -0
  585. package/widgets/lib/editors/phone-box-widget/phone-box-widget-print.component.d.ts +6 -0
  586. package/widgets/lib/editors/phone-box-widget/phone-box-widget-view.component.d.ts +12 -0
  587. package/widgets/lib/editors/phone-box-widget/phone-box-widget.config.d.ts +2 -0
  588. package/widgets/lib/editors/rich-text-widget/index.d.ts +7 -0
  589. package/widgets/lib/editors/rich-text-widget/rich-text-widget-column.component.d.ts +6 -0
  590. package/widgets/lib/editors/rich-text-widget/rich-text-widget-designer.component.d.ts +6 -0
  591. package/widgets/lib/editors/rich-text-widget/rich-text-widget-edit.component.d.ts +33 -0
  592. package/widgets/lib/editors/rich-text-widget/rich-text-widget-filter.component.d.ts +6 -0
  593. package/widgets/lib/editors/rich-text-widget/rich-text-widget-print.component.d.ts +6 -0
  594. package/widgets/lib/editors/rich-text-widget/rich-text-widget-view.component.d.ts +9 -0
  595. package/widgets/lib/editors/rich-text-widget/rich-text-widget.config.d.ts +2 -0
  596. package/widgets/lib/editors/select-box-widget/index.d.ts +7 -0
  597. package/widgets/lib/editors/select-box-widget/select-box-widget-column.component.d.ts +6 -0
  598. package/widgets/lib/editors/select-box-widget/select-box-widget-designer.component.d.ts +6 -0
  599. package/widgets/lib/editors/select-box-widget/select-box-widget-edit.component.d.ts +15 -0
  600. package/widgets/lib/editors/select-box-widget/select-box-widget-filter.component.d.ts +6 -0
  601. package/widgets/lib/editors/select-box-widget/select-box-widget-print.component.d.ts +6 -0
  602. package/widgets/lib/editors/select-box-widget/select-box-widget-view.component.d.ts +12 -0
  603. package/widgets/lib/editors/select-box-widget/select-box-widget.config.d.ts +2 -0
  604. package/widgets/lib/editors/selection-list-widget/index.d.ts +7 -0
  605. package/widgets/lib/editors/selection-list-widget/selection-list-widget-column.component.d.ts +6 -0
  606. package/widgets/lib/editors/selection-list-widget/selection-list-widget-designer.component.d.ts +6 -0
  607. package/widgets/lib/editors/selection-list-widget/selection-list-widget-edit.component.d.ts +13 -0
  608. package/widgets/lib/editors/selection-list-widget/selection-list-widget-filter.component.d.ts +6 -0
  609. package/widgets/lib/editors/selection-list-widget/selection-list-widget-print.component.d.ts +6 -0
  610. package/widgets/lib/editors/selection-list-widget/selection-list-widget-view.component.d.ts +6 -0
  611. package/widgets/lib/editors/selection-list-widget/selection-list-widget.config.d.ts +2 -0
  612. package/widgets/lib/editors/signature-pad-widget/index.d.ts +7 -0
  613. package/widgets/lib/editors/signature-pad-widget/signature-pad-widget-column.component.d.ts +6 -0
  614. package/widgets/lib/editors/signature-pad-widget/signature-pad-widget-designer.component.d.ts +6 -0
  615. package/widgets/lib/editors/signature-pad-widget/signature-pad-widget-edit.component.d.ts +19 -0
  616. package/widgets/lib/editors/signature-pad-widget/signature-pad-widget-filter.component.d.ts +6 -0
  617. package/widgets/lib/editors/signature-pad-widget/signature-pad-widget-print.component.d.ts +6 -0
  618. package/widgets/lib/editors/signature-pad-widget/signature-pad-widget-view.component.d.ts +7 -0
  619. package/widgets/lib/editors/signature-pad-widget/signature-pad-widget.config.d.ts +2 -0
  620. package/widgets/lib/editors/text-box-widget/index.d.ts +7 -0
  621. package/widgets/lib/editors/text-box-widget/text-box-widget-column.component.d.ts +6 -0
  622. package/widgets/lib/editors/text-box-widget/text-box-widget-designer.component.d.ts +6 -0
  623. package/widgets/lib/editors/text-box-widget/text-box-widget-edit.component.d.ts +19 -0
  624. package/widgets/lib/editors/text-box-widget/text-box-widget-filter.component.d.ts +6 -0
  625. package/widgets/lib/editors/text-box-widget/text-box-widget-print.component.d.ts +6 -0
  626. package/widgets/lib/editors/text-box-widget/text-box-widget-view.component.d.ts +8 -0
  627. package/widgets/lib/editors/text-box-widget/text-box-widget.config.d.ts +2 -0
  628. package/widgets/lib/layout/block-widget/block-widget.component.d.ts +8 -0
  629. package/widgets/lib/layout/block-widget/block-widget.config.d.ts +2 -0
  630. package/widgets/lib/layout/block-widget/index.d.ts +2 -0
  631. package/widgets/lib/widgets.module.d.ts +7 -0
  632. package/workflow/lib/workflow.types.d.ts +2 -2
  633. package/esm2022/common/lib/layout/component-slot/component-slot-loader.service.mjs +0 -56
  634. package/esm2022/common/lib/layout/component-slot/component-slot-registery.service.mjs +0 -28
  635. package/esm2022/common/lib/layout/component-slot/component-slot.directive.mjs +0 -24
  636. package/esm2022/common/lib/layout/component-slot/component-slot.module.mjs +0 -72
  637. package/esm2022/common/lib/layout/component-slot/component-slot.types.mjs +0 -2
  638. package/esm2022/common/lib/layout/component-slot/index.mjs +0 -6
  639. package/esm2022/layouts/lib/admin/entity-layout/store/entity.actions.mjs +0 -18
  640. package/esm2022/layouts/lib/admin/entity-layout/store/entity.effects.mjs +0 -76
  641. package/esm2022/schema/lib/schema.mjs +0 -2
  642. package/fesm2022/acorex-platform-layouts-avatar-widget-edit.component-PZr1lXj-.mjs.map +0 -1
  643. package/fesm2022/acorex-platform-layouts-avatar-widget-view.component-pJJYkvdH.mjs +0 -36
  644. package/fesm2022/acorex-platform-layouts-avatar-widget-view.component-pJJYkvdH.mjs.map +0 -1
  645. package/fesm2022/acorex-platform-layouts-checkbox-widget-column.component-vRJI5S-w.mjs.map +0 -1
  646. package/fesm2022/acorex-platform-layouts-checkbox-widget-view.component-m6bF8XFR.mjs.map +0 -1
  647. package/fesm2022/acorex-platform-layouts-dateTime-widget-column.component-qeQRJePy.mjs.map +0 -1
  648. package/fesm2022/acorex-platform-layouts-dateTime-widget-edit.component-zeJXGXY8.mjs.map +0 -1
  649. package/fesm2022/acorex-platform-layouts-dateTime-widget-filter.component-DJ6esclU.mjs.map +0 -1
  650. package/fesm2022/acorex-platform-layouts-dateTime-widget-view.component-BrwycTWz.mjs.map +0 -1
  651. package/fesm2022/acorex-platform-layouts-email-widget-column.component-ac8gqsFT.mjs.map +0 -1
  652. package/fesm2022/acorex-platform-layouts-file-widget-column.component-v7kAdIQ9.mjs.map +0 -1
  653. package/fesm2022/acorex-platform-layouts-file-widget-view.component-mXBrKX0K.mjs.map +0 -1
  654. package/fesm2022/acorex-platform-layouts-gallery-widget-view.component-xU52uaP0.mjs.map +0 -1
  655. package/fesm2022/acorex-platform-layouts-lookup-widget-column.component-Ts0MJe8O.mjs.map +0 -1
  656. package/fesm2022/acorex-platform-layouts-lookup-widget-edit.component-l5nSr9Cm.mjs.map +0 -1
  657. package/fesm2022/acorex-platform-layouts-lookup-widget-filter.component-gp5skvmz.mjs.map +0 -1
  658. package/fesm2022/acorex-platform-layouts-lookup-widget-view.component-ftFXFj6k.mjs.map +0 -1
  659. package/fesm2022/acorex-platform-layouts-map-widget-view.component-1Lj9efbd.mjs.map +0 -1
  660. package/fesm2022/acorex-platform-layouts-messenger-widget-column.component-W7ZY-W84.mjs.map +0 -1
  661. package/fesm2022/acorex-platform-layouts-messenger-widget-edit.component-dAX8nirB.mjs.map +0 -1
  662. package/fesm2022/acorex-platform-layouts-messenger-widget-view.component-9TJiFdq-.mjs.map +0 -1
  663. package/fesm2022/acorex-platform-layouts-number-widget-view.component-hqkAR0LG.mjs.map +0 -1
  664. package/fesm2022/acorex-platform-layouts-password-widget-column.component-ic1jykZL.mjs.map +0 -1
  665. package/fesm2022/acorex-platform-layouts-password-widget-edit.component-D8xI17yk.mjs +0 -37
  666. package/fesm2022/acorex-platform-layouts-password-widget-edit.component-D8xI17yk.mjs.map +0 -1
  667. package/fesm2022/acorex-platform-layouts-phone-widget-column.component-s04WZfzv.mjs.map +0 -1
  668. package/fesm2022/acorex-platform-layouts-phone-widget-edit.component-MKzlZ0_B.mjs.map +0 -1
  669. package/fesm2022/acorex-platform-layouts-rich-text-widget-column.component-P0YzXTIB.mjs.map +0 -1
  670. package/fesm2022/acorex-platform-layouts-rich-text-widget-view.component--Rzxm2a6.mjs.map +0 -1
  671. package/fesm2022/acorex-platform-layouts-selection-list-widget-column.component-9FTkDGmq.mjs.map +0 -1
  672. package/fesm2022/acorex-platform-layouts-selection-list-widget-edit.component-FpOQ12Ie.mjs.map +0 -1
  673. package/fesm2022/acorex-platform-layouts-selection-list-widget-filter.component-hGk-ZZ78.mjs.map +0 -1
  674. package/fesm2022/acorex-platform-layouts-selection-list-widget-view.component-s9xq___Y.mjs.map +0 -1
  675. package/fesm2022/acorex-platform-layouts-signature-pad-widget-view.component-R40Ml757.mjs.map +0 -1
  676. package/fesm2022/acorex-platform-layouts-text-widget-column.component-qhh6MT79.mjs.map +0 -1
  677. package/fesm2022/acorex-platform-layouts-text-widget-view.component-65eOj0qR.mjs.map +0 -1
  678. package/fesm2022/acorex-platform-layouts-toggle-widget-column.component-uxOXR-bL.mjs.map +0 -1
  679. package/layouts/lib/admin/entity-layout/store/entity.actions.d.ts +0 -48
  680. package/layouts/lib/admin/entity-layout/store/entity.effects.d.ts +0 -22
  681. /package/{common/lib/layout → layout/lib}/component-slot/component-slot-loader.service.d.ts +0 -0
  682. /package/{common/lib/layout → layout/lib}/component-slot/component-slot-registery.service.d.ts +0 -0
  683. /package/{common/lib/layout → layout/lib}/component-slot/component-slot.directive.d.ts +0 -0
  684. /package/{common/lib/layout → layout/lib}/component-slot/component-slot.module.d.ts +0 -0
  685. /package/{common/lib/layout → layout/lib}/component-slot/component-slot.types.d.ts +0 -0
  686. /package/{common/lib/layout → layout/lib}/component-slot/index.d.ts +0 -0
@@ -1,6 +1,7 @@
1
1
  import { AXPEntityDetailsViewComponent, AXPEntityListViewComponent } from './entity-layout';
2
2
  import { AXPEntityDetailViewLoaderResolver, AXPListViewLoaderResolver } from './entity.resolver';
3
3
  import { AXPAuthGuard } from '@acorex/platform/auth';
4
+ import { AXPDefaultThemeEntityDetailsViewComponent, AXPEntityDetailViewModelResolver } from '../themes/default';
4
5
  export const AX_ADMIN_ROUTES = [
5
6
  {
6
7
  path: ':app',
@@ -27,11 +28,22 @@ export const AX_ADMIN_ROUTES = [
27
28
  {
28
29
  path: 'e/:entity/list',
29
30
  component: AXPEntityListViewComponent,
30
- resolve: { loader: AXPListViewLoaderResolver },
31
+ resolve: {
32
+ loader: AXPListViewLoaderResolver,
33
+ },
34
+ // canActivate: [AXPPermissionGuard],
35
+ // data: {
36
+ // requiredPermission: "dynamic"
37
+ // }
38
+ },
39
+ {
40
+ path: 'ee/:entity/:id/view',
41
+ resolve: { vm: AXPEntityDetailViewModelResolver },
42
+ component: AXPDefaultThemeEntityDetailsViewComponent,
31
43
  },
32
44
  ],
33
45
  },
34
46
  ],
35
47
  },
36
48
  ];
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4ucm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXRzL3NyYy9saWIvYWRtaW4vYWRtaW4ucm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVyRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQVk7SUFDdEM7UUFDRSxJQUFJLEVBQUUsTUFBTTtRQUNaLFdBQVcsRUFBRSxDQUFDLFlBQVksQ0FBQztRQUMzQixRQUFRLEVBQUU7WUFDUjtnQkFDRSxJQUFJLEVBQUUsU0FBUztnQkFDZixRQUFRLEVBQUU7b0JBQ1I7d0JBQ0UsSUFBSSxFQUFFLDZCQUE2Qjt3QkFDbkMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLGlDQUFpQyxFQUFFO3dCQUN0RCxTQUFTLEVBQUUsNkJBQTZCO3FCQUN6QztvQkFDRDt3QkFDRSxJQUFJLEVBQUUsb0JBQW9CO3dCQUMxQixPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsaUNBQWlDLEVBQUU7d0JBQ3RELFNBQVMsRUFBRSw2QkFBNkI7cUJBQ3pDO29CQUNEO3dCQUNFLElBQUksRUFBRSxXQUFXO3dCQUNqQixVQUFVLEVBQUUsY0FBYzt3QkFDMUIsU0FBUyxFQUFFLE1BQU07cUJBQ2xCO29CQUNEO3dCQUNFLElBQUksRUFBRSxnQkFBZ0I7d0JBQ3RCLFNBQVMsRUFBRSwwQkFBMEI7d0JBQ3JDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSx5QkFBeUIsRUFBRTtxQkFDL0M7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQVhQRW50aXR5RGV0YWlsc1ZpZXdDb21wb25lbnQsIEFYUEVudGl0eUxpc3RWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9lbnRpdHktbGF5b3V0JztcbmltcG9ydCB7IEFYUEVudGl0eURldGFpbFZpZXdMb2FkZXJSZXNvbHZlciwgQVhQTGlzdFZpZXdMb2FkZXJSZXNvbHZlciB9IGZyb20gJy4vZW50aXR5LnJlc29sdmVyJztcbmltcG9ydCB7IEFYUEF1dGhHdWFyZCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vYXV0aCc7XG5cbmV4cG9ydCBjb25zdCBBWF9BRE1JTl9ST1VURVM6IFJvdXRlW10gPSBbXG4gIHtcbiAgICBwYXRoOiAnOmFwcCcsXG4gICAgY2FuQWN0aXZhdGU6IFtBWFBBdXRoR3VhcmRdLFxuICAgIGNoaWxkcmVuOiBbXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICc6bW9kdWxlJyxcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXRoOiAnZS86ZW50aXR5LzppZC92aWV3LzpzZWN0aW9uJyxcbiAgICAgICAgICAgIHJlc29sdmU6IHsgbG9hZGVyOiBBWFBFbnRpdHlEZXRhaWxWaWV3TG9hZGVyUmVzb2x2ZXIgfSxcbiAgICAgICAgICAgIGNvbXBvbmVudDogQVhQRW50aXR5RGV0YWlsc1ZpZXdDb21wb25lbnQsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXRoOiAnZS86ZW50aXR5LzppZC92aWV3JyxcbiAgICAgICAgICAgIHJlc29sdmU6IHsgbG9hZGVyOiBBWFBFbnRpdHlEZXRhaWxWaWV3TG9hZGVyUmVzb2x2ZXIgfSxcbiAgICAgICAgICAgIGNvbXBvbmVudDogQVhQRW50aXR5RGV0YWlsc1ZpZXdDb21wb25lbnQsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXRoOiAnZS86ZW50aXR5JyxcbiAgICAgICAgICAgIHJlZGlyZWN0VG86ICc6ZW50aXR5L2xpc3QnLFxuICAgICAgICAgICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXRoOiAnZS86ZW50aXR5L2xpc3QnLFxuICAgICAgICAgICAgY29tcG9uZW50OiBBWFBFbnRpdHlMaXN0Vmlld0NvbXBvbmVudCxcbiAgICAgICAgICAgIHJlc29sdmU6IHsgbG9hZGVyOiBBWFBMaXN0Vmlld0xvYWRlclJlc29sdmVyIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbl07XG4iXX0=
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4ucm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXRzL3NyYy9saWIvYWRtaW4vYWRtaW4ucm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxZQUFZLEVBQXNCLE1BQU0sdUJBQXVCLENBQUM7QUFDekUsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFaEgsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFZO0lBQ3RDO1FBQ0UsSUFBSSxFQUFFLE1BQU07UUFDWixXQUFXLEVBQUUsQ0FBQyxZQUFZLENBQUM7UUFDM0IsUUFBUSxFQUFFO1lBQ1I7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsUUFBUSxFQUFFO29CQUNSO3dCQUNFLElBQUksRUFBRSw2QkFBNkI7d0JBQ25DLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxpQ0FBaUMsRUFBRTt3QkFDdEQsU0FBUyxFQUFFLDZCQUE2QjtxQkFDekM7b0JBQ0Q7d0JBQ0UsSUFBSSxFQUFFLG9CQUFvQjt3QkFDMUIsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLGlDQUFpQyxFQUFFO3dCQUN0RCxTQUFTLEVBQUUsNkJBQTZCO3FCQUN6QztvQkFDRDt3QkFDRSxJQUFJLEVBQUUsV0FBVzt3QkFDakIsVUFBVSxFQUFFLGNBQWM7d0JBQzFCLFNBQVMsRUFBRSxNQUFNO3FCQUNsQjtvQkFDRDt3QkFDRSxJQUFJLEVBQUUsZ0JBQWdCO3dCQUN0QixTQUFTLEVBQUUsMEJBQTBCO3dCQUNyQyxPQUFPLEVBQUU7NEJBQ1AsTUFBTSxFQUFFLHlCQUF5Qjt5QkFDbEM7d0JBQ0QscUNBQXFDO3dCQUNyQyxVQUFVO3dCQUNWLGtDQUFrQzt3QkFDbEMsSUFBSTtxQkFDTDtvQkFDRDt3QkFDRSxJQUFJLEVBQUUscUJBQXFCO3dCQUMzQixPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsZ0NBQWdDLEVBQUU7d0JBQ2pELFNBQVMsRUFBRSx5Q0FBeUM7cUJBQ3JEO2lCQUNGO2FBQ0Y7U0FDRjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFYUEVudGl0eURldGFpbHNWaWV3Q29tcG9uZW50LCBBWFBFbnRpdHlMaXN0Vmlld0NvbXBvbmVudCB9IGZyb20gJy4vZW50aXR5LWxheW91dCc7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZXRhaWxWaWV3TG9hZGVyUmVzb2x2ZXIsIEFYUExpc3RWaWV3TG9hZGVyUmVzb2x2ZXIgfSBmcm9tICcuL2VudGl0eS5yZXNvbHZlcic7XG5pbXBvcnQgeyBBWFBBdXRoR3VhcmQsIEFYUFBlcm1pc3Npb25HdWFyZCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vYXV0aCc7XG5pbXBvcnQgeyBBWFBEZWZhdWx0VGhlbWVFbnRpdHlEZXRhaWxzVmlld0NvbXBvbmVudCwgQVhQRW50aXR5RGV0YWlsVmlld01vZGVsUmVzb2x2ZXIgfSBmcm9tICcuLi90aGVtZXMvZGVmYXVsdCc7XG5cbmV4cG9ydCBjb25zdCBBWF9BRE1JTl9ST1VURVM6IFJvdXRlW10gPSBbXG4gIHtcbiAgICBwYXRoOiAnOmFwcCcsXG4gICAgY2FuQWN0aXZhdGU6IFtBWFBBdXRoR3VhcmRdLFxuICAgIGNoaWxkcmVuOiBbXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICc6bW9kdWxlJyxcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXRoOiAnZS86ZW50aXR5LzppZC92aWV3LzpzZWN0aW9uJyxcbiAgICAgICAgICAgIHJlc29sdmU6IHsgbG9hZGVyOiBBWFBFbnRpdHlEZXRhaWxWaWV3TG9hZGVyUmVzb2x2ZXIgfSxcbiAgICAgICAgICAgIGNvbXBvbmVudDogQVhQRW50aXR5RGV0YWlsc1ZpZXdDb21wb25lbnQsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXRoOiAnZS86ZW50aXR5LzppZC92aWV3JyxcbiAgICAgICAgICAgIHJlc29sdmU6IHsgbG9hZGVyOiBBWFBFbnRpdHlEZXRhaWxWaWV3TG9hZGVyUmVzb2x2ZXIgfSxcbiAgICAgICAgICAgIGNvbXBvbmVudDogQVhQRW50aXR5RGV0YWlsc1ZpZXdDb21wb25lbnQsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXRoOiAnZS86ZW50aXR5JyxcbiAgICAgICAgICAgIHJlZGlyZWN0VG86ICc6ZW50aXR5L2xpc3QnLFxuICAgICAgICAgICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXRoOiAnZS86ZW50aXR5L2xpc3QnLFxuICAgICAgICAgICAgY29tcG9uZW50OiBBWFBFbnRpdHlMaXN0Vmlld0NvbXBvbmVudCxcbiAgICAgICAgICAgIHJlc29sdmU6IHtcbiAgICAgICAgICAgICAgbG9hZGVyOiBBWFBMaXN0Vmlld0xvYWRlclJlc29sdmVyLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIGNhbkFjdGl2YXRlOiBbQVhQUGVybWlzc2lvbkd1YXJkXSxcbiAgICAgICAgICAgIC8vIGRhdGE6IHtcbiAgICAgICAgICAgIC8vICAgcmVxdWlyZWRQZXJtaXNzaW9uOiBcImR5bmFtaWNcIlxuICAgICAgICAgICAgLy8gfVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgcGF0aDogJ2VlLzplbnRpdHkvOmlkL3ZpZXcnLFxuICAgICAgICAgICAgcmVzb2x2ZTogeyB2bTogQVhQRW50aXR5RGV0YWlsVmlld01vZGVsUmVzb2x2ZXIgfSxcbiAgICAgICAgICAgIGNvbXBvbmVudDogQVhQRGVmYXVsdFRoZW1lRW50aXR5RGV0YWlsc1ZpZXdDb21wb25lbnQsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbl07XG4iXX0=
@@ -75,12 +75,12 @@ export class AXPEntityCreateViewComponent extends AXBasePageComponent {
75
75
  });
76
76
  }
77
77
  }
78
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AXPEntityCreateViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
79
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: AXPEntityCreateViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"ax-min-h-[25vh]\">\n @if((loader.hasSections$ | async)) {\n <ol\n class=\"ax-flex ax-items-center ax-w-full ax-space-x-2 ax-text-sm ax-font-medium ax-text-center ax-text-gray-500 ax-bg-white dark:ax-text-gray-400 sm:ax-text-base ax-p-4 sm:ax-space-x-4 rtl:ax-space-x-reverse ax-sticky ax-top-0 ax-z-10\"\n [axpSticky]=\"'ax-bg-surface ax-drop-shadow-lg'\" [stickyParent]=\"'.ax-popup-body-container'\">\n @for(section of (loader.sections$ | async); track section.name;let index = $index;let last = $last;let count=\n $count) {\n <li class=\"ax-flex ax-items-center\">\n <span\n class=\"ax-flex ax-items-center ax-justify-center ax-w-5 ax-h-5 ax-me-2 ax-text-xs ax-text-white ax-bg-neutral-500 ax-rounded-full ax-shrink-0\"\n [class.!ax-bg-primary-500]=\"(loader.section$ | async) == section\"\n [class.!ax-bg-success-500]=\"index < ((loader.currentIndex$ | async) || 0)\">\n {{ index + 1 }}\n </span>\n <p class=\"ax-font-normal\" [class.!ax-text-primary-500]=\"(loader.section$ | async) == section\"\n [class.!ax-text-success-500]=\"index < ((loader.currentIndex$ | async) || 0)\"\n [class.!ax-font-semibold]=\"(loader.section$ | async) == section\">\n {{ section.title }}\n </p>\n\n <i *ngIf=\"!last\" [class.!ax-text-primary-500]=\"(loader.section$ | async) == section\"\n [class.!ax-text-success-500]=\"index < ((loader.currentIndex$ | async) || 0)\"\n class=\"ax-text-xs ax-text-neutral-500 fa-solid fa-chevrons-right ax-ms-2 sm:ax-ms-4 rtl:ax-rotate-180\"></i>\n </li>\n }\n </ol>\n }\n\n <ax-form class=\"ax-flex ax-flex-col ax-gap-6 ax-p-4\" #form [messageStyle]=\"'bottom'\" [updateOn]=\"'blur'\">\n @for(section of (loader.section$ | async)?.sections; track section.name;) {\n <div class=\"ax-flex ax-flex-col ax-pb-4\">\n @if(((loader.section$ | async)?.sections?.length ?? 0) > 1) {\n <div class=\"ax-pb-4\">\n <span class=\"ax-font-bold ax-text-2xl\">{{ section.title }}</span>\n @if(section.description) {\n <p class=\"ax-text-sm ax-text-gray-500\">{{ section.description }}</p>\n }\n </div>\n }\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4 ax-py-2 first:ax-pt-0 last:ax-pb-0\">\n @for(name of section.properties; track name) {\n <ng-container *ngIf=\"loader.getProp(name) as prop\">\n <!-- lg:ax-col-span-6 -->\n <!-- lg:ax-col-start-1 -->\n <ax-form-field class=\"ax-col-span-12 ax-col-start-1 lg:ax-col-span-{{\n prop.layout?.positions?.default?.span || 12\n }} lg:ax-col-start-{{ prop.layout?.positions?.default?.start || 1 }} ax-flex ax-flex-col\">\n <ax-label class=\"ax-font-semibold ax-text-sm\" [required]=\"loader.isRequired(name)\">{{ prop.title\n }}</ax-label>\n <axp-widget-renderer [schema]=\"prop.schema\" [prop]=\"prop\" [mode]=\"'edit'\"\n [context]=\"loader.data\"></axp-widget-renderer>\n </ax-form-field>\n </ng-container>\n }\n </div>\n </div>\n }\n </ax-form>\n <ax-footer>\n <ax-prefix> </ax-prefix>\n <ax-suffix>\n @if((loader.hasSections$| async) && !(loader.isFirst$| async)) {\n <ax-button look=\"solid\" color=\"ghost\" text=\"Back\" (onClick)=\"handleBackClick()\"> </ax-button>\n } @else {\n <ax-button look=\"solid\" color=\"ghost\" text=\"Cancel\" (onClick)=\"handleCloseClick()\"> </ax-button>\n } @if((loader.isLast$ | async)) {\n <ax-dropdown-button [disabled]=\"submitLoading()\" color=\"primary\" text=\"Save\" look=\"solid\"\n (onClick)=\"handleSaveClick(form)\">\n <ax-loading *ngIf=\"submitLoading()\"></ax-loading>\n <ax-button-item-list>\n <ax-button-item text=\"Save & Create New\" (onClick)=\"handleSaveAndNewClick(form)\"> </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n\n } @else {\n <ax-button look=\"solid\" color=\"primary\" text=\"Continue\" (onClick)=\"handleNextClick(form)\"> </ax-button>\n }\n </ax-suffix>\n </ax-footer>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i2.AXFormFieldComponent, selector: "ax-form-field" }, { kind: "component", type: i2.AXFormComponent, selector: "ax-form", inputs: ["messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title , ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i5.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXPSchemaModule }, { kind: "component", type: i6.AXPWidgetRendererComponent, selector: "axp-widget-renderer", inputs: ["context", "prop", "mode", "schema"] }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i7.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type: i8.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "directive", type:
78
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityCreateViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
79
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPEntityCreateViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"ax-min-h-[25vh]\">\n @if((loader.hasSections$ | async)) {\n <ol\n class=\"ax-flex ax-items-center ax-w-full ax-space-x-2 ax-text-sm ax-font-medium ax-text-center ax-text-gray-500 ax-bg-white dark:ax-text-gray-400 sm:ax-text-base ax-p-4 sm:ax-space-x-4 rtl:ax-space-x-reverse ax-sticky ax-top-0 ax-z-10\"\n [axpSticky]=\"'ax-bg-surface ax-drop-shadow-lg'\" [stickyParent]=\"'.ax-popup-body-container'\">\n @for(section of (loader.sections$ | async); track section.name;let index = $index;let last = $last;let count=\n $count) {\n <li class=\"ax-flex ax-items-center\">\n <span\n class=\"ax-flex ax-items-center ax-justify-center ax-w-5 ax-h-5 ax-me-2 ax-text-xs ax-text-white ax-bg-neutral-500 ax-rounded-full ax-shrink-0\"\n [class.!ax-bg-primary-500]=\"(loader.section$ | async) == section\"\n [class.!ax-bg-success-500]=\"index < ((loader.currentIndex$ | async) || 0)\">\n {{ index + 1 }}\n </span>\n <p class=\"ax-font-normal\" [class.!ax-text-primary-500]=\"(loader.section$ | async) == section\"\n [class.!ax-text-success-500]=\"index < ((loader.currentIndex$ | async) || 0)\"\n [class.!ax-font-semibold]=\"(loader.section$ | async) == section\">\n {{ section.title }}\n </p>\n\n <i *ngIf=\"!last\" [class.!ax-text-primary-500]=\"(loader.section$ | async) == section\"\n [class.!ax-text-success-500]=\"index < ((loader.currentIndex$ | async) || 0)\"\n class=\"ax-text-xs ax-text-neutral-500 fa-solid fa-chevrons-right ax-ms-2 sm:ax-ms-4 rtl:ax-rotate-180\"></i>\n </li>\n }\n </ol>\n }\n\n <ax-form class=\"ax-flex ax-flex-col ax-gap-6 ax-p-4\" #form [messageStyle]=\"'bottom'\" [updateOn]=\"'blur'\">\n @for(section of (loader.section$ | async)?.sections; track section.name;) {\n <div class=\"ax-flex ax-flex-col ax-pb-4\">\n @if(((loader.section$ | async)?.sections?.length ?? 0) > 1) {\n <div class=\"ax-pb-4\">\n <span class=\"ax-font-bold ax-text-2xl\">{{ section.title }}</span>\n @if(section.description) {\n <p class=\"ax-text-sm ax-text-gray-500\">{{ section.description }}</p>\n }\n </div>\n }\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4 ax-py-2 first:ax-pt-0 last:ax-pb-0\">\n @for(name of section.properties; track name) {\n <ng-container *ngIf=\"loader.getProp(name) as prop\">\n <!-- lg:ax-col-span-6 -->\n <!-- lg:ax-col-start-1 -->\n <ax-form-field class=\"ax-col-span-12 ax-col-start-1 lg:ax-col-span-{{\n prop.layout?.positions?.default?.span || 12\n }} lg:ax-col-start-{{ prop.layout?.positions?.default?.start || 1 }} ax-flex ax-flex-col\">\n <ax-label class=\"ax-font-semibold ax-text-sm\" [required]=\"loader.isRequired(name)\">{{ prop.title\n }}</ax-label>\n <axp-widget-renderer [schema]=\"prop.schema\" [prop]=\"prop\" [mode]=\"'edit'\"\n [context]=\"loader.data\"></axp-widget-renderer>\n </ax-form-field>\n </ng-container>\n }\n </div>\n </div>\n }\n </ax-form>\n <ax-footer>\n <ax-prefix> </ax-prefix>\n <ax-suffix>\n @if((loader.hasSections$| async) && !(loader.isFirst$| async)) {\n <ax-button look=\"solid\" color=\"ghost\" text=\"Back\" (onClick)=\"handleBackClick()\"> </ax-button>\n } @else {\n <ax-button look=\"solid\" color=\"ghost\" text=\"Cancel\" (onClick)=\"handleCloseClick()\"> </ax-button>\n } @if((loader.isLast$ | async)) {\n <ax-dropdown-button [disabled]=\"submitLoading()\" color=\"primary\" text=\"Save\" look=\"solid\"\n (onClick)=\"handleSaveClick(form)\">\n <ax-loading *ngIf=\"submitLoading()\"></ax-loading>\n <ax-button-item-list>\n <ax-button-item text=\"Save & Create New\" (onClick)=\"handleSaveAndNewClick(form)\"> </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n\n } @else {\n <ax-button look=\"solid\" color=\"primary\" text=\"Continue\" (onClick)=\"handleNextClick(form)\"> </ax-button>\n }\n </ax-suffix>\n </ax-footer>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i2.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "component", type: i2.AXFormComponent, selector: "ax-form", inputs: ["labelMode", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i5.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXPSchemaModule }, { kind: "component", type: i6.AXPWidgetRendererComponent, selector: "axp-widget-renderer", inputs: ["context", "prop", "mode", "schema"] }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i7.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type: i8.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "directive", type:
80
80
  //
81
81
  AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
82
82
  }
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AXPEntityCreateViewComponent, decorators: [{
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityCreateViewComponent, decorators: [{
84
84
  type: Component,
85
85
  args: [{ imports: [
86
86
  CommonModule,
@@ -102,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
102
102
  AXPStickyDirective,
103
103
  ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ax-min-h-[25vh]\">\n @if((loader.hasSections$ | async)) {\n <ol\n class=\"ax-flex ax-items-center ax-w-full ax-space-x-2 ax-text-sm ax-font-medium ax-text-center ax-text-gray-500 ax-bg-white dark:ax-text-gray-400 sm:ax-text-base ax-p-4 sm:ax-space-x-4 rtl:ax-space-x-reverse ax-sticky ax-top-0 ax-z-10\"\n [axpSticky]=\"'ax-bg-surface ax-drop-shadow-lg'\" [stickyParent]=\"'.ax-popup-body-container'\">\n @for(section of (loader.sections$ | async); track section.name;let index = $index;let last = $last;let count=\n $count) {\n <li class=\"ax-flex ax-items-center\">\n <span\n class=\"ax-flex ax-items-center ax-justify-center ax-w-5 ax-h-5 ax-me-2 ax-text-xs ax-text-white ax-bg-neutral-500 ax-rounded-full ax-shrink-0\"\n [class.!ax-bg-primary-500]=\"(loader.section$ | async) == section\"\n [class.!ax-bg-success-500]=\"index < ((loader.currentIndex$ | async) || 0)\">\n {{ index + 1 }}\n </span>\n <p class=\"ax-font-normal\" [class.!ax-text-primary-500]=\"(loader.section$ | async) == section\"\n [class.!ax-text-success-500]=\"index < ((loader.currentIndex$ | async) || 0)\"\n [class.!ax-font-semibold]=\"(loader.section$ | async) == section\">\n {{ section.title }}\n </p>\n\n <i *ngIf=\"!last\" [class.!ax-text-primary-500]=\"(loader.section$ | async) == section\"\n [class.!ax-text-success-500]=\"index < ((loader.currentIndex$ | async) || 0)\"\n class=\"ax-text-xs ax-text-neutral-500 fa-solid fa-chevrons-right ax-ms-2 sm:ax-ms-4 rtl:ax-rotate-180\"></i>\n </li>\n }\n </ol>\n }\n\n <ax-form class=\"ax-flex ax-flex-col ax-gap-6 ax-p-4\" #form [messageStyle]=\"'bottom'\" [updateOn]=\"'blur'\">\n @for(section of (loader.section$ | async)?.sections; track section.name;) {\n <div class=\"ax-flex ax-flex-col ax-pb-4\">\n @if(((loader.section$ | async)?.sections?.length ?? 0) > 1) {\n <div class=\"ax-pb-4\">\n <span class=\"ax-font-bold ax-text-2xl\">{{ section.title }}</span>\n @if(section.description) {\n <p class=\"ax-text-sm ax-text-gray-500\">{{ section.description }}</p>\n }\n </div>\n }\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4 ax-py-2 first:ax-pt-0 last:ax-pb-0\">\n @for(name of section.properties; track name) {\n <ng-container *ngIf=\"loader.getProp(name) as prop\">\n <!-- lg:ax-col-span-6 -->\n <!-- lg:ax-col-start-1 -->\n <ax-form-field class=\"ax-col-span-12 ax-col-start-1 lg:ax-col-span-{{\n prop.layout?.positions?.default?.span || 12\n }} lg:ax-col-start-{{ prop.layout?.positions?.default?.start || 1 }} ax-flex ax-flex-col\">\n <ax-label class=\"ax-font-semibold ax-text-sm\" [required]=\"loader.isRequired(name)\">{{ prop.title\n }}</ax-label>\n <axp-widget-renderer [schema]=\"prop.schema\" [prop]=\"prop\" [mode]=\"'edit'\"\n [context]=\"loader.data\"></axp-widget-renderer>\n </ax-form-field>\n </ng-container>\n }\n </div>\n </div>\n }\n </ax-form>\n <ax-footer>\n <ax-prefix> </ax-prefix>\n <ax-suffix>\n @if((loader.hasSections$| async) && !(loader.isFirst$| async)) {\n <ax-button look=\"solid\" color=\"ghost\" text=\"Back\" (onClick)=\"handleBackClick()\"> </ax-button>\n } @else {\n <ax-button look=\"solid\" color=\"ghost\" text=\"Cancel\" (onClick)=\"handleCloseClick()\"> </ax-button>\n } @if((loader.isLast$ | async)) {\n <ax-dropdown-button [disabled]=\"submitLoading()\" color=\"primary\" text=\"Save\" look=\"solid\"\n (onClick)=\"handleSaveClick(form)\">\n <ax-loading *ngIf=\"submitLoading()\"></ax-loading>\n <ax-button-item-list>\n <ax-button-item text=\"Save & Create New\" (onClick)=\"handleSaveAndNewClick(form)\"> </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n\n } @else {\n <ax-button look=\"solid\" color=\"primary\" text=\"Continue\" (onClick)=\"handleNextClick(form)\"> </ax-button>\n }\n </ax-suffix>\n </ax-footer>\n</div>" }]
104
104
  }] });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWNyZWF0ZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0cy9zcmMvbGliL2FkbWluL2VudGl0eS1sYXlvdXQvZW50aXR5LWNyZWF0ZS12aWV3L2VudGl0eS1jcmVhdGUtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dHMvc3JjL2xpYi9hZG1pbi9lbnRpdHktbGF5b3V0L2VudGl0eS1jcmVhdGUtdmlldy9lbnRpdHktY3JlYXRlLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQW1CLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8s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QVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRSxDQUFDO1lBQ0gsQ0FBQztZQUNELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRTtnQkFDckMsT0FBTyxFQUFFO29CQUNQLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNO29CQUNqQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSTtpQkFDaEM7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzs4R0FyRFUsNEJBQTRCO2tHQUE1Qiw0QkFBNEIsK0ZDL0N6Qyw0aklBK0VNLDJDRHJERixZQUFZLHVMQUNaLFdBQVcsOEJBQ1gsWUFBWSxzUUFDWixpQkFBaUIsdVBBRWpCLGNBQWMsb3JCQUNkLGNBQWMsOEJBQ2QsZUFBZSw4S0FDZixZQUFZLDhCQUNaLGVBQWUsMEtBQ2YsZUFBZSw4QkFDZixrQkFBa0IsOEJBQ2xCLGFBQWEsZ0tBQ2IsZ0JBQWdCLDhCQUNoQixzQkFBc0I7Z0JBQ3RCLEVBQUU7Z0JBQ0Ysa0JBQWtCOzsyRkFLVCw0QkFBNEI7a0JBeEJ4QyxTQUFTOzhCQUVDO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixzQkFBc0I7d0JBQ3RCLEVBQUU7d0JBQ0Ysa0JBQWtCO3FCQUNuQixjQUNXLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RpYWxvZyc7XG5pbXBvcnQgeyBBWERyb3Bkb3duQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duLWJ1dHRvbic7XG5pbXBvcnQgeyBBWEZvcm1Db21wb25lbnQsIEFYRm9ybU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9mb3JtJztcbmltcG9ydCB7IEFYTGFiZWxNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbGFiZWwnO1xuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhCYXNlUGFnZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wYWdlJztcbmltcG9ydCB7IEFYVGFic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90YWJzJztcbmltcG9ydCB7IEFYVG9vbHRpcE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IEFYUFNjaGVtYU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vc2NoZW1hJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBXcml0YWJsZVNpZ25hbCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQVhQRW50aXR5Q3JlYXRlVmlld0xvYWRlciB9IGZyb20gJy4vZW50aXR5LWNyZWF0ZS12aWV3LmNvbmZpZyc7XG5cbmltcG9ydCB7IEFYVmFsaWRhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS92YWxpZGF0aW9uJztcblxuaW1wb3J0IHsgQVhEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBBWFBTdGlja3lEaXJlY3RpdmUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEFYUEVudGl0eUNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZCc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vZW50aXR5LWNyZWF0ZS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBBWEZvcm1Nb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYRGlhbG9nTW9kdWxlLFxuICAgIEFYTG9hZGluZ01vZHVsZSxcbiAgICBBWFRhYnNNb2R1bGUsXG4gICAgQVhQU2NoZW1hTW9kdWxlLFxuICAgIEFYVG9vbHRpcE1vZHVsZSxcbiAgICBBWFZhbGlkYXRpb25Nb2R1bGUsXG4gICAgQVhMYWJlbE1vZHVsZSxcbiAgICBBWERyb3Bkb3duTW9kdWxlLFxuICAgIEFYRHJvcGRvd25CdXR0b25Nb2R1bGUsXG4gICAgLy9cbiAgICBBWFBTdGlja3lEaXJlY3RpdmUsXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlDcmVhdGVWaWV3Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlUGFnZUNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBsb2FkZXIhOiBBWFBFbnRpdHlDcmVhdGVWaWV3TG9hZGVyO1xuICBwcm90ZWN0ZWQgZW50aXR5ITogQVhQRW50aXR5Q29uZmlnO1xuICBwcm90ZWN0ZWQgd29ya2Zsb3cgPSBpbmplY3QoQVhQV29ya2Zsb3dTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHN1Ym1pdExvYWRpbmc6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xvc2VDbGljaygpIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlQmFja0NsaWNrKCkge1xuICAgIGF3YWl0IHRoaXMubG9hZGVyLmJhY2soKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVOZXh0Q2xpY2soZm9ybTogQVhGb3JtQ29tcG9uZW50KSB7XG4gICAgY29uc3QgZm9ybVJlc3VsdCA9IGF3YWl0IGZvcm0udmFsaWRhdGUoKTtcbiAgICBpZiAoZm9ybVJlc3VsdC5yZXN1bHQpIHtcbiAgICAgIGF3YWl0IHRoaXMubG9hZGVyLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlU2F2ZUNsaWNrKGZvcm06IEFYRm9ybUNvbXBvbmVudCkge1xuICAgIGNvbnN0IGZvcm1SZXN1bHQgPSBhd2FpdCBmb3JtLnZhbGlkYXRlKCk7XG4gICAgaWYgKGZvcm1SZXN1bHQucmVzdWx0KSB7XG4gICAgICBpZiAodGhpcy5lbnRpdHkuY29tbWFuZHM/LmNyZWF0ZSkge1xuICAgICAgICB0aGlzLnN1Ym1pdExvYWRpbmcuc2V0KHRydWUpO1xuICAgICAgICBjb25zdCByZWNvcmQgPSBhd2FpdCB0aGlzLmVudGl0eS5jb21tYW5kcy5jcmVhdGUodGhpcy5sb2FkZXIuZGF0YSk7XG4gICAgICAgIGlmIChyZWNvcmQpIHtcbiAgICAgICAgICB0aGlzLnN1Ym1pdExvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLmNsb3NlKHsgc2F2ZTogdHJ1ZSwgcmVjb3JkSWQ6IHJlY29yZC5pZCwgcmVkaXJlY3Q6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlU2F2ZUFuZE5ld0NsaWNrKGZvcm06IEFYRm9ybUNvbXBvbmVudCkge1xuICAgIGNvbnN0IGZvcm1SZXN1bHQgPSBhd2FpdCBmb3JtLnZhbGlkYXRlKCk7XG4gICAgaWYgKGZvcm1SZXN1bHQucmVzdWx0KSB7XG4gICAgICBpZiAodGhpcy5lbnRpdHkuY29tbWFuZHM/LmNyZWF0ZSkge1xuICAgICAgICB0aGlzLnN1Ym1pdExvYWRpbmcuc2V0KHRydWUpO1xuICAgICAgICBjb25zdCByZWNvcmQgPSBhd2FpdCB0aGlzLmVudGl0eS5jb21tYW5kcy5jcmVhdGUodGhpcy5sb2FkZXIuZGF0YSk7XG4gICAgICAgIGlmIChyZWNvcmQpIHtcbiAgICAgICAgICB0aGlzLnN1Ym1pdExvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLmNsb3NlKHsgc2F2ZTogdHJ1ZSwgcmVjb3JkSWQ6IHJlY29yZC5pZCwgcmVkaXJlY3Q6IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLndvcmtmbG93LmV4ZWN1dGUoJ2NyZWF0ZS1lbnRpdHknLCB7XG4gICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICBtb2R1bGU6IHRoaXMubG9hZGVyLmVudGl0eS5tb2R1bGUsXG4gICAgICAgICAgZW50aXR5OiB0aGlzLmxvYWRlci5lbnRpdHkubmFtZSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF4LW1pbi1oLVsyNXZoXVwiPlxuICBAaWYoKGxvYWRlci5oYXNTZWN0aW9ucyQgfCBhc3luYykpIHtcbiAgPG9sXG4gICAgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC13LWZ1bGwgYXgtc3BhY2UteC0yIGF4LXRleHQtc20gYXgtZm9udC1tZWRpdW0gYXgtdGV4dC1jZW50ZXIgYXgtdGV4dC1ncmF5LTUwMCBheC1iZy13aGl0ZSBkYXJrOmF4LXRleHQtZ3JheS00MDAgc206YXgtdGV4dC1iYXNlIGF4LXAtNCBzbTpheC1zcGFjZS14LTQgcnRsOmF4LXNwYWNlLXgtcmV2ZXJzZSBheC1zdGlja3kgYXgtdG9wLTAgYXgtei0xMFwiXG4gICAgW2F4cFN0aWNreV09XCInYXgtYmctc3VyZmFjZSBheC1kcm9wLXNoYWRvdy1sZydcIiBbc3RpY2t5UGFyZW50XT1cIicuYXgtcG9wdXAtYm9keS1jb250YWluZXInXCI+XG4gICAgQGZvcihzZWN0aW9uIG9mIChsb2FkZXIuc2VjdGlvbnMkIHwgYXN5bmMpOyB0cmFjayBzZWN0aW9uLm5hbWU7bGV0IGluZGV4ID0gJGluZGV4O2xldCBsYXN0ID0gJGxhc3Q7bGV0IGNvdW50PVxuICAgICRjb3VudCkge1xuICAgIDxsaSBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyXCI+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktY2VudGVyIGF4LXctNSBheC1oLTUgYXgtbWUtMiBheC10ZXh0LXhzIGF4LXRleHQtd2hpdGUgYXgtYmctbmV1dHJhbC01MDAgYXgtcm91bmRlZC1mdWxsIGF4LXNocmluay0wXCJcbiAgICAgICAgW2NsYXNzLiFheC1iZy1wcmltYXJ5LTUwMF09XCIobG9hZGVyLnNlY3Rpb24kIHwgYXN5bmMpID09IHNlY3Rpb25cIlxuICAgICAgICBbY2xhc3MuIWF4LWJnLXN1Y2Nlc3MtNTAwXT1cImluZGV4IDwgKChsb2FkZXIuY3VycmVudEluZGV4JCB8IGFzeW5jKSB8fCAwKVwiPlxuICAgICAgICB7eyBpbmRleCArIDEgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxwIGNsYXNzPVwiYXgtZm9udC1ub3JtYWxcIiBbY2xhc3MuIWF4LXRleHQtcHJpbWFyeS01MDBdPVwiKGxvYWRlci5zZWN0aW9uJCB8IGFzeW5jKSA9PSBzZWN0aW9uXCJcbiAgICAgICAgW2NsYXNzLiFheC10ZXh0LXN1Y2Nlc3MtNTAwXT1cImluZGV4IDwgKChsb2FkZXIuY3VycmVudEluZGV4JCB8IGFzeW5jKSB8fCAwKVwiXG4gICAgICAgIFtjbGFzcy4hYXgtZm9udC1zZW1pYm9sZF09XCIobG9hZGVyLnNlY3Rpb24kIHwgYXN5bmMpID09IHNlY3Rpb25cIj5cbiAgICAgICAge3sgc2VjdGlvbi50aXRsZSB9fVxuICAgICAgPC9wPlxuXG4gICAgICA8aSAqbmdJZj1cIiFsYXN0XCIgW2NsYXNzLiFheC10ZXh0LXByaW1hcnktNTAwXT1cIihsb2FkZXIuc2VjdGlvbiQgfCBhc3luYykgPT0gc2VjdGlvblwiXG4gICAgICAgIFtjbGFzcy4hYXgtdGV4dC1zdWNjZXNzLTUwMF09XCJpbmRleCA8ICgobG9hZGVyLmN1cnJlbnRJbmRleCQgfCBhc3luYykgfHwgMClcIlxuICAgICAgICBjbGFzcz1cImF4LXRleHQteHMgYXgtdGV4dC1uZXV0cmFsLTUwMCBmYS1zb2xpZCBmYS1jaGV2cm9ucy1yaWdodCBheC1tcy0yIHNtOmF4LW1zLTQgcnRsOmF4LXJvdGF0ZS0xODBcIj48L2k+XG4gICAgPC9saT5cbiAgICB9XG4gIDwvb2w+XG4gIH1cblxuICA8YXgtZm9ybSBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTYgYXgtcC00XCIgI2Zvcm0gW21lc3NhZ2VTdHlsZV09XCInYm90dG9tJ1wiIFt1cGRhdGVPbl09XCInYmx1cidcIj5cbiAgICBAZm9yKHNlY3Rpb24gb2YgKGxvYWRlci5zZWN0aW9uJCB8IGFzeW5jKT8uc2VjdGlvbnM7IHRyYWNrIHNlY3Rpb24ubmFtZTspIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1wYi00XCI+XG4gICAgICBAaWYoKChsb2FkZXIuc2VjdGlvbiQgfCBhc3luYyk/LnNlY3Rpb25zPy5sZW5ndGggPz8gMCkgPiAxKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtcGItNFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWZvbnQtYm9sZCBheC10ZXh0LTJ4bFwiPnt7IHNlY3Rpb24udGl0bGUgfX08L3NwYW4+XG4gICAgICAgIEBpZihzZWN0aW9uLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgIDxwIGNsYXNzPVwiYXgtdGV4dC1zbSBheC10ZXh0LWdyYXktNTAwXCI+e3sgc2VjdGlvbi5kZXNjcmlwdGlvbiB9fTwvcD5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZCBheC1ncmlkLWNvbHMtMTIgYXgtZ2FwLTQgYXgtcHktMiBmaXJzdDpheC1wdC0wIGxhc3Q6YXgtcGItMFwiPlxuICAgICAgICBAZm9yKG5hbWUgb2Ygc2VjdGlvbi5wcm9wZXJ0aWVzOyB0cmFjayBuYW1lKSB7XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkZXIuZ2V0UHJvcChuYW1lKSBhcyBwcm9wXCI+XG4gICAgICAgICAgPCEtLSBsZzpheC1jb2wtc3Bhbi02IC0tPlxuICAgICAgICAgIDwhLS0gbGc6YXgtY29sLXN0YXJ0LTEgLS0+XG4gICAgICAgICAgPGF4LWZvcm0tZmllbGQgY2xhc3M9XCJheC1jb2wtc3Bhbi0xMiBheC1jb2wtc3RhcnQtMSBsZzpheC1jb2wtc3Bhbi17e1xuICAgICAgICAgICAgICBwcm9wLmxheW91dD8ucG9zaXRpb25zPy5kZWZhdWx0Py5zcGFuIHx8IDEyXG4gICAgICAgICAgICB9fSAgbGc6YXgtY29sLXN0YXJ0LXt7IHByb3AubGF5b3V0Py5wb3NpdGlvbnM/LmRlZmF1bHQ/LnN0YXJ0IHx8IDEgfX0gYXgtZmxleCBheC1mbGV4LWNvbFwiPlxuICAgICAgICAgICAgPGF4LWxhYmVsIGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZCBheC10ZXh0LXNtXCIgW3JlcXVpcmVkXT1cImxvYWRlci5pc1JlcXVpcmVkKG5hbWUpXCI+e3sgcHJvcC50aXRsZVxuICAgICAgICAgICAgICB9fTwvYXgtbGFiZWw+XG4gICAgICAgICAgICA8YXhwLXdpZGdldC1yZW5kZXJlciBbc2NoZW1hXT1cInByb3Auc2NoZW1hXCIgW3Byb3BdPVwicHJvcFwiIFttb2RlXT1cIidlZGl0J1wiXG4gICAgICAgICAgICAgIFtjb250ZXh0XT1cImxvYWRlci5kYXRhXCI+PC9heHAtd2lkZ2V0LXJlbmRlcmVyPlxuICAgICAgICAgIDwvYXgtZm9ybS1maWVsZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIH1cbiAgPC9heC1mb3JtPlxuICA8YXgtZm9vdGVyPlxuICAgIDxheC1wcmVmaXg+IDwvYXgtcHJlZml4PlxuICAgIDxheC1zdWZmaXg+XG4gICAgICBAaWYoKGxvYWRlci5oYXNTZWN0aW9ucyR8IGFzeW5jKSAmJiAhKGxvYWRlci5pc0ZpcnN0JHwgYXN5bmMpKSB7XG4gICAgICA8YXgtYnV0dG9uIGxvb2s9XCJzb2xpZFwiIGNvbG9yPVwiZ2hvc3RcIiB0ZXh0PVwiQmFja1wiIChvbkNsaWNrKT1cImhhbmRsZUJhY2tDbGljaygpXCI+IDwvYXgtYnV0dG9uPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICA8YXgtYnV0dG9uIGxvb2s9XCJzb2xpZFwiIGNvbG9yPVwiZ2hvc3RcIiB0ZXh0PVwiQ2FuY2VsXCIgKG9uQ2xpY2spPVwiaGFuZGxlQ2xvc2VDbGljaygpXCI+IDwvYXgtYnV0dG9uPlxuICAgICAgfSBAaWYoKGxvYWRlci5pc0xhc3QkIHwgYXN5bmMpKSB7XG4gICAgICA8YXgtZHJvcGRvd24tYnV0dG9uIFtkaXNhYmxlZF09XCJzdWJtaXRMb2FkaW5nKClcIiBjb2xvcj1cInByaW1hcnlcIiB0ZXh0PVwiU2F2ZVwiIGxvb2s9XCJzb2xpZFwiXG4gICAgICAgIChvbkNsaWNrKT1cImhhbmRsZVNhdmVDbGljayhmb3JtKVwiPlxuICAgICAgICA8YXgtbG9hZGluZyAqbmdJZj1cInN1Ym1pdExvYWRpbmcoKVwiPjwvYXgtbG9hZGluZz5cbiAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtIHRleHQ9XCJTYXZlICYgQ3JlYXRlIE5ld1wiIChvbkNsaWNrKT1cImhhbmRsZVNhdmVBbmROZXdDbGljayhmb3JtKVwiPiA8L2F4LWJ1dHRvbi1pdGVtPlxuICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICA8L2F4LWRyb3Bkb3duLWJ1dHRvbj5cblxuICAgICAgfSBAZWxzZSB7XG4gICAgICA8YXgtYnV0dG9uIGxvb2s9XCJzb2xpZFwiIGNvbG9yPVwicHJpbWFyeVwiIHRleHQ9XCJDb250aW51ZVwiIChvbkNsaWNrKT1cImhhbmRsZU5leHRDbGljayhmb3JtKVwiPiA8L2F4LWJ1dHRvbj5cbiAgICAgIH1cbiAgICA8L2F4LXN1ZmZpeD5cbiAgPC9heC1mb290ZXI+XG48L2Rpdj4iXX0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWNyZWF0ZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0cy9zcmMvbGliL2FkbWluL2VudGl0eS1sYXlvdXQvZW50aXR5LWNyZWF0ZS12aWV3L2VudGl0eS1jcmVhdGUtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dHMvc3JjL2xpYi9hZG1pbi9lbnRpdHktbGF5b3V0L2VudGl0eS1jcmVhdGUtdmlldy9lbnRpdHktY3JlYXRlLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQW1CLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8s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QVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRSxDQUFDO1lBQ0gsQ0FBQztZQUNELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRTtnQkFDckMsT0FBTyxFQUFFO29CQUNQLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNO29CQUNqQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSTtpQkFDaEM7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzs4R0FyRFUsNEJBQTRCO2tHQUE1Qiw0QkFBNEIsK0ZDL0N6Qyw0aklBK0VNLDJDRHJERixZQUFZLHVMQUNaLFdBQVcsOEJBQ1gsWUFBWSwwU0FDWixpQkFBaUIsc1BBRWpCLGNBQWMsb3JCQUNkLGNBQWMsOEJBQ2QsZUFBZSw4S0FDZixZQUFZLDhCQUNaLGVBQWUsMEtBQ2YsZUFBZSw4QkFDZixrQkFBa0IsOEJBQ2xCLGFBQWEsZ0tBQ2IsZ0JBQWdCLDhCQUNoQixzQkFBc0I7Z0JBQ3RCLEVBQUU7Z0JBQ0Ysa0JBQWtCOzsyRkFLVCw0QkFBNEI7a0JBeEJ4QyxTQUFTOzhCQUVDO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixzQkFBc0I7d0JBQ3RCLEVBQUU7d0JBQ0Ysa0JBQWtCO3FCQUNuQixjQUNXLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RpYWxvZyc7XG5pbXBvcnQgeyBBWERyb3Bkb3duQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duLWJ1dHRvbic7XG5pbXBvcnQgeyBBWEZvcm1Db21wb25lbnQsIEFYRm9ybU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9mb3JtJztcbmltcG9ydCB7IEFYTGFiZWxNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbGFiZWwnO1xuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhCYXNlUGFnZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wYWdlJztcbmltcG9ydCB7IEFYVGFic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90YWJzJztcbmltcG9ydCB7IEFYVG9vbHRpcE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IEFYUFNjaGVtYU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vc2NoZW1hJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBXcml0YWJsZVNpZ25hbCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQVhQRW50aXR5Q3JlYXRlVmlld0xvYWRlciB9IGZyb20gJy4vZW50aXR5LWNyZWF0ZS12aWV3LmNvbmZpZyc7XG5cbmltcG9ydCB7IEFYVmFsaWRhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS92YWxpZGF0aW9uJztcblxuaW1wb3J0IHsgQVhEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBBWFBTdGlja3lEaXJlY3RpdmUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEFYUEVudGl0eUNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZCc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vZW50aXR5LWNyZWF0ZS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBBWEZvcm1Nb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYRGlhbG9nTW9kdWxlLFxuICAgIEFYTG9hZGluZ01vZHVsZSxcbiAgICBBWFRhYnNNb2R1bGUsXG4gICAgQVhQU2NoZW1hTW9kdWxlLFxuICAgIEFYVG9vbHRpcE1vZHVsZSxcbiAgICBBWFZhbGlkYXRpb25Nb2R1bGUsXG4gICAgQVhMYWJlbE1vZHVsZSxcbiAgICBBWERyb3Bkb3duTW9kdWxlLFxuICAgIEFYRHJvcGRvd25CdXR0b25Nb2R1bGUsXG4gICAgLy9cbiAgICBBWFBTdGlja3lEaXJlY3RpdmUsXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlDcmVhdGVWaWV3Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlUGFnZUNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBsb2FkZXIhOiBBWFBFbnRpdHlDcmVhdGVWaWV3TG9hZGVyO1xuICBwcm90ZWN0ZWQgZW50aXR5ITogQVhQRW50aXR5Q29uZmlnO1xuICBwcm90ZWN0ZWQgd29ya2Zsb3cgPSBpbmplY3QoQVhQV29ya2Zsb3dTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHN1Ym1pdExvYWRpbmc6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xvc2VDbGljaygpIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlQmFja0NsaWNrKCkge1xuICAgIGF3YWl0IHRoaXMubG9hZGVyLmJhY2soKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVOZXh0Q2xpY2soZm9ybTogQVhGb3JtQ29tcG9uZW50KSB7XG4gICAgY29uc3QgZm9ybVJlc3VsdCA9IGF3YWl0IGZvcm0udmFsaWRhdGUoKTtcbiAgICBpZiAoZm9ybVJlc3VsdC5yZXN1bHQpIHtcbiAgICAgIGF3YWl0IHRoaXMubG9hZGVyLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlU2F2ZUNsaWNrKGZvcm06IEFYRm9ybUNvbXBvbmVudCkge1xuICAgIGNvbnN0IGZvcm1SZXN1bHQgPSBhd2FpdCBmb3JtLnZhbGlkYXRlKCk7XG4gICAgaWYgKGZvcm1SZXN1bHQucmVzdWx0KSB7XG4gICAgICBpZiAodGhpcy5lbnRpdHkuY29tbWFuZHM/LmNyZWF0ZSkge1xuICAgICAgICB0aGlzLnN1Ym1pdExvYWRpbmcuc2V0KHRydWUpO1xuICAgICAgICBjb25zdCByZWNvcmQgPSBhd2FpdCB0aGlzLmVudGl0eS5jb21tYW5kcy5jcmVhdGUodGhpcy5sb2FkZXIuZGF0YSk7XG4gICAgICAgIGlmIChyZWNvcmQpIHtcbiAgICAgICAgICB0aGlzLnN1Ym1pdExvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLmNsb3NlKHsgc2F2ZTogdHJ1ZSwgcmVjb3JkSWQ6IHJlY29yZC5pZCwgcmVkaXJlY3Q6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlU2F2ZUFuZE5ld0NsaWNrKGZvcm06IEFYRm9ybUNvbXBvbmVudCkge1xuICAgIGNvbnN0IGZvcm1SZXN1bHQgPSBhd2FpdCBmb3JtLnZhbGlkYXRlKCk7XG4gICAgaWYgKGZvcm1SZXN1bHQucmVzdWx0KSB7XG4gICAgICBpZiAodGhpcy5lbnRpdHkuY29tbWFuZHM/LmNyZWF0ZSkge1xuICAgICAgICB0aGlzLnN1Ym1pdExvYWRpbmcuc2V0KHRydWUpO1xuICAgICAgICBjb25zdCByZWNvcmQgPSBhd2FpdCB0aGlzLmVudGl0eS5jb21tYW5kcy5jcmVhdGUodGhpcy5sb2FkZXIuZGF0YSk7XG4gICAgICAgIGlmIChyZWNvcmQpIHtcbiAgICAgICAgICB0aGlzLnN1Ym1pdExvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLmNsb3NlKHsgc2F2ZTogdHJ1ZSwgcmVjb3JkSWQ6IHJlY29yZC5pZCwgcmVkaXJlY3Q6IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLndvcmtmbG93LmV4ZWN1dGUoJ2NyZWF0ZS1lbnRpdHknLCB7XG4gICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICBtb2R1bGU6IHRoaXMubG9hZGVyLmVudGl0eS5tb2R1bGUsXG4gICAgICAgICAgZW50aXR5OiB0aGlzLmxvYWRlci5lbnRpdHkubmFtZSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF4LW1pbi1oLVsyNXZoXVwiPlxuICBAaWYoKGxvYWRlci5oYXNTZWN0aW9ucyQgfCBhc3luYykpIHtcbiAgPG9sXG4gICAgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC13LWZ1bGwgYXgtc3BhY2UteC0yIGF4LXRleHQtc20gYXgtZm9udC1tZWRpdW0gYXgtdGV4dC1jZW50ZXIgYXgtdGV4dC1ncmF5LTUwMCBheC1iZy13aGl0ZSBkYXJrOmF4LXRleHQtZ3JheS00MDAgc206YXgtdGV4dC1iYXNlIGF4LXAtNCBzbTpheC1zcGFjZS14LTQgcnRsOmF4LXNwYWNlLXgtcmV2ZXJzZSBheC1zdGlja3kgYXgtdG9wLTAgYXgtei0xMFwiXG4gICAgW2F4cFN0aWNreV09XCInYXgtYmctc3VyZmFjZSBheC1kcm9wLXNoYWRvdy1sZydcIiBbc3RpY2t5UGFyZW50XT1cIicuYXgtcG9wdXAtYm9keS1jb250YWluZXInXCI+XG4gICAgQGZvcihzZWN0aW9uIG9mIChsb2FkZXIuc2VjdGlvbnMkIHwgYXN5bmMpOyB0cmFjayBzZWN0aW9uLm5hbWU7bGV0IGluZGV4ID0gJGluZGV4O2xldCBsYXN0ID0gJGxhc3Q7bGV0IGNvdW50PVxuICAgICRjb3VudCkge1xuICAgIDxsaSBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyXCI+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktY2VudGVyIGF4LXctNSBheC1oLTUgYXgtbWUtMiBheC10ZXh0LXhzIGF4LXRleHQtd2hpdGUgYXgtYmctbmV1dHJhbC01MDAgYXgtcm91bmRlZC1mdWxsIGF4LXNocmluay0wXCJcbiAgICAgICAgW2NsYXNzLiFheC1iZy1wcmltYXJ5LTUwMF09XCIobG9hZGVyLnNlY3Rpb24kIHwgYXN5bmMpID09IHNlY3Rpb25cIlxuICAgICAgICBbY2xhc3MuIWF4LWJnLXN1Y2Nlc3MtNTAwXT1cImluZGV4IDwgKChsb2FkZXIuY3VycmVudEluZGV4JCB8IGFzeW5jKSB8fCAwKVwiPlxuICAgICAgICB7eyBpbmRleCArIDEgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxwIGNsYXNzPVwiYXgtZm9udC1ub3JtYWxcIiBbY2xhc3MuIWF4LXRleHQtcHJpbWFyeS01MDBdPVwiKGxvYWRlci5zZWN0aW9uJCB8IGFzeW5jKSA9PSBzZWN0aW9uXCJcbiAgICAgICAgW2NsYXNzLiFheC10ZXh0LXN1Y2Nlc3MtNTAwXT1cImluZGV4IDwgKChsb2FkZXIuY3VycmVudEluZGV4JCB8IGFzeW5jKSB8fCAwKVwiXG4gICAgICAgIFtjbGFzcy4hYXgtZm9udC1zZW1pYm9sZF09XCIobG9hZGVyLnNlY3Rpb24kIHwgYXN5bmMpID09IHNlY3Rpb25cIj5cbiAgICAgICAge3sgc2VjdGlvbi50aXRsZSB9fVxuICAgICAgPC9wPlxuXG4gICAgICA8aSAqbmdJZj1cIiFsYXN0XCIgW2NsYXNzLiFheC10ZXh0LXByaW1hcnktNTAwXT1cIihsb2FkZXIuc2VjdGlvbiQgfCBhc3luYykgPT0gc2VjdGlvblwiXG4gICAgICAgIFtjbGFzcy4hYXgtdGV4dC1zdWNjZXNzLTUwMF09XCJpbmRleCA8ICgobG9hZGVyLmN1cnJlbnRJbmRleCQgfCBhc3luYykgfHwgMClcIlxuICAgICAgICBjbGFzcz1cImF4LXRleHQteHMgYXgtdGV4dC1uZXV0cmFsLTUwMCBmYS1zb2xpZCBmYS1jaGV2cm9ucy1yaWdodCBheC1tcy0yIHNtOmF4LW1zLTQgcnRsOmF4LXJvdGF0ZS0xODBcIj48L2k+XG4gICAgPC9saT5cbiAgICB9XG4gIDwvb2w+XG4gIH1cblxuICA8YXgtZm9ybSBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTYgYXgtcC00XCIgI2Zvcm0gW21lc3NhZ2VTdHlsZV09XCInYm90dG9tJ1wiIFt1cGRhdGVPbl09XCInYmx1cidcIj5cbiAgICBAZm9yKHNlY3Rpb24gb2YgKGxvYWRlci5zZWN0aW9uJCB8IGFzeW5jKT8uc2VjdGlvbnM7IHRyYWNrIHNlY3Rpb24ubmFtZTspIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1wYi00XCI+XG4gICAgICBAaWYoKChsb2FkZXIuc2VjdGlvbiQgfCBhc3luYyk/LnNlY3Rpb25zPy5sZW5ndGggPz8gMCkgPiAxKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtcGItNFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWZvbnQtYm9sZCBheC10ZXh0LTJ4bFwiPnt7IHNlY3Rpb24udGl0bGUgfX08L3NwYW4+XG4gICAgICAgIEBpZihzZWN0aW9uLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgIDxwIGNsYXNzPVwiYXgtdGV4dC1zbSBheC10ZXh0LWdyYXktNTAwXCI+e3sgc2VjdGlvbi5kZXNjcmlwdGlvbiB9fTwvcD5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZCBheC1ncmlkLWNvbHMtMTIgYXgtZ2FwLTQgYXgtcHktMiBmaXJzdDpheC1wdC0wIGxhc3Q6YXgtcGItMFwiPlxuICAgICAgICBAZm9yKG5hbWUgb2Ygc2VjdGlvbi5wcm9wZXJ0aWVzOyB0cmFjayBuYW1lKSB7XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkZXIuZ2V0UHJvcChuYW1lKSBhcyBwcm9wXCI+XG4gICAgICAgICAgPCEtLSBsZzpheC1jb2wtc3Bhbi02IC0tPlxuICAgICAgICAgIDwhLS0gbGc6YXgtY29sLXN0YXJ0LTEgLS0+XG4gICAgICAgICAgPGF4LWZvcm0tZmllbGQgY2xhc3M9XCJheC1jb2wtc3Bhbi0xMiBheC1jb2wtc3RhcnQtMSBsZzpheC1jb2wtc3Bhbi17e1xuICAgICAgICAgICAgICBwcm9wLmxheW91dD8ucG9zaXRpb25zPy5kZWZhdWx0Py5zcGFuIHx8IDEyXG4gICAgICAgICAgICB9fSAgbGc6YXgtY29sLXN0YXJ0LXt7IHByb3AubGF5b3V0Py5wb3NpdGlvbnM/LmRlZmF1bHQ/LnN0YXJ0IHx8IDEgfX0gYXgtZmxleCBheC1mbGV4LWNvbFwiPlxuICAgICAgICAgICAgPGF4LWxhYmVsIGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZCBheC10ZXh0LXNtXCIgW3JlcXVpcmVkXT1cImxvYWRlci5pc1JlcXVpcmVkKG5hbWUpXCI+e3sgcHJvcC50aXRsZVxuICAgICAgICAgICAgICB9fTwvYXgtbGFiZWw+XG4gICAgICAgICAgICA8YXhwLXdpZGdldC1yZW5kZXJlciBbc2NoZW1hXT1cInByb3Auc2NoZW1hXCIgW3Byb3BdPVwicHJvcFwiIFttb2RlXT1cIidlZGl0J1wiXG4gICAgICAgICAgICAgIFtjb250ZXh0XT1cImxvYWRlci5kYXRhXCI+PC9heHAtd2lkZ2V0LXJlbmRlcmVyPlxuICAgICAgICAgIDwvYXgtZm9ybS1maWVsZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIH1cbiAgPC9heC1mb3JtPlxuICA8YXgtZm9vdGVyPlxuICAgIDxheC1wcmVmaXg+IDwvYXgtcHJlZml4PlxuICAgIDxheC1zdWZmaXg+XG4gICAgICBAaWYoKGxvYWRlci5oYXNTZWN0aW9ucyR8IGFzeW5jKSAmJiAhKGxvYWRlci5pc0ZpcnN0JHwgYXN5bmMpKSB7XG4gICAgICA8YXgtYnV0dG9uIGxvb2s9XCJzb2xpZFwiIGNvbG9yPVwiZ2hvc3RcIiB0ZXh0PVwiQmFja1wiIChvbkNsaWNrKT1cImhhbmRsZUJhY2tDbGljaygpXCI+IDwvYXgtYnV0dG9uPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICA8YXgtYnV0dG9uIGxvb2s9XCJzb2xpZFwiIGNvbG9yPVwiZ2hvc3RcIiB0ZXh0PVwiQ2FuY2VsXCIgKG9uQ2xpY2spPVwiaGFuZGxlQ2xvc2VDbGljaygpXCI+IDwvYXgtYnV0dG9uPlxuICAgICAgfSBAaWYoKGxvYWRlci5pc0xhc3QkIHwgYXN5bmMpKSB7XG4gICAgICA8YXgtZHJvcGRvd24tYnV0dG9uIFtkaXNhYmxlZF09XCJzdWJtaXRMb2FkaW5nKClcIiBjb2xvcj1cInByaW1hcnlcIiB0ZXh0PVwiU2F2ZVwiIGxvb2s9XCJzb2xpZFwiXG4gICAgICAgIChvbkNsaWNrKT1cImhhbmRsZVNhdmVDbGljayhmb3JtKVwiPlxuICAgICAgICA8YXgtbG9hZGluZyAqbmdJZj1cInN1Ym1pdExvYWRpbmcoKVwiPjwvYXgtbG9hZGluZz5cbiAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtIHRleHQ9XCJTYXZlICYgQ3JlYXRlIE5ld1wiIChvbkNsaWNrKT1cImhhbmRsZVNhdmVBbmROZXdDbGljayhmb3JtKVwiPiA8L2F4LWJ1dHRvbi1pdGVtPlxuICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICA8L2F4LWRyb3Bkb3duLWJ1dHRvbj5cblxuICAgICAgfSBAZWxzZSB7XG4gICAgICA8YXgtYnV0dG9uIGxvb2s9XCJzb2xpZFwiIGNvbG9yPVwicHJpbWFyeVwiIHRleHQ9XCJDb250aW51ZVwiIChvbkNsaWNrKT1cImhhbmRsZU5leHRDbGljayhmb3JtKVwiPiA8L2F4LWJ1dHRvbj5cbiAgICAgIH1cbiAgICA8L2F4LXN1ZmZpeD5cbiAgPC9heC1mb290ZXI+XG48L2Rpdj4iXX0=
@@ -127,10 +127,10 @@ export class AXPEntityCreateViewLoaderFactory {
127
127
  }
128
128
  return Promise.reject('cannot fetch ');
129
129
  }
130
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AXPEntityCreateViewLoaderFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
131
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AXPEntityCreateViewLoaderFactory, providedIn: 'root' }); }
130
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityCreateViewLoaderFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
131
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityCreateViewLoaderFactory, providedIn: 'root' }); }
132
132
  }
133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AXPEntityCreateViewLoaderFactory, decorators: [{
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityCreateViewLoaderFactory, decorators: [{
134
134
  type: Injectable,
135
135
  args: [{ providedIn: 'root' }]
136
136
  }] });
@@ -115,10 +115,10 @@ export class AXPEntityDetailViewLoaderFactory {
115
115
  this.layout.setNavigationLoading(false);
116
116
  return Promise.reject('cannot fetch ');
117
117
  }
118
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AXPEntityDetailViewLoaderFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
119
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AXPEntityDetailViewLoaderFactory, providedIn: 'root' }); }
118
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityDetailViewLoaderFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
119
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityDetailViewLoaderFactory, providedIn: 'root' }); }
120
120
  }
121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AXPEntityDetailViewLoaderFactory, decorators: [{
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityDetailViewLoaderFactory, decorators: [{
122
122
  type: Injectable,
123
123
  args: [{ providedIn: 'root' }]
124
124
  }] });
@@ -21,7 +21,7 @@ import { AXPStickyDirective } from '@acorex/platform/common';
21
21
  import { AXPSchemaModule } from '@acorex/platform/schema';
22
22
  import { AXPWorkflowService } from '@acorex/platform/workflow';
23
23
  import { CommonModule, Location } from '@angular/common';
24
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild, inject, signal, } from '@angular/core';
24
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild, inject, signal } from '@angular/core';
25
25
  import { ActivatedRoute, Router, RouterModule } from '@angular/router';
26
26
  import { Actions, ofType } from '@ngrx/effects';
27
27
  import { Store } from '@ngrx/store';
@@ -30,8 +30,7 @@ import { first } from 'rxjs';
30
30
  import { AXPCommonWidgetModule } from '../../../widgets/common-widgets.module';
31
31
  import { AXPEntityDeletedEvent } from '../../entity-layout/workflows/delete-entity.workflow';
32
32
  import { AXPEntityModifyEvent } from '../../entity-layout/workflows/modify-entity.workflow';
33
- import { AXPLayoutChildDrawerClose, AXPLayoutChildDrawerToggle, getChildDrawer, isSmallScreen, } from '../../store';
34
- import { AXPEntityListViewAction } from '../store/entity.actions';
33
+ import { AXPLayoutChildDrawerClose, AXPLayoutChildDrawerToggle, getChildDrawer, isSmallScreen } from '../../store';
35
34
  import * as i0 from "@angular/core";
36
35
  import * as i1 from "@ngrx/effects";
37
36
  import * as i2 from "@acorex/core/utils";
@@ -43,7 +42,6 @@ import * as i7 from "@acorex/components/form";
43
42
  import * as i8 from "@acorex/components/drawer";
44
43
  import * as i9 from "@acorex/components/tabs";
45
44
  import * as i10 from "@acorex/platform/schema";
46
- import * as i11 from "@acorex/components/tooltip";
47
45
  export class AXPEntityDetailsViewComponent {
48
46
  constructor(actions$, unsubscriber) {
49
47
  this.actions$ = actions$;
@@ -60,7 +58,11 @@ export class AXPEntityDetailsViewComponent {
60
58
  this.store = inject((Store));
61
59
  this.isSM = this.store.select(isSmallScreen());
62
60
  this.isOpen = this.store.select(getChildDrawer());
63
- this.editForm = {};
61
+ //
62
+ this.canDelete = this.loader.entity.editOptions?.delete ?? true;
63
+ this.canCreate = this.loader.entity.editOptions?.create ?? true;
64
+ this.canUpdate = this.loader.entity.editOptions?.update ?? true;
65
+ //
64
66
  this.context = signal(cloneDeep(this.loader.data));
65
67
  this.activeRoute.paramMap.pipe(first()).subscribe((c) => {
66
68
  this.setSection(c.get('section'));
@@ -70,17 +72,15 @@ export class AXPEntityDetailsViewComponent {
70
72
  if (event.payload.entity == this.loader.entity.name &&
71
73
  event.payload.module == this.loader.entity.module &&
72
74
  event.payload.id.includes(this.loader.data.id)) {
73
- this.store.dispatch(AXPEntityListViewAction({
75
+ this.workflow.execute('show-list-view', {
74
76
  payload: {
75
77
  module: this.loader.entity.module,
76
78
  entity: this.loader.entity.name,
77
79
  },
78
- }));
80
+ });
79
81
  }
80
82
  });
81
- this.workflow.events$
82
- .pipe(ofType(AXPEntityModifyEvent), this.unsubscriber.takeUntilDestroy)
83
- .subscribe(async (event) => {
83
+ this.workflow.events$.pipe(ofType(AXPEntityModifyEvent), this.unsubscriber.takeUntilDestroy).subscribe(async (event) => {
84
84
  if (event.payload.entity == this.loader.entity.name &&
85
85
  event.payload.module == this.loader.entity.module &&
86
86
  event.payload.updateValues.id === this.loader.data.id) {
@@ -140,12 +140,12 @@ export class AXPEntityDetailsViewComponent {
140
140
  break;
141
141
  }
142
142
  }
143
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AXPEntityDetailsViewComponent, deps: [{ token: i1.Actions }, { token: i2.AXUnsubscriber }], target: i0.ɵɵFactoryTarget.Component }); }
144
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: AXPEntityDetailsViewComponent, isStandalone: true, selector: "ng-component", providers: [AXUnsubscriber], viewQueries: [{ propertyName: "drawer", first: true, predicate: ["drawer"], descendants: true }], ngImport: i0, template: "<ax-drawer-container>\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\" (isSM | async) ? 'overlay' : 'push'\"\n *ngIf=\"loader.hasSections$ | async\" (collapsedChange)=\"handleCollapsedChange($event)\">\n <ax-content class=\"ax-border-e ax-p-6 ax-w-64\">\n <p class=\"ax-text-xl ax-font-bold ax-mb-6\">{{loader.sectionTitle}}</p>\n <ax-tabs look=\"with-line\" location=\"start\">\n @for(tab of (loader.sections$ | async); track tab.name)\n {\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event,tab)\"\n [disabled]=\"editForm.context\">\n </ax-tab-item>\n }\n </ax-tabs>\n </ax-content>\n </ax-drawer> -->\n <ax-content #content class=\"ax-overflow-x-hidden\">\n <div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\"\n >\n <div\n class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-pt-3 -ax-mx-6'\"\n [stickyParent]=\"content.getHostElement()\"\n >\n <!-------- Begin Toolbar -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <!-- <ax-button class=\"lg:ax-hidden\">\n <ax-icon class=\"fa-solid fa-chevron-left\"></ax-icon>\n </ax-button> -->\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ loader.title }}</div>\n <!-- <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n <ax-breadcrumbs-item>\n <a>Home</a>\n </ax-breadcrumbs-item>\n <ax-breadcrumbs-item>\n <a>{{ loader.entity.title }}</a>\n </ax-breadcrumbs-item>\n <ax-breadcrumbs-item [active]=\"true\" class=\"!ax-font-semibold !ax-text-neutral-600\">\n {{ loader.title }}\n </ax-breadcrumbs-item>\n </ax-breadcrumbs> -->\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n <!-- <ax-button-item text=\"Share\" class=\"ax-font-semibold\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-share\"> </ax-icon>\n </ax-prefix>\n </ax-button-item> \n <ax-divider></ax-divider>-->\n <ax-button-item\n text=\"Create New One\"\n class=\"ax-font-semibold ax-text-primary\"\n (onClick)=\"handleCommandClick('create')\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-add\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item\n text=\"Delete\"\n class=\"ax-font-semibold ax-text-danger\"\n (onClick)=\"handleCommandClick('delete')\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-trash\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n <!-- Finish Action Menu -->\n </div>\n <!----- Finish Toolbar ----->\n <!--------------------------------------------------------------->\n <!-- Begin Section Tab Items -->\n @if((loader.hasSections$| async)) {\n <ax-tabs look=\"with-line\" location=\"bottom\" class=\"ax-mt-2\">\n @for(tab of (loader.sections$ | async); track tab.name) {\n <ax-tab-item\n [text]=\"tab.title\"\n [active]=\"isActive(tab)\"\n (onClick)=\"handleMenuClick($event, tab)\"\n class=\"first:!ax-ms-0\"\n >\n </ax-tab-item>\n }\n </ax-tabs>\n }\n <!-- Finish Section Tab Items -->\n </div>\n @for(section of (loader.section$ | async)?.sections; track section.name) {\n <ax-form #form>\n <div class=\"ax-card ax-shadow-md\">\n <div class=\"ax-card-header\">\n <p>{{ section.title }}</p>\n <ax-button text=\"Modify\" class=\"ax-sm\" color=\"primary\" (onClick)=\"handleSectionEdit(section)\">\n <ax-icon class=\"fa-solid fa-pen\"> </ax-icon>\n </ax-button>\n </div>\n <div class=\"ax-card-body ax-divide-y ax-divide-gray-100 dark:ax-divide-gray-700 !ax-gap-0\">\n <ng-container *ngFor=\"let name of section.properties\">\n <ng-container *ngIf=\"loader.getProp(name) as prop\">\n <div class=\"ax-grid md:ax-grid-cols-12 ax-gap-2 ax-py-4 first:ax-pt-0 last:ax-pb-0\">\n @if(section.options?.showPropTitle!=false){\n <div\n class=\"ax-col-span-12 md:ax-col-span-3 lg:ax-col-span-2 ax-flex ax-items-center md:ax-items-start ax-justify-between\"\n >\n <div class=\"ax-flex ax-gap-2 ax-items-center\">\n <span class=\"ax-font-semibold\">{{ prop.title }}</span>\n @if(prop.description) {\n <i\n class=\"fa-solid fa-circle-info fa-sm ax-text-neutral-500 dark:ax-text-neutral-400 ax-cursor-pointer\"\n [axTooltip]=\"prop.description\"\n [axTooltipPlacement]=\"'end'\"\n ></i>\n }\n </div>\n </div>\n }\n <div\n [class]=\"\n section.options?.showPropTitle == false\n ? 'ax-col-span-12'\n : 'ax-col-span-12 md:ax-col-span-9 lg:ax-col-span-10'\n \"\n >\n <axp-widget-renderer\n [schema]=\"prop.schema\"\n [context]=\"context()\"\n [prop]=\"prop\"\n [mode]=\"'view'\"\n ></axp-widget-renderer>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ax-form>\n }\n </div>\n </ax-content>\n</ax-drawer-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i5.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title , ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i6.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i7.AXFormComponent, selector: "ax-form", inputs: ["messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXSwitchModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i8.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i9.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i9.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXPSchemaModule }, { kind: "component", type: i10.AXPWidgetRendererComponent, selector: "axp-widget-renderer", inputs: ["context", "prop", "mode", "schema"] }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "directive", type: i11.AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltip", "axTooltipPlacement", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type:
143
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityDetailsViewComponent, deps: [{ token: i1.Actions }, { token: i2.AXUnsubscriber }], target: i0.ɵɵFactoryTarget.Component }); }
144
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPEntityDetailsViewComponent, isStandalone: true, selector: "ng-component", providers: [AXUnsubscriber], viewQueries: [{ propertyName: "drawer", first: true, predicate: ["drawer"], descendants: true }], ngImport: i0, template: "<ax-drawer-container>\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\" (isSM | async) ? 'overlay' : 'push'\"\n *ngIf=\"loader.hasSections$ | async\" (collapsedChange)=\"handleCollapsedChange($event)\">\n <ax-content class=\"ax-border-e ax-p-6 ax-w-64\">\n <p class=\"ax-text-xl ax-font-bold ax-mb-6\">{{loader.sectionTitle}}</p>\n <ax-tabs look=\"with-line\" location=\"start\">\n @for(tab of (loader.sections$ | async); track tab.name)\n {\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event,tab)\"\n [disabled]=\"editForm.context\">\n </ax-tab-item>\n }\n </ax-tabs>\n </ax-content>\n </ax-drawer> -->\n <ax-content #content class=\"ax-overflow-x-hidden\">\n <div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\n <div class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\" #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\" [stickyParent]=\"content.getHostElement()\">\n <!-------- Begin Toolbar -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <!-- <ax-button class=\"lg:ax-hidden\">\n <ax-icon class=\"fa-solid fa-chevron-left\"></ax-icon>\n </ax-button> -->\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ loader.title }}</div>\n <!-- <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n <ax-breadcrumbs-item>\n <a>Home</a>\n </ax-breadcrumbs-item>\n <ax-breadcrumbs-item>\n <a>{{ loader.entity.title }}</a>\n </ax-breadcrumbs-item>\n <ax-breadcrumbs-item [active]=\"true\" class=\"!ax-font-semibold !ax-text-neutral-600\">\n {{ loader.title }}\n </ax-breadcrumbs-item>\n </ax-breadcrumbs> -->\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @if(canCreate || canUpdate) {\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n <!-- <ax-button-item text=\"Share\" class=\"ax-font-semibold\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-share\"> </ax-icon>\n </ax-prefix>\n </ax-button-item> \n <ax-divider></ax-divider>-->\n @if(canCreate) {\n <ax-button-item text=\"Create New One\" class=\"ax-font-semibold ax-text-primary\"\n (onClick)=\"handleCommandClick('create')\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-add\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n } @if(canDelete) {\n <ax-button-item text=\"Delete\" class=\"ax-font-semibold ax-text-danger\"\n (onClick)=\"handleCommandClick('delete')\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-trash\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <!-- Finish Action Menu -->\n </div>\n <!----- Finish Toolbar ----->\n <!--------------------------------------------------------------->\n <!-- Begin Section Tab Items -->\n @if((loader.hasSections$| async)) {\n <ax-tabs look=\"with-line\" location=\"bottom\" class=\"ax-mt-2\">\n @for(tab of (loader.sections$ | async); track tab.name) {\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event, tab)\"\n class=\"first:!ax-ms-0\"> </ax-tab-item>\n }\n </ax-tabs>\n }\n <!-- Finish Section Tab Items -->\n </div>\n @for(section of (loader.section$ | async)?.sections; track section.name) {\n <ax-form #form>\n <div class=\"ax-card ax-shadow-md\">\n <div class=\"ax-card-header\">\n <p>{{ section.title }}</p>\n @if(canUpdate) {\n <ax-button text=\"Modify\" class=\"ax-sm\" color=\"primary\" (onClick)=\"handleSectionEdit(section)\">\n <ax-icon class=\"fa-solid fa-pen\"> </ax-icon>\n </ax-button>\n }\n </div>\n <div class=\"ax-card-body ax-divide-y ax-divide-gray-100 dark:ax-divide-gray-700 !ax-gap-0\">\n <ng-container *ngFor=\"let name of section.properties\">\n <ng-container *ngIf=\"loader.getProp(name) as prop\">\n <div class=\"ax-grid md:ax-grid-cols-12 ax-gap-2 ax-py-4 first:ax-pt-0 last:ax-pb-0\">\n @if(section.options?.showPropTitle!=false){\n <div\n class=\"ax-col-span-12 md:ax-col-span-3 lg:ax-col-span-2 ax-flex ax-items-center md:ax-items-start ax-justify-between\">\n <div class=\"ax-flex ax-flex-col ax-items-start\">\n <span class=\"ax-font-semibold\">{{ prop.title }}</span>\n <!-- @if(prop.description) {\n <i\n class=\"fa-solid fa-circle-info fa-sm ax-text-neutral-500 dark:ax-text-neutral-400 ax-cursor-pointer\"\n [axTooltip]=\"prop.description\"\n [axTooltipPlacement]=\"'end'\"\n ></i>\n } -->\n @if(prop.description) {\n <span class=\"ax-text-neutral-500 ax-text-xs\">{{ prop.description }}</span>\n }\n </div>\n </div>\n }\n <div\n [class]=\"section.options?.showPropTitle == false ? 'ax-col-span-12' : 'ax-col-span-12 md:ax-col-span-9 lg:ax-col-span-10'\">\n <axp-widget-renderer [schema]=\"prop.schema\" [context]=\"context()\" [prop]=\"prop\"\n [mode]=\"'view'\"></axp-widget-renderer>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ax-form>\n }\n </div>\n </ax-content>\n</ax-drawer-container>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i5.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i6.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i7.AXFormComponent, selector: "ax-form", inputs: ["labelMode", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXSwitchModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i8.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i9.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i9.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXPSchemaModule }, { kind: "component", type: i10.AXPWidgetRendererComponent, selector: "axp-widget-renderer", inputs: ["context", "prop", "mode", "schema"] }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type:
145
145
  //
146
146
  AXPCommonWidgetModule }, { kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
147
147
  }
148
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AXPEntityDetailsViewComponent, decorators: [{
148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityDetailsViewComponent, decorators: [{
149
149
  type: Component,
150
150
  args: [{ imports: [
151
151
  CommonModule,
@@ -172,9 +172,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
172
172
  //
173
173
  AXPCommonWidgetModule,
174
174
  AXPStickyDirective,
175
- ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXUnsubscriber], template: "<ax-drawer-container>\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\" (isSM | async) ? 'overlay' : 'push'\"\n *ngIf=\"loader.hasSections$ | async\" (collapsedChange)=\"handleCollapsedChange($event)\">\n <ax-content class=\"ax-border-e ax-p-6 ax-w-64\">\n <p class=\"ax-text-xl ax-font-bold ax-mb-6\">{{loader.sectionTitle}}</p>\n <ax-tabs look=\"with-line\" location=\"start\">\n @for(tab of (loader.sections$ | async); track tab.name)\n {\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event,tab)\"\n [disabled]=\"editForm.context\">\n </ax-tab-item>\n }\n </ax-tabs>\n </ax-content>\n </ax-drawer> -->\n <ax-content #content class=\"ax-overflow-x-hidden\">\n <div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\"\n >\n <div\n class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-pt-3 -ax-mx-6'\"\n [stickyParent]=\"content.getHostElement()\"\n >\n <!-------- Begin Toolbar -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <!-- <ax-button class=\"lg:ax-hidden\">\n <ax-icon class=\"fa-solid fa-chevron-left\"></ax-icon>\n </ax-button> -->\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ loader.title }}</div>\n <!-- <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n <ax-breadcrumbs-item>\n <a>Home</a>\n </ax-breadcrumbs-item>\n <ax-breadcrumbs-item>\n <a>{{ loader.entity.title }}</a>\n </ax-breadcrumbs-item>\n <ax-breadcrumbs-item [active]=\"true\" class=\"!ax-font-semibold !ax-text-neutral-600\">\n {{ loader.title }}\n </ax-breadcrumbs-item>\n </ax-breadcrumbs> -->\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n <!-- <ax-button-item text=\"Share\" class=\"ax-font-semibold\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-share\"> </ax-icon>\n </ax-prefix>\n </ax-button-item> \n <ax-divider></ax-divider>-->\n <ax-button-item\n text=\"Create New One\"\n class=\"ax-font-semibold ax-text-primary\"\n (onClick)=\"handleCommandClick('create')\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-add\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item\n text=\"Delete\"\n class=\"ax-font-semibold ax-text-danger\"\n (onClick)=\"handleCommandClick('delete')\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-trash\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n <!-- Finish Action Menu -->\n </div>\n <!----- Finish Toolbar ----->\n <!--------------------------------------------------------------->\n <!-- Begin Section Tab Items -->\n @if((loader.hasSections$| async)) {\n <ax-tabs look=\"with-line\" location=\"bottom\" class=\"ax-mt-2\">\n @for(tab of (loader.sections$ | async); track tab.name) {\n <ax-tab-item\n [text]=\"tab.title\"\n [active]=\"isActive(tab)\"\n (onClick)=\"handleMenuClick($event, tab)\"\n class=\"first:!ax-ms-0\"\n >\n </ax-tab-item>\n }\n </ax-tabs>\n }\n <!-- Finish Section Tab Items -->\n </div>\n @for(section of (loader.section$ | async)?.sections; track section.name) {\n <ax-form #form>\n <div class=\"ax-card ax-shadow-md\">\n <div class=\"ax-card-header\">\n <p>{{ section.title }}</p>\n <ax-button text=\"Modify\" class=\"ax-sm\" color=\"primary\" (onClick)=\"handleSectionEdit(section)\">\n <ax-icon class=\"fa-solid fa-pen\"> </ax-icon>\n </ax-button>\n </div>\n <div class=\"ax-card-body ax-divide-y ax-divide-gray-100 dark:ax-divide-gray-700 !ax-gap-0\">\n <ng-container *ngFor=\"let name of section.properties\">\n <ng-container *ngIf=\"loader.getProp(name) as prop\">\n <div class=\"ax-grid md:ax-grid-cols-12 ax-gap-2 ax-py-4 first:ax-pt-0 last:ax-pb-0\">\n @if(section.options?.showPropTitle!=false){\n <div\n class=\"ax-col-span-12 md:ax-col-span-3 lg:ax-col-span-2 ax-flex ax-items-center md:ax-items-start ax-justify-between\"\n >\n <div class=\"ax-flex ax-gap-2 ax-items-center\">\n <span class=\"ax-font-semibold\">{{ prop.title }}</span>\n @if(prop.description) {\n <i\n class=\"fa-solid fa-circle-info fa-sm ax-text-neutral-500 dark:ax-text-neutral-400 ax-cursor-pointer\"\n [axTooltip]=\"prop.description\"\n [axTooltipPlacement]=\"'end'\"\n ></i>\n }\n </div>\n </div>\n }\n <div\n [class]=\"\n section.options?.showPropTitle == false\n ? 'ax-col-span-12'\n : 'ax-col-span-12 md:ax-col-span-9 lg:ax-col-span-10'\n \"\n >\n <axp-widget-renderer\n [schema]=\"prop.schema\"\n [context]=\"context()\"\n [prop]=\"prop\"\n [mode]=\"'view'\"\n ></axp-widget-renderer>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ax-form>\n }\n </div>\n </ax-content>\n</ax-drawer-container>\n" }]
175
+ ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXUnsubscriber], template: "<ax-drawer-container>\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\" (isSM | async) ? 'overlay' : 'push'\"\n *ngIf=\"loader.hasSections$ | async\" (collapsedChange)=\"handleCollapsedChange($event)\">\n <ax-content class=\"ax-border-e ax-p-6 ax-w-64\">\n <p class=\"ax-text-xl ax-font-bold ax-mb-6\">{{loader.sectionTitle}}</p>\n <ax-tabs look=\"with-line\" location=\"start\">\n @for(tab of (loader.sections$ | async); track tab.name)\n {\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event,tab)\"\n [disabled]=\"editForm.context\">\n </ax-tab-item>\n }\n </ax-tabs>\n </ax-content>\n </ax-drawer> -->\n <ax-content #content class=\"ax-overflow-x-hidden\">\n <div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\n <div class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\" #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\" [stickyParent]=\"content.getHostElement()\">\n <!-------- Begin Toolbar -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <!-- <ax-button class=\"lg:ax-hidden\">\n <ax-icon class=\"fa-solid fa-chevron-left\"></ax-icon>\n </ax-button> -->\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ loader.title }}</div>\n <!-- <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n <ax-breadcrumbs-item>\n <a>Home</a>\n </ax-breadcrumbs-item>\n <ax-breadcrumbs-item>\n <a>{{ loader.entity.title }}</a>\n </ax-breadcrumbs-item>\n <ax-breadcrumbs-item [active]=\"true\" class=\"!ax-font-semibold !ax-text-neutral-600\">\n {{ loader.title }}\n </ax-breadcrumbs-item>\n </ax-breadcrumbs> -->\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @if(canCreate || canUpdate) {\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n <!-- <ax-button-item text=\"Share\" class=\"ax-font-semibold\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-share\"> </ax-icon>\n </ax-prefix>\n </ax-button-item> \n <ax-divider></ax-divider>-->\n @if(canCreate) {\n <ax-button-item text=\"Create New One\" class=\"ax-font-semibold ax-text-primary\"\n (onClick)=\"handleCommandClick('create')\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-add\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n } @if(canDelete) {\n <ax-button-item text=\"Delete\" class=\"ax-font-semibold ax-text-danger\"\n (onClick)=\"handleCommandClick('delete')\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-trash\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <!-- Finish Action Menu -->\n </div>\n <!----- Finish Toolbar ----->\n <!--------------------------------------------------------------->\n <!-- Begin Section Tab Items -->\n @if((loader.hasSections$| async)) {\n <ax-tabs look=\"with-line\" location=\"bottom\" class=\"ax-mt-2\">\n @for(tab of (loader.sections$ | async); track tab.name) {\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event, tab)\"\n class=\"first:!ax-ms-0\"> </ax-tab-item>\n }\n </ax-tabs>\n }\n <!-- Finish Section Tab Items -->\n </div>\n @for(section of (loader.section$ | async)?.sections; track section.name) {\n <ax-form #form>\n <div class=\"ax-card ax-shadow-md\">\n <div class=\"ax-card-header\">\n <p>{{ section.title }}</p>\n @if(canUpdate) {\n <ax-button text=\"Modify\" class=\"ax-sm\" color=\"primary\" (onClick)=\"handleSectionEdit(section)\">\n <ax-icon class=\"fa-solid fa-pen\"> </ax-icon>\n </ax-button>\n }\n </div>\n <div class=\"ax-card-body ax-divide-y ax-divide-gray-100 dark:ax-divide-gray-700 !ax-gap-0\">\n <ng-container *ngFor=\"let name of section.properties\">\n <ng-container *ngIf=\"loader.getProp(name) as prop\">\n <div class=\"ax-grid md:ax-grid-cols-12 ax-gap-2 ax-py-4 first:ax-pt-0 last:ax-pb-0\">\n @if(section.options?.showPropTitle!=false){\n <div\n class=\"ax-col-span-12 md:ax-col-span-3 lg:ax-col-span-2 ax-flex ax-items-center md:ax-items-start ax-justify-between\">\n <div class=\"ax-flex ax-flex-col ax-items-start\">\n <span class=\"ax-font-semibold\">{{ prop.title }}</span>\n <!-- @if(prop.description) {\n <i\n class=\"fa-solid fa-circle-info fa-sm ax-text-neutral-500 dark:ax-text-neutral-400 ax-cursor-pointer\"\n [axTooltip]=\"prop.description\"\n [axTooltipPlacement]=\"'end'\"\n ></i>\n } -->\n @if(prop.description) {\n <span class=\"ax-text-neutral-500 ax-text-xs\">{{ prop.description }}</span>\n }\n </div>\n </div>\n }\n <div\n [class]=\"section.options?.showPropTitle == false ? 'ax-col-span-12' : 'ax-col-span-12 md:ax-col-span-9 lg:ax-col-span-10'\">\n <axp-widget-renderer [schema]=\"prop.schema\" [context]=\"context()\" [prop]=\"prop\"\n [mode]=\"'view'\"></axp-widget-renderer>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ax-form>\n }\n </div>\n </ax-content>\n</ax-drawer-container>" }]
176
176
  }], ctorParameters: () => [{ type: i1.Actions }, { type: i2.AXUnsubscriber }], propDecorators: { drawer: [{
177
177
  type: ViewChild,
178
178
  args: ['drawer']
179
179
  }] } });
180
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWRldGFpbHMtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dHMvc3JjL2xpYi9hZG1pbi9lbnRpdHktbGF5b3V0L2VudGl0eS1kZXRhaWxzLXZpZXcvZW50aXR5LWRldGFpbHMtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dHMvc3JjL2xpYi9hZG1pbi9lbnRpdHktbGF5b3V0L2VudGl0eS1kZXRhaWxzLXZpZXcvZW50aXR5LWRldGFpbHMtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0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QWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsRUFBRTt3QkFDRixxQkFBcUI7d0JBQ3JCLGtCQUFrQjtxQkFDbkIsY0FDVyxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxjQUFjLENBQUM7eUdBY04sTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhBY3Rpb25TaGVldE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9hY3Rpb24tc2hlZXQnO1xuaW1wb3J0IHsgQVhCYWRnZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9iYWRnZSc7XG5pbXBvcnQgeyBBWEJyZWFkY3J1bWJzTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2JyZWFkY3J1bWJzJztcbmltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWEh0bWxFdmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWERpYWxvZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kaWFsb2cnO1xuaW1wb3J0IHsgQVhEcmF3ZXJDb21wb25lbnQsIEFYRHJhd2VyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RyYXdlcic7XG5pbXBvcnQgeyBBWERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEFYRm9ybU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9mb3JtJztcbmltcG9ydCB7IEFYSW1hZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvaW1hZ2UnO1xuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcG92ZXInO1xuaW1wb3J0IHsgQVhQb3B1cFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wdXAnO1xuaW1wb3J0IHsgQVhTd2l0Y2hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc3dpdGNoJztcbmltcG9ydCB7IEFYVGFic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90YWJzJztcbmltcG9ydCB7IEFYVG9vbHRpcE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IEFYUGxhdGZvcm0gfSBmcm9tICdAYWNvcmV4L2NvcmUvcGxhdGZvcm0nO1xuaW1wb3J0IHsgQVhVbnN1YnNjcmliZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgQVhQU2Vzc2lvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2F1dGgnO1xuaW1wb3J0IHsgQVhQU3RpY2t5RGlyZWN0aXZlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQU2NoZW1hTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9zY2hlbWEnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBWaWV3Q2hpbGQsXG4gIFdyaXRhYmxlU2lnbmFsLFxuICBpbmplY3QsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyLCBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQWN0aW9ucywgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhQRW50aXR5Vmlld0NoaWxkU2VjdGlvbkNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBBWFBDb21tb25XaWRnZXRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi93aWRnZXRzL2NvbW1vbi13aWRnZXRzLm1vZHVsZSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZWxldGVkRXZlbnQgfSBmcm9tICcuLi8uLi9lbnRpdHktbGF5b3V0L3dvcmtmbG93cy9kZWxldGUtZW50aXR5LndvcmtmbG93JztcbmltcG9ydCB7IEFYUEVudGl0eU1vZGlmeUV2ZW50IH0gZnJvbSAnLi4vLi4vZW50aXR5LWxheW91dC93b3JrZmxvd3MvbW9kaWZ5LWVudGl0eS53b3JrZmxvdyc7XG5pbXBvcnQge1xuICBBWFBBZG1pbkxheW91dFN0YXRlLFxuICBBWFBMYXlvdXRDaGlsZERyYXdlckNsb3NlLFxuICBBWFBMYXlvdXRDaGlsZERyYXdlclRvZ2dsZSxcbiAgZ2V0Q2hpbGREcmF3ZXIsXG4gIGlzU21hbGxTY3JlZW4sXG59IGZyb20gJy4uLy4uL3N0b3JlJztcbmltcG9ydCB7IEFYUEVudGl0eUxpc3RWaWV3QWN0aW9uIH0gZnJvbSAnLi4vc3RvcmUvZW50aXR5LmFjdGlvbnMnO1xuaW1wb3J0IHsgQVhQRW50aXR5RGV0YWlsVmlld0xvYWRlciB9IGZyb20gJy4vZGV0YWlsLXZpZXcuY29uZmlnJztcbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vZW50aXR5LWRldGFpbHMtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYQmFkZ2VNb2R1bGUsXG4gICAgQVhEcm9wZG93bk1vZHVsZSxcbiAgICBBWFBvcG92ZXJNb2R1bGUsXG4gICAgQVhGb3JtTW9kdWxlLFxuICAgIEFYSW1hZ2VNb2R1bGUsXG4gICAgQVhBY3Rpb25TaGVldE1vZHVsZSxcbiAgICBBWFN3aXRjaE1vZHVsZSxcbiAgICBBWERyYXdlck1vZHVsZSxcbiAgICBBWERpYWxvZ01vZHVsZSxcbiAgICBBWExvYWRpbmdNb2R1bGUsXG4gICAgQVhUYWJzTW9kdWxlLFxuICAgIEFYQmFkZ2VNb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhTd2l0Y2hNb2R1bGUsXG4gICAgQVhQU2NoZW1hTW9kdWxlLFxuICAgIEFYVG9vbHRpcE1vZHVsZSxcbiAgICBBWEJyZWFkY3J1bWJzTW9kdWxlLFxuICAgIC8vXG4gICAgQVhQQ29tbW9uV2lkZ2V0TW9kdWxlLFxuICAgIEFYUFN0aWNreURpcmVjdGl2ZSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW0FYVW5zdWJzY3JpYmVyXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5RGV0YWlsc1ZpZXdDb21wb25lbnQge1xuICBwcml2YXRlIHBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XG4gIHByaXZhdGUgc2Vzc2lvblNlcnZpY2UgPSBpbmplY3QoQVhQU2Vzc2lvblNlcnZpY2UpO1xuICBwcml2YXRlIGFjdGl2ZVJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcHJpdmF0ZSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgcHJpdmF0ZSBsb2NhdGlvbiA9IGluamVjdChMb2NhdGlvbik7XG4gIHByaXZhdGUgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSBwbGF0Zm9ybSA9IGluamVjdChBWFBsYXRmb3JtKTtcbiAgcHJpdmF0ZSB3b3JrZmxvdyA9IGluamVjdChBWFBXb3JrZmxvd1NlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCBsb2FkZXIgPSB0aGlzLmFjdGl2ZVJvdXRlLnNuYXBzaG90LmRhdGFbJ2xvYWRlciddIGFzIEFYUEVudGl0eURldGFpbFZpZXdMb2FkZXI7XG5cbiAgQFZpZXdDaGlsZCgnZHJhd2VyJykgZHJhd2VyITogQVhEcmF3ZXJDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBzdG9yZSA9IGluamVjdChTdG9yZTxBWFBBZG1pbkxheW91dFN0YXRlPik7XG4gIHByb3RlY3RlZCBpc1NNID0gdGhpcy5zdG9yZS5zZWxlY3QoaXNTbWFsbFNjcmVlbigpKTtcbiAgcHJvdGVjdGVkIGlzT3BlbiA9IHRoaXMuc3RvcmUuc2VsZWN0KGdldENoaWxkRHJhd2VyKCkpO1xuXG4gIHByb3RlY3RlZCBlZGl0Rm9ybToge1xuICAgIHNlY3Rpb24/OiBBWFBFbnRpdHlWaWV3Q2hpbGRTZWN0aW9uQ29uZmlnIHwgbnVsbDtcbiAgICBjb250ZXh0PzogYW55O1xuICAgIHByZXZpb3VzQ29udGV4dD86IGFueTtcbiAgfSA9IHt9O1xuXG4gIHByb3RlY3RlZCBjb250ZXh0OiBXcml0YWJsZVNpZ25hbDxhbnk+ID0gc2lnbmFsKGNsb25lRGVlcCh0aGlzLmxvYWRlci5kYXRhKSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucywgcHJpdmF0ZSB1bnN1YnNjcmliZXI6IEFYVW5zdWJzY3JpYmVyKSB7XG4gICAgdGhpcy5hY3RpdmVSb3V0ZS5wYXJhbU1hcC5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgoYykgPT4ge1xuICAgICAgdGhpcy5zZXRTZWN0aW9uKGMuZ2V0KCdzZWN0aW9uJykgYXMgc3RyaW5nKTtcbiAgICB9KTtcbiAgICAvL1xuICAgIHRoaXMud29ya2Zsb3cuZXZlbnRzJC5waXBlKG9mVHlwZShBWFBFbnRpdHlEZWxldGVkRXZlbnQpLCB0aGlzLnVuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIGV2ZW50LnBheWxvYWQuZW50aXR5ID09IHRoaXMubG9hZGVyLmVudGl0eS5uYW1lICYmXG4gICAgICAgIGV2ZW50LnBheWxvYWQubW9kdWxlID09IHRoaXMubG9hZGVyLmVudGl0eS5tb2R1bGUgJiZcbiAgICAgICAgZXZlbnQucGF5bG9hZC5pZC5pbmNsdWRlcyh0aGlzLmxvYWRlci5kYXRhLmlkKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgQVhQRW50aXR5TGlzdFZpZXdBY3Rpb24oe1xuICAgICAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgICBtb2R1bGU6IHRoaXMubG9hZGVyLmVudGl0eS5tb2R1bGUsXG4gICAgICAgICAgICAgIGVudGl0eTogdGhpcy5sb2FkZXIuZW50aXR5Lm5hbWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy53b3JrZmxvdy5ldmVudHMkXG4gICAgICAucGlwZShvZlR5cGUoQVhQRW50aXR5TW9kaWZ5RXZlbnQpLCB0aGlzLnVuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KVxuICAgICAgLnN1YnNjcmliZShhc3luYyAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGV2ZW50LnBheWxvYWQuZW50aXR5ID09IHRoaXMubG9hZGVyLmVudGl0eS5uYW1lICYmXG4gICAgICAgICAgZXZlbnQucGF5bG9hZC5tb2R1bGUgPT0gdGhpcy5sb2FkZXIuZW50aXR5Lm1vZHVsZSAmJlxuICAgICAgICAgIGV2ZW50LnBheWxvYWQudXBkYXRlVmFsdWVzLmlkID09PSB0aGlzLmxvYWRlci5kYXRhLmlkXG4gICAgICAgICkge1xuICAgICAgICAgIGF3YWl0IHRoaXMubG9hZGVyLnVwZGF0ZShldmVudC5wYXlsb2FkLnVwZGF0ZVZhbHVlcyk7XG4gICAgICAgICAgdGhpcy5jb250ZXh0LnNldChjbG9uZURlZXAodGhpcy5sb2FkZXIuZGF0YSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVNZW51Q2xpY2soZTogQVhIdG1sRXZlbnQsIGl0ZW06IEFYUEVudGl0eVZpZXdDaGlsZFNlY3Rpb25Db25maWcpIHtcbiAgICBjb25zdCBlbnRpdHkgPSB0aGlzLmxvYWRlci5lbnRpdHk7XG4gICAgY29uc3QgcGF0aCA9IGAvJHt0aGlzLnNlc3Npb25TZXJ2aWNlLmFwcGxpY2F0aW9uPy5uYW1lfS8ke2VudGl0eS5tb2R1bGV9L2UvJHtlbnRpdHkubmFtZX0vJHt0aGlzLmxvYWRlci5kYXRhPy5pZH0vdmlldy8ke2l0ZW0ubmFtZX1gO1xuICAgIHRoaXMubG9jYXRpb24uZ28ocGF0aCk7XG4gICAgdGhpcy5zZXRTZWN0aW9uKGl0ZW0ubmFtZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ29sbGFwc2VkQ2hhbmdlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHZhbHVlKSB0aGlzLnN0b3JlLmRpc3BhdGNoKEFYUExheW91dENoaWxkRHJhd2VyQ2xvc2UoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlRHJhd2VyQ2xpY2soKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBWFBMYXlvdXRDaGlsZERyYXdlclRvZ2dsZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0U2VjdGlvbihuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmxvYWRlci5zZXRTZWN0aW9uKG5hbWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNlY3Rpb25FZGl0KHNlY3Rpb246IEFYUEVudGl0eVZpZXdDaGlsZFNlY3Rpb25Db25maWcpIHtcbiAgICB0aGlzLndvcmtmbG93LmV4ZWN1dGUoJ21vZGlmeS1lbnRpdHknLCB7XG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIG1vZHVsZTogdGhpcy5sb2FkZXIuZW50aXR5Lm1vZHVsZSxcbiAgICAgICAgZW50aXR5OiB0aGlzLmxvYWRlci5lbnRpdHkubmFtZSxcbiAgICAgICAgaWQ6IHRoaXMubG9hZGVyLmRhdGEuaWQsXG4gICAgICAgIHNlY3Rpb246IHNlY3Rpb24sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzQWN0aXZlKGl0ZW06IEFYUEVudGl0eVZpZXdDaGlsZFNlY3Rpb25Db25maWcpIHtcbiAgICByZXR1cm4gaXRlbS5uYW1lID09IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zcGxpdCgnLycpLnBvcCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNvbW1hbmRDbGljayhjb21tYW5kOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKGNvbW1hbmQpIHtcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgIHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnZGVsZXRlLWVudGl0eScsIHtcbiAgICAgICAgICBtb2R1bGU6IHRoaXMubG9hZGVyLmVudGl0eS5tb2R1bGUsXG4gICAgICAgICAgZW50aXR5OiB0aGlzLmxvYWRlci5lbnRpdHkubmFtZSxcbiAgICAgICAgICBpZHM6IFt0aGlzLmxvYWRlci5kYXRhLmlkXSxcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY3JlYXRlJzoge1xuICAgICAgICB0aGlzLndvcmtmbG93LmV4ZWN1dGUoJ2NyZWF0ZS1lbnRpdHknLCB7XG4gICAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgbW9kdWxlOiB0aGlzLmxvYWRlci5lbnRpdHkubW9kdWxlLFxuICAgICAgICAgICAgZW50aXR5OiB0aGlzLmxvYWRlci5lbnRpdHkubmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbn1cbiIsIjxheC1kcmF3ZXItY29udGFpbmVyPlxuICA8IS0tIDxheC1kcmF3ZXIgI2RyYXdlciBsb2NhdGlvbj1cInN0YXJ0XCIgW2NvbGxhcHNlZF09XCIhKGlzT3BlbiB8IGFzeW5jKVwiIFttb2RlXT1cIiAoaXNTTSB8IGFzeW5jKSA/ICdvdmVybGF5JyA6ICdwdXNoJ1wiXG4gICAgKm5nSWY9XCJsb2FkZXIuaGFzU2VjdGlvbnMkIHwgYXN5bmNcIiAoY29sbGFwc2VkQ2hhbmdlKT1cImhhbmRsZUNvbGxhcHNlZENoYW5nZSgkZXZlbnQpXCI+XG4gICAgPGF4LWNvbnRlbnQgY2xhc3M9XCJheC1ib3JkZXItZSBheC1wLTYgYXgtdy02NFwiPlxuICAgICAgPHAgY2xhc3M9XCJheC10ZXh0LXhsIGF4LWZvbnQtYm9sZCBheC1tYi02XCI+e3tsb2FkZXIuc2VjdGlvblRpdGxlfX08L3A+XG4gICAgICA8YXgtdGFicyBsb29rPVwid2l0aC1saW5lXCIgbG9jYXRpb249XCJzdGFydFwiPlxuICAgICAgICBAZm9yKHRhYiBvZiAobG9hZGVyLnNlY3Rpb25zJCB8IGFzeW5jKTsgdHJhY2sgdGFiLm5hbWUpXG4gICAgICAgIHtcbiAgICAgICAgPGF4LXRhYi1pdGVtIFt0ZXh0XT1cInRhYi50aXRsZVwiIFthY3RpdmVdPVwiaXNBY3RpdmUodGFiKVwiIChvbkNsaWNrKT1cImhhbmRsZU1lbnVDbGljaygkZXZlbnQsdGFiKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImVkaXRGb3JtLmNvbnRleHRcIj5cbiAgICAgICAgPC9heC10YWItaXRlbT5cbiAgICAgICAgfVxuICAgICAgPC9heC10YWJzPlxuICAgIDwvYXgtY29udGVudD5cbiAgPC9heC1kcmF3ZXI+IC0tPlxuICA8YXgtY29udGVudCAjY29udGVudCBjbGFzcz1cImF4LW92ZXJmbG93LXgtaGlkZGVuXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC00IGF4LW1pbi1oLWZ1bGwgYXgtcHgtNCBheC1wYi00IG1kOmF4LXB4LTYgYXgtYmctc3VyZmFjZSBheC1ib3JkZXItYiBtZDpheC1ib3JkZXItMCBtZDpheC1iZy1kZWZhdWx0XCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1wdC00IGF4LXN0aWNreSBheC10b3AtMCBheC16LTEwXCJcbiAgICAgICAgI3N0aWNreT1cImF4cFN0aWNreVwiXG4gICAgICAgIFtheHBTdGlja3ldPVwiJ2F4LWJnLXN1cmZhY2UgYXgtcHgtNiBheC1wdC0zIC1heC1teC02J1wiXG4gICAgICAgIFtzdGlja3lQYXJlbnRdPVwiY29udGVudC5nZXRIb3N0RWxlbWVudCgpXCJcbiAgICAgID5cbiAgICAgICAgPCEtLS0tLS0tLSBCZWdpbiBUb29sYmFyICAtLS0tLS0tLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtanVzdGlmeS1iZXR3ZWVuIGF4LWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDwhLS0tLS0tLS0gQmVnaW4gVGl0bGUgIC0tLS0tLS0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWdhcC0xIGF4LWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPCEtLSA8YXgtYnV0dG9uIGNsYXNzPVwibGc6YXgtaGlkZGVuXCI+XG4gICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtY2hldnJvbi1sZWZ0XCI+PC9heC1pY29uPlxuICAgICAgICAgICAgPC9heC1idXR0b24+IC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXRleHQteGwgbWQ6YXgtdGV4dC0zeGwgYXgtZm9udC1ib2xkXCI+e3sgbG9hZGVyLnRpdGxlIH19PC9kaXY+XG4gICAgICAgICAgICAgIDwhLS0gPGF4LWJyZWFkY3J1bWJzIGNsYXNzPVwiY2hpbGQ6YXgtZm9udC1ub3JtYWwgY2hpbGQ6YXgtdGV4dC1uZXV0cmFsLTQwMFwiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGl2aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtY2hldnJvbi1yaWdodCBheC10ZXh0LXhzIGF4LW14LTJcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8YXgtYnJlYWRjcnVtYnMtaXRlbT5cbiAgICAgICAgICAgICAgICAgIDxhPkhvbWU8L2E+XG4gICAgICAgICAgICAgICAgPC9heC1icmVhZGNydW1icy1pdGVtPlxuICAgICAgICAgICAgICAgIDxheC1icmVhZGNydW1icy1pdGVtPlxuICAgICAgICAgICAgICAgICAgPGE+e3sgbG9hZGVyLmVudGl0eS50aXRsZSB9fTwvYT5cbiAgICAgICAgICAgICAgICA8L2F4LWJyZWFkY3J1bWJzLWl0ZW0+XG4gICAgICAgICAgICAgICAgPGF4LWJyZWFkY3J1bWJzLWl0ZW0gW2FjdGl2ZV09XCJ0cnVlXCIgY2xhc3M9XCIhYXgtZm9udC1zZW1pYm9sZCAhYXgtdGV4dC1uZXV0cmFsLTYwMFwiPlxuICAgICAgICAgICAgICAgICAge3sgbG9hZGVyLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgPC9heC1icmVhZGNydW1icy1pdGVtPlxuICAgICAgICAgICAgICA8L2F4LWJyZWFkY3J1bWJzPiAtLT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwhLS0tLS0tLS0gRmluaXNoIFRpdGxlICAtLS0tLS0tLT5cbiAgICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cbiAgICAgICAgICA8IS0tIEJlZ2luIEFjdGlvbiBNZW51ICAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtZ2FwLTNcIj5cbiAgICAgICAgICAgIDxheC1idXR0b24gW3RleHRdPVwiKGlzU00gfCBhc3luYykgPyBudWxsIDogJ0FjdGlvbnMnXCIgY29sb3I9XCJnaG9zdFwiPlxuICAgICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtZWxsaXBzaXMtdmVydGljYWxcIj48L2k+XG4gICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgICAgICA8YXgtZHJvcGRvd24tcGFuZWw+XG4gICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgICAgICAgICA8IS0tIDxheC1idXR0b24taXRlbSB0ZXh0PVwiU2hhcmVcIiBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtc29saWQgZmEtc2hhcmVcIj4gPC9heC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0+IFxuICAgICAgICAgICAgICAgICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPi0tPlxuICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtXG4gICAgICAgICAgICAgICAgICAgIHRleHQ9XCJDcmVhdGUgTmV3IE9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZCBheC10ZXh0LXByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVDb21tYW5kQ2xpY2soJ2NyZWF0ZScpXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtc29saWQgZmEtYWRkXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtPlxuICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtXG4gICAgICAgICAgICAgICAgICAgIHRleHQ9XCJEZWxldGVcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGQgYXgtdGV4dC1kYW5nZXJcIlxuICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVDb21tYW5kQ2xpY2soJ2RlbGV0ZScpXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtc29saWQgZmEtdHJhc2hcIj4gPC9heC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0+XG4gICAgICAgICAgICAgICAgPC9heC1idXR0b24taXRlbS1saXN0PlxuICAgICAgICAgICAgICA8L2F4LWRyb3Bkb3duLXBhbmVsPlxuICAgICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPCEtLSBGaW5pc2ggQWN0aW9uIE1lbnUgIC0tPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLS0tLSBGaW5pc2ggVG9vbGJhciAgLS0tLS0+XG4gICAgICAgIDwhLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlxuICAgICAgICA8IS0tIEJlZ2luIFNlY3Rpb24gVGFiIEl0ZW1zICAtLT5cbiAgICAgICAgQGlmKChsb2FkZXIuaGFzU2VjdGlvbnMkfCBhc3luYykpIHtcbiAgICAgICAgPGF4LXRhYnMgbG9vaz1cIndpdGgtbGluZVwiIGxvY2F0aW9uPVwiYm90dG9tXCIgY2xhc3M9XCJheC1tdC0yXCI+XG4gICAgICAgICAgQGZvcih0YWIgb2YgKGxvYWRlci5zZWN0aW9ucyQgfCBhc3luYyk7IHRyYWNrIHRhYi5uYW1lKSB7XG4gICAgICAgICAgPGF4LXRhYi1pdGVtXG4gICAgICAgICAgICBbdGV4dF09XCJ0YWIudGl0bGVcIlxuICAgICAgICAgICAgW2FjdGl2ZV09XCJpc0FjdGl2ZSh0YWIpXCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZU1lbnVDbGljaygkZXZlbnQsIHRhYilcIlxuICAgICAgICAgICAgY2xhc3M9XCJmaXJzdDohYXgtbXMtMFwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvYXgtdGFiLWl0ZW0+XG4gICAgICAgICAgfVxuICAgICAgICA8L2F4LXRhYnM+XG4gICAgICAgIH1cbiAgICAgICAgPCEtLSBGaW5pc2ggU2VjdGlvbiBUYWIgSXRlbXMgIC0tPlxuICAgICAgPC9kaXY+XG4gICAgICBAZm9yKHNlY3Rpb24gb2YgKGxvYWRlci5zZWN0aW9uJCB8IGFzeW5jKT8uc2VjdGlvbnM7IHRyYWNrIHNlY3Rpb24ubmFtZSkge1xuICAgICAgPGF4LWZvcm0gI2Zvcm0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYXJkIGF4LXNoYWRvdy1tZFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYXJkLWhlYWRlclwiPlxuICAgICAgICAgICAgPHA+e3sgc2VjdGlvbi50aXRsZSB9fTwvcD5cbiAgICAgICAgICAgIDxheC1idXR0b24gdGV4dD1cIk1vZGlmeVwiIGNsYXNzPVwiYXgtc21cIiBjb2xvcj1cInByaW1hcnlcIiAob25DbGljayk9XCJoYW5kbGVTZWN0aW9uRWRpdChzZWN0aW9uKVwiPlxuICAgICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLXBlblwiPiA8L2F4LWljb24+XG4gICAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY2FyZC1ib2R5IGF4LWRpdmlkZS15IGF4LWRpdmlkZS1ncmF5LTEwMCBkYXJrOmF4LWRpdmlkZS1ncmF5LTcwMCAhYXgtZ2FwLTBcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG5hbWUgb2Ygc2VjdGlvbi5wcm9wZXJ0aWVzXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkZXIuZ2V0UHJvcChuYW1lKSBhcyBwcm9wXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWdyaWQgbWQ6YXgtZ3JpZC1jb2xzLTEyIGF4LWdhcC0yIGF4LXB5LTQgZmlyc3Q6YXgtcHQtMCBsYXN0OmF4LXBiLTBcIj5cbiAgICAgICAgICAgICAgICAgIEBpZihzZWN0aW9uLm9wdGlvbnM/LnNob3dQcm9wVGl0bGUhPWZhbHNlKXtcbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJheC1jb2wtc3Bhbi0xMiBtZDpheC1jb2wtc3Bhbi0zIGxnOmF4LWNvbC1zcGFuLTIgYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgbWQ6YXgtaXRlbXMtc3RhcnQgYXgtanVzdGlmeS1iZXR3ZWVuXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTIgYXgtaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1mb250LXNlbWlib2xkXCI+e3sgcHJvcC50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICBAaWYocHJvcC5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhLXNvbGlkIGZhLWNpcmNsZS1pbmZvIGZhLXNtIGF4LXRleHQtbmV1dHJhbC01MDAgZGFyazpheC10ZXh0LW5ldXRyYWwtNDAwIGF4LWN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtheFRvb2x0aXBdPVwicHJvcC5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXhUb29sdGlwUGxhY2VtZW50XT1cIidlbmQnXCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIlxuICAgICAgICAgICAgICAgICAgICAgIHNlY3Rpb24ub3B0aW9ucz8uc2hvd1Byb3BUaXRsZSA9PSBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnYXgtY29sLXNwYW4tMTInXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICdheC1jb2wtc3Bhbi0xMiBtZDpheC1jb2wtc3Bhbi05IGxnOmF4LWNvbC1zcGFuLTEwJ1xuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8YXhwLXdpZGdldC1yZW5kZXJlclxuICAgICAgICAgICAgICAgICAgICAgIFtzY2hlbWFdPVwicHJvcC5zY2hlbWFcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjb250ZXh0XT1cImNvbnRleHQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW3Byb3BdPVwicHJvcFwiXG4gICAgICAgICAgICAgICAgICAgICAgW21vZGVdPVwiJ3ZpZXcnXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYXhwLXdpZGdldC1yZW5kZXJlcj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXgtZm9ybT5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9heC1jb250ZW50PlxuPC9heC1kcmF3ZXItY29udGFpbmVyPlxuIl19
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWRldGFpbHMtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dHMvc3JjL2xpYi9hZG1pbi9lbnRpdHktbGF5b3V0L2VudGl0eS1kZXRhaWxzLXZpZXcvZW50aXR5LWRldGFpbHMtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dHMvc3JjL2xpYi9hZG1pbi9lbnRpdHktbGF5b3V0L2VudGl0eS1kZXRhaWxzLXZpZXcvZW50aXR5LWRldGFpbHMtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0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QixFQUFFO2dCQUNGLHFCQUFxQiwrQkFDckIsa0JBQWtCOzsyRkFNVCw2QkFBNkI7a0JBaEN6QyxTQUFTOzhCQUVDO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixhQUFhO3dCQUNiLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLEVBQUU7d0JBQ0YscUJBQXFCO3dCQUNyQixrQkFBa0I7cUJBQ25CLGNBQ1csSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsY0FBYyxDQUFDO3lHQWNOLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQWN0aW9uU2hlZXRNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYWN0aW9uLXNoZWV0JztcbmltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQVhCcmVhZGNydW1ic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhIdG1sRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhEaWFsb2dNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGlhbG9nJztcbmltcG9ydCB7IEFYRHJhd2VyQ29tcG9uZW50LCBBWERyYXdlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcmF3ZXInO1xuaW1wb3J0IHsgQVhEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWEltYWdlTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2ltYWdlJztcbmltcG9ydCB7IEFYTG9hZGluZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYUG9wb3Zlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3BvdmVyJztcbmltcG9ydCB7IEFYUG9wdXBTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7IEFYU3dpdGNoTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3N3aXRjaCc7XG5pbXBvcnQgeyBBWFRhYnNNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFicyc7XG5pbXBvcnQgeyBBWFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBBWFBsYXRmb3JtIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcbmltcG9ydCB7IEFYVW5zdWJzY3JpYmVyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IEFYUFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7IEFYUFN0aWNreURpcmVjdGl2ZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUFNjaGVtYU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vc2NoZW1hJztcbmltcG9ydCB7IEFYUFdvcmtmbG93U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgVmlld0NoaWxkLCBXcml0YWJsZVNpZ25hbCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIsIFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBY3Rpb25zLCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFBFbnRpdHlWaWV3Q2hpbGRTZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkJztcbmltcG9ydCB7IEFYUENvbW1vbldpZGdldE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uL3dpZGdldHMvY29tbW9uLXdpZGdldHMubW9kdWxlJztcbmltcG9ydCB7IEFYUEVudGl0eURlbGV0ZWRFdmVudCB9IGZyb20gJy4uLy4uL2VudGl0eS1sYXlvdXQvd29ya2Zsb3dzL2RlbGV0ZS1lbnRpdHkud29ya2Zsb3cnO1xuaW1wb3J0IHsgQVhQRW50aXR5TW9kaWZ5RXZlbnQgfSBmcm9tICcuLi8uLi9lbnRpdHktbGF5b3V0L3dvcmtmbG93cy9tb2RpZnktZW50aXR5LndvcmtmbG93JztcbmltcG9ydCB7IEFYUEFkbWluTGF5b3V0U3RhdGUsIEFYUExheW91dENoaWxkRHJhd2VyQ2xvc2UsIEFYUExheW91dENoaWxkRHJhd2VyVG9nZ2xlLCBnZXRDaGlsZERyYXdlciwgaXNTbWFsbFNjcmVlbiB9IGZyb20gJy4uLy4uL3N0b3JlJztcbmltcG9ydCB7IEFYUEVudGl0eURldGFpbFZpZXdMb2FkZXIgfSBmcm9tICcuL2RldGFpbC12aWV3LmNvbmZpZyc7XG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2VudGl0eS1kZXRhaWxzLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWEJhZGdlTW9kdWxlLFxuICAgIEFYRHJvcGRvd25Nb2R1bGUsXG4gICAgQVhQb3BvdmVyTW9kdWxlLFxuICAgIEFYRm9ybU1vZHVsZSxcbiAgICBBWEltYWdlTW9kdWxlLFxuICAgIEFYQWN0aW9uU2hlZXRNb2R1bGUsXG4gICAgQVhTd2l0Y2hNb2R1bGUsXG4gICAgQVhEcmF3ZXJNb2R1bGUsXG4gICAgQVhEaWFsb2dNb2R1bGUsXG4gICAgQVhMb2FkaW5nTW9kdWxlLFxuICAgIEFYVGFic01vZHVsZSxcbiAgICBBWEJhZGdlTW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYU3dpdGNoTW9kdWxlLFxuICAgIEFYUFNjaGVtYU1vZHVsZSxcbiAgICBBWFRvb2x0aXBNb2R1bGUsXG4gICAgQVhCcmVhZGNydW1ic01vZHVsZSxcbiAgICAvL1xuICAgIEFYUENvbW1vbldpZGdldE1vZHVsZSxcbiAgICBBWFBTdGlja3lEaXJlY3RpdmUsXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtBWFVuc3Vic2NyaWJlcl0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eURldGFpbHNWaWV3Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSBwb3B1cFNlcnZpY2UgPSBpbmplY3QoQVhQb3B1cFNlcnZpY2UpO1xuICBwcml2YXRlIHNlc3Npb25TZXJ2aWNlID0gaW5qZWN0KEFYUFNlc3Npb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhY3RpdmVSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgbG9jYXRpb24gPSBpbmplY3QoTG9jYXRpb24pO1xuICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgcGxhdGZvcm0gPSBpbmplY3QoQVhQbGF0Zm9ybSk7XG4gIHByaXZhdGUgd29ya2Zsb3cgPSBpbmplY3QoQVhQV29ya2Zsb3dTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgbG9hZGVyID0gdGhpcy5hY3RpdmVSb3V0ZS5zbmFwc2hvdC5kYXRhWydsb2FkZXInXSBhcyBBWFBFbnRpdHlEZXRhaWxWaWV3TG9hZGVyO1xuXG4gIEBWaWV3Q2hpbGQoJ2RyYXdlcicpIGRyYXdlciE6IEFYRHJhd2VyQ29tcG9uZW50O1xuXG4gIHByaXZhdGUgc3RvcmUgPSBpbmplY3QoU3RvcmU8QVhQQWRtaW5MYXlvdXRTdGF0ZT4pO1xuICBwcm90ZWN0ZWQgaXNTTSA9IHRoaXMuc3RvcmUuc2VsZWN0KGlzU21hbGxTY3JlZW4oKSk7XG4gIHByb3RlY3RlZCBpc09wZW4gPSB0aGlzLnN0b3JlLnNlbGVjdChnZXRDaGlsZERyYXdlcigpKTtcbiAgLy9cbiAgcHJvdGVjdGVkIGNhbkRlbGV0ZSA9IHRoaXMubG9hZGVyLmVudGl0eS5lZGl0T3B0aW9ucz8uZGVsZXRlID8/IHRydWU7XG4gIHByb3RlY3RlZCBjYW5DcmVhdGUgPSB0aGlzLmxvYWRlci5lbnRpdHkuZWRpdE9wdGlvbnM/LmNyZWF0ZSA/PyB0cnVlO1xuICBwcm90ZWN0ZWQgY2FuVXBkYXRlID0gdGhpcy5sb2FkZXIuZW50aXR5LmVkaXRPcHRpb25zPy51cGRhdGUgPz8gdHJ1ZTtcbiAgLy9cblxuXG4gIHByb3RlY3RlZCBjb250ZXh0OiBXcml0YWJsZVNpZ25hbDxhbnk+ID0gc2lnbmFsKGNsb25lRGVlcCh0aGlzLmxvYWRlci5kYXRhKSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucywgcHJpdmF0ZSB1bnN1YnNjcmliZXI6IEFYVW5zdWJzY3JpYmVyKSB7XG4gICAgdGhpcy5hY3RpdmVSb3V0ZS5wYXJhbU1hcC5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgoYykgPT4ge1xuICAgICAgdGhpcy5zZXRTZWN0aW9uKGMuZ2V0KCdzZWN0aW9uJykgYXMgc3RyaW5nKTtcbiAgICB9KTtcbiAgICAvL1xuICAgIHRoaXMud29ya2Zsb3cuZXZlbnRzJC5waXBlKG9mVHlwZShBWFBFbnRpdHlEZWxldGVkRXZlbnQpLCB0aGlzLnVuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIGV2ZW50LnBheWxvYWQuZW50aXR5ID09IHRoaXMubG9hZGVyLmVudGl0eS5uYW1lICYmXG4gICAgICAgIGV2ZW50LnBheWxvYWQubW9kdWxlID09IHRoaXMubG9hZGVyLmVudGl0eS5tb2R1bGUgJiZcbiAgICAgICAgZXZlbnQucGF5bG9hZC5pZC5pbmNsdWRlcyh0aGlzLmxvYWRlci5kYXRhLmlkKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnc2hvdy1saXN0LXZpZXcnLCB7XG4gICAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgbW9kdWxlOiB0aGlzLmxvYWRlci5lbnRpdHkubW9kdWxlLFxuICAgICAgICAgICAgZW50aXR5OiB0aGlzLmxvYWRlci5lbnRpdHkubmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLndvcmtmbG93LmV2ZW50cyQucGlwZShvZlR5cGUoQVhQRW50aXR5TW9kaWZ5RXZlbnQpLCB0aGlzLnVuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoYXN5bmMgKGV2ZW50KSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIGV2ZW50LnBheWxvYWQuZW50aXR5ID09IHRoaXMubG9hZGVyLmVudGl0eS5uYW1lICYmXG4gICAgICAgIGV2ZW50LnBheWxvYWQubW9kdWxlID09IHRoaXMubG9hZGVyLmVudGl0eS5tb2R1bGUgJiZcbiAgICAgICAgZXZlbnQucGF5bG9hZC51cGRhdGVWYWx1ZXMuaWQgPT09IHRoaXMubG9hZGVyLmRhdGEuaWRcbiAgICAgICkge1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRlci51cGRhdGUoZXZlbnQucGF5bG9hZC51cGRhdGVWYWx1ZXMpO1xuICAgICAgICB0aGlzLmNvbnRleHQuc2V0KGNsb25lRGVlcCh0aGlzLmxvYWRlci5kYXRhKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlTWVudUNsaWNrKGU6IEFYSHRtbEV2ZW50LCBpdGVtOiBBWFBFbnRpdHlWaWV3Q2hpbGRTZWN0aW9uQ29uZmlnKSB7XG4gICAgY29uc3QgZW50aXR5ID0gdGhpcy5sb2FkZXIuZW50aXR5O1xuICAgIGNvbnN0IHBhdGggPSBgLyR7dGhpcy5zZXNzaW9uU2VydmljZS5hcHBsaWNhdGlvbj8ubmFtZX0vJHtlbnRpdHkubW9kdWxlfS9lLyR7ZW50aXR5Lm5hbWV9LyR7dGhpcy5sb2FkZXIuZGF0YT8uaWR9L3ZpZXcvJHtpdGVtLm5hbWV9YDtcbiAgICB0aGlzLmxvY2F0aW9uLmdvKHBhdGgpO1xuICAgIHRoaXMuc2V0U2VjdGlvbihpdGVtLm5hbWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNvbGxhcHNlZENoYW5nZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSkgdGhpcy5zdG9yZS5kaXNwYXRjaChBWFBMYXlvdXRDaGlsZERyYXdlckNsb3NlKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZURyYXdlckNsaWNrKCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQVhQTGF5b3V0Q2hpbGREcmF3ZXJUb2dnbGUoKSk7XG4gIH1cblxuICBwcml2YXRlIHNldFNlY3Rpb24obmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2FkZXIuc2V0U2VjdGlvbihuYW1lKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTZWN0aW9uRWRpdChzZWN0aW9uOiBBWFBFbnRpdHlWaWV3Q2hpbGRTZWN0aW9uQ29uZmlnKSB7XG4gICAgdGhpcy53b3JrZmxvdy5leGVjdXRlKCdtb2RpZnktZW50aXR5Jywge1xuICAgICAgcGF5bG9hZDoge1xuICAgICAgICBtb2R1bGU6IHRoaXMubG9hZGVyLmVudGl0eS5tb2R1bGUsXG4gICAgICAgIGVudGl0eTogdGhpcy5sb2FkZXIuZW50aXR5Lm5hbWUsXG4gICAgICAgIGlkOiB0aGlzLmxvYWRlci5kYXRhLmlkLFxuICAgICAgICBzZWN0aW9uOiBzZWN0aW9uLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0FjdGl2ZShpdGVtOiBBWFBFbnRpdHlWaWV3Q2hpbGRTZWN0aW9uQ29uZmlnKSB7XG4gICAgcmV0dXJuIGl0ZW0ubmFtZSA9PSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuc3BsaXQoJy8nKS5wb3AoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDb21tYW5kQ2xpY2soY29tbWFuZDogc3RyaW5nKSB7XG4gICAgc3dpdGNoIChjb21tYW5kKSB7XG4gICAgICBjYXNlICdkZWxldGUnOlxuICAgICAgICB0aGlzLndvcmtmbG93LmV4ZWN1dGUoJ2RlbGV0ZS1lbnRpdHknLCB7XG4gICAgICAgICAgbW9kdWxlOiB0aGlzLmxvYWRlci5lbnRpdHkubW9kdWxlLFxuICAgICAgICAgIGVudGl0eTogdGhpcy5sb2FkZXIuZW50aXR5Lm5hbWUsXG4gICAgICAgICAgaWRzOiBbdGhpcy5sb2FkZXIuZGF0YS5pZF0sXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NyZWF0ZSc6IHtcbiAgICAgICAgdGhpcy53b3JrZmxvdy5leGVjdXRlKCdjcmVhdGUtZW50aXR5Jywge1xuICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgIG1vZHVsZTogdGhpcy5sb2FkZXIuZW50aXR5Lm1vZHVsZSxcbiAgICAgICAgICAgIGVudGl0eTogdGhpcy5sb2FkZXIuZW50aXR5Lm5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iLCI8YXgtZHJhd2VyLWNvbnRhaW5lcj5cbiAgPCEtLSA8YXgtZHJhd2VyICNkcmF3ZXIgbG9jYXRpb249XCJzdGFydFwiIFtjb2xsYXBzZWRdPVwiIShpc09wZW4gfCBhc3luYylcIiBbbW9kZV09XCIgKGlzU00gfCBhc3luYykgPyAnb3ZlcmxheScgOiAncHVzaCdcIlxuICAgICpuZ0lmPVwibG9hZGVyLmhhc1NlY3Rpb25zJCB8IGFzeW5jXCIgKGNvbGxhcHNlZENoYW5nZSk9XCJoYW5kbGVDb2xsYXBzZWRDaGFuZ2UoJGV2ZW50KVwiPlxuICAgIDxheC1jb250ZW50IGNsYXNzPVwiYXgtYm9yZGVyLWUgYXgtcC02IGF4LXctNjRcIj5cbiAgICAgIDxwIGNsYXNzPVwiYXgtdGV4dC14bCBheC1mb250LWJvbGQgYXgtbWItNlwiPnt7bG9hZGVyLnNlY3Rpb25UaXRsZX19PC9wPlxuICAgICAgPGF4LXRhYnMgbG9vaz1cIndpdGgtbGluZVwiIGxvY2F0aW9uPVwic3RhcnRcIj5cbiAgICAgICAgQGZvcih0YWIgb2YgKGxvYWRlci5zZWN0aW9ucyQgfCBhc3luYyk7IHRyYWNrIHRhYi5uYW1lKVxuICAgICAgICB7XG4gICAgICAgIDxheC10YWItaXRlbSBbdGV4dF09XCJ0YWIudGl0bGVcIiBbYWN0aXZlXT1cImlzQWN0aXZlKHRhYilcIiAob25DbGljayk9XCJoYW5kbGVNZW51Q2xpY2soJGV2ZW50LHRhYilcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJlZGl0Rm9ybS5jb250ZXh0XCI+XG4gICAgICAgIDwvYXgtdGFiLWl0ZW0+XG4gICAgICAgIH1cbiAgICAgIDwvYXgtdGFicz5cbiAgICA8L2F4LWNvbnRlbnQ+XG4gIDwvYXgtZHJhd2VyPiAtLT5cbiAgPGF4LWNvbnRlbnQgI2NvbnRlbnQgY2xhc3M9XCJheC1vdmVyZmxvdy14LWhpZGRlblwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtNCBheC1taW4taC1mdWxsIGF4LXB4LTQgYXgtcGItNCBtZDpheC1weC02IGF4LWJnLXN1cmZhY2UgICBheC1ib3JkZXItYiBtZDpheC1ib3JkZXItMCBtZDpheC1iZy1kZWZhdWx0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1wdC00IGF4LXN0aWNreSBheC10b3AtMCBheC16LTEwIGF4LXRyYW5zaXRpb24tYWxsXCIgI3N0aWNreT1cImF4cFN0aWNreVwiXG4gICAgICAgIFtheHBTdGlja3ldPVwiJ2F4LWJnLXN1cmZhY2UgYXgtcHgtNiBheC1weS0zIC1heC1teC02IGF4LXNoYWRvdy14bCdcIiBbc3RpY2t5UGFyZW50XT1cImNvbnRlbnQuZ2V0SG9zdEVsZW1lbnQoKVwiPlxuICAgICAgICA8IS0tLS0tLS0tIEJlZ2luIFRvb2xiYXIgIC0tLS0tLS0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1qdXN0aWZ5LWJldHdlZW4gYXgtaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPCEtLS0tLS0tLSBCZWdpbiBUaXRsZSAgLS0tLS0tLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTEgYXgtaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICA8IS0tIDxheC1idXR0b24gY2xhc3M9XCJsZzpheC1oaWRkZW5cIj5cbiAgICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1jaGV2cm9uLWxlZnRcIj48L2F4LWljb24+XG4gICAgICAgICAgICA8L2F4LWJ1dHRvbj4gLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtMlwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtdGV4dC14bCBtZDpheC10ZXh0LTN4bCBheC1mb250LWJvbGRcIj57eyBsb2FkZXIudGl0bGUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgPCEtLSA8YXgtYnJlYWRjcnVtYnMgY2xhc3M9XCJjaGlsZDpheC1mb250LW5vcm1hbCBjaGlsZDpheC10ZXh0LW5ldXRyYWwtNDAwXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkaXZpZGVyPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1jaGV2cm9uLXJpZ2h0IGF4LXRleHQteHMgYXgtbXgtMlwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxheC1icmVhZGNydW1icy1pdGVtPlxuICAgICAgICAgICAgICAgICAgPGE+SG9tZTwvYT5cbiAgICAgICAgICAgICAgICA8L2F4LWJyZWFkY3J1bWJzLWl0ZW0+XG4gICAgICAgICAgICAgICAgPGF4LWJyZWFkY3J1bWJzLWl0ZW0+XG4gICAgICAgICAgICAgICAgICA8YT57eyBsb2FkZXIuZW50aXR5LnRpdGxlIH19PC9hPlxuICAgICAgICAgICAgICAgIDwvYXgtYnJlYWRjcnVtYnMtaXRlbT5cbiAgICAgICAgICAgICAgICA8YXgtYnJlYWRjcnVtYnMtaXRlbSBbYWN0aXZlXT1cInRydWVcIiBjbGFzcz1cIiFheC1mb250LXNlbWlib2xkICFheC10ZXh0LW5ldXRyYWwtNjAwXCI+XG4gICAgICAgICAgICAgICAgICB7eyBsb2FkZXIudGl0bGUgfX1cbiAgICAgICAgICAgICAgICA8L2F4LWJyZWFkY3J1bWJzLWl0ZW0+XG4gICAgICAgICAgICAgIDwvYXgtYnJlYWRjcnVtYnM+IC0tPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPCEtLS0tLS0tLSBGaW5pc2ggVGl0bGUgIC0tLS0tLS0tPlxuICAgICAgICAgIDwhLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlxuICAgICAgICAgIDwhLS0gQmVnaW4gQWN0aW9uIE1lbnUgIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1nYXAtM1wiPlxuICAgICAgICAgICAgQGlmKGNhbkNyZWF0ZSB8fCBjYW5VcGRhdGUpIHtcbiAgICAgICAgICAgIDxheC1idXR0b24gW3RleHRdPVwiKGlzU00gfCBhc3luYykgPyBudWxsIDogJ0FjdGlvbnMnXCIgY29sb3I9XCJnaG9zdFwiPlxuICAgICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtZWxsaXBzaXMtdmVydGljYWxcIj48L2k+XG4gICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgICAgICA8YXgtZHJvcGRvd24tcGFuZWw+XG4gICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgICAgICAgICA8IS0tIDxheC1idXR0b24taXRlbSB0ZXh0PVwiU2hhcmVcIiBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtc29saWQgZmEtc2hhcmVcIj4gPC9heC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0+IFxuICAgICAgICAgICAgICAgICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPi0tPlxuICAgICAgICAgICAgICAgICAgQGlmKGNhbkNyZWF0ZSkge1xuICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtIHRleHQ9XCJDcmVhdGUgTmV3IE9uZVwiIGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZCBheC10ZXh0LXByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVDb21tYW5kQ2xpY2soJ2NyZWF0ZScpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICAgICAgPGF4LWljb24gaWNvbj1cImZhLXNvbGlkIGZhLWFkZFwiPiA8L2F4LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgICAgICAgICAgPC9heC1idXR0b24taXRlbT5cbiAgICAgICAgICAgICAgICAgIH0gQGlmKGNhbkRlbGV0ZSkge1xuICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtIHRleHQ9XCJEZWxldGVcIiBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGQgYXgtdGV4dC1kYW5nZXJcIlxuICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVDb21tYW5kQ2xpY2soJ2RlbGV0ZScpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICAgICAgPGF4LWljb24gaWNvbj1cImZhLXNvbGlkIGZhLXRyYXNoXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0tbGlzdD5cbiAgICAgICAgICAgICAgPC9heC1kcm9wZG93bi1wYW5lbD5cbiAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwhLS0gRmluaXNoIEFjdGlvbiBNZW51ICAtLT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0tLS0gRmluaXNoIFRvb2xiYXIgIC0tLS0tPlxuICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cbiAgICAgICAgPCEtLSBCZWdpbiBTZWN0aW9uIFRhYiBJdGVtcyAgLS0+XG4gICAgICAgIEBpZigobG9hZGVyLmhhc1NlY3Rpb25zJHwgYXN5bmMpKSB7XG4gICAgICAgIDxheC10YWJzIGxvb2s9XCJ3aXRoLWxpbmVcIiBsb2NhdGlvbj1cImJvdHRvbVwiIGNsYXNzPVwiYXgtbXQtMlwiPlxuICAgICAgICAgIEBmb3IodGFiIG9mIChsb2FkZXIuc2VjdGlvbnMkIHwgYXN5bmMpOyB0cmFjayB0YWIubmFtZSkge1xuICAgICAgICAgIDxheC10YWItaXRlbSBbdGV4dF09XCJ0YWIudGl0bGVcIiBbYWN0aXZlXT1cImlzQWN0aXZlKHRhYilcIiAob25DbGljayk9XCJoYW5kbGVNZW51Q2xpY2soJGV2ZW50LCB0YWIpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmlyc3Q6IWF4LW1zLTBcIj4gPC9heC10YWItaXRlbT5cbiAgICAgICAgICB9XG4gICAgICAgIDwvYXgtdGFicz5cbiAgICAgICAgfVxuICAgICAgICA8IS0tIEZpbmlzaCBTZWN0aW9uIFRhYiBJdGVtcyAgLS0+XG4gICAgICA8L2Rpdj5cbiAgICAgIEBmb3Ioc2VjdGlvbiBvZiAobG9hZGVyLnNlY3Rpb24kIHwgYXN5bmMpPy5zZWN0aW9uczsgdHJhY2sgc2VjdGlvbi5uYW1lKSB7XG4gICAgICA8YXgtZm9ybSAjZm9ybT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhcmQgYXgtc2hhZG93LW1kXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhcmQtaGVhZGVyXCI+XG4gICAgICAgICAgICA8cD57eyBzZWN0aW9uLnRpdGxlIH19PC9wPlxuICAgICAgICAgICAgQGlmKGNhblVwZGF0ZSkge1xuICAgICAgICAgICAgPGF4LWJ1dHRvbiB0ZXh0PVwiTW9kaWZ5XCIgY2xhc3M9XCJheC1zbVwiIGNvbG9yPVwicHJpbWFyeVwiIChvbkNsaWNrKT1cImhhbmRsZVNlY3Rpb25FZGl0KHNlY3Rpb24pXCI+XG4gICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtcGVuXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYXJkLWJvZHkgYXgtZGl2aWRlLXkgYXgtZGl2aWRlLWdyYXktMTAwIGRhcms6YXgtZGl2aWRlLWdyYXktNzAwICFheC1nYXAtMFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbmFtZSBvZiBzZWN0aW9uLnByb3BlcnRpZXNcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRlci5nZXRQcm9wKG5hbWUpIGFzIHByb3BcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZCBtZDpheC1ncmlkLWNvbHMtMTIgYXgtZ2FwLTIgYXgtcHktNCBmaXJzdDpheC1wdC0wIGxhc3Q6YXgtcGItMFwiPlxuICAgICAgICAgICAgICAgICAgQGlmKHNlY3Rpb24ub3B0aW9ucz8uc2hvd1Byb3BUaXRsZSE9ZmFsc2Upe1xuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LWNvbC1zcGFuLTEyIG1kOmF4LWNvbC1zcGFuLTMgbGc6YXgtY29sLXNwYW4tMiBheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBtZDpheC1pdGVtcy1zdGFydCBheC1qdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtaXRlbXMtc3RhcnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGRcIj57eyBwcm9wLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDwhLS0gQGlmKHByb3AuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYS1zb2xpZCBmYS1jaXJjbGUtaW5mbyBmYS1zbSBheC10ZXh0LW5ldXRyYWwtNTAwIGRhcms6YXgtdGV4dC1uZXV0cmFsLTQwMCBheC1jdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXhUb29sdGlwXT1cInByb3AuZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F4VG9vbHRpcFBsYWNlbWVudF09XCInZW5kJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICB9IC0tPlxuICAgICAgICAgICAgICAgICAgICAgIEBpZihwcm9wLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC10ZXh0LW5ldXRyYWwtNTAwIGF4LXRleHQteHNcIj57eyBwcm9wLmRlc2NyaXB0aW9uIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cInNlY3Rpb24ub3B0aW9ucz8uc2hvd1Byb3BUaXRsZSA9PSBmYWxzZSA/ICdheC1jb2wtc3Bhbi0xMicgOiAnYXgtY29sLXNwYW4tMTIgbWQ6YXgtY29sLXNwYW4tOSBsZzpheC1jb2wtc3Bhbi0xMCdcIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4cC13aWRnZXQtcmVuZGVyZXIgW3NjaGVtYV09XCJwcm9wLnNjaGVtYVwiIFtjb250ZXh0XT1cImNvbnRleHQoKVwiIFtwcm9wXT1cInByb3BcIlxuICAgICAgICAgICAgICAgICAgICAgIFttb2RlXT1cIid2aWV3J1wiPjwvYXhwLXdpZGdldC1yZW5kZXJlcj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXgtZm9ybT5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9heC1jb250ZW50PlxuPC9heC1kcmF3ZXItY29udGFpbmVyPiJdfQ==