@eo-sdk/client 11.5.0-rc.2 → 11.7.0-beta.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 (385) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +35 -35
  3. package/assets/_default/README.md +2 -2
  4. package/assets/_default/config/extend.json +6 -6
  5. package/assets/_default/config/main.json +44 -44
  6. package/assets/_default/fonts/roboto_bold_macroman/Roboto-Bold-webfont.svg +765 -765
  7. package/assets/_default/fonts/roboto_light_macroman/Roboto-Light-webfont.svg +818 -818
  8. package/assets/_default/fonts/roboto_medium_macroman/Roboto-Medium-webfont.svg +765 -765
  9. package/assets/_default/fonts/roboto_regular_macroman/Roboto-Regular-webfont.svg +795 -795
  10. package/assets/_default/i18n/de.json +1130 -1130
  11. package/assets/_default/i18n/de_after.json +1137 -0
  12. package/assets/_default/i18n/en.json +1130 -1130
  13. package/assets/_default/i18n/po/de.po +310 -310
  14. package/assets/_default/i18n/po/en.po +310 -310
  15. package/assets/_default/svg/ic_delete_sweep.svg +3 -3
  16. package/assets/_default/svg/ic_emoticon-cool.svg +1 -1
  17. package/assets/_default/svg/ic_kitt-loader.svg +1 -1
  18. package/assets/_default/svg/ic_link.svg +6 -6
  19. package/assets/_default/svg/ic_not_listed_location.svg +4 -4
  20. package/assets/_default/theme/theme.css +13 -13
  21. package/assets/dashboard.json +47 -47
  22. package/assets/i18n/temp.json +584 -584
  23. package/assets/i18n/temp.pot +1753 -1753
  24. package/esm2022/app/eo-client/about-state/about-state.component.mjs +4 -4
  25. package/esm2022/app/eo-client/dashboard/dashboard.component.mjs +3 -3
  26. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.mjs +3 -3
  27. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.mjs +3 -3
  28. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/icharts.mjs +1 -1
  29. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.mjs +3 -3
  30. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.mjs +3 -3
  31. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects.model.mjs +1 -1
  32. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/IHitlist.mjs +1 -1
  33. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.mjs +3 -3
  34. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.mjs +3 -3
  35. package/esm2022/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.mjs +3 -3
  36. package/esm2022/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.mjs +3 -3
  37. package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.mjs +3 -3
  38. package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.mjs +3 -3
  39. package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox.model.mjs +1 -1
  40. package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.mjs +3 -3
  41. package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.mjs +3 -3
  42. package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray.model.mjs +1 -1
  43. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component.mjs +3 -3
  44. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +3 -3
  45. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.mjs +1 -1
  46. package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget-setup/picture-widget-setup.component.mjs +3 -3
  47. package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget.component.mjs +3 -3
  48. package/esm2022/app/eo-client/dashboard/widgets/search-widget/search-widget.component.mjs +3 -3
  49. package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-setup/todo-setup.component.mjs +3 -3
  50. package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-widget.component.mjs +3 -3
  51. package/esm2022/app/eo-client/eo-client-routing.module.mjs +1 -1
  52. package/esm2022/app/eo-client/eo-client.module.mjs +1 -1
  53. package/esm2022/app/eo-client/favorite-state/favorite-state.component.mjs +14 -14
  54. package/esm2022/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +18 -18
  55. package/esm2022/app/eo-client/inbox-state/inbox-state/inbox.types.enum.mjs +1 -1
  56. package/esm2022/app/eo-client/inbox-state/inbox-state-routing.module.mjs +1 -1
  57. package/esm2022/app/eo-client/inbox-state/inbox-state.module.mjs +1 -1
  58. package/esm2022/app/eo-client/index.mjs +1 -1
  59. package/esm2022/app/eo-client/login/login.component.mjs +3 -3
  60. package/esm2022/app/eo-client/notifications-state/notifications-state.component.mjs +16 -16
  61. package/esm2022/app/eo-client/notifications-state/notifications-state.interface.mjs +1 -1
  62. package/esm2022/app/eo-client/object-state/object-state/object-state.component.mjs +3 -3
  63. package/esm2022/app/eo-client/object-state/object-state-routing.module.mjs +1 -1
  64. package/esm2022/app/eo-client/object-state/object-state-service/object-state.interface.mjs +1 -1
  65. package/esm2022/app/eo-client/object-state/object-state-service/object-state.service.mjs +1 -1
  66. package/esm2022/app/eo-client/object-state/object-state.module.mjs +1 -1
  67. package/esm2022/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +14 -14
  68. package/esm2022/app/eo-client/prepare-state/prepare-state-routing.module.mjs +1 -1
  69. package/esm2022/app/eo-client/prepare-state/prepare-state.module.mjs +1 -1
  70. package/esm2022/app/eo-client/process-state/filter-label.mjs +1 -1
  71. package/esm2022/app/eo-client/process-state/process-state.component.mjs +22 -22
  72. package/esm2022/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +16 -16
  73. package/esm2022/app/eo-client/result-state/result-state.component.mjs +3 -3
  74. package/esm2022/app/eo-client/settings/agent-lock-settings.enum.mjs +1 -1
  75. package/esm2022/app/eo-client/settings/settings.component.mjs +3 -3
  76. package/esm2022/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +14 -14
  77. package/esm2022/app/eo-client/version-state/version-state.component.mjs +16 -16
  78. package/esm2022/app/eo-framework/accordion/accordion.module.mjs +1 -1
  79. package/esm2022/app/eo-framework/accordion/index.mjs +1 -1
  80. package/esm2022/app/eo-framework/accordion/simple-accordion/simple-accordion.component.mjs +3 -3
  81. package/esm2022/app/eo-framework/actions/action-menu/action-component-anchor/action-component-anchor.directive.mjs +1 -1
  82. package/esm2022/app/eo-framework/actions/action-menu/action-menu.component.mjs +3 -3
  83. package/esm2022/app/eo-framework/actions/action-service/action.service.mjs +1 -1
  84. package/esm2022/app/eo-framework/actions/action-target.mjs +1 -1
  85. package/esm2022/app/eo-framework/actions/action.module.mjs +1 -1
  86. package/esm2022/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.mjs +3 -3
  87. package/esm2022/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission-action.mjs +1 -1
  88. package/esm2022/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.mjs +3 -3
  89. package/esm2022/app/eo-framework/actions/actions/add-subscription-action/add-subscription-action.mjs +1 -1
  90. package/esm2022/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing/cancel-signing.component.mjs +3 -3
  91. package/esm2022/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing-action.mjs +1 -1
  92. package/esm2022/app/eo-framework/actions/actions/clipboard/clipboard-action.mjs +1 -1
  93. package/esm2022/app/eo-framework/actions/actions/clipboard/clipboard-object-action/clipboard-object-action.component.mjs +3 -3
  94. package/esm2022/app/eo-framework/actions/actions/copy-action/copy-action.mjs +1 -1
  95. package/esm2022/app/eo-framework/actions/actions/custom-actions/custom-actions.component.mjs +1 -1
  96. package/esm2022/app/eo-framework/actions/actions/cut-action/cut-action.mjs +1 -1
  97. package/esm2022/app/eo-framework/actions/actions/delete-action/delete/delete.component.mjs +3 -3
  98. package/esm2022/app/eo-framework/actions/actions/delete-action/delete-action.mjs +1 -1
  99. package/esm2022/app/eo-framework/actions/actions/delete-action/delete-prepared-action.mjs +1 -1
  100. package/esm2022/app/eo-framework/actions/actions/delete-content-action/delete-content/delete-content.component.mjs +3 -3
  101. package/esm2022/app/eo-framework/actions/actions/delete-content-action/delete-content-action.mjs +1 -1
  102. package/esm2022/app/eo-framework/actions/actions/download-action/download-action.mjs +1 -1
  103. package/esm2022/app/eo-framework/actions/actions/download-action/download-object-action/download-object-action.component.mjs +3 -3
  104. package/esm2022/app/eo-framework/actions/actions/email/email/email.component.mjs +3 -3
  105. package/esm2022/app/eo-framework/actions/actions/email/email-action.mjs +1 -1
  106. package/esm2022/app/eo-framework/actions/actions/favorite-action/favorite-action.mjs +1 -1
  107. package/esm2022/app/eo-framework/actions/actions/finalize/definalize-action.mjs +1 -1
  108. package/esm2022/app/eo-framework/actions/actions/finalize/finalize-action.mjs +1 -1
  109. package/esm2022/app/eo-framework/actions/actions/finalize/finalize-object-action/finalize-object-action.component.mjs +3 -3
  110. package/esm2022/app/eo-framework/actions/actions/open-context-action/open-context-action.mjs +1 -1
  111. package/esm2022/app/eo-framework/actions/actions/open-document-action/open-document-action.component.mjs +3 -3
  112. package/esm2022/app/eo-framework/actions/actions/open-document-action/open-document-action.mjs +1 -1
  113. package/esm2022/app/eo-framework/actions/actions/open-versions-action/open-versions-action.mjs +1 -1
  114. package/esm2022/app/eo-framework/actions/actions/remove-subscription-action/remove-subscription-action.mjs +1 -1
  115. package/esm2022/app/eo-framework/actions/actions/restore-version-action/restore-version-action.mjs +1 -1
  116. package/esm2022/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.mjs +3 -3
  117. package/esm2022/app/eo-framework/actions/actions/share-object-action/share-object-action.mjs +1 -1
  118. package/esm2022/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.mjs +3 -3
  119. package/esm2022/app/eo-framework/actions/actions/signature-action/sequence-list-item/sequence-list-item.component.mjs +3 -3
  120. package/esm2022/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +3 -3
  121. package/esm2022/app/eo-framework/actions/actions/signature-action/signature-action.component.mjs +1 -1
  122. package/esm2022/app/eo-framework/actions/actions/signature-action/signature.model.mjs +1 -1
  123. package/esm2022/app/eo-framework/actions/actions/unlock-action/unlock-action.mjs +1 -1
  124. package/esm2022/app/eo-framework/actions/actions/update-resubmission-action/update-resubmission-action.mjs +1 -1
  125. package/esm2022/app/eo-framework/actions/actions/workflow-action/simple-workflow-action.component.mjs +1 -1
  126. package/esm2022/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.mjs +3 -3
  127. package/esm2022/app/eo-framework/actions/actions/workflow-action/workflow-action.component.mjs +1 -1
  128. package/esm2022/app/eo-framework/actions/index.mjs +1 -1
  129. package/esm2022/app/eo-framework/actions/interfaces/action-component.interface.mjs +1 -1
  130. package/esm2022/app/eo-framework/actions/interfaces/action-list-entry.mjs +1 -1
  131. package/esm2022/app/eo-framework/actions/interfaces/action.interface.mjs +1 -1
  132. package/esm2022/app/eo-framework/actions/selection-range.enum.mjs +1 -1
  133. package/esm2022/app/eo-framework/animations/animations.mjs +1 -1
  134. package/esm2022/app/eo-framework/app-shell/app-bar/app-add/app-add-dialog/app-add-dialog.component.mjs +3 -3
  135. package/esm2022/app/eo-framework/app-shell/app-bar/app-add/app-add.component.mjs +3 -3
  136. package/esm2022/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +3 -3
  137. package/esm2022/app/eo-framework/app-shell/app-bar/app-process/app-process.component.mjs +3 -3
  138. package/esm2022/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +3 -3
  139. package/esm2022/app/eo-framework/app-shell/app-bar/app-search/app-search.interface.mjs +1 -1
  140. package/esm2022/app/eo-framework/app-shell/app-bar/context-search/context-search.component.mjs +3 -3
  141. package/esm2022/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.mjs +3 -3
  142. package/esm2022/app/eo-framework/app-shell/app-bar/user-avatar-overlay/user-avatar-overlay.component.mjs +3 -3
  143. package/esm2022/app/eo-framework/app-shell/app-shell-routing.module.mjs +1 -1
  144. package/esm2022/app/eo-framework/app-shell/app-shell.module.mjs +1 -1
  145. package/esm2022/app/eo-framework/app-shell/index.mjs +1 -1
  146. package/esm2022/app/eo-framework/app-shell/license-warning/license-warning.component.mjs +3 -3
  147. package/esm2022/app/eo-framework/cta/component/cta.component.mjs +3 -3
  148. package/esm2022/app/eo-framework/cta/cta.module.mjs +1 -1
  149. package/esm2022/app/eo-framework/cta/index.mjs +1 -1
  150. package/esm2022/app/eo-framework/eo-framework.module.mjs +1 -1
  151. package/esm2022/app/eo-framework/error/error.module.mjs +1 -1
  152. package/esm2022/app/eo-framework/error/error404/error404.component.mjs +3 -3
  153. package/esm2022/app/eo-framework/error/index.mjs +1 -1
  154. package/esm2022/app/eo-framework/error/not-found/not-found.component.mjs +1 -1
  155. package/esm2022/app/eo-framework/form-elements/checkbox/checkbox.component.mjs +3 -3
  156. package/esm2022/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +3 -3
  157. package/esm2022/app/eo-framework/form-elements/date/date.component.mjs +3 -3
  158. package/esm2022/app/eo-framework/form-elements/date/year-range/year-range.directive.mjs +1 -1
  159. package/esm2022/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +3 -3
  160. package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +3 -3
  161. package/esm2022/app/eo-framework/form-elements/form-elements.module.mjs +1 -1
  162. package/esm2022/app/eo-framework/form-elements/form-input/form-input.component.mjs +3 -3
  163. package/esm2022/app/eo-framework/form-elements/form-input/input-focus/input-focus.directive.mjs +1 -1
  164. package/esm2022/app/eo-framework/form-elements/id-reference/animation/reference-finder.animation.mjs +1 -1
  165. package/esm2022/app/eo-framework/form-elements/id-reference/id-reference.component.mjs +3 -3
  166. package/esm2022/app/eo-framework/form-elements/id-reference/interface/reference-finder.interface.mjs +1 -1
  167. package/esm2022/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.mjs +3 -3
  168. package/esm2022/app/eo-framework/form-elements/id-reference/reference-finder-entry/reference-finder-entry.component.mjs +3 -3
  169. package/esm2022/app/eo-framework/form-elements/id-reference/service/reference-finder.service.mjs +1 -1
  170. package/esm2022/app/eo-framework/form-elements/index.mjs +1 -1
  171. package/esm2022/app/eo-framework/form-elements/number/number.component.mjs +3 -3
  172. package/esm2022/app/eo-framework/form-elements/number-range/number-range.component.mjs +3 -3
  173. package/esm2022/app/eo-framework/form-elements/organization/organization.component.mjs +3 -3
  174. package/esm2022/app/eo-framework/form-elements/password/password.component.mjs +3 -3
  175. package/esm2022/app/eo-framework/form-elements/reference/reference.component.mjs +3 -3
  176. package/esm2022/app/eo-framework/form-elements/string/string.component.mjs +3 -3
  177. package/esm2022/app/eo-framework/frame/frame.component.mjs +3 -3
  178. package/esm2022/app/eo-framework/grid/column-configurator/column-configurator.component.mjs +3 -3
  179. package/esm2022/app/eo-framework/grid/extensions/custom-sort/custom-sort.component.mjs +3 -3
  180. package/esm2022/app/eo-framework/grid/extensions/empty/empty.component.mjs +3 -3
  181. package/esm2022/app/eo-framework/grid/extensions/filter/abstract-filter.component.mjs +1 -1
  182. package/esm2022/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.mjs +3 -3
  183. package/esm2022/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.mjs +3 -3
  184. package/esm2022/app/eo-framework/grid/extensions/filter/setFilters/set-filters.interface.mjs +1 -1
  185. package/esm2022/app/eo-framework/grid/extensions/filter/text/text-filter.component.mjs +3 -3
  186. package/esm2022/app/eo-framework/grid/extensions/pagination/pagination.component.mjs +3 -3
  187. package/esm2022/app/eo-framework/grid/extensions/quick-filter/quick-filter.component.mjs +21 -21
  188. package/esm2022/app/eo-framework/grid/extensions/reset-filter/reset-filter.component.mjs +3 -3
  189. package/esm2022/app/eo-framework/grid/extensions/services/list-settings.service.mjs +1 -1
  190. package/esm2022/app/eo-framework/grid/extensions/total-count/total-count.component.mjs +3 -3
  191. package/esm2022/app/eo-framework/grid/filters/codesystem-filter.component.mjs +3 -3
  192. package/esm2022/app/eo-framework/grid/filters/datetime-filter.component.mjs +3 -3
  193. package/esm2022/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +3 -3
  194. package/esm2022/app/eo-framework/grid/filters/filesize-filter.component.mjs +1 -1
  195. package/esm2022/app/eo-framework/grid/filters/list-filter.component.mjs +3 -3
  196. package/esm2022/app/eo-framework/grid/filters/organization-filter.component.mjs +3 -3
  197. package/esm2022/app/eo-framework/grid/grid-filter.model.mjs +1 -1
  198. package/esm2022/app/eo-framework/grid/grid.component.mjs +3 -3
  199. package/esm2022/app/eo-framework/grid/grid.module.mjs +1 -1
  200. package/esm2022/app/eo-framework/grid/index.mjs +1 -1
  201. package/esm2022/app/eo-framework/grid/loader.interface.mjs +1 -1
  202. package/esm2022/app/eo-framework/grid/row-grouping/batchRemover.mjs +1 -1
  203. package/esm2022/app/eo-framework/grid/row-grouping/group-stage.mjs +1 -1
  204. package/esm2022/app/eo-framework/grid/row-grouping/row-grouping.module.mjs +1 -1
  205. package/esm2022/app/eo-framework/inbox-details/duetimeInfo/duetimeInfo.component.mjs +3 -3
  206. package/esm2022/app/eo-framework/inbox-details/inbox-details.component.mjs +3 -3
  207. package/esm2022/app/eo-framework/index.mjs +1 -1
  208. package/esm2022/app/eo-framework/list-container/index.mjs +1 -1
  209. package/esm2022/app/eo-framework/list-container/list-container.component.mjs +3 -3
  210. package/esm2022/app/eo-framework/list-container/list-container.module.mjs +1 -1
  211. package/esm2022/app/eo-framework/media/content-preview.service.mjs +1 -1
  212. package/esm2022/app/eo-framework/media/index.mjs +1 -1
  213. package/esm2022/app/eo-framework/media/media.component.mjs +3 -3
  214. package/esm2022/app/eo-framework/media/media.module.mjs +1 -1
  215. package/esm2022/app/eo-framework/object-details/edit-icon/edit-icon.component.mjs +3 -3
  216. package/esm2022/app/eo-framework/object-details/favorite-icon/favorite-icon.component.mjs +3 -3
  217. package/esm2022/app/eo-framework/object-details/index.mjs +1 -1
  218. package/esm2022/app/eo-framework/object-details/object-details.component.mjs +3 -3
  219. package/esm2022/app/eo-framework/object-details/object-details.module.mjs +1 -1
  220. package/esm2022/app/eo-framework/object-details/object-history/history-filter/history-filter-pipe/history-filter.pipe.mjs +1 -1
  221. package/esm2022/app/eo-framework/object-details/object-history/history-filter/history-filter.component.mjs +3 -3
  222. package/esm2022/app/eo-framework/object-details/object-history/history-filter/history-filter.mjs +1 -1
  223. package/esm2022/app/eo-framework/object-details/object-history/object-history.component.mjs +3 -3
  224. package/esm2022/app/eo-framework/object-details/object-links/object-links.component.mjs +3 -3
  225. package/esm2022/app/eo-framework/object-form/form-status-changed-event.interface.mjs +1 -1
  226. package/esm2022/app/eo-framework/object-form/index.mjs +1 -1
  227. package/esm2022/app/eo-framework/object-form/object-form/form-element/form-element-template.directive.mjs +1 -1
  228. package/esm2022/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +3 -3
  229. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +11 -11
  230. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/form-element.interface.mjs +1 -1
  231. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +3 -3
  232. package/esm2022/app/eo-framework/object-form/object-form/form-validation/form-validation.mjs +1 -1
  233. package/esm2022/app/eo-framework/object-form/object-form/object-form-control-wrapper.mjs +1 -1
  234. package/esm2022/app/eo-framework/object-form/object-form/object-form-control.mjs +1 -1
  235. package/esm2022/app/eo-framework/object-form/object-form/object-form-group/object-form-group.component.mjs +3 -3
  236. package/esm2022/app/eo-framework/object-form/object-form/object-form-group.model.mjs +1 -1
  237. package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-script.interface.mjs +1 -1
  238. package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.mjs +1 -1
  239. package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-scripting-scope.mjs +1 -1
  240. package/esm2022/app/eo-framework/object-form/object-form/object-form.component.mjs +3 -3
  241. package/esm2022/app/eo-framework/object-form/object-form/object-form.model.mjs +1 -1
  242. package/esm2022/app/eo-framework/object-form/object-form-edit/object-form-edit.component.mjs +3 -3
  243. package/esm2022/app/eo-framework/object-form/object-form-helper.service.mjs +1 -1
  244. package/esm2022/app/eo-framework/object-form/object-form-options.interface.mjs +1 -1
  245. package/esm2022/app/eo-framework/object-form/object-form.module.mjs +1 -1
  246. package/esm2022/app/eo-framework/object-state-details/object-state-details.component.mjs +3 -3
  247. package/esm2022/app/eo-framework/plugins/index.mjs +1 -1
  248. package/esm2022/app/eo-framework/plugins/plugin.component.mjs +15 -15
  249. package/esm2022/app/eo-framework/plugins/plugin.directive.mjs +1 -1
  250. package/esm2022/app/eo-framework/plugins/plugin.service.mjs +1 -1
  251. package/esm2022/app/eo-framework/plugins/plugins.module.mjs +1 -1
  252. package/esm2022/app/eo-framework/prepare-details/prepare-content-exists-info/prepare-content-exists-info.component.mjs +3 -3
  253. package/esm2022/app/eo-framework/prepare-details/prepare-details.component.mjs +10 -10
  254. package/esm2022/app/eo-framework/process/details/process-details.component.mjs +3 -3
  255. package/esm2022/app/eo-framework/process/history/process-history.component.mjs +3 -3
  256. package/esm2022/app/eo-framework/process/process-file/file-entry-permissions.interface.mjs +1 -1
  257. package/esm2022/app/eo-framework/process/process-file/process-file.component.mjs +3 -3
  258. package/esm2022/app/eo-framework/process-form/process-form.component.mjs +3 -3
  259. package/esm2022/app/eo-framework/process-form/process-form.module.mjs +1 -1
  260. package/esm2022/app/eo-framework/quick-search/index.mjs +1 -1
  261. package/esm2022/app/eo-framework/quick-search/quick-search/quick-search-result.interface.mjs +1 -1
  262. package/esm2022/app/eo-framework/quick-search/quick-search/quick-search.component.mjs +3 -3
  263. package/esm2022/app/eo-framework/quick-search/quick-search.module.mjs +1 -1
  264. package/esm2022/app/eo-framework/recyclebin-details/recyclebin-details.component.mjs +3 -3
  265. package/esm2022/app/eo-framework/result-list/index.mjs +1 -1
  266. package/esm2022/app/eo-framework/result-list/result-list.component.mjs +3 -3
  267. package/esm2022/app/eo-framework/result-list/result-list.module.mjs +1 -1
  268. package/esm2022/app/eo-framework/settings/change-password/change-password-form/change-password-form.component.mjs +3 -3
  269. package/esm2022/app/eo-framework/settings/change-password/change-password.interface.mjs +1 -1
  270. package/esm2022/app/eo-framework/settings/index.mjs +1 -1
  271. package/esm2022/app/eo-framework/settings/permissions/permissions.component.mjs +3 -3
  272. package/esm2022/app/eo-framework/settings/settings.module.mjs +1 -1
  273. package/esm2022/app/eo-framework/shortcuts/global-shortcut-action.interface.mjs +1 -1
  274. package/esm2022/app/eo-framework/shortcuts/global-shortcut-component.interface.mjs +1 -1
  275. package/esm2022/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts-section/global-shortcuts-section.component.mjs +3 -3
  276. package/esm2022/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts.component.mjs +3 -3
  277. package/esm2022/app/eo-framework/shortcuts/index.mjs +1 -1
  278. package/esm2022/app/eo-framework/shortcuts/shortcut.interface.mjs +4 -4
  279. package/esm2022/app/eo-framework/shortcuts/shortcuts.directive.mjs +1 -1
  280. package/esm2022/app/eo-framework/shortcuts/shortcuts.module.mjs +1 -1
  281. package/esm2022/app/eo-framework/shortcuts/shortcuts.service.mjs +1 -1
  282. package/esm2022/app/eo-framework/stored-query/index.mjs +1 -1
  283. package/esm2022/app/eo-framework/stored-query/stored-query/stored-query.component.mjs +3 -3
  284. package/esm2022/app/eo-framework/stored-query/stored-query-details/dynamic-property-switch/dynamic-property-switch.component.mjs +3 -3
  285. package/esm2022/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.mjs +3 -3
  286. package/esm2022/app/eo-framework/stored-query/stored-query-type-filter.enum.mjs +1 -1
  287. package/esm2022/app/eo-framework/stored-query/stored-query.interface.mjs +1 -1
  288. package/esm2022/app/eo-framework/stored-query/stored-query.module.mjs +1 -1
  289. package/esm2022/app/eo-framework/tree/index.mjs +1 -1
  290. package/esm2022/app/eo-framework/tree/tree-node/tree-node.component.mjs +3 -3
  291. package/esm2022/app/eo-framework/tree/tree.component.interface.mjs +1 -1
  292. package/esm2022/app/eo-framework/tree/tree.component.mjs +3 -3
  293. package/esm2022/app/eo-framework/tree/tree.module.mjs +1 -1
  294. package/esm2022/app/eo-framework/ui/animations/panel-loading.animation.mjs +1 -1
  295. package/esm2022/app/eo-framework/ui/clipboard/clipboard.component.mjs +3 -3
  296. package/esm2022/app/eo-framework/ui/eo-dialog/eo-dialog.component.mjs +3 -3
  297. package/esm2022/app/eo-framework/ui/eo-icon/eo-icon.component.mjs +1 -1
  298. package/esm2022/app/eo-framework/ui/error-message/error-message.component.mjs +3 -3
  299. package/esm2022/app/eo-framework/ui/index.mjs +1 -1
  300. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry/indexdata-summary-entry.component.mjs +3 -3
  301. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry.interface.mjs +1 -1
  302. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +3 -3
  303. package/esm2022/app/eo-framework/ui/loading-spinner/loading-spinner.component.mjs +7 -7
  304. package/esm2022/app/eo-framework/ui/outside-click/outside-click.directive.mjs +1 -1
  305. package/esm2022/app/eo-framework/ui/overlay/overlay.component.mjs +3 -3
  306. package/esm2022/app/eo-framework/ui/query-scope-select/query-scope-select.component.mjs +3 -3
  307. package/esm2022/app/eo-framework/ui/router-link/router-link.directive.mjs +1 -1
  308. package/esm2022/app/eo-framework/ui/rtl-aware/rtl-aware.directive.mjs +1 -1
  309. package/esm2022/app/eo-framework/ui/signature-tab/signature-tab.component.mjs +3 -3
  310. package/esm2022/app/eo-framework/ui/ui.module.mjs +1 -1
  311. package/esm2022/app/eo-framework/ui/user-avatar/user-avatar.component.mjs +1 -1
  312. package/esm2022/app/eo-framework/upload-overlay/upload-overlay-guard.service.mjs +1 -1
  313. package/esm2022/app/eo-framework/upload-overlay/upload-overlay.component.mjs +3 -3
  314. package/esm2022/app/eo-framework/util/directive/prevent-double-click.directive.mjs +1 -1
  315. package/esm2022/app/eo-framework/util/directive/trap-focus.directive.mjs +1 -1
  316. package/esm2022/app/eo-framework/util/index.mjs +1 -1
  317. package/esm2022/app/eo-framework/util/services/utilities.service.mjs +1 -1
  318. package/esm2022/app/eo-framework/util/sortable/order-by.pipe.mjs +1 -1
  319. package/esm2022/app/eo-framework/util/util.module.mjs +1 -1
  320. package/esm2022/app/eo-framework-core/agent/agent.interface.mjs +1 -1
  321. package/esm2022/app/eo-framework-core/agent/agent.service.mjs +1 -1
  322. package/esm2022/app/eo-framework-core/api/grid.service.mjs +3 -3
  323. package/esm2022/app/eo-framework-core/api/model/dms-object.api.interface.mjs +1 -1
  324. package/esm2022/app/eo-framework-core/api/plugins.service.mjs +1 -1
  325. package/esm2022/app/eo-framework-core/empty-state/empty-state.interface.mjs +1 -1
  326. package/esm2022/app/eo-framework-core/empty-state/empty-state.service.mjs +1 -1
  327. package/esm2022/app/eo-framework-core/eo-framework-core.module.mjs +1 -1
  328. package/esm2022/app/eo-framework-core/error-handler/error-handler.service.mjs +1 -1
  329. package/esm2022/app/eo-framework-core/error-handler/error-keys.mjs +1 -1
  330. package/esm2022/app/eo-framework-core/index.mjs +1 -1
  331. package/esm2022/app/eo-framework-core/layout/layout.service.mjs +1 -1
  332. package/esm2022/app/eo-framework-core/location/location.service.mjs +1 -1
  333. package/esm2022/app/eo-framework-core/pending-changes/pending-changes-component.interface.mjs +1 -1
  334. package/esm2022/app/eo-framework-core/pending-changes/pending-changes-guard.service.mjs +1 -1
  335. package/esm2022/app/eo-framework-core/pending-changes/pending-changes.service.mjs +1 -1
  336. package/esm2022/app/eo-framework-core/pipes/filesize.pipe.mjs +1 -1
  337. package/esm2022/app/eo-framework-core/pipes/keys.pipe.mjs +1 -1
  338. package/esm2022/app/eo-framework-core/pipes/locale-date.pipe.mjs +1 -1
  339. package/esm2022/app/eo-framework-core/pipes/locale-number.pipe.mjs +1 -1
  340. package/esm2022/app/eo-framework-core/pipes/pipes.module.mjs +1 -1
  341. package/esm2022/app/eo-framework-core/pipes/safe-html.pipe.mjs +1 -1
  342. package/esm2022/app/eo-framework-core/references/reference.service.mjs +1 -1
  343. package/esm2022/app/eo-framework-core/route-guards/auth/auth-guard.service.mjs +1 -1
  344. package/esm2022/app/eo-framework-core/route-guards/capabilities/capabilities-guard.service.mjs +1 -1
  345. package/esm2022/app/eo-framework-core/search/app-search.service.mjs +1 -1
  346. package/esm2022/app/eo-framework-core/selection/selection.service.mjs +1 -1
  347. package/esm2022/app/eo-framework-core/title/page-title.service.mjs +1 -1
  348. package/esm2022/public_api.mjs +1 -1
  349. package/fesm2022/eo-sdk-client.mjs +439 -439
  350. package/fesm2022/eo-sdk-client.mjs.map +1 -1
  351. package/languages/ar.json +523 -523
  352. package/languages/es.json +523 -523
  353. package/languages/fr.json +523 -523
  354. package/languages/po/ar.po +457 -457
  355. package/languages/pt.json +523 -523
  356. package/languages/temp.pot +928 -928
  357. package/languages/zh.json +523 -523
  358. package/misc/client.properties +1 -1
  359. package/misc/doc-styles/style.css +175 -175
  360. package/misc/scripts/copy-client-assets.js +26 -26
  361. package/misc/scripts/copy-core-styles.js +3 -3
  362. package/misc/scripts/exclude-core-ng-package.js +11 -11
  363. package/misc/scripts/helper.js +64 -64
  364. package/misc/scripts/i18n-apply.js +46 -46
  365. package/misc/scripts/i18n-diff.js +100 -100
  366. package/misc/scripts/injectdocbase.js +7 -7
  367. package/misc/scripts/mvn-deploy.js +66 -66
  368. package/misc/scripts/prebuild-about-state.js +32 -32
  369. package/misc/scripts/preparedist.js +39 -39
  370. package/misc/scripts/zipdist.js +21 -21
  371. package/misc/template.yml +4 -4
  372. package/misc/tsscheme.xml +34 -34
  373. package/package.json +2 -2
  374. package/proxy.config.json +97 -97
  375. package/scss/_ag-grid.scss +59 -59
  376. package/scss/_animation.scss +55 -55
  377. package/scss/_eo-variables.scss +78 -78
  378. package/scss/_form.scss +660 -660
  379. package/scss/_main.scss +394 -394
  380. package/scss/_migrationTemp.scss +27 -27
  381. package/scss/_mixins.scss +201 -201
  382. package/scss/_theme-dark.scss +22 -22
  383. package/scss/_timeline.scss +98 -98
  384. package/scss/_yuuvis-components.scss +40 -40
  385. package/styles.scss +141 -141
@@ -209,7 +209,7 @@ let RowEditComponent = class RowEditComponent {
209
209
  this.unsubscribeAll();
210
210
  }
211
211
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RowEditComponent, deps: [{ token: i1.PendingChangesService }, { token: i2.ObjectFormScriptService }, { token: i3.ObjectFormHelperService }, { token: i4.UntypedFormBuilder }, { token: i5.LocalStorageService }], target: i0.ɵɵFactoryTarget.Component }); }
212
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: RowEditComponent, selector: "eo-row-edit", inputs: { limitReached: "limitReached", row: "row" }, outputs: { onCancel: "onCancel", onSave: "onSave", onSaveCopy: "onSaveCopy", onDelete: "onDelete" }, providers: [ObjectFormScriptService], viewQueries: [{ propertyName: "confirmDeleteButton", first: true, predicate: ["confirmDelete"], descendants: true }], ngImport: i0, template: "<div class=\"row-edit\">\n <div class=\"edit-header\" *ngIf=\"!queryEnabled\">\n <div class=\"new-indicator\" *ngIf=\"isNewRow\" translate>eo.form.table.options.indicator.new</div>\n <div></div>\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"cancel()\" class=\"button cancel-icon\"\n [iconTitle]=\"('eo.cta.button.cancel' | translate)\"></eo-icon>\n </div>\n\n <div class=\"form\" [formGroup]=\"editForm\" *ngIf=\"editForm\">\n <eo-form-element *ngFor=\"let c of editFormControls\" [element]=\"c\" [situation]=\"_row?.situation\" [skipToggle]=\"false\">\n </eo-form-element>\n </div>\n\n <div class=\"actions\">\n <eo-checkbox *ngIf=\"isNewRow\" title=\"{{'eo.form.table.options.checkbox.new.title' | translate}}\"\n [formControl]=\"createNewCheckbox\"></eo-checkbox>\n <span *ngIf=\"isNewRow\" class=\"add-label\" translate>eo.form.table.options.checkbox.new</span>\n <button type=\"button\" *ngIf=\"deleteEnabled && !isNewRow && !_row?.form.disabled && !queryEnabled\"\n (click)=\"showDeleteDialog = true;\" title=\"{{'eo.cta.button.delete' | translate}}\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"></eo-icon>\n </button>\n <button type=\"button\" (click)=\"saveCopy()\" class=\"seco\" *ngIf=\"copyEnabled && !isNewRow && !_row?.form.disabled\"\n [disabled]=\"limitReached || saving || formState?.invalid\" translate>eo.form.table.options.btn.copy</button>\n <button type=\"button\" (click)=\"save()\" class=\"primary\" *ngIf=\"saveEnabled && !_row?.form.disabled\"\n [disabled]=\"(limitReached && isNewRow) || saving || formState?.invalid || (!formState?.dirty && !isNewRow)\">{{\n 'eo.form.table.options.btn.save' + (isNewRow ? '.new' : '') | translate}}</button>\n <!-- query button for SEARCH situation -->\n <button type=\"button\" (click)=\"save()\" class=\"primary\" *ngIf=\"queryEnabled\"\n [disabled]=\"formState?.invalid || !formState?.indexdataChanged\" translate>eo.form.table.options.btn.save</button>\n </div>\n\n</div>\n\n<eo-dialog [title]=\"('eo.form.table.options.confirm.delete' | translate)\" [(visible)]=\"showDeleteDialog\"\n [minWidth]=\"400\">\n <div class=\"action-buttons flex-row\" style=\"padding: 8px;\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" #confirmDelete (click)=\"delete()\" class=\"button primary\"\n translate>eo.form.table.options.btn.ok</button>\n </div>\n</eo-dialog>", styles: [""], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i8.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i9.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "component", type: i10.CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: i11.FormElementComponent, selector: "eo-form-element", inputs: ["situation", "skipToggle", "element"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
212
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: RowEditComponent, selector: "eo-row-edit", inputs: { limitReached: "limitReached", row: "row" }, outputs: { onCancel: "onCancel", onSave: "onSave", onSaveCopy: "onSaveCopy", onDelete: "onDelete" }, providers: [ObjectFormScriptService], viewQueries: [{ propertyName: "confirmDeleteButton", first: true, predicate: ["confirmDelete"], descendants: true }], ngImport: i0, template: "<div class=\"row-edit\">\r\n <div class=\"edit-header\" *ngIf=\"!queryEnabled\">\r\n <div class=\"new-indicator\" *ngIf=\"isNewRow\" translate>eo.form.table.options.indicator.new</div>\r\n <div></div>\r\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"cancel()\" class=\"button cancel-icon\"\r\n [iconTitle]=\"('eo.cta.button.cancel' | translate)\"></eo-icon>\r\n </div>\r\n\r\n <div class=\"form\" [formGroup]=\"editForm\" *ngIf=\"editForm\">\r\n <eo-form-element *ngFor=\"let c of editFormControls\" [element]=\"c\" [situation]=\"_row?.situation\" [skipToggle]=\"false\">\r\n </eo-form-element>\r\n </div>\r\n\r\n <div class=\"actions\">\r\n <eo-checkbox *ngIf=\"isNewRow\" title=\"{{'eo.form.table.options.checkbox.new.title' | translate}}\"\r\n [formControl]=\"createNewCheckbox\"></eo-checkbox>\r\n <span *ngIf=\"isNewRow\" class=\"add-label\" translate>eo.form.table.options.checkbox.new</span>\r\n <button type=\"button\" *ngIf=\"deleteEnabled && !isNewRow && !_row?.form.disabled && !queryEnabled\"\r\n (click)=\"showDeleteDialog = true;\" title=\"{{'eo.cta.button.delete' | translate}}\">\r\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"></eo-icon>\r\n </button>\r\n <button type=\"button\" (click)=\"saveCopy()\" class=\"seco\" *ngIf=\"copyEnabled && !isNewRow && !_row?.form.disabled\"\r\n [disabled]=\"limitReached || saving || formState?.invalid\" translate>eo.form.table.options.btn.copy</button>\r\n <button type=\"button\" (click)=\"save()\" class=\"primary\" *ngIf=\"saveEnabled && !_row?.form.disabled\"\r\n [disabled]=\"(limitReached && isNewRow) || saving || formState?.invalid || (!formState?.dirty && !isNewRow)\">{{\r\n 'eo.form.table.options.btn.save' + (isNewRow ? '.new' : '') | translate}}</button>\r\n <!-- query button for SEARCH situation -->\r\n <button type=\"button\" (click)=\"save()\" class=\"primary\" *ngIf=\"queryEnabled\"\r\n [disabled]=\"formState?.invalid || !formState?.indexdataChanged\" translate>eo.form.table.options.btn.save</button>\r\n </div>\r\n\r\n</div>\r\n\r\n<eo-dialog [title]=\"('eo.form.table.options.confirm.delete' | translate)\" [(visible)]=\"showDeleteDialog\"\r\n [minWidth]=\"400\">\r\n <div class=\"action-buttons flex-row\" style=\"padding: 8px;\">\r\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\r\n translate>eo.cta.button.cancel</button>\r\n <button type=\"button\" #confirmDelete (click)=\"delete()\" class=\"button primary\"\r\n translate>eo.form.table.options.btn.ok</button>\r\n </div>\r\n</eo-dialog>", styles: [""], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i8.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i9.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "component", type: i10.CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: i11.FormElementComponent, selector: "eo-form-element", inputs: ["situation", "skipToggle", "element"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
213
213
  };
214
214
  RowEditComponent = __decorate([
215
215
  UntilDestroy()
@@ -217,7 +217,7 @@ RowEditComponent = __decorate([
217
217
  export { RowEditComponent };
218
218
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RowEditComponent, decorators: [{
219
219
  type: Component,
220
- args: [{ selector: 'eo-row-edit', encapsulation: ViewEncapsulation.None, providers: [ObjectFormScriptService], template: "<div class=\"row-edit\">\n <div class=\"edit-header\" *ngIf=\"!queryEnabled\">\n <div class=\"new-indicator\" *ngIf=\"isNewRow\" translate>eo.form.table.options.indicator.new</div>\n <div></div>\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"cancel()\" class=\"button cancel-icon\"\n [iconTitle]=\"('eo.cta.button.cancel' | translate)\"></eo-icon>\n </div>\n\n <div class=\"form\" [formGroup]=\"editForm\" *ngIf=\"editForm\">\n <eo-form-element *ngFor=\"let c of editFormControls\" [element]=\"c\" [situation]=\"_row?.situation\" [skipToggle]=\"false\">\n </eo-form-element>\n </div>\n\n <div class=\"actions\">\n <eo-checkbox *ngIf=\"isNewRow\" title=\"{{'eo.form.table.options.checkbox.new.title' | translate}}\"\n [formControl]=\"createNewCheckbox\"></eo-checkbox>\n <span *ngIf=\"isNewRow\" class=\"add-label\" translate>eo.form.table.options.checkbox.new</span>\n <button type=\"button\" *ngIf=\"deleteEnabled && !isNewRow && !_row?.form.disabled && !queryEnabled\"\n (click)=\"showDeleteDialog = true;\" title=\"{{'eo.cta.button.delete' | translate}}\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"></eo-icon>\n </button>\n <button type=\"button\" (click)=\"saveCopy()\" class=\"seco\" *ngIf=\"copyEnabled && !isNewRow && !_row?.form.disabled\"\n [disabled]=\"limitReached || saving || formState?.invalid\" translate>eo.form.table.options.btn.copy</button>\n <button type=\"button\" (click)=\"save()\" class=\"primary\" *ngIf=\"saveEnabled && !_row?.form.disabled\"\n [disabled]=\"(limitReached && isNewRow) || saving || formState?.invalid || (!formState?.dirty && !isNewRow)\">{{\n 'eo.form.table.options.btn.save' + (isNewRow ? '.new' : '') | translate}}</button>\n <!-- query button for SEARCH situation -->\n <button type=\"button\" (click)=\"save()\" class=\"primary\" *ngIf=\"queryEnabled\"\n [disabled]=\"formState?.invalid || !formState?.indexdataChanged\" translate>eo.form.table.options.btn.save</button>\n </div>\n\n</div>\n\n<eo-dialog [title]=\"('eo.form.table.options.confirm.delete' | translate)\" [(visible)]=\"showDeleteDialog\"\n [minWidth]=\"400\">\n <div class=\"action-buttons flex-row\" style=\"padding: 8px;\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" #confirmDelete (click)=\"delete()\" class=\"button primary\"\n translate>eo.form.table.options.btn.ok</button>\n </div>\n</eo-dialog>" }]
220
+ args: [{ selector: 'eo-row-edit', encapsulation: ViewEncapsulation.None, providers: [ObjectFormScriptService], template: "<div class=\"row-edit\">\r\n <div class=\"edit-header\" *ngIf=\"!queryEnabled\">\r\n <div class=\"new-indicator\" *ngIf=\"isNewRow\" translate>eo.form.table.options.indicator.new</div>\r\n <div></div>\r\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"cancel()\" class=\"button cancel-icon\"\r\n [iconTitle]=\"('eo.cta.button.cancel' | translate)\"></eo-icon>\r\n </div>\r\n\r\n <div class=\"form\" [formGroup]=\"editForm\" *ngIf=\"editForm\">\r\n <eo-form-element *ngFor=\"let c of editFormControls\" [element]=\"c\" [situation]=\"_row?.situation\" [skipToggle]=\"false\">\r\n </eo-form-element>\r\n </div>\r\n\r\n <div class=\"actions\">\r\n <eo-checkbox *ngIf=\"isNewRow\" title=\"{{'eo.form.table.options.checkbox.new.title' | translate}}\"\r\n [formControl]=\"createNewCheckbox\"></eo-checkbox>\r\n <span *ngIf=\"isNewRow\" class=\"add-label\" translate>eo.form.table.options.checkbox.new</span>\r\n <button type=\"button\" *ngIf=\"deleteEnabled && !isNewRow && !_row?.form.disabled && !queryEnabled\"\r\n (click)=\"showDeleteDialog = true;\" title=\"{{'eo.cta.button.delete' | translate}}\">\r\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"></eo-icon>\r\n </button>\r\n <button type=\"button\" (click)=\"saveCopy()\" class=\"seco\" *ngIf=\"copyEnabled && !isNewRow && !_row?.form.disabled\"\r\n [disabled]=\"limitReached || saving || formState?.invalid\" translate>eo.form.table.options.btn.copy</button>\r\n <button type=\"button\" (click)=\"save()\" class=\"primary\" *ngIf=\"saveEnabled && !_row?.form.disabled\"\r\n [disabled]=\"(limitReached && isNewRow) || saving || formState?.invalid || (!formState?.dirty && !isNewRow)\">{{\r\n 'eo.form.table.options.btn.save' + (isNewRow ? '.new' : '') | translate}}</button>\r\n <!-- query button for SEARCH situation -->\r\n <button type=\"button\" (click)=\"save()\" class=\"primary\" *ngIf=\"queryEnabled\"\r\n [disabled]=\"formState?.invalid || !formState?.indexdataChanged\" translate>eo.form.table.options.btn.save</button>\r\n </div>\r\n\r\n</div>\r\n\r\n<eo-dialog [title]=\"('eo.form.table.options.confirm.delete' | translate)\" [(visible)]=\"showDeleteDialog\"\r\n [minWidth]=\"400\">\r\n <div class=\"action-buttons flex-row\" style=\"padding: 8px;\">\r\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\r\n translate>eo.cta.button.cancel</button>\r\n <button type=\"button\" #confirmDelete (click)=\"delete()\" class=\"button primary\"\r\n translate>eo.form.table.options.btn.ok</button>\r\n </div>\r\n</eo-dialog>" }]
221
221
  }], ctorParameters: () => [{ type: i1.PendingChangesService }, { type: i2.ObjectFormScriptService }, { type: i3.ObjectFormHelperService }, { type: i4.UntypedFormBuilder }, { type: i5.LocalStorageService }], propDecorators: { confirmDeleteButton: [{
222
222
  type: ViewChild,
223
223
  args: ['confirmDelete']
@@ -234,4 +234,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
234
234
  }], onDelete: [{
235
235
  type: Output
236
236
  }] } });
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vZm9ybS1lbGVtZW50LXRhYmxlL3Jvdy1lZGl0L3Jvdy1lZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL29iamVjdC1mb3JtL29iamVjdC1mb3JtL2Zvcm0tZWxlbWVudC10YWJsZS9yb3ctZWRpdC9yb3ctZWRpdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHMUgsT0FBTyxFQUFzQixLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDeEQsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQU9uRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQzs7Ozs7Ozs7Ozs7OztBQUk1Rjs7R0FFRztBQVNJLElBQU0sZ0JBQWdCLEdBQXRCLE1BQU0sZ0JBQWdCO0lBNkIzQixJQUFJLGdCQUFnQixDQUFDLEdBQVk7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztRQUU3QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzNCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMs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UixpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLENBQUMsdUJBQXVCLENBQUM7eU9BR1IsbUJBQW1CO3NCQUE5QyxTQUFTO3VCQUFDLGVBQWU7Z0JBd0NqQixZQUFZO3NCQUFwQixLQUFLO2dCQUdGLEdBQUc7c0JBRE4sS0FBSztnQkFpQkksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLnNlcnZpY2UnO1xuaW1wb3J0IHtGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50fSBmcm9tICcuLi8uLi8uLi9mb3JtLXN0YXR1cy1jaGFuZ2VkLWV2ZW50LmludGVyZmFjZSc7XG5pbXBvcnQge0Zvcm1HZW5SZXN1bHQsIE9iamVjdEZvcm1IZWxwZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9vYmplY3QtZm9ybS1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQge09iamVjdEZvcm1Db250cm9sV3JhcHBlcn0gZnJvbSAnLi4vLi4vb2JqZWN0LWZvcm0tY29udHJvbC13cmFwcGVyJztcbmltcG9ydCB7T2JqZWN0Rm9ybUdyb3VwfSBmcm9tICcuLi8uLi9vYmplY3QtZm9ybS1ncm91cC5tb2RlbCc7XG5pbXBvcnQge09iamVjdEZvcm1TY3JpcHRTZXJ2aWNlfSBmcm9tICcuLi8uLi9vYmplY3QtZm9ybS1zY3JpcHQvb2JqZWN0LWZvcm0tc2NyaXB0LnNlcnZpY2UnO1xuaW1wb3J0IHtPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGV9IGZyb20gJy4uLy4uL29iamVjdC1mb3JtLXNjcmlwdC9vYmplY3QtZm9ybS1zY3JpcHRpbmctc2NvcGUnO1xuaW1wb3J0IHtFZGl0Um93LCBFZGl0Um93UmVzdWx0fSBmcm9tICcuLi9mb3JtLWVsZW1lbnQuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBDb21wb25lbnQgZm9yIGVkaXRpbmcgYSByb3cgZnJvbSBhbiBvYmplY3QgZm9ybXMgdGFibGUuXG4gKi9cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tcm93LWVkaXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcm93LWVkaXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yb3ctZWRpdC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtPYmplY3RGb3JtU2NyaXB0U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFJvd0VkaXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCdjb25maXJtRGVsZXRlJykgY29uZmlybURlbGV0ZUJ1dHRvbjogRWxlbWVudFJlZjtcblxuICAvLyBJRCBzZXQgYnkgcGVuZGluZ0NoYW5nZXMgc2VydmljZSB3aGVuIGVkaXRpbmcgcm93IGRhdGFcbiAgLy8gVXNlZCB0byBmaW5pc2ggdGhlIHBlbmRpbmcgdGFzayB3aGVuIGVkaXRpbmcgaXMgZG9uZVxuICBwZW5kaW5nVGFza0lkOiBzdHJpbmc7XG5cbiAgZWRpdEZvcm06IE9iamVjdEZvcm1Hcm91cDtcbiAgZWRpdEZvcm1Db250cm9sczogT2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyW10gPSBbXTtcbiAgcHJpdmF0ZSBzY3JpcHRpbmdTY29wZTogT2JqZWN0Rm9ybVNjcmlwdGluZ1Njb3BlO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIC8vIHByb3BlcnR5IGZvciBob2xkaW5nIHRoZSBmb3JtcyBkYXRhIHVzZWQgZm9yIGNvbXBhcmlzb24gd2hlbiBhIGZvcm0tY2hhbmdlZC1ldmVudFxuICAvLyBpcyBmZXRjaGVkIHRvIGluZGljYXRlIHdoZXIgb3Igbm90IHRoZSBpbmRleGRhdGEgd2VyZSBjaGFuZ2VkIG9yIGp1c3QgdGhlIHByb3BlcnRpZXNcbiAgLy8gb2YgdGhlIGZvcm0gZWxlbWVudHMgKGVnLiBmb3JtIHNjcmlwdCBzZXR0aW5nIGZpZWxkcyB0byByZWFkb25seSlcbiAgcHJpdmF0ZSBmb3JtRGF0YTogYW55O1xuXG4gIF9yb3c6IEVkaXRSb3c7XG4gIGlzTmV3Um93OiBib29sZWFuO1xuICBmb3JtU3RhdGU/OiBGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50O1xuICBxdWVyeUVuYWJsZWQgPSB0cnVlO1xuICBjb3B5RW5hYmxlZCA9IHRydWU7XG4gIGRlbGV0ZUVuYWJsZWQgPSB0cnVlO1xuICBzYXZlRW5hYmxlZCA9IHRydWU7XG4gIGNyZWF0ZU5ld0NoZWNrYm94OiBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gIGNyZWF0ZU5ld1JvdyA9IGZhbHNlO1xuICBfc2hvd0RlbGV0ZURpYWxvZyA9IGZhbHNlO1xuICBzYXZpbmcgPSBmYWxzZTtcbiAgc2F2ZWQgPSBmYWxzZTtcblxuICBzZXQgc2hvd0RlbGV0ZURpYWxvZyh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zaG93RGVsZXRlRGlhbG9nID0gdmFsO1xuXG4gICAgaWYgKHRoaXMuX3Nob3dEZWxldGVEaWFsb2cpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jb25maXJtRGVsZXRlQnV0dG9uLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSwgMCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHNob3dEZWxldGVEaWFsb2coKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dEZWxldGVEaWFsb2c7XG4gIH1cblxuICBASW5wdXQoKSBsaW1pdFJlYWNoZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgc2V0IHJvdyhyOiBFZGl0Um93KSB7XG4gICAgaWYgKCF0aGlzLl9yb3cgfHwgdGhpcy5fcm93LmluZGV4ICE9PSByPy5pbmRleCkge1xuICAgICAgdGhpcy5zYXZlZCA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLl9yb3cgPSByO1xuICAgIHRoaXMuZm9ybURhdGEgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5xdWVyeUVuYWJsZWQgPSByPy5zaXR1YXRpb24gPT09ICdTRUFSQ0gnO1xuICAgIHRoaXMuY29weUVuYWJsZWQgPSAhdGhpcy5xdWVyeUVuYWJsZWQ7XG4gICAgdGhpcy5zYXZlRW5hYmxlZCA9ICF0aGlzLnF1ZXJ5RW5hYmxlZDtcbiAgICB0aGlzLmRlbGV0ZUVuYWJsZWQgPSAhdGhpcy5xdWVyeUVuYWJsZWQ7XG4gICAgdGhpcy5pc05ld1JvdyA9IHRoaXMuX3Jvdz8uaW5kZXggPT09IC0xO1xuICAgIHRoaXMudW5zdWJzY3JpYmVBbGwoKTtcblxuICAgIHRoaXMuX2J1aWxkUm93RWRpdEZvcm0oKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBvbkNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uU2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8RWRpdFJvd1Jlc3VsdD4oKTtcbiAgQE91dHB1dCgpIG9uU2F2ZUNvcHkgPSBuZXcgRXZlbnRFbWl0dGVyPEVkaXRSb3dSZXN1bHQ+KCk7XG4gIEBPdXRwdXQoKSBvbkRlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGVuZGluZ0NoYW5nZXM6IFBlbmRpbmdDaGFuZ2VzU2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1TY3JpcHRTZXJ2aWNlOiBPYmplY3RGb3JtU2NyaXB0U2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1IZWxwZXJTZXJ2aWNlOiBPYmplY3RGb3JtSGVscGVyU2VydmljZSxcbiAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UpIHtcbiAgICB0aGlzLmNyZWF0ZU5ld1JvdyA9ICEhdGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKCdjcmVhdGVOZXdSb3cnKTtcbiAgICB0aGlzLmNyZWF0ZU5ld0NoZWNrYm94ID0gdGhpcy5mYi5jb250cm9sKHRoaXMuY3JlYXRlTmV3Um93KTtcbiAgICB0aGlzLmNyZWF0ZU5ld0NoZWNrYm94LnZhbHVlQ2hhbmdlcy5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKS5zdWJzY3JpYmUoKHYpID0+IHtcbiAgICAgIHRoaXMuY3JlYXRlTmV3Um93ID0gdjtcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSgnY3JlYXRlTmV3Um93JywgdGhpcy5jcmVhdGVOZXdSb3cpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gKiBSZXR1cm5zIHRoZSBvYnNlcnZlZCBtb2RlbCB0aGF0IHdhcyBwYXNzZWQgdG8gdGhlIGN1cnJlbnQgZm9ybSBzY3JpcHQgcnVubmluZy4gSWYgdGhlcmUgaXNcbiAqIG5vIGZvcm0gc2NyaXB0LCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiBOVUxMLlxuICogQHJldHVybnNcbiAqL1xuICBwcml2YXRlIF9nZXRPYnNlcnZlZFNjcmlwdE1vZGVsKCkge1xuICAgIHJldHVybiB0aGlzLnNjcmlwdGluZ1Njb3BlID8gdGhpcy5zY3JpcHRpbmdTY29wZS5nZXRNb2RlbCgpIDogbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEZvcm1EYXRhKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm1IZWxwZXJTZXJ2aWNlLmV4dHJhY3RGb3JtRGF0YShcbiAgICAgIHRoaXMuZWRpdEZvcm0sXG4gICAgICB0aGlzLl9yb3cuc2l0dWF0aW9uLFxuICAgICAgdGhpcy5fcm93LmZvcm0uZGF0YSwgdHJ1ZVxuICAgICk7XG5cbiAgfVxuXG4gIG9uRm9ybVJlYWR5KCkge1xuICAgIC8vIGV4ZWN1dGUgYWZ0ZXIgZm9ybSBoYXMgYmVlbiBzZXQgdXAsIGJlY2F1c2Ugb3RoZXJ3aXNlIG5vdCBhbGwgb2YgdGhlIGNvbXBvbmVudHMgYXJlIHJlYWR5IHRvIGJlIHVzZWRcbiAgICAvLyBpZiBmb3IgZXhhbXBsZSBhIGZvcm0gc2NyaXB0IGV4ZWN1dGVkIGBvbnJvd2VkaXRgIHRyaWVzIHRvIGFwcGx5IGEgZmlsdGVyIG9yIHNvbWV0aGluZyBsaWtlIHRoYXRcbiAgICBpZiAodGhpcy5fcm93LnRhYmxlRWxlbWVudC5vbnJvd2VkaXQgJiYgIXRoaXMuX3Jvdy50YWJsZUVsZW1lbnQucmVhZG9ubHkpIHtcblxuICAgICAgLy8gR2VuZXJhdGUgcm93IEFQSSBvYmplY3QgKHdyYXBwZXIpIGZvciB0aGUgc2NyaXB0XG4gICAgICBjb25zdCByb3cgPSB7XG4gICAgICAgIG1vZGVsOiB0aGlzLl9nZXRPYnNlcnZlZFNjcmlwdE1vZGVsKCksXG4gICAgICAgIGluZGV4OiB0aGlzLl9yb3cuaW5kZXgsXG4gICAgICAgIGNvcHlFbmFibGVkOiB0aGlzLmNvcHlFbmFibGVkLFxuICAgICAgICBkZWxldGVFbmFibGVkOiB0aGlzLmRlbGV0ZUVuYWJsZWQsXG4gICAgICAgIHNhdmVFbmFibGVkOiB0aGlzLnNhdmVFbmFibGVkLFxuICAgICAgICBwZXJzaXN0ZWQ6ICF0aGlzLmlzTmV3Um93IC8vIE5vdCBwZXJzaXN0ZWQgaWYgaXQgaXMgYSBuZXcgcm93XG4gICAgICB9O1xuICAgICAgdGhpcy5fcm93LnRhYmxlRWxlbWVudC5vbnJvd2VkaXQodGhpcy5fcm93LnRhYmxlRWxlbWVudCwgcm93KTtcbiAgICAgIGlmICghdGhpcy5zYXZlZCkge1xuICAgICAgICB0aGlzLm9uRm9ybVN0YXR1c0NoYW5nZWQoKTtcbiAgICAgIH1cbiAgICAgIC8vIC4uLiBhbmQgcmVzcGVjdCB0aGUgcmVzdWx0XG4gICAgICB0aGlzLmNvcHlFbmFibGVkID0gcm93LmNvcHlFbmFibGVkO1xuICAgICAgdGhpcy5kZWxldGVFbmFibGVkID0gcm93LmRlbGV0ZUVuYWJsZWQ7XG4gICAgICB0aGlzLnNhdmVFbmFibGVkID0gcm93LnNhdmVFbmFibGVkO1xuICAgIH1cbiAgfVxuXG4gIG9uRm9ybVN0YXR1c0NoYW5nZWQoKSB7XG5cbiAgICAvLyBjaGVjayBpZiBpbmRleGRhdGEgaGFzIGJlZW4gY2hhbmdlZFxuICAgIGxldCBjdXJyZW50Rm9ybURhdGEgPSB0aGlzLl9nZXRGb3JtRGF0YSgpO1xuICAgIGxldCBpZHhDaGFuZ2UgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmZvcm1EYXRhKSAhPT0gSlNPTi5zdHJpbmdpZnkoY3VycmVudEZvcm1EYXRhKTtcbiAgICB0aGlzLmZvcm1EYXRhID0gVXRpbHMuZm9ybURhdGFQYXJzZShVdGlscy5mb3JtRGF0YVN0cmluZ2lmeShjdXJyZW50Rm9ybURhdGEpKTtcblxuICAgIHRoaXMuZm9ybVN0YXRlID0ge1xuICAgICAgaW52YWxpZDogdGhpcy5lZGl0Rm9ybS5pbnZhbGlkLFxuICAgICAgZGlydHk6IHRoaXMuZWRpdEZvcm0uZGlydHksXG4gICAgICBkYXRhOiB0aGlzLmZvcm1EYXRhLFxuICAgICAgaW5kZXhkYXRhQ2hhbmdlZDogaWR4Q2hhbmdlXG4gICAgfTtcbiAgICBpZiAodGhpcy5mb3JtU3RhdGUuaW5kZXhkYXRhQ2hhbmdlZCkge1xuICAgICAgdGhpcy5zdGFydFBlbmRpbmcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfYnVpbGRSb3dFZGl0Rm9ybSgpIHtcbiAgICBpZiAodGhpcy5fcm93KSB7XG4gICAgICBjb25zdCBmb3JtR2VuUmVzOiBGb3JtR2VuUmVzdWx0ID0gdGhpcy5mb3JtSGVscGVyU2VydmljZS5idWlsZFJlYWN0aXZlRm9ybShcbiAgICAgICAge1xuICAgICAgICAgIGZvcm1Nb2RlbDoge1xuICAgICAgICAgICAgc2l0dWF0aW9uOiB0aGlzLl9yb3cuc2l0dWF0aW9uLFxuICAgICAgICAgICAgZWxlbWVudHM6IFt7XG4gICAgICAgICAgICAgIHR5cGU6ICdvMm1Hcm91cCcsXG4gICAgICAgICAgICAgIGVsZW1lbnRzOiBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5fcm93LmZvcm0uZWxlbWVudHMpXG4gICAgICAgICAgICB9XVxuICAgICAgICAgIH0sIGRpc2FibGVkOiB0aGlzLl9yb3cuZm9ybS5kaXNhYmxlZCwgZGF0YTogdGhpcy5fcm93LmZvcm0uZGF0YVxuICAgICAgICB9LCB0aGlzLmZvcm1TY3JpcHRTZXJ2aWNlLCB0cnVlXG4gICAgICApO1xuICAgICAgdGhpcy5lZGl0Rm9ybSA9IGZvcm1HZW5SZXMuZm9ybTtcbiAgICAgIHRoaXMuc2NyaXB0aW5nU2NvcGUgPSBmb3JtR2VuUmVzLnNjcmlwdGluZ1Njb3BlO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zID0gZm9ybUdlblJlcy5jb250cm9sVmFsdWVTdWJzY3JpcHRpb25zO1xuXG4gICAgICBjb25zdCBjdHJscyA9ICh0aGlzLmVkaXRGb3JtLmNvbnRyb2xzLmNvcmUgYXMgT2JqZWN0Rm9ybUdyb3VwKS5jb250cm9scztcbiAgICAgIHRoaXMuZWRpdEZvcm1Db250cm9scyA9IE9iamVjdC5rZXlzKGN0cmxzKS5tYXAoayA9PiBjdHJsc1trXSBhcyBPYmplY3RGb3JtQ29udHJvbFdyYXBwZXIpXG4gICAgICB0aGlzLmZvcm1TdGF0ZSA9IHtcbiAgICAgICAgaW52YWxpZDogdGhpcy5lZGl0Rm9ybS5pbnZhbGlkLFxuICAgICAgICBkaXJ0eTogdGhpcy5lZGl0Rm9ybS5kaXJ0eSxcbiAgICAgICAgZGF0YTogdGhpcy5mb3JtRGF0YSxcbiAgICAgICAgaW5kZXhkYXRhQ2hhbmdlZDogZmFsc2VcbiAgICAgIH07XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmVkaXRGb3JtKSByZXR1cm47XG4gICAgICAgIGxldCBmb3JtU3RhdGVXYXRjaCA9IHRoaXMuZWRpdEZvcm0uc3RhdHVzQ2hhbmdlcy5waXBlKClcbiAgICAgICAgICAuc3Vic2NyaWJlKChlKSA9PiB0aGlzLm9uRm9ybVN0YXR1c0NoYW5nZWQoKSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGZvcm1TdGF0ZVdhdGNoKTtcbiAgICAgICAgdGhpcy5vbkZvcm1SZWFkeSgpO1xuICAgICAgfSwgMzAwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0UGVuZGluZygpIHtcbiAgICAvLyBiZWNhdXNlIHRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIGV2ZXJ5IHRpbWUgdGhlIGZvcm0gc3RhdHVzIGNoYW5nZXMsXG4gICAgLy8gcGVuZGluZyB0YXNrIHdpbGwgb25seSBiZSBzdGFydGVkIG9uY2UgdW50aWwgaXQgd2FzIGZpbmlzaGVkXG4gICAgaWYgKCF0aGlzLnBlbmRpbmdDaGFuZ2VzLmhhc1BlbmRpbmdUYXNrKHRoaXMucGVuZGluZ1Rhc2tJZCB8fCAnICcpKSB7XG4gICAgICB0aGlzLnBlbmRpbmdUYXNrSWQgPSB0aGlzLnBlbmRpbmdDaGFuZ2VzLnN0YXJ0VGFzaygpO1xuICAgIH1cbiAgfVxuXG4gIGZpbmlzaFBlbmRpbmcoKSB7XG4gICAgdGhpcy5wZW5kaW5nQ2hhbmdlcy5maW5pc2hUYXNrKHRoaXMucGVuZGluZ1Rhc2tJZCk7XG4gIH1cblxuICBzYXZlKCkge1xuICAgIHRoaXMuc2F2aW5nID0gdHJ1ZTtcbiAgICB0aGlzLnNhdmVkID0gdHJ1ZTtcbiAgICB0aGlzLmZpbmlzaFBlbmRpbmcoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5mb3JtU3RhdGUuaW52YWxpZCkge1xuICAgICAgICB0aGlzLm9uU2F2ZS5lbWl0KHtcbiAgICAgICAgICBpbmRleDogdGhpcy5fcm93LmluZGV4LFxuICAgICAgICAgIHJvd0RhdGE6IHRoaXMuX2dldEZvcm1EYXRhKCksXG4gICAgICAgICAgY3JlYXRlTmV3Um93OiB0aGlzLmNyZWF0ZU5ld1Jvd1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XG4gICAgfSwgNTAwKTtcbiAgfVxuXG4gIHNhdmVDb3B5KCkge1xuICAgIHRoaXMuc2F2aW5nID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5mb3JtU3RhdGUuaW52YWxpZCkge1xuICAgICAgICB0aGlzLm9uU2F2ZUNvcHkuZW1pdCh7XG4gICAgICAgICAgaW5kZXg6IHRoaXMuX3Jvdy5pbmRleCxcbiAgICAgICAgICByb3dEYXRhOiB0aGlzLl9nZXRGb3JtRGF0YSgpLFxuICAgICAgICAgIGNyZWF0ZU5ld1JvdzogdGhpcy5jcmVhdGVOZXdSb3dcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xuICAgIH0sIDUwMCk7XG4gIH1cblxuICBkZWxldGUoKSB7XG4gICAgdGhpcy5vbkRlbGV0ZS5lbWl0KHRoaXMuX3Jvdy5pbmRleCk7XG4gICAgdGhpcy5zaG93RGVsZXRlRGlhbG9nID0gZmFsc2U7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gICAgdGhpcy5vbkNhbmNlbC5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIHVuc3Vic2NyaWJlQWxsKCkge1xuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlQWxsKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJyb3ctZWRpdFwiPlxuICA8ZGl2IGNsYXNzPVwiZWRpdC1oZWFkZXJcIiAqbmdJZj1cIiFxdWVyeUVuYWJsZWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwibmV3LWluZGljYXRvclwiICpuZ0lmPVwiaXNOZXdSb3dcIiB0cmFuc2xhdGU+ZW8uZm9ybS50YWJsZS5vcHRpb25zLmluZGljYXRvci5uZXc8L2Rpdj5cbiAgICA8ZGl2PjwvZGl2PlxuICAgIDxlby1pY29uIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2NsZWFyLnN2ZydcIiAoY2xpY2spPVwiY2FuY2VsKClcIiBjbGFzcz1cImJ1dHRvbiBjYW5jZWwtaWNvblwiXG4gICAgICBbaWNvblRpdGxlXT1cIignZW8uY3RhLmJ1dHRvbi5jYW5jZWwnIHwgdHJhbnNsYXRlKVwiPjwvZW8taWNvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZvcm1cIiBbZm9ybUdyb3VwXT1cImVkaXRGb3JtXCIgKm5nSWY9XCJlZGl0Rm9ybVwiPlxuICAgIDxlby1mb3JtLWVsZW1lbnQgKm5nRm9yPVwibGV0IGMgb2YgZWRpdEZvcm1Db250cm9sc1wiIFtlbGVtZW50XT1cImNcIiBbc2l0dWF0aW9uXT1cIl9yb3c/LnNpdHVhdGlvblwiIFtza2lwVG9nZ2xlXT1cImZhbHNlXCI+XG4gICAgPC9lby1mb3JtLWVsZW1lbnQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgPGVvLWNoZWNrYm94ICpuZ0lmPVwiaXNOZXdSb3dcIiB0aXRsZT1cInt7J2VvLmZvcm0udGFibGUub3B0aW9ucy5jaGVja2JveC5uZXcudGl0bGUnIHwgdHJhbnNsYXRlfX1cIlxuICAgICAgW2Zvcm1Db250cm9sXT1cImNyZWF0ZU5ld0NoZWNrYm94XCI+PC9lby1jaGVja2JveD5cbiAgICA8c3BhbiAqbmdJZj1cImlzTmV3Um93XCIgY2xhc3M9XCJhZGQtbGFiZWxcIiB0cmFuc2xhdGU+ZW8uZm9ybS50YWJsZS5vcHRpb25zLmNoZWNrYm94Lm5ldzwvc3Bhbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cImRlbGV0ZUVuYWJsZWQgJiYgIWlzTmV3Um93ICYmICFfcm93Py5mb3JtLmRpc2FibGVkICYmICFxdWVyeUVuYWJsZWRcIlxuICAgICAgKGNsaWNrKT1cInNob3dEZWxldGVEaWFsb2cgPSB0cnVlO1wiIHRpdGxlPVwie3snZW8uY3RhLmJ1dHRvbi5kZWxldGUnIHwgdHJhbnNsYXRlfX1cIj5cbiAgICAgIDxlby1pY29uIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3RyYXNoLnN2ZydcIj48L2VvLWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNhdmVDb3B5KClcIiBjbGFzcz1cInNlY29cIiAqbmdJZj1cImNvcHlFbmFibGVkICYmICFpc05ld1JvdyAmJiAhX3Jvdz8uZm9ybS5kaXNhYmxlZFwiXG4gICAgICBbZGlzYWJsZWRdPVwibGltaXRSZWFjaGVkIHx8IHNhdmluZyB8fCBmb3JtU3RhdGU/LmludmFsaWRcIiB0cmFuc2xhdGU+ZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi5jb3B5PC9idXR0b24+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNhdmUoKVwiIGNsYXNzPVwicHJpbWFyeVwiICpuZ0lmPVwic2F2ZUVuYWJsZWQgJiYgIV9yb3c/LmZvcm0uZGlzYWJsZWRcIlxuICAgICAgW2Rpc2FibGVkXT1cIihsaW1pdFJlYWNoZWQgJiYgaXNOZXdSb3cpIHx8IHNhdmluZyB8fCBmb3JtU3RhdGU/LmludmFsaWQgfHwgKCFmb3JtU3RhdGU/LmRpcnR5ICYmICFpc05ld1JvdylcIj57e1xuICAgICAgJ2VvLmZvcm0udGFibGUub3B0aW9ucy5idG4uc2F2ZScgKyAoaXNOZXdSb3cgPyAnLm5ldycgOiAnJykgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgIDwhLS0gcXVlcnkgYnV0dG9uIGZvciBTRUFSQ0ggc2l0dWF0aW9uIC0tPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzYXZlKClcIiBjbGFzcz1cInByaW1hcnlcIiAqbmdJZj1cInF1ZXJ5RW5hYmxlZFwiXG4gICAgICBbZGlzYWJsZWRdPVwiZm9ybVN0YXRlPy5pbnZhbGlkIHx8ICFmb3JtU3RhdGU/LmluZGV4ZGF0YUNoYW5nZWRcIiB0cmFuc2xhdGU+ZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi5zYXZlPC9idXR0b24+XG4gIDwvZGl2PlxuXG48L2Rpdj5cblxuPGVvLWRpYWxvZyBbdGl0bGVdPVwiKCdlby5mb3JtLnRhYmxlLm9wdGlvbnMuY29uZmlybS5kZWxldGUnIHwgdHJhbnNsYXRlKVwiIFsodmlzaWJsZSldPVwic2hvd0RlbGV0ZURpYWxvZ1wiXG4gIFttaW5XaWR0aF09XCI0MDBcIj5cbiAgPGRpdiBjbGFzcz1cImFjdGlvbi1idXR0b25zIGZsZXgtcm93XCIgc3R5bGU9XCJwYWRkaW5nOiA4cHg7XCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b24gY2FuY2VsXCIgKGNsaWNrKT1cInNob3dEZWxldGVEaWFsb2cgPSBmYWxzZVwiXG4gICAgICB0cmFuc2xhdGU+ZW8uY3RhLmJ1dHRvbi5jYW5jZWw8L2J1dHRvbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjY29uZmlybURlbGV0ZSAoY2xpY2spPVwiZGVsZXRlKClcIiBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5XCJcbiAgICAgIHRyYW5zbGF0ZT5lby5mb3JtLnRhYmxlLm9wdGlvbnMuYnRuLm9rPC9idXR0b24+XG4gIDwvZGl2PlxuPC9lby1kaWFsb2c+Il19
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vZm9ybS1lbGVtZW50LXRhYmxlL3Jvdy1lZGl0L3Jvdy1lZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL29iamVjdC1mb3JtL29iamVjdC1mb3JtL2Zvcm0tZWxlbWVudC10YWJsZS9yb3ctZWRpdC9yb3ctZWRpdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHMUgsT0FBTyxFQUFzQixLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDeEQsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQU9uRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQzs7Ozs7Ozs7Ozs7OztBQUk1Rjs7R0FFRztBQVNJLElBQU0sZ0JBQWdCLEdBQXRCLE1BQU0sZ0JBQWdCO0lBNkIzQixJQUFJLGdCQUFnQixDQUFDLEdBQVk7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztRQUU3QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzNCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMs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UixpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLENBQUMsdUJBQXVCLENBQUM7eU9BR1IsbUJBQW1CO3NCQUE5QyxTQUFTO3VCQUFDLGVBQWU7Z0JBd0NqQixZQUFZO3NCQUFwQixLQUFLO2dCQUdGLEdBQUc7c0JBRE4sS0FBSztnQkFpQkksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7VW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUNvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcclxuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLnNlcnZpY2UnO1xyXG5pbXBvcnQge0Zvcm1TdGF0dXNDaGFuZ2VkRXZlbnR9IGZyb20gJy4uLy4uLy4uL2Zvcm0tc3RhdHVzLWNoYW5nZWQtZXZlbnQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtGb3JtR2VuUmVzdWx0LCBPYmplY3RGb3JtSGVscGVyU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vb2JqZWN0LWZvcm0taGVscGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQge09iamVjdEZvcm1Db250cm9sV3JhcHBlcn0gZnJvbSAnLi4vLi4vb2JqZWN0LWZvcm0tY29udHJvbC13cmFwcGVyJztcclxuaW1wb3J0IHtPYmplY3RGb3JtR3JvdXB9IGZyb20gJy4uLy4uL29iamVjdC1mb3JtLWdyb3VwLm1vZGVsJztcclxuaW1wb3J0IHtPYmplY3RGb3JtU2NyaXB0U2VydmljZX0gZnJvbSAnLi4vLi4vb2JqZWN0LWZvcm0tc2NyaXB0L29iamVjdC1mb3JtLXNjcmlwdC5zZXJ2aWNlJztcclxuaW1wb3J0IHtPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGV9IGZyb20gJy4uLy4uL29iamVjdC1mb3JtLXNjcmlwdC9vYmplY3QtZm9ybS1zY3JpcHRpbmctc2NvcGUnO1xyXG5pbXBvcnQge0VkaXRSb3csIEVkaXRSb3dSZXN1bHR9IGZyb20gJy4uL2Zvcm0tZWxlbWVudC5pbnRlcmZhY2UnO1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudCBmb3IgZWRpdGluZyBhIHJvdyBmcm9tIGFuIG9iamVjdCBmb3JtcyB0YWJsZS5cclxuICovXHJcbkBVbnRpbERlc3Ryb3koKVxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VvLXJvdy1lZGl0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcm93LWVkaXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Jvdy1lZGl0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBwcm92aWRlcnM6IFtPYmplY3RGb3JtU2NyaXB0U2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSb3dFZGl0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKCdjb25maXJtRGVsZXRlJykgY29uZmlybURlbGV0ZUJ1dHRvbjogRWxlbWVudFJlZjtcclxuXHJcbiAgLy8gSUQgc2V0IGJ5IHBlbmRpbmdDaGFuZ2VzIHNlcnZpY2Ugd2hlbiBlZGl0aW5nIHJvdyBkYXRhXHJcbiAgLy8gVXNlZCB0byBmaW5pc2ggdGhlIHBlbmRpbmcgdGFzayB3aGVuIGVkaXRpbmcgaXMgZG9uZVxyXG4gIHBlbmRpbmdUYXNrSWQ6IHN0cmluZztcclxuXHJcbiAgZWRpdEZvcm06IE9iamVjdEZvcm1Hcm91cDtcclxuICBlZGl0Rm9ybUNvbnRyb2xzOiBPYmplY3RGb3JtQ29udHJvbFdyYXBwZXJbXSA9IFtdO1xyXG4gIHByaXZhdGUgc2NyaXB0aW5nU2NvcGU6IE9iamVjdEZvcm1TY3JpcHRpbmdTY29wZTtcclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgLy8gcHJvcGVydHkgZm9yIGhvbGRpbmcgdGhlIGZvcm1zIGRhdGEgdXNlZCBmb3IgY29tcGFyaXNvbiB3aGVuIGEgZm9ybS1jaGFuZ2VkLWV2ZW50XHJcbiAgLy8gaXMgZmV0Y2hlZCB0byBpbmRpY2F0ZSB3aGVyIG9yIG5vdCB0aGUgaW5kZXhkYXRhIHdlcmUgY2hhbmdlZCBvciBqdXN0IHRoZSBwcm9wZXJ0aWVzXHJcbiAgLy8gb2YgdGhlIGZvcm0gZWxlbWVudHMgKGVnLiBmb3JtIHNjcmlwdCBzZXR0aW5nIGZpZWxkcyB0byByZWFkb25seSlcclxuICBwcml2YXRlIGZvcm1EYXRhOiBhbnk7XHJcblxyXG4gIF9yb3c6IEVkaXRSb3c7XHJcbiAgaXNOZXdSb3c6IGJvb2xlYW47XHJcbiAgZm9ybVN0YXRlPzogRm9ybVN0YXR1c0NoYW5nZWRFdmVudDtcclxuICBxdWVyeUVuYWJsZWQgPSB0cnVlO1xyXG4gIGNvcHlFbmFibGVkID0gdHJ1ZTtcclxuICBkZWxldGVFbmFibGVkID0gdHJ1ZTtcclxuICBzYXZlRW5hYmxlZCA9IHRydWU7XHJcbiAgY3JlYXRlTmV3Q2hlY2tib3g6IFVudHlwZWRGb3JtQ29udHJvbDtcclxuICBjcmVhdGVOZXdSb3cgPSBmYWxzZTtcclxuICBfc2hvd0RlbGV0ZURpYWxvZyA9IGZhbHNlO1xyXG4gIHNhdmluZyA9IGZhbHNlO1xyXG4gIHNhdmVkID0gZmFsc2U7XHJcblxyXG4gIHNldCBzaG93RGVsZXRlRGlhbG9nKHZhbDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fc2hvd0RlbGV0ZURpYWxvZyA9IHZhbDtcclxuXHJcbiAgICBpZiAodGhpcy5fc2hvd0RlbGV0ZURpYWxvZykge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY29uZmlybURlbGV0ZUJ1dHRvbi5uYXRpdmVFbGVtZW50LmZvY3VzKCksIDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dEZWxldGVEaWFsb2coKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2hvd0RlbGV0ZURpYWxvZztcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGxpbWl0UmVhY2hlZDogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgcm93KHI6IEVkaXRSb3cpIHtcclxuICAgIGlmICghdGhpcy5fcm93IHx8IHRoaXMuX3Jvdy5pbmRleCAhPT0gcj8uaW5kZXgpIHtcclxuICAgICAgdGhpcy5zYXZlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fcm93ID0gcjtcclxuICAgIHRoaXMuZm9ybURhdGEgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnF1ZXJ5RW5hYmxlZCA9IHI/LnNpdHVhdGlvbiA9PT0gJ1NFQVJDSCc7XHJcbiAgICB0aGlzLmNvcHlFbmFibGVkID0gIXRoaXMucXVlcnlFbmFibGVkO1xyXG4gICAgdGhpcy5zYXZlRW5hYmxlZCA9ICF0aGlzLnF1ZXJ5RW5hYmxlZDtcclxuICAgIHRoaXMuZGVsZXRlRW5hYmxlZCA9ICF0aGlzLnF1ZXJ5RW5hYmxlZDtcclxuICAgIHRoaXMuaXNOZXdSb3cgPSB0aGlzLl9yb3c/LmluZGV4ID09PSAtMTtcclxuICAgIHRoaXMudW5zdWJzY3JpYmVBbGwoKTtcclxuXHJcbiAgICB0aGlzLl9idWlsZFJvd0VkaXRGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgb25DYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uU2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8RWRpdFJvd1Jlc3VsdD4oKTtcclxuICBAT3V0cHV0KCkgb25TYXZlQ29weSA9IG5ldyBFdmVudEVtaXR0ZXI8RWRpdFJvd1Jlc3VsdD4oKTtcclxuICBAT3V0cHV0KCkgb25EZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmb3JtU2NyaXB0U2VydmljZTogT2JqZWN0Rm9ybVNjcmlwdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZvcm1IZWxwZXJTZXJ2aWNlOiBPYmplY3RGb3JtSGVscGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlciwgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSkge1xyXG4gICAgdGhpcy5jcmVhdGVOZXdSb3cgPSAhIXRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgnY3JlYXRlTmV3Um93Jyk7XHJcbiAgICB0aGlzLmNyZWF0ZU5ld0NoZWNrYm94ID0gdGhpcy5mYi5jb250cm9sKHRoaXMuY3JlYXRlTmV3Um93KTtcclxuICAgIHRoaXMuY3JlYXRlTmV3Q2hlY2tib3gudmFsdWVDaGFuZ2VzLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZSgodikgPT4ge1xyXG4gICAgICB0aGlzLmNyZWF0ZU5ld1JvdyA9IHY7XHJcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSgnY3JlYXRlTmV3Um93JywgdGhpcy5jcmVhdGVOZXdSb3cpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICogUmV0dXJucyB0aGUgb2JzZXJ2ZWQgbW9kZWwgdGhhdCB3YXMgcGFzc2VkIHRvIHRoZSBjdXJyZW50IGZvcm0gc2NyaXB0IHJ1bm5pbmcuIElmIHRoZXJlIGlzXHJcbiAqIG5vIGZvcm0gc2NyaXB0LCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiBOVUxMLlxyXG4gKiBAcmV0dXJuc1xyXG4gKi9cclxuICBwcml2YXRlIF9nZXRPYnNlcnZlZFNjcmlwdE1vZGVsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2NyaXB0aW5nU2NvcGUgPyB0aGlzLnNjcmlwdGluZ1Njb3BlLmdldE1vZGVsKCkgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2V0Rm9ybURhdGEoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtSGVscGVyU2VydmljZS5leHRyYWN0Rm9ybURhdGEoXHJcbiAgICAgIHRoaXMuZWRpdEZvcm0sXHJcbiAgICAgIHRoaXMuX3Jvdy5zaXR1YXRpb24sXHJcbiAgICAgIHRoaXMuX3Jvdy5mb3JtLmRhdGEsIHRydWVcclxuICAgICk7XHJcblxyXG4gIH1cclxuXHJcbiAgb25Gb3JtUmVhZHkoKSB7XHJcbiAgICAvLyBleGVjdXRlIGFmdGVyIGZvcm0gaGFzIGJlZW4gc2V0IHVwLCBiZWNhdXNlIG90aGVyd2lzZSBub3QgYWxsIG9mIHRoZSBjb21wb25lbnRzIGFyZSByZWFkeSB0byBiZSB1c2VkXHJcbiAgICAvLyBpZiBmb3IgZXhhbXBsZSBhIGZvcm0gc2NyaXB0IGV4ZWN1dGVkIGBvbnJvd2VkaXRgIHRyaWVzIHRvIGFwcGx5IGEgZmlsdGVyIG9yIHNvbWV0aGluZyBsaWtlIHRoYXRcclxuICAgIGlmICh0aGlzLl9yb3cudGFibGVFbGVtZW50Lm9ucm93ZWRpdCAmJiAhdGhpcy5fcm93LnRhYmxlRWxlbWVudC5yZWFkb25seSkge1xyXG5cclxuICAgICAgLy8gR2VuZXJhdGUgcm93IEFQSSBvYmplY3QgKHdyYXBwZXIpIGZvciB0aGUgc2NyaXB0XHJcbiAgICAgIGNvbnN0IHJvdyA9IHtcclxuICAgICAgICBtb2RlbDogdGhpcy5fZ2V0T2JzZXJ2ZWRTY3JpcHRNb2RlbCgpLFxyXG4gICAgICAgIGluZGV4OiB0aGlzLl9yb3cuaW5kZXgsXHJcbiAgICAgICAgY29weUVuYWJsZWQ6IHRoaXMuY29weUVuYWJsZWQsXHJcbiAgICAgICAgZGVsZXRlRW5hYmxlZDogdGhpcy5kZWxldGVFbmFibGVkLFxyXG4gICAgICAgIHNhdmVFbmFibGVkOiB0aGlzLnNhdmVFbmFibGVkLFxyXG4gICAgICAgIHBlcnNpc3RlZDogIXRoaXMuaXNOZXdSb3cgLy8gTm90IHBlcnNpc3RlZCBpZiBpdCBpcyBhIG5ldyByb3dcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5fcm93LnRhYmxlRWxlbWVudC5vbnJvd2VkaXQodGhpcy5fcm93LnRhYmxlRWxlbWVudCwgcm93KTtcclxuICAgICAgaWYgKCF0aGlzLnNhdmVkKSB7XHJcbiAgICAgICAgdGhpcy5vbkZvcm1TdGF0dXNDaGFuZ2VkKCk7XHJcbiAgICAgIH1cclxuICAgICAgLy8gLi4uIGFuZCByZXNwZWN0IHRoZSByZXN1bHRcclxuICAgICAgdGhpcy5jb3B5RW5hYmxlZCA9IHJvdy5jb3B5RW5hYmxlZDtcclxuICAgICAgdGhpcy5kZWxldGVFbmFibGVkID0gcm93LmRlbGV0ZUVuYWJsZWQ7XHJcbiAgICAgIHRoaXMuc2F2ZUVuYWJsZWQgPSByb3cuc2F2ZUVuYWJsZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkZvcm1TdGF0dXNDaGFuZ2VkKCkge1xyXG5cclxuICAgIC8vIGNoZWNrIGlmIGluZGV4ZGF0YSBoYXMgYmVlbiBjaGFuZ2VkXHJcbiAgICBsZXQgY3VycmVudEZvcm1EYXRhID0gdGhpcy5fZ2V0Rm9ybURhdGEoKTtcclxuICAgIGxldCBpZHhDaGFuZ2UgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmZvcm1EYXRhKSAhPT0gSlNPTi5zdHJpbmdpZnkoY3VycmVudEZvcm1EYXRhKTtcclxuICAgIHRoaXMuZm9ybURhdGEgPSBVdGlscy5mb3JtRGF0YVBhcnNlKFV0aWxzLmZvcm1EYXRhU3RyaW5naWZ5KGN1cnJlbnRGb3JtRGF0YSkpO1xyXG5cclxuICAgIHRoaXMuZm9ybVN0YXRlID0ge1xyXG4gICAgICBpbnZhbGlkOiB0aGlzLmVkaXRGb3JtLmludmFsaWQsXHJcbiAgICAgIGRpcnR5OiB0aGlzLmVkaXRGb3JtLmRpcnR5LFxyXG4gICAgICBkYXRhOiB0aGlzLmZvcm1EYXRhLFxyXG4gICAgICBpbmRleGRhdGFDaGFuZ2VkOiBpZHhDaGFuZ2VcclxuICAgIH07XHJcbiAgICBpZiAodGhpcy5mb3JtU3RhdGUuaW5kZXhkYXRhQ2hhbmdlZCkge1xyXG4gICAgICB0aGlzLnN0YXJ0UGVuZGluZygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9idWlsZFJvd0VkaXRGb3JtKCkge1xyXG4gICAgaWYgKHRoaXMuX3Jvdykge1xyXG4gICAgICBjb25zdCBmb3JtR2VuUmVzOiBGb3JtR2VuUmVzdWx0ID0gdGhpcy5mb3JtSGVscGVyU2VydmljZS5idWlsZFJlYWN0aXZlRm9ybShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBmb3JtTW9kZWw6IHtcclxuICAgICAgICAgICAgc2l0dWF0aW9uOiB0aGlzLl9yb3cuc2l0dWF0aW9uLFxyXG4gICAgICAgICAgICBlbGVtZW50czogW3tcclxuICAgICAgICAgICAgICB0eXBlOiAnbzJtR3JvdXAnLFxyXG4gICAgICAgICAgICAgIGVsZW1lbnRzOiBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5fcm93LmZvcm0uZWxlbWVudHMpXHJcbiAgICAgICAgICAgIH1dXHJcbiAgICAgICAgICB9LCBkaXNhYmxlZDogdGhpcy5fcm93LmZvcm0uZGlzYWJsZWQsIGRhdGE6IHRoaXMuX3Jvdy5mb3JtLmRhdGFcclxuICAgICAgICB9LCB0aGlzLmZvcm1TY3JpcHRTZXJ2aWNlLCB0cnVlXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuZWRpdEZvcm0gPSBmb3JtR2VuUmVzLmZvcm07XHJcbiAgICAgIHRoaXMuc2NyaXB0aW5nU2NvcGUgPSBmb3JtR2VuUmVzLnNjcmlwdGluZ1Njb3BlO1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBmb3JtR2VuUmVzLmNvbnRyb2xWYWx1ZVN1YnNjcmlwdGlvbnM7XHJcblxyXG4gICAgICBjb25zdCBjdHJscyA9ICh0aGlzLmVkaXRGb3JtLmNvbnRyb2xzLmNvcmUgYXMgT2JqZWN0Rm9ybUdyb3VwKS5jb250cm9scztcclxuICAgICAgdGhpcy5lZGl0Rm9ybUNvbnRyb2xzID0gT2JqZWN0LmtleXMoY3RybHMpLm1hcChrID0+IGN0cmxzW2tdIGFzIE9iamVjdEZvcm1Db250cm9sV3JhcHBlcilcclxuICAgICAgdGhpcy5mb3JtU3RhdGUgPSB7XHJcbiAgICAgICAgaW52YWxpZDogdGhpcy5lZGl0Rm9ybS5pbnZhbGlkLFxyXG4gICAgICAgIGRpcnR5OiB0aGlzLmVkaXRGb3JtLmRpcnR5LFxyXG4gICAgICAgIGRhdGE6IHRoaXMuZm9ybURhdGEsXHJcbiAgICAgICAgaW5kZXhkYXRhQ2hhbmdlZDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmVkaXRGb3JtKSByZXR1cm47XHJcbiAgICAgICAgbGV0IGZvcm1TdGF0ZVdhdGNoID0gdGhpcy5lZGl0Rm9ybS5zdGF0dXNDaGFuZ2VzLnBpcGUoKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgoZSkgPT4gdGhpcy5vbkZvcm1TdGF0dXNDaGFuZ2VkKCkpO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGZvcm1TdGF0ZVdhdGNoKTtcclxuICAgICAgICB0aGlzLm9uRm9ybVJlYWR5KCk7XHJcbiAgICAgIH0sIDMwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXJ0UGVuZGluZygpIHtcclxuICAgIC8vIGJlY2F1c2UgdGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgZXZlcnkgdGltZSB0aGUgZm9ybSBzdGF0dXMgY2hhbmdlcyxcclxuICAgIC8vIHBlbmRpbmcgdGFzayB3aWxsIG9ubHkgYmUgc3RhcnRlZCBvbmNlIHVudGlsIGl0IHdhcyBmaW5pc2hlZFxyXG4gICAgaWYgKCF0aGlzLnBlbmRpbmdDaGFuZ2VzLmhhc1BlbmRpbmdUYXNrKHRoaXMucGVuZGluZ1Rhc2tJZCB8fCAnICcpKSB7XHJcbiAgICAgIHRoaXMucGVuZGluZ1Rhc2tJZCA9IHRoaXMucGVuZGluZ0NoYW5nZXMuc3RhcnRUYXNrKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmaW5pc2hQZW5kaW5nKCkge1xyXG4gICAgdGhpcy5wZW5kaW5nQ2hhbmdlcy5maW5pc2hUYXNrKHRoaXMucGVuZGluZ1Rhc2tJZCk7XHJcbiAgfVxyXG5cclxuICBzYXZlKCkge1xyXG4gICAgdGhpcy5zYXZpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5zYXZlZCA9IHRydWU7XHJcbiAgICB0aGlzLmZpbmlzaFBlbmRpbmcoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuZm9ybVN0YXRlLmludmFsaWQpIHtcclxuICAgICAgICB0aGlzLm9uU2F2ZS5lbWl0KHtcclxuICAgICAgICAgIGluZGV4OiB0aGlzLl9yb3cuaW5kZXgsXHJcbiAgICAgICAgICByb3dEYXRhOiB0aGlzLl9nZXRGb3JtRGF0YSgpLFxyXG4gICAgICAgICAgY3JlYXRlTmV3Um93OiB0aGlzLmNyZWF0ZU5ld1Jvd1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XHJcbiAgICB9LCA1MDApO1xyXG4gIH1cclxuXHJcbiAgc2F2ZUNvcHkoKSB7XHJcbiAgICB0aGlzLnNhdmluZyA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKCF0aGlzLmZvcm1TdGF0ZS5pbnZhbGlkKSB7XHJcbiAgICAgICAgdGhpcy5vblNhdmVDb3B5LmVtaXQoe1xyXG4gICAgICAgICAgaW5kZXg6IHRoaXMuX3Jvdy5pbmRleCxcclxuICAgICAgICAgIHJvd0RhdGE6IHRoaXMuX2dldEZvcm1EYXRhKCksXHJcbiAgICAgICAgICBjcmVhdGVOZXdSb3c6IHRoaXMuY3JlYXRlTmV3Um93XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zYXZpbmcgPSBmYWxzZTtcclxuICAgIH0sIDUwMCk7XHJcbiAgfVxyXG5cclxuICBkZWxldGUoKSB7XHJcbiAgICB0aGlzLm9uRGVsZXRlLmVtaXQodGhpcy5fcm93LmluZGV4KTtcclxuICAgIHRoaXMuc2hvd0RlbGV0ZURpYWxvZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsKCkge1xyXG4gICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XHJcbiAgICB0aGlzLm9uQ2FuY2VsLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdW5zdWJzY3JpYmVBbGwoKSB7XHJcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb25zLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlQWxsKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJyb3ctZWRpdFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJlZGl0LWhlYWRlclwiICpuZ0lmPVwiIXF1ZXJ5RW5hYmxlZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm5ldy1pbmRpY2F0b3JcIiAqbmdJZj1cImlzTmV3Um93XCIgdHJhbnNsYXRlPmVvLmZvcm0udGFibGUub3B0aW9ucy5pbmRpY2F0b3IubmV3PC9kaXY+XHJcbiAgICA8ZGl2PjwvZGl2PlxyXG4gICAgPGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfY2xlYXIuc3ZnJ1wiIChjbGljayk9XCJjYW5jZWwoKVwiIGNsYXNzPVwiYnV0dG9uIGNhbmNlbC1pY29uXCJcclxuICAgICAgW2ljb25UaXRsZV09XCIoJ2VvLmN0YS5idXR0b24uY2FuY2VsJyB8IHRyYW5zbGF0ZSlcIj48L2VvLWljb24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJmb3JtXCIgW2Zvcm1Hcm91cF09XCJlZGl0Rm9ybVwiICpuZ0lmPVwiZWRpdEZvcm1cIj5cclxuICAgIDxlby1mb3JtLWVsZW1lbnQgKm5nRm9yPVwibGV0IGMgb2YgZWRpdEZvcm1Db250cm9sc1wiIFtlbGVtZW50XT1cImNcIiBbc2l0dWF0aW9uXT1cIl9yb3c/LnNpdHVhdGlvblwiIFtza2lwVG9nZ2xlXT1cImZhbHNlXCI+XHJcbiAgICA8L2VvLWZvcm0tZWxlbWVudD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cclxuICAgIDxlby1jaGVja2JveCAqbmdJZj1cImlzTmV3Um93XCIgdGl0bGU9XCJ7eydlby5mb3JtLnRhYmxlLm9wdGlvbnMuY2hlY2tib3gubmV3LnRpdGxlJyB8IHRyYW5zbGF0ZX19XCJcclxuICAgICAgW2Zvcm1Db250cm9sXT1cImNyZWF0ZU5ld0NoZWNrYm94XCI+PC9lby1jaGVja2JveD5cclxuICAgIDxzcGFuICpuZ0lmPVwiaXNOZXdSb3dcIiBjbGFzcz1cImFkZC1sYWJlbFwiIHRyYW5zbGF0ZT5lby5mb3JtLnRhYmxlLm9wdGlvbnMuY2hlY2tib3gubmV3PC9zcGFuPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCJkZWxldGVFbmFibGVkICYmICFpc05ld1JvdyAmJiAhX3Jvdz8uZm9ybS5kaXNhYmxlZCAmJiAhcXVlcnlFbmFibGVkXCJcclxuICAgICAgKGNsaWNrKT1cInNob3dEZWxldGVEaWFsb2cgPSB0cnVlO1wiIHRpdGxlPVwie3snZW8uY3RhLmJ1dHRvbi5kZWxldGUnIHwgdHJhbnNsYXRlfX1cIj5cclxuICAgICAgPGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfdHJhc2guc3ZnJ1wiPjwvZW8taWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNhdmVDb3B5KClcIiBjbGFzcz1cInNlY29cIiAqbmdJZj1cImNvcHlFbmFibGVkICYmICFpc05ld1JvdyAmJiAhX3Jvdz8uZm9ybS5kaXNhYmxlZFwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJsaW1pdFJlYWNoZWQgfHwgc2F2aW5nIHx8IGZvcm1TdGF0ZT8uaW52YWxpZFwiIHRyYW5zbGF0ZT5lby5mb3JtLnRhYmxlLm9wdGlvbnMuYnRuLmNvcHk8L2J1dHRvbj5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzYXZlKClcIiBjbGFzcz1cInByaW1hcnlcIiAqbmdJZj1cInNhdmVFbmFibGVkICYmICFfcm93Py5mb3JtLmRpc2FibGVkXCJcclxuICAgICAgW2Rpc2FibGVkXT1cIihsaW1pdFJlYWNoZWQgJiYgaXNOZXdSb3cpIHx8IHNhdmluZyB8fCBmb3JtU3RhdGU/LmludmFsaWQgfHwgKCFmb3JtU3RhdGU/LmRpcnR5ICYmICFpc05ld1JvdylcIj57e1xyXG4gICAgICAnZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi5zYXZlJyArIChpc05ld1JvdyA/ICcubmV3JyA6ICcnKSB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICA8IS0tIHF1ZXJ5IGJ1dHRvbiBmb3IgU0VBUkNIIHNpdHVhdGlvbiAtLT5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzYXZlKClcIiBjbGFzcz1cInByaW1hcnlcIiAqbmdJZj1cInF1ZXJ5RW5hYmxlZFwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJmb3JtU3RhdGU/LmludmFsaWQgfHwgIWZvcm1TdGF0ZT8uaW5kZXhkYXRhQ2hhbmdlZFwiIHRyYW5zbGF0ZT5lby5mb3JtLnRhYmxlLm9wdGlvbnMuYnRuLnNhdmU8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuXHJcbjwvZGl2PlxyXG5cclxuPGVvLWRpYWxvZyBbdGl0bGVdPVwiKCdlby5mb3JtLnRhYmxlLm9wdGlvbnMuY29uZmlybS5kZWxldGUnIHwgdHJhbnNsYXRlKVwiIFsodmlzaWJsZSldPVwic2hvd0RlbGV0ZURpYWxvZ1wiXHJcbiAgW21pbldpZHRoXT1cIjQwMFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJhY3Rpb24tYnV0dG9ucyBmbGV4LXJvd1wiIHN0eWxlPVwicGFkZGluZzogOHB4O1wiPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b24gY2FuY2VsXCIgKGNsaWNrKT1cInNob3dEZWxldGVEaWFsb2cgPSBmYWxzZVwiXHJcbiAgICAgIHRyYW5zbGF0ZT5lby5jdGEuYnV0dG9uLmNhbmNlbDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgI2NvbmZpcm1EZWxldGUgKGNsaWNrKT1cImRlbGV0ZSgpXCIgY2xhc3M9XCJidXR0b24gcHJpbWFyeVwiXHJcbiAgICAgIHRyYW5zbGF0ZT5lby5mb3JtLnRhYmxlLm9wdGlvbnMuYnRuLm9rPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZW8tZGlhbG9nPiJdfQ==
@@ -37,4 +37,4 @@ export class FormValidation {
37
37
  return (control._eoFormElement && control._eoFormElement.error) ? { eoformScript: { valid: false } } : null;
38
38
  }
39
39
  }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vZm9ybS12YWxpZGF0aW9uL2Zvcm0tdmFsaWRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQsTUFBTSxPQUFPLGNBQWM7SUFFekI7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLGFBQWEsQ0FBQyxXQUFnQixFQUFFLFNBQWlCO1FBRXRELElBQUksYUFBYSxHQUFrQixFQUFFLENBQUM7UUFDdEMsSUFBSSxFQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBQyxHQUFHLFdBQVcsQ0FBQztRQUVwRCxvQ0FBb0M7UUFDcEMsUUFBUSxTQUFTLEVBQUUsQ0FBQztZQUNsQixLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ2QsMERBQTBEO2dCQUMxRCxNQUFNO1lBQ1IsQ0FBQztZQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBRVIsSUFBSSxRQUFRLEVBQUUsQ0FBQztvQkFDYixhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDMUMsQ0FBQztnQkFDRCxJQUFJLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDdEMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ2hELENBQUM7Z0JBQ0QsTUFBTTtZQUNSLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMseUJBQXlCLENBQUMsT0FBMEI7UUFDekQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUUsRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzFHLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T2JqZWN0Rm9ybUNvbnRyb2x9IGZyb20gJy4uL29iamVjdC1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHtWYWxpZGF0b3JGbiwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgY2xhc3MgRm9ybVZhbGlkYXRpb24ge1xuXG4gIC8qKlxuICAgKiBCdWlsZCB2YWxpZGF0b3JzIGZvciB0aGUgZ2l2ZW4gZm9ybSBlbGVtZW50IHRvIGJlIGF0dGFjaGVkIHRvXG4gICAqIGEgcmVhY3RpdmUgZm9ybUNvbnRyb2wuXG4gICAqXG4gICAqIEBwYXJhbSBmb3JtRWxlbWVudCAtIGZvcm0gZWxlbWVudCBvYmplY3RcbiAgICogQHBhcmFtIHNpdHVhdGlvbiAtIGZvcm0gc2l0dWF0aW9uIHRvIGZldGNoIHZhbGlkYXRvcnMgZm9yXG4gICAqL1xuICBzdGF0aWMgZ2V0VmFsaWRhdG9ycyhmb3JtRWxlbWVudDogYW55LCBzaXR1YXRpb246IHN0cmluZyk6IFZhbGlkYXRvckZuW10ge1xuXG4gICAgbGV0IGVsbVZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcbiAgICBsZXQge21pbmxlbiwgbWF4bGVuLCByZXF1aXJlZCwgcmVnZXh9ID0gZm9ybUVsZW1lbnQ7XG5cbiAgICAvLyBhcHBseSBzaXR1YXRpb24gYmFzZWQgdmFsaWRhdGlvbnNcbiAgICBzd2l0Y2ggKHNpdHVhdGlvbikge1xuICAgICAgY2FzZSAnU0VBUkNIJzoge1xuICAgICAgICAvLyB0b2RvOiBpbXBsZW1lbnQgZ2VuZXJhbCB2YWxpZGF0b3JzIGZvciBTRUFSQ0ggc2l0dWF0aW9uXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuXG4gICAgICAgIGlmIChyZXF1aXJlZCkge1xuICAgICAgICAgIGVsbVZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVnZXggJiYgIWZvcm1FbGVtZW50Lm11bHRpc2VsZWN0KSB7XG4gICAgICAgICAgZWxtVmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybihyZWdleCkpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZWxtVmFsaWRhdG9ycztcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gY29udHJvbCAtIGZyb20gb2JqZWN0IGNvbnRyb2xcbiAgICogQHJldHVybnMgVmFsaWRhdGlvbiBvYmplY3Qge2VvZm9ybVNjcmlwdDoge3ZhbGlkOiBib29sZWFufX0gb3IgbnVsbFxuICAgKi9cbiAgc3RhdGljIGN1c3RvbVNjcmlwdGluZ1ZhbGlkYXRpb24oY29udHJvbDogT2JqZWN0Rm9ybUNvbnRyb2wpOiBPYmplY3QgfCBudWxsIHtcbiAgICByZXR1cm4gKGNvbnRyb2wuX2VvRm9ybUVsZW1lbnQgJiYgY29udHJvbC5fZW9Gb3JtRWxlbWVudC5lcnJvcikgPyB7ZW9mb3JtU2NyaXB0OiB7dmFsaWQ6IGZhbHNlfX0gOiBudWxsO1xuICB9XG5cbn1cbiJdfQ==
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vZm9ybS12YWxpZGF0aW9uL2Zvcm0tdmFsaWRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQsTUFBTSxPQUFPLGNBQWM7SUFFekI7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLGFBQWEsQ0FBQyxXQUFnQixFQUFFLFNBQWlCO1FBRXRELElBQUksYUFBYSxHQUFrQixFQUFFLENBQUM7UUFDdEMsSUFBSSxFQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBQyxHQUFHLFdBQVcsQ0FBQztRQUVwRCxvQ0FBb0M7UUFDcEMsUUFBUSxTQUFTLEVBQUUsQ0FBQztZQUNsQixLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ2QsMERBQTBEO2dCQUMxRCxNQUFNO1lBQ1IsQ0FBQztZQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBRVIsSUFBSSxRQUFRLEVBQUUsQ0FBQztvQkFDYixhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDMUMsQ0FBQztnQkFDRCxJQUFJLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDdEMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ2hELENBQUM7Z0JBQ0QsTUFBTTtZQUNSLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMseUJBQXlCLENBQUMsT0FBMEI7UUFDekQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUUsRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzFHLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T2JqZWN0Rm9ybUNvbnRyb2x9IGZyb20gJy4uL29iamVjdC1mb3JtLWNvbnRyb2wnO1xyXG5pbXBvcnQge1ZhbGlkYXRvckZuLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5leHBvcnQgY2xhc3MgRm9ybVZhbGlkYXRpb24ge1xyXG5cclxuICAvKipcclxuICAgKiBCdWlsZCB2YWxpZGF0b3JzIGZvciB0aGUgZ2l2ZW4gZm9ybSBlbGVtZW50IHRvIGJlIGF0dGFjaGVkIHRvXHJcbiAgICogYSByZWFjdGl2ZSBmb3JtQ29udHJvbC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBmb3JtRWxlbWVudCAtIGZvcm0gZWxlbWVudCBvYmplY3RcclxuICAgKiBAcGFyYW0gc2l0dWF0aW9uIC0gZm9ybSBzaXR1YXRpb24gdG8gZmV0Y2ggdmFsaWRhdG9ycyBmb3JcclxuICAgKi9cclxuICBzdGF0aWMgZ2V0VmFsaWRhdG9ycyhmb3JtRWxlbWVudDogYW55LCBzaXR1YXRpb246IHN0cmluZyk6IFZhbGlkYXRvckZuW10ge1xyXG5cclxuICAgIGxldCBlbG1WYWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XHJcbiAgICBsZXQge21pbmxlbiwgbWF4bGVuLCByZXF1aXJlZCwgcmVnZXh9ID0gZm9ybUVsZW1lbnQ7XHJcblxyXG4gICAgLy8gYXBwbHkgc2l0dWF0aW9uIGJhc2VkIHZhbGlkYXRpb25zXHJcbiAgICBzd2l0Y2ggKHNpdHVhdGlvbikge1xyXG4gICAgICBjYXNlICdTRUFSQ0gnOiB7XHJcbiAgICAgICAgLy8gdG9kbzogaW1wbGVtZW50IGdlbmVyYWwgdmFsaWRhdG9ycyBmb3IgU0VBUkNIIHNpdHVhdGlvblxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGRlZmF1bHQ6IHtcclxuXHJcbiAgICAgICAgaWYgKHJlcXVpcmVkKSB7XHJcbiAgICAgICAgICBlbG1WYWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChyZWdleCAmJiAhZm9ybUVsZW1lbnQubXVsdGlzZWxlY3QpIHtcclxuICAgICAgICAgIGVsbVZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4ocmVnZXgpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBlbG1WYWxpZGF0b3JzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gY29udHJvbCAtIGZyb20gb2JqZWN0IGNvbnRyb2xcclxuICAgKiBAcmV0dXJucyBWYWxpZGF0aW9uIG9iamVjdCB7ZW9mb3JtU2NyaXB0OiB7dmFsaWQ6IGJvb2xlYW59fSBvciBudWxsXHJcbiAgICovXHJcbiAgc3RhdGljIGN1c3RvbVNjcmlwdGluZ1ZhbGlkYXRpb24oY29udHJvbDogT2JqZWN0Rm9ybUNvbnRyb2wpOiBPYmplY3QgfCBudWxsIHtcclxuICAgIHJldHVybiAoY29udHJvbC5fZW9Gb3JtRWxlbWVudCAmJiBjb250cm9sLl9lb0Zvcm1FbGVtZW50LmVycm9yKSA/IHtlb2Zvcm1TY3JpcHQ6IHt2YWxpZDogZmFsc2V9fSA6IG51bGw7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -5,4 +5,4 @@ import { UntypedFormGroup } from '@angular/forms';
5
5
  */
6
6
  export class ObjectFormControlWrapper extends UntypedFormGroup {
7
7
  }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tY29udHJvbC13cmFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0tY29udHJvbC13cmFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBU2hEOzs7R0FHRztBQUNILE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxnQkFBZ0I7Q0FFN0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1VudHlwZWRGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGludGVyZmFjZSBFb0Zvcm1Hcm91cFdyYXBwZXIge1xuICAvLyBmb3JtIGNvbnRyb2wgc2l0dWF0aW9uIChDUkVBVEUsIEVESVQsIFNFQVJDSClcbiAgc2l0dWF0aW9uOiBzdHJpbmc7XG4gIC8vIHRoZSBuYW1lIG9mIHRoZSB3cmFwcGVkIGZvcm0gY29udHJvbFxuICBjb250cm9sTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEV4dGVuZCBhbmd1bGFycyBkZWZhdWx0IFVudHlwZWRGb3JtR3JvdXAgZm9yIGltcGxlbWVudGF0aW9uIG9mIGEgZm9ybSBncm91cCB3cmFwcGluZ1xuICogYSBmb3JtIGNvbnRyb2wuXG4gKi9cbmV4cG9ydCBjbGFzcyBPYmplY3RGb3JtQ29udHJvbFdyYXBwZXIgZXh0ZW5kcyBVbnR5cGVkRm9ybUdyb3VwIHtcbiAgX2VvRm9ybUNvbnRyb2xXcmFwcGVyOiBFb0Zvcm1Hcm91cFdyYXBwZXI7XG59XG4iXX0=
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tY29udHJvbC13cmFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0tY29udHJvbC13cmFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBU2hEOzs7R0FHRztBQUNILE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxnQkFBZ0I7Q0FFN0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1VudHlwZWRGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRW9Gb3JtR3JvdXBXcmFwcGVyIHtcclxuICAvLyBmb3JtIGNvbnRyb2wgc2l0dWF0aW9uIChDUkVBVEUsIEVESVQsIFNFQVJDSClcclxuICBzaXR1YXRpb246IHN0cmluZztcclxuICAvLyB0aGUgbmFtZSBvZiB0aGUgd3JhcHBlZCBmb3JtIGNvbnRyb2xcclxuICBjb250cm9sTmFtZTogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogRXh0ZW5kIGFuZ3VsYXJzIGRlZmF1bHQgVW50eXBlZEZvcm1Hcm91cCBmb3IgaW1wbGVtZW50YXRpb24gb2YgYSBmb3JtIGdyb3VwIHdyYXBwaW5nXHJcbiAqIGEgZm9ybSBjb250cm9sLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIE9iamVjdEZvcm1Db250cm9sV3JhcHBlciBleHRlbmRzIFVudHlwZWRGb3JtR3JvdXAge1xyXG4gIF9lb0Zvcm1Db250cm9sV3JhcHBlcjogRW9Gb3JtR3JvdXBXcmFwcGVyO1xyXG59XHJcbiJdfQ==
@@ -9,4 +9,4 @@ export class ObjectFormControl extends UntypedFormControl {
9
9
  return this.__eoFormElement;
10
10
  }
11
11
  }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL29iamVjdC1mb3JtL29iamVjdC1mb3JtL29iamVjdC1mb3JtLWNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEQsaURBQWlEO0FBRWpELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxrQkFBa0I7SUFHdkQsSUFBVyxjQUFjLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQUEsQ0FBQztJQUVGLElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtVbnR5cGVkRm9ybUNvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLy8gZXh0ZW5zaW9ucyBvZiB0aGUgZGVmYXVsdCBhbmd1bGFyIGZvcm0gY29udHJvbFxuXG5leHBvcnQgY2xhc3MgT2JqZWN0Rm9ybUNvbnRyb2wgZXh0ZW5kcyBVbnR5cGVkRm9ybUNvbnRyb2wge1xuICBwcml2YXRlIF9fZW9Gb3JtRWxlbWVudDtcblxuICBwdWJsaWMgc2V0IF9lb0Zvcm1FbGVtZW50KHYpIHtcbiAgICB0aGlzLl9fZW9Gb3JtRWxlbWVudCA9IHY7XG4gIH07XG5cbiAgcHVibGljIGdldCBfZW9Gb3JtRWxlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5fX2VvRm9ybUVsZW1lbnQ7XG4gIH1cbn1cbiJdfQ==
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL29iamVjdC1mb3JtL29iamVjdC1mb3JtL29iamVjdC1mb3JtLWNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEQsaURBQWlEO0FBRWpELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxrQkFBa0I7SUFHdkQsSUFBVyxjQUFjLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQUEsQ0FBQztJQUVGLElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtVbnR5cGVkRm9ybUNvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbi8vIGV4dGVuc2lvbnMgb2YgdGhlIGRlZmF1bHQgYW5ndWxhciBmb3JtIGNvbnRyb2xcclxuXHJcbmV4cG9ydCBjbGFzcyBPYmplY3RGb3JtQ29udHJvbCBleHRlbmRzIFVudHlwZWRGb3JtQ29udHJvbCB7XHJcbiAgcHJpdmF0ZSBfX2VvRm9ybUVsZW1lbnQ7XHJcblxyXG4gIHB1YmxpYyBzZXQgX2VvRm9ybUVsZW1lbnQodikge1xyXG4gICAgdGhpcy5fX2VvRm9ybUVsZW1lbnQgPSB2O1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBnZXQgX2VvRm9ybUVsZW1lbnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fX2VvRm9ybUVsZW1lbnQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -63,11 +63,11 @@ export class ObjectFormGroupComponent {
63
63
  return parentFormElement && parentFormElement.type === 'o2mGroupStack';
64
64
  }
65
65
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ObjectFormGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
66
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: ObjectFormGroupComponent, selector: "eo-form-group", inputs: { situation: "situation", skipToggle: "skipToggle", groupd: ["group", "groupd"], noGroupLabels: "noGroupLabels" }, ngImport: i0, template: "<div *ngIf=\"group\" [ngSwitch]=\"groupType\"\n class=\"form-element {{group._eoFormGroup ? group._eoFormGroup.type : 'o2mControlWrap'}} align-{{(group._eoFormGroup && group._eoFormGroup.layout) ? group._eoFormGroup.layout.align : ''}}\"\n [formGroup]=\"group\">\n\n <!-- group stacks (tabs) -->\n <yvc-tabs *ngSwitchCase=\"'stack'\" [layoutSettingsID]=\"layoutSettingsID\">\n <ng-template *ngFor=\"let key of group.controls | keys; index as i;\" [yvcTab]=\"{id: 't' + i, \n headerStyleClass: 'dirty-' + group.controls[key].dirty + ' invalid-' + group.controls[key].invalid,\n label: getObjectFormGroup(group.controls[key]).label}\">\n <div class=\"stack\" [ngClass]=\"{stackBase: group._eoFormGroup.label === 'data'}\">\n\n <eo-form-element [element]=\"group.controls[key]\"\n *ngIf=\"getObjectFormControlWrapper(group.controls[key]); else stkgroup\" [situation]=\"situation\"\n [skipToggle]=\"skipToggle\">\n <ng-template eoFormElementTemplate propertyType=\"TABLE\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <ng-container *ngTemplateOutlet=\"tplFormElementTable; context: {element, formElementRef}\"></ng-container>\n </ng-template>\n </eo-form-element>\n <ng-template #stkgroup>\n <eo-form-group [group]=\"group.controls[key]\" [noGroupLabels]=\"true\" [situation]=\"situation\"\n [skipToggle]=\"skipToggle\"></eo-form-group>\n </ng-template>\n </div>\n </ng-template>\n </yvc-tabs>\n\n <!-- group with legend -->\n <div *ngSwitchCase=\"'fieldset'\" class=\"om-group fieldset\">\n <div class=\"legend\"><span>{{group._eoFormGroup.label}}</span></div>\n\n <div>\n <ng-container *ngFor=\"let key of group.controls | keys\">\n <eo-form-element [element]=\"group.controls[key]\"\n *ngIf=\"getObjectFormControlWrapper(group.controls[key]); else fsgroup\" [situation]=\"situation\"\n [skipToggle]=\"skipToggle\">\n <ng-template eoFormElementTemplate propertyType=\"TABLE\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <ng-container *ngTemplateOutlet=\"tplFormElementTable; context: {element, formElementRef}\"></ng-container>\n </ng-template>\n </eo-form-element>\n <ng-template #fsgroup>\n <eo-form-group [group]=\"group.controls[key]\" [situation]=\"situation\"\n [skipToggle]=\"skipToggle\"></eo-form-group>\n </ng-template>\n </ng-container>\n </div>\n </div>\n\n <!-- group -->\n <ng-container class=\"om-group\" *ngSwitchCase=\"'group'\">\n <ng-container *ngFor=\"let key of group.controls | keys\">\n\n <eo-form-element [element]=\"group.controls[key]\"\n *ngIf=\"getObjectFormControlWrapper(group.controls[key]); else omgroup\" [situation]=\"situation\"\n [skipToggle]=\"skipToggle\">\n\n <ng-template eoFormElementTemplate propertyType=\"TABLE\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <ng-container *ngTemplateOutlet=\"tplFormElementTable; context: {element, formElementRef}\"></ng-container>\n </ng-template>\n\n </eo-form-element>\n <ng-template #omgroup>\n <eo-form-group [group]=\"group.controls[key]\" [situation]=\"situation\" [skipToggle]=\"skipToggle\"></eo-form-group>\n </ng-template>\n </ng-container>\n </ng-container>\n\n</div>\n\n\n<ng-template #tplFormElementTable let-element=\"element\" let-formElementRef=\"formElementRef\">\n <div class=\"table\">\n <eo-table [params]=\"{\nsituation: element._eoFormControlWrapper.situation,\nelement: formElementRef._eoFormElement,\nsize: formElementRef._eoFormElement.size,\nobject: formElementRef._eoFormElement.object\n}\" [formControl]=\"element.get(element._eoFormControlWrapper.controlName)\"></eo-table>\n </div>\n</ng-template>", styles: [":host{flex:1 1 auto}.dark .form-element .ui-tabview.ui-tabview-top>.ui-tabview-nav{border-color:rgba(var(--color-white-rgb),.2)}.dark .form-element.o2mGroupStack .ui-tabview.ui-tabview-top>.ui-tabview-nav li.ui-state-active{border-color:rgba(var(--color-white-rgb),1)}.dark .form-element .ui-widget-header .ui-state-active a,.dark .form-element .ui-widget-content .ui-state-active a,.dark .form-element .ui-state-active a{color:var(--color-white)}.dark .form-element .ui-widget-header .ui-state-default:not(.ui-state-active) a,.dark .form-element .ui-widget-content .ui-state-default:not(.ui-state-active) a,.dark .form-element .ui-state-default:not(.ui-state-active) a{color:rgba(var(--color-white-rgb),.3)}.form-element{box-sizing:border-box}.form-element.o2mGroupStack{background:rgba(var(--color-black-rgb),.02);border:1px solid rgba(var(--color-black-rgb),.1)}.form-element.o2mGroupStack p-tabview{width:100%}.form-element.o2mGroupStack a[role=tab].invalid-true .label{background-color:var(--color-error);color:var(--color-white)}.form-element.o2mGroupStack a[role=tab].invalid-true .label:after{content:\"!\";margin-inline-start:calc(var(--app-pane-padding) / 2)}.form-element.o2mGroupStack a[role=tab].dirty-true:not(.invalid-true) .label{background-color:var(--color-dirty-background);color:var(--color-dirty-font)}.form-element.o2mGroupStack.data{border:0}.form-element.align-column{display:flex;flex-flow:column nowrap;justify-content:flex-start;align-content:stretch;align-items:stretch}.form-element.align-column>*{flex:1 1 auto}.form-element.align-row{display:flex;flex-flow:row wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.form-element.align-row>*{flex:1 1 auto}.form-element.align-row>.fieldset>:not(.legend){display:flex;flex-flow:row wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.form-element.align-row>.fieldset>:not(.legend) eo-form-group{flex:1 1 auto;min-width:200px}.form-element .stackBase{padding:var(--app-pane-padding)}.form-element .stackBase>eo-form-group>.form-element>.fieldset{margin:0;padding:0;border:0;background-color:transparent}.form-element .stackBase>eo-form-group>.form-element>.fieldset>.legend{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.Tabs, selector: "yvc-tabs", inputs: ["tabs", "layoutSettingsID", "panelOrder", "panelOrderIncludeUnmentioned", "cacheViews", "tabSplitEnabled", "tabRemoveEnabled"], outputs: ["tabSplit", "tabRemove", "tabChange"] }, { kind: "directive", type: i3.YvcTabDirective, selector: "[yvcTab]", inputs: ["yvcTab"] }, { kind: "component", type: ObjectFormGroupComponent, selector: "eo-form-group", inputs: ["situation", "skipToggle", "group", "noGroupLabels"] }, { kind: "component", type: i4.FormElementComponent, selector: "eo-form-element", inputs: ["situation", "skipToggle", "element"] }, { kind: "component", type: i5.FormElementTableComponent, selector: "eo-table", inputs: ["limit", "hasPreviewFile", "minWidth", "height", "params"] }, { kind: "directive", type: i6.FormElementTemplate, selector: "[eoFormElementTemplate]", inputs: ["propertyType"] }, { kind: "pipe", type: i7.KeysPipe, name: "keys" }], encapsulation: i0.ViewEncapsulation.None }); }
66
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: ObjectFormGroupComponent, selector: "eo-form-group", inputs: { situation: "situation", skipToggle: "skipToggle", groupd: ["group", "groupd"], noGroupLabels: "noGroupLabels" }, ngImport: i0, template: "<div *ngIf=\"group\" [ngSwitch]=\"groupType\"\r\n class=\"form-element {{group._eoFormGroup ? group._eoFormGroup.type : 'o2mControlWrap'}} align-{{(group._eoFormGroup && group._eoFormGroup.layout) ? group._eoFormGroup.layout.align : ''}}\"\r\n [formGroup]=\"group\">\r\n\r\n <!-- group stacks (tabs) -->\r\n <yvc-tabs *ngSwitchCase=\"'stack'\" [layoutSettingsID]=\"layoutSettingsID\">\r\n <ng-template *ngFor=\"let key of group.controls | keys; index as i;\" [yvcTab]=\"{id: 't' + i, \r\n headerStyleClass: 'dirty-' + group.controls[key].dirty + ' invalid-' + group.controls[key].invalid,\r\n label: getObjectFormGroup(group.controls[key]).label}\">\r\n <div class=\"stack\" [ngClass]=\"{stackBase: group._eoFormGroup.label === 'data'}\">\r\n\r\n <eo-form-element [element]=\"group.controls[key]\"\r\n *ngIf=\"getObjectFormControlWrapper(group.controls[key]); else stkgroup\" [situation]=\"situation\"\r\n [skipToggle]=\"skipToggle\">\r\n <ng-template eoFormElementTemplate propertyType=\"TABLE\" let-element=\"element\"\r\n let-formElementRef=\"formElementRef\">\r\n <ng-container *ngTemplateOutlet=\"tplFormElementTable; context: {element, formElementRef}\"></ng-container>\r\n </ng-template>\r\n </eo-form-element>\r\n <ng-template #stkgroup>\r\n <eo-form-group [group]=\"group.controls[key]\" [noGroupLabels]=\"true\" [situation]=\"situation\"\r\n [skipToggle]=\"skipToggle\"></eo-form-group>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </yvc-tabs>\r\n\r\n <!-- group with legend -->\r\n <div *ngSwitchCase=\"'fieldset'\" class=\"om-group fieldset\">\r\n <div class=\"legend\"><span>{{group._eoFormGroup.label}}</span></div>\r\n\r\n <div>\r\n <ng-container *ngFor=\"let key of group.controls | keys\">\r\n <eo-form-element [element]=\"group.controls[key]\"\r\n *ngIf=\"getObjectFormControlWrapper(group.controls[key]); else fsgroup\" [situation]=\"situation\"\r\n [skipToggle]=\"skipToggle\">\r\n <ng-template eoFormElementTemplate propertyType=\"TABLE\" let-element=\"element\"\r\n let-formElementRef=\"formElementRef\">\r\n <ng-container *ngTemplateOutlet=\"tplFormElementTable; context: {element, formElementRef}\"></ng-container>\r\n </ng-template>\r\n </eo-form-element>\r\n <ng-template #fsgroup>\r\n <eo-form-group [group]=\"group.controls[key]\" [situation]=\"situation\"\r\n [skipToggle]=\"skipToggle\"></eo-form-group>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <!-- group -->\r\n <ng-container class=\"om-group\" *ngSwitchCase=\"'group'\">\r\n <ng-container *ngFor=\"let key of group.controls | keys\">\r\n\r\n <eo-form-element [element]=\"group.controls[key]\"\r\n *ngIf=\"getObjectFormControlWrapper(group.controls[key]); else omgroup\" [situation]=\"situation\"\r\n [skipToggle]=\"skipToggle\">\r\n\r\n <ng-template eoFormElementTemplate propertyType=\"TABLE\" let-element=\"element\"\r\n let-formElementRef=\"formElementRef\">\r\n <ng-container *ngTemplateOutlet=\"tplFormElementTable; context: {element, formElementRef}\"></ng-container>\r\n </ng-template>\r\n\r\n </eo-form-element>\r\n <ng-template #omgroup>\r\n <eo-form-group [group]=\"group.controls[key]\" [situation]=\"situation\" [skipToggle]=\"skipToggle\"></eo-form-group>\r\n </ng-template>\r\n </ng-container>\r\n </ng-container>\r\n\r\n</div>\r\n\r\n\r\n<ng-template #tplFormElementTable let-element=\"element\" let-formElementRef=\"formElementRef\">\r\n <div class=\"table\">\r\n <eo-table [params]=\"{\r\nsituation: element._eoFormControlWrapper.situation,\r\nelement: formElementRef._eoFormElement,\r\nsize: formElementRef._eoFormElement.size,\r\nobject: formElementRef._eoFormElement.object\r\n}\" [formControl]=\"element.get(element._eoFormControlWrapper.controlName)\"></eo-table>\r\n </div>\r\n</ng-template>", styles: [":host{flex:1 1 auto}.dark .form-element .ui-tabview.ui-tabview-top>.ui-tabview-nav{border-color:rgba(var(--color-white-rgb),.2)}.dark .form-element.o2mGroupStack .ui-tabview.ui-tabview-top>.ui-tabview-nav li.ui-state-active{border-color:rgba(var(--color-white-rgb),1)}.dark .form-element .ui-widget-header .ui-state-active a,.dark .form-element .ui-widget-content .ui-state-active a,.dark .form-element .ui-state-active a{color:var(--color-white)}.dark .form-element .ui-widget-header .ui-state-default:not(.ui-state-active) a,.dark .form-element .ui-widget-content .ui-state-default:not(.ui-state-active) a,.dark .form-element .ui-state-default:not(.ui-state-active) a{color:rgba(var(--color-white-rgb),.3)}.form-element{box-sizing:border-box}.form-element.o2mGroupStack{background:rgba(var(--color-black-rgb),.02);border:1px solid rgba(var(--color-black-rgb),.1)}.form-element.o2mGroupStack p-tabview{width:100%}.form-element.o2mGroupStack a[role=tab].invalid-true .label{background-color:var(--color-error);color:var(--color-white)}.form-element.o2mGroupStack a[role=tab].invalid-true .label:after{content:\"!\";margin-inline-start:calc(var(--app-pane-padding) / 2)}.form-element.o2mGroupStack a[role=tab].dirty-true:not(.invalid-true) .label{background-color:var(--color-dirty-background);color:var(--color-dirty-font)}.form-element.o2mGroupStack.data{border:0}.form-element.align-column{display:flex;flex-flow:column nowrap;justify-content:flex-start;align-content:stretch;align-items:stretch}.form-element.align-column>*{flex:1 1 auto}.form-element.align-row{display:flex;flex-flow:row wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.form-element.align-row>*{flex:1 1 auto}.form-element.align-row>.fieldset>:not(.legend){display:flex;flex-flow:row wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.form-element.align-row>.fieldset>:not(.legend) eo-form-group{flex:1 1 auto;min-width:200px}.form-element .stackBase{padding:var(--app-pane-padding)}.form-element .stackBase>eo-form-group>.form-element>.fieldset{margin:0;padding:0;border:0;background-color:transparent}.form-element .stackBase>eo-form-group>.form-element>.fieldset>.legend{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.Tabs, selector: "yvc-tabs", inputs: ["tabs", "layoutSettingsID", "panelOrder", "panelOrderIncludeUnmentioned", "cacheViews", "tabSplitEnabled", "tabRemoveEnabled"], outputs: ["tabSplit", "tabRemove", "tabChange"] }, { kind: "directive", type: i3.YvcTabDirective, selector: "[yvcTab]", inputs: ["yvcTab"] }, { kind: "component", type: ObjectFormGroupComponent, selector: "eo-form-group", inputs: ["situation", "skipToggle", "group", "noGroupLabels"] }, { kind: "component", type: i4.FormElementComponent, selector: "eo-form-element", inputs: ["situation", "skipToggle", "element"] }, { kind: "component", type: i5.FormElementTableComponent, selector: "eo-table", inputs: ["limit", "hasPreviewFile", "minWidth", "height", "params"] }, { kind: "directive", type: i6.FormElementTemplate, selector: "[eoFormElementTemplate]", inputs: ["propertyType"] }, { kind: "pipe", type: i7.KeysPipe, name: "keys" }], encapsulation: i0.ViewEncapsulation.None }); }
67
67
  }
68
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ObjectFormGroupComponent, decorators: [{
69
69
  type: Component,
70
- args: [{ selector: 'eo-form-group', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"group\" [ngSwitch]=\"groupType\"\n class=\"form-element {{group._eoFormGroup ? group._eoFormGroup.type : 'o2mControlWrap'}} align-{{(group._eoFormGroup && group._eoFormGroup.layout) ? group._eoFormGroup.layout.align : ''}}\"\n [formGroup]=\"group\">\n\n <!-- group stacks (tabs) -->\n <yvc-tabs *ngSwitchCase=\"'stack'\" [layoutSettingsID]=\"layoutSettingsID\">\n <ng-template *ngFor=\"let key of group.controls | keys; index as i;\" [yvcTab]=\"{id: 't' + i, \n headerStyleClass: 'dirty-' + group.controls[key].dirty + ' invalid-' + group.controls[key].invalid,\n label: getObjectFormGroup(group.controls[key]).label}\">\n <div class=\"stack\" [ngClass]=\"{stackBase: group._eoFormGroup.label === 'data'}\">\n\n <eo-form-element [element]=\"group.controls[key]\"\n *ngIf=\"getObjectFormControlWrapper(group.controls[key]); else stkgroup\" [situation]=\"situation\"\n [skipToggle]=\"skipToggle\">\n <ng-template eoFormElementTemplate propertyType=\"TABLE\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <ng-container *ngTemplateOutlet=\"tplFormElementTable; context: {element, formElementRef}\"></ng-container>\n </ng-template>\n </eo-form-element>\n <ng-template #stkgroup>\n <eo-form-group [group]=\"group.controls[key]\" [noGroupLabels]=\"true\" [situation]=\"situation\"\n [skipToggle]=\"skipToggle\"></eo-form-group>\n </ng-template>\n </div>\n </ng-template>\n </yvc-tabs>\n\n <!-- group with legend -->\n <div *ngSwitchCase=\"'fieldset'\" class=\"om-group fieldset\">\n <div class=\"legend\"><span>{{group._eoFormGroup.label}}</span></div>\n\n <div>\n <ng-container *ngFor=\"let key of group.controls | keys\">\n <eo-form-element [element]=\"group.controls[key]\"\n *ngIf=\"getObjectFormControlWrapper(group.controls[key]); else fsgroup\" [situation]=\"situation\"\n [skipToggle]=\"skipToggle\">\n <ng-template eoFormElementTemplate propertyType=\"TABLE\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <ng-container *ngTemplateOutlet=\"tplFormElementTable; context: {element, formElementRef}\"></ng-container>\n </ng-template>\n </eo-form-element>\n <ng-template #fsgroup>\n <eo-form-group [group]=\"group.controls[key]\" [situation]=\"situation\"\n [skipToggle]=\"skipToggle\"></eo-form-group>\n </ng-template>\n </ng-container>\n </div>\n </div>\n\n <!-- group -->\n <ng-container class=\"om-group\" *ngSwitchCase=\"'group'\">\n <ng-container *ngFor=\"let key of group.controls | keys\">\n\n <eo-form-element [element]=\"group.controls[key]\"\n *ngIf=\"getObjectFormControlWrapper(group.controls[key]); else omgroup\" [situation]=\"situation\"\n [skipToggle]=\"skipToggle\">\n\n <ng-template eoFormElementTemplate propertyType=\"TABLE\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <ng-container *ngTemplateOutlet=\"tplFormElementTable; context: {element, formElementRef}\"></ng-container>\n </ng-template>\n\n </eo-form-element>\n <ng-template #omgroup>\n <eo-form-group [group]=\"group.controls[key]\" [situation]=\"situation\" [skipToggle]=\"skipToggle\"></eo-form-group>\n </ng-template>\n </ng-container>\n </ng-container>\n\n</div>\n\n\n<ng-template #tplFormElementTable let-element=\"element\" let-formElementRef=\"formElementRef\">\n <div class=\"table\">\n <eo-table [params]=\"{\nsituation: element._eoFormControlWrapper.situation,\nelement: formElementRef._eoFormElement,\nsize: formElementRef._eoFormElement.size,\nobject: formElementRef._eoFormElement.object\n}\" [formControl]=\"element.get(element._eoFormControlWrapper.controlName)\"></eo-table>\n </div>\n</ng-template>", styles: [":host{flex:1 1 auto}.dark .form-element .ui-tabview.ui-tabview-top>.ui-tabview-nav{border-color:rgba(var(--color-white-rgb),.2)}.dark .form-element.o2mGroupStack .ui-tabview.ui-tabview-top>.ui-tabview-nav li.ui-state-active{border-color:rgba(var(--color-white-rgb),1)}.dark .form-element .ui-widget-header .ui-state-active a,.dark .form-element .ui-widget-content .ui-state-active a,.dark .form-element .ui-state-active a{color:var(--color-white)}.dark .form-element .ui-widget-header .ui-state-default:not(.ui-state-active) a,.dark .form-element .ui-widget-content .ui-state-default:not(.ui-state-active) a,.dark .form-element .ui-state-default:not(.ui-state-active) a{color:rgba(var(--color-white-rgb),.3)}.form-element{box-sizing:border-box}.form-element.o2mGroupStack{background:rgba(var(--color-black-rgb),.02);border:1px solid rgba(var(--color-black-rgb),.1)}.form-element.o2mGroupStack p-tabview{width:100%}.form-element.o2mGroupStack a[role=tab].invalid-true .label{background-color:var(--color-error);color:var(--color-white)}.form-element.o2mGroupStack a[role=tab].invalid-true .label:after{content:\"!\";margin-inline-start:calc(var(--app-pane-padding) / 2)}.form-element.o2mGroupStack a[role=tab].dirty-true:not(.invalid-true) .label{background-color:var(--color-dirty-background);color:var(--color-dirty-font)}.form-element.o2mGroupStack.data{border:0}.form-element.align-column{display:flex;flex-flow:column nowrap;justify-content:flex-start;align-content:stretch;align-items:stretch}.form-element.align-column>*{flex:1 1 auto}.form-element.align-row{display:flex;flex-flow:row wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.form-element.align-row>*{flex:1 1 auto}.form-element.align-row>.fieldset>:not(.legend){display:flex;flex-flow:row wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.form-element.align-row>.fieldset>:not(.legend) eo-form-group{flex:1 1 auto;min-width:200px}.form-element .stackBase{padding:var(--app-pane-padding)}.form-element .stackBase>eo-form-group>.form-element>.fieldset{margin:0;padding:0;border:0;background-color:transparent}.form-element .stackBase>eo-form-group>.form-element>.fieldset>.legend{display:none}\n"] }]
70
+ args: [{ selector: 'eo-form-group', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"group\" [ngSwitch]=\"groupType\"\r\n class=\"form-element {{group._eoFormGroup ? group._eoFormGroup.type : 'o2mControlWrap'}} align-{{(group._eoFormGroup && group._eoFormGroup.layout) ? group._eoFormGroup.layout.align : ''}}\"\r\n [formGroup]=\"group\">\r\n\r\n <!-- group stacks (tabs) -->\r\n <yvc-tabs *ngSwitchCase=\"'stack'\" [layoutSettingsID]=\"layoutSettingsID\">\r\n <ng-template *ngFor=\"let key of group.controls | keys; index as i;\" [yvcTab]=\"{id: 't' + i, \r\n headerStyleClass: 'dirty-' + group.controls[key].dirty + ' invalid-' + group.controls[key].invalid,\r\n label: getObjectFormGroup(group.controls[key]).label}\">\r\n <div class=\"stack\" [ngClass]=\"{stackBase: group._eoFormGroup.label === 'data'}\">\r\n\r\n <eo-form-element [element]=\"group.controls[key]\"\r\n *ngIf=\"getObjectFormControlWrapper(group.controls[key]); else stkgroup\" [situation]=\"situation\"\r\n [skipToggle]=\"skipToggle\">\r\n <ng-template eoFormElementTemplate propertyType=\"TABLE\" let-element=\"element\"\r\n let-formElementRef=\"formElementRef\">\r\n <ng-container *ngTemplateOutlet=\"tplFormElementTable; context: {element, formElementRef}\"></ng-container>\r\n </ng-template>\r\n </eo-form-element>\r\n <ng-template #stkgroup>\r\n <eo-form-group [group]=\"group.controls[key]\" [noGroupLabels]=\"true\" [situation]=\"situation\"\r\n [skipToggle]=\"skipToggle\"></eo-form-group>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </yvc-tabs>\r\n\r\n <!-- group with legend -->\r\n <div *ngSwitchCase=\"'fieldset'\" class=\"om-group fieldset\">\r\n <div class=\"legend\"><span>{{group._eoFormGroup.label}}</span></div>\r\n\r\n <div>\r\n <ng-container *ngFor=\"let key of group.controls | keys\">\r\n <eo-form-element [element]=\"group.controls[key]\"\r\n *ngIf=\"getObjectFormControlWrapper(group.controls[key]); else fsgroup\" [situation]=\"situation\"\r\n [skipToggle]=\"skipToggle\">\r\n <ng-template eoFormElementTemplate propertyType=\"TABLE\" let-element=\"element\"\r\n let-formElementRef=\"formElementRef\">\r\n <ng-container *ngTemplateOutlet=\"tplFormElementTable; context: {element, formElementRef}\"></ng-container>\r\n </ng-template>\r\n </eo-form-element>\r\n <ng-template #fsgroup>\r\n <eo-form-group [group]=\"group.controls[key]\" [situation]=\"situation\"\r\n [skipToggle]=\"skipToggle\"></eo-form-group>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <!-- group -->\r\n <ng-container class=\"om-group\" *ngSwitchCase=\"'group'\">\r\n <ng-container *ngFor=\"let key of group.controls | keys\">\r\n\r\n <eo-form-element [element]=\"group.controls[key]\"\r\n *ngIf=\"getObjectFormControlWrapper(group.controls[key]); else omgroup\" [situation]=\"situation\"\r\n [skipToggle]=\"skipToggle\">\r\n\r\n <ng-template eoFormElementTemplate propertyType=\"TABLE\" let-element=\"element\"\r\n let-formElementRef=\"formElementRef\">\r\n <ng-container *ngTemplateOutlet=\"tplFormElementTable; context: {element, formElementRef}\"></ng-container>\r\n </ng-template>\r\n\r\n </eo-form-element>\r\n <ng-template #omgroup>\r\n <eo-form-group [group]=\"group.controls[key]\" [situation]=\"situation\" [skipToggle]=\"skipToggle\"></eo-form-group>\r\n </ng-template>\r\n </ng-container>\r\n </ng-container>\r\n\r\n</div>\r\n\r\n\r\n<ng-template #tplFormElementTable let-element=\"element\" let-formElementRef=\"formElementRef\">\r\n <div class=\"table\">\r\n <eo-table [params]=\"{\r\nsituation: element._eoFormControlWrapper.situation,\r\nelement: formElementRef._eoFormElement,\r\nsize: formElementRef._eoFormElement.size,\r\nobject: formElementRef._eoFormElement.object\r\n}\" [formControl]=\"element.get(element._eoFormControlWrapper.controlName)\"></eo-table>\r\n </div>\r\n</ng-template>", styles: [":host{flex:1 1 auto}.dark .form-element .ui-tabview.ui-tabview-top>.ui-tabview-nav{border-color:rgba(var(--color-white-rgb),.2)}.dark .form-element.o2mGroupStack .ui-tabview.ui-tabview-top>.ui-tabview-nav li.ui-state-active{border-color:rgba(var(--color-white-rgb),1)}.dark .form-element .ui-widget-header .ui-state-active a,.dark .form-element .ui-widget-content .ui-state-active a,.dark .form-element .ui-state-active a{color:var(--color-white)}.dark .form-element .ui-widget-header .ui-state-default:not(.ui-state-active) a,.dark .form-element .ui-widget-content .ui-state-default:not(.ui-state-active) a,.dark .form-element .ui-state-default:not(.ui-state-active) a{color:rgba(var(--color-white-rgb),.3)}.form-element{box-sizing:border-box}.form-element.o2mGroupStack{background:rgba(var(--color-black-rgb),.02);border:1px solid rgba(var(--color-black-rgb),.1)}.form-element.o2mGroupStack p-tabview{width:100%}.form-element.o2mGroupStack a[role=tab].invalid-true .label{background-color:var(--color-error);color:var(--color-white)}.form-element.o2mGroupStack a[role=tab].invalid-true .label:after{content:\"!\";margin-inline-start:calc(var(--app-pane-padding) / 2)}.form-element.o2mGroupStack a[role=tab].dirty-true:not(.invalid-true) .label{background-color:var(--color-dirty-background);color:var(--color-dirty-font)}.form-element.o2mGroupStack.data{border:0}.form-element.align-column{display:flex;flex-flow:column nowrap;justify-content:flex-start;align-content:stretch;align-items:stretch}.form-element.align-column>*{flex:1 1 auto}.form-element.align-row{display:flex;flex-flow:row wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.form-element.align-row>*{flex:1 1 auto}.form-element.align-row>.fieldset>:not(.legend){display:flex;flex-flow:row wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.form-element.align-row>.fieldset>:not(.legend) eo-form-group{flex:1 1 auto;min-width:200px}.form-element .stackBase{padding:var(--app-pane-padding)}.form-element .stackBase>eo-form-group>.form-element>.fieldset{margin:0;padding:0;border:0;background-color:transparent}.form-element .stackBase>eo-form-group>.form-element>.fieldset>.legend{display:none}\n"] }]
71
71
  }], propDecorators: { situation: [{
72
72
  type: Input
73
73
  }], skipToggle: [{
@@ -78,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
78
78
  }], noGroupLabels: [{
79
79
  type: Input
80
80
  }] } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0tZ3JvdXAvb2JqZWN0LWZvcm0tZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0tZ3JvdXAvb2JqZWN0LWZvcm0tZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRzFFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7QUFTekUsTUFBTSxPQUFPLHdCQUF3QjtJQVByQztRQVNVLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBRXBELFVBQUssR0FBRztZQUNkLEtBQUssRUFBRSxPQUFPO1lBQ2QsS0FBSyxFQUFFLE9BQU87WUFDZCxRQUFRLEVBQUUsVUFBVTtTQUNyQixDQUFDO1FBUUYsb0RBQW9EO1FBQzNDLGNBQVMsR0FBRyxNQUFNLENBQUM7S0F1RDdCO0lBcERDLElBQ0ksTUFBTSxDQUFDLENBQWtCO1FBQzNCLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLE1BQU0sQ0FBQztZQUNsRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxNQUFNLENBQUM7WUFDbEYsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdkMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUlELGtCQUFrQixDQUFDLE9BQU87UUFDeEIsT0FBUSxPQUEyQixDQUFDLFlBQVksQ0FBQztJQUNuRCxDQUFDO0lBRUQsMkJBQTJCLENBQUMsT0FBTztRQUNqQyxPQUFRLE9BQW9DLENBQUMscUJBQXFCLENBQUM7SUFDckUsQ0FBQztJQUdPLFlBQVk7UUFDbEIsNERBQTREO1FBQzVELHlCQUF5QjtRQUN6QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLEtBQUssZUFBZSxFQUFFLENBQUM7Z0JBRXJELGtEQUFrRDtnQkFDbEQsbUZBQW1GO2dCQUNuRixtQ0FBbUM7Z0JBQ25DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7Z0JBQ3RFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFFdkUsOEVBQThFO2dCQUM5RSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDakUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDMUIsQ0FBQztnQkFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQzFCLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDaEQsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQzdLLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQXNCO1FBQzFDLElBQUksaUJBQWlCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNyRCxPQUFPLGlCQUFpQixJQUFJLGlCQUFpQixDQUFDLElBQUksS0FBSyxlQUFlLENBQUM7SUFDekUsQ0FBQzs4R0F2RVUsd0JBQXdCO2tHQUF4Qix3QkFBd0IsZ0xDWnJDLGkxSEFpRmMsbXlIRHJFRCx3QkFBd0I7OzJGQUF4Qix3QkFBd0I7a0JBUHBDLFNBQVM7K0JBQ0UsZUFBZSxpQkFJVixpQkFBaUIsQ0FBQyxJQUFJOzhCQW1CNUIsU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdGLE1BQU07c0JBRFQsS0FBSzt1QkFBQyxPQUFPO2dCQVlMLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFb0Zvcm1Hcm91cFdyYXBwZXIsIE9iamVjdEZvcm1Db250cm9sV3JhcHBlcn0gZnJvbSAnLi4vb2JqZWN0LWZvcm0tY29udHJvbC13cmFwcGVyJztcbmltcG9ydCB7RW9Gb3JtR3JvdXAsIE9iamVjdEZvcm1Hcm91cH0gZnJvbSAnLi4vb2JqZWN0LWZvcm0tZ3JvdXAubW9kZWwnO1xuaW1wb3J0IHtPYmplY3RGb3JtSGVscGVyU2VydmljZX0gZnJvbSAnLi4vLi4vb2JqZWN0LWZvcm0taGVscGVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1mb3JtLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL29iamVjdC1mb3JtLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb2JqZWN0LWZvcm0tZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgLy8gY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0Rm9ybUdyb3VwQ29tcG9uZW50IHtcblxuICBwcml2YXRlIGZvcm1IZWxwZXJTZXJ2aWNlID0gaW5qZWN0KE9iamVjdEZvcm1IZWxwZXJTZXJ2aWNlKTtcblxuICBwcml2YXRlIHR5cGVzID0ge1xuICAgIFNUQUNLOiAnc3RhY2snLFxuICAgIEdST1VQOiAnZ3JvdXAnLFxuICAgIEZJRUxEU0VUOiAnZmllbGRzZXQnXG4gIH07XG5cbiAgZ3JvdXA6IE9iamVjdEZvcm1Hcm91cDtcbiAgZ3JvdXBUeXBlOiBzdHJpbmc7XG4gIGlzQ29yZTogYm9vbGVhbjtcbiAgaXNEYXRhOiBib29sZWFuO1xuICBsYXlvdXRTZXR0aW5nc0lEPzogc3RyaW5nO1xuXG4gIC8vIGZvcm0gc2l0dWF0aW9uLCBpZiBub3Qgc2V0IGRlZmF1bHQgd2lsbCBiZSAnRURJVCdcbiAgQElucHV0KCkgc2l0dWF0aW9uID0gJ0VESVQnO1xuICBASW5wdXQoKSBza2lwVG9nZ2xlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgnZ3JvdXAnKVxuICBzZXQgZ3JvdXBkKGc6IE9iamVjdEZvcm1Hcm91cCkge1xuICAgIGlmIChnKSB7XG4gICAgICB0aGlzLmdyb3VwID0gZztcbiAgICAgIHRoaXMuaXNDb3JlID0gdGhpcy5ncm91cC5fZW9Gb3JtR3JvdXAgJiYgdGhpcy5ncm91cC5fZW9Gb3JtR3JvdXAubGFiZWwgPT09ICdjb3JlJztcbiAgICAgIHRoaXMuaXNEYXRhID0gdGhpcy5ncm91cC5fZW9Gb3JtR3JvdXAgJiYgdGhpcy5ncm91cC5fZW9Gb3JtR3JvdXAubGFiZWwgPT09ICdkYXRhJztcbiAgICAgIHRoaXMuZ3JvdXBUeXBlID0gdGhpcy5nZXRHcm91cFR5cGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ncm91cCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCkgbm9Hcm91cExhYmVsczogYm9vbGVhbjtcblxuICBnZXRPYmplY3RGb3JtR3JvdXAoY29udHJvbCk6IEVvRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gKGNvbnRyb2wgYXMgT2JqZWN0Rm9ybUdyb3VwKS5fZW9Gb3JtR3JvdXA7XG4gIH1cblxuICBnZXRPYmplY3RGb3JtQ29udHJvbFdyYXBwZXIoY29udHJvbCk6IEVvRm9ybUdyb3VwV3JhcHBlciB7XG4gICAgcmV0dXJuIChjb250cm9sIGFzIE9iamVjdEZvcm1Db250cm9sV3JhcHBlcikuX2VvRm9ybUNvbnRyb2xXcmFwcGVyO1xuICB9XG5cblxuICBwcml2YXRlIGdldEdyb3VwVHlwZSgpIHtcbiAgICAvLyBtYXkgYXMgd2VsbCBiZSBhbiBPYmplY3RGb3JtQ29udHJvbFdyYXBwZXIgc28gY2hlY2sgZmlyc3RcbiAgICAvLyBpZiB3ZSBnb3QgYSByZWFsIGdyb3VwXG4gICAgaWYgKHRoaXMuZ3JvdXAuX2VvRm9ybUdyb3VwKSB7XG4gICAgICBpZiAodGhpcy5ncm91cC5fZW9Gb3JtR3JvdXAudHlwZSA9PT0gJ28ybUdyb3VwU3RhY2snKSB7XG5cbiAgICAgICAgLy8gR3JvdXAgc3RhY2tzIGFyZSBhYmxlIHRvIHByZXNlcnZlIHRoZWlyIHN0YXRlLiBcbiAgICAgICAgLy8gVGhleSBhcmUgcmVuZGVyZWQgYXMgdGFicyBhbmQgc2hvdWxkIHJlbWVtYmVyIHRoZSBzZWxlY3RlZCB0YWIsIHNvIHdlJ2xsIHNldCBhbiBcbiAgICAgICAgLy8gSUQgYW5kIHJlZ2lzdGVyIHRoZW0gZm9yIGNsZWFudXBcbiAgICAgICAgdGhpcy5sYXlvdXRTZXR0aW5nc0lEID0gJ2VvLmZvcm0uc3RhY2suJyArIHRoaXMuZ3JvdXAuX2VvRm9ybUdyb3VwLmlkO1xuICAgICAgICB0aGlzLmZvcm1IZWxwZXJTZXJ2aWNlLmFkZFRlbXBvcmFyeVN0b3JhZ2VFbnRyeSh0aGlzLmxheW91dFNldHRpbmdzSUQpO1xuXG4gICAgICAgIC8vIGZvciBkYXRhIHNlY3Rpb24gb25seSByZW5kZXIgYXMgc3RhY2sgKHRhYnMpIGlmIHdlIGhhdmUgbW9yZSB0aGFuIG9uZSBjaGlsZFxuICAgICAgICBpZiAodGhpcy5pc0RhdGEgJiYgT2JqZWN0LmtleXModGhpcy5ncm91cC5jb250cm9scykubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMudHlwZXMuR1JPVVA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZXMuU1RBQ0s7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5ncm91cC5fZW9Gb3JtR3JvdXAudHlwZSA9PT0gJ28ybUdyb3VwJykge1xuICAgICAgICByZXR1cm4gKHRoaXMuZ3JvdXAuX2VvRm9ybUdyb3VwLmxhYmVsICYmICEodGhpcy5pc0NvcmUgfHwgdGhpcy5pc0RhdGEpICYmICF0aGlzLm5vR3JvdXBMYWJlbHMgJiYgIXRoaXMucGFyZW50SXNTdGFjayh0aGlzLmdyb3VwKSkgPyB0aGlzLnR5cGVzLkZJRUxEU0VUIDogdGhpcy50eXBlcy5HUk9VUDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLnR5cGVzLkdST1VQO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGFyZW50SXNTdGFjayhncm91cDogT2JqZWN0Rm9ybUdyb3VwKTogYm9vbGVhbiB7XG4gICAgbGV0IHBhcmVudEZvcm1FbGVtZW50ID0gZ3JvdXAucGFyZW50WydfZW9Gb3JtR3JvdXAnXTtcbiAgICByZXR1cm4gcGFyZW50Rm9ybUVsZW1lbnQgJiYgcGFyZW50Rm9ybUVsZW1lbnQudHlwZSA9PT0gJ28ybUdyb3VwU3RhY2snO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiZ3JvdXBcIiBbbmdTd2l0Y2hdPVwiZ3JvdXBUeXBlXCJcbiAgY2xhc3M9XCJmb3JtLWVsZW1lbnQge3tncm91cC5fZW9Gb3JtR3JvdXAgPyBncm91cC5fZW9Gb3JtR3JvdXAudHlwZSA6ICdvMm1Db250cm9sV3JhcCd9fSBhbGlnbi17eyhncm91cC5fZW9Gb3JtR3JvdXAgJiYgZ3JvdXAuX2VvRm9ybUdyb3VwLmxheW91dCkgPyBncm91cC5fZW9Gb3JtR3JvdXAubGF5b3V0LmFsaWduIDogJyd9fVwiXG4gIFtmb3JtR3JvdXBdPVwiZ3JvdXBcIj5cblxuICA8IS0tIGdyb3VwIHN0YWNrcyAodGFicykgLS0+XG4gIDx5dmMtdGFicyAqbmdTd2l0Y2hDYXNlPVwiJ3N0YWNrJ1wiIFtsYXlvdXRTZXR0aW5nc0lEXT1cImxheW91dFNldHRpbmdzSURcIj5cbiAgICA8bmctdGVtcGxhdGUgKm5nRm9yPVwibGV0IGtleSBvZiBncm91cC5jb250cm9scyB8IGtleXM7IGluZGV4IGFzIGk7XCIgW3l2Y1RhYl09XCJ7aWQ6ICd0JyArIGksIFxuICAgIGhlYWRlclN0eWxlQ2xhc3M6ICdkaXJ0eS0nICsgZ3JvdXAuY29udHJvbHNba2V5XS5kaXJ0eSArICcgaW52YWxpZC0nICsgZ3JvdXAuY29udHJvbHNba2V5XS5pbnZhbGlkLFxuICAgIGxhYmVsOiBnZXRPYmplY3RGb3JtR3JvdXAoZ3JvdXAuY29udHJvbHNba2V5XSkubGFiZWx9XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic3RhY2tcIiBbbmdDbGFzc109XCJ7c3RhY2tCYXNlOiBncm91cC5fZW9Gb3JtR3JvdXAubGFiZWwgPT09ICdkYXRhJ31cIj5cblxuICAgICAgICA8ZW8tZm9ybS1lbGVtZW50IFtlbGVtZW50XT1cImdyb3VwLmNvbnRyb2xzW2tleV1cIlxuICAgICAgICAgICpuZ0lmPVwiZ2V0T2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyKGdyb3VwLmNvbnRyb2xzW2tleV0pOyBlbHNlIHN0a2dyb3VwXCIgW3NpdHVhdGlvbl09XCJzaXR1YXRpb25cIlxuICAgICAgICAgIFtza2lwVG9nZ2xlXT1cInNraXBUb2dnbGVcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgZW9Gb3JtRWxlbWVudFRlbXBsYXRlIHByb3BlcnR5VHlwZT1cIlRBQkxFXCIgbGV0LWVsZW1lbnQ9XCJlbGVtZW50XCJcbiAgICAgICAgICAgIGxldC1mb3JtRWxlbWVudFJlZj1cImZvcm1FbGVtZW50UmVmXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidHBsRm9ybUVsZW1lbnRUYWJsZTsgY29udGV4dDoge2VsZW1lbnQsIGZvcm1FbGVtZW50UmVmfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZW8tZm9ybS1lbGVtZW50PlxuICAgICAgICA8bmctdGVtcGxhdGUgI3N0a2dyb3VwPlxuICAgICAgICAgIDxlby1mb3JtLWdyb3VwIFtncm91cF09XCJncm91cC5jb250cm9sc1trZXldXCIgW25vR3JvdXBMYWJlbHNdPVwidHJ1ZVwiIFtzaXR1YXRpb25dPVwic2l0dWF0aW9uXCJcbiAgICAgICAgICAgIFtza2lwVG9nZ2xlXT1cInNraXBUb2dnbGVcIj48L2VvLWZvcm0tZ3JvdXA+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3l2Yy10YWJzPlxuXG4gIDwhLS0gZ3JvdXAgd2l0aCBsZWdlbmQgLS0+XG4gIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidmaWVsZHNldCdcIiBjbGFzcz1cIm9tLWdyb3VwIGZpZWxkc2V0XCI+XG4gICAgPGRpdiBjbGFzcz1cImxlZ2VuZFwiPjxzcGFuPnt7Z3JvdXAuX2VvRm9ybUdyb3VwLmxhYmVsfX08L3NwYW4+PC9kaXY+XG5cbiAgICA8ZGl2PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQga2V5IG9mIGdyb3VwLmNvbnRyb2xzIHwga2V5c1wiPlxuICAgICAgICA8ZW8tZm9ybS1lbGVtZW50IFtlbGVtZW50XT1cImdyb3VwLmNvbnRyb2xzW2tleV1cIlxuICAgICAgICAgICpuZ0lmPVwiZ2V0T2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyKGdyb3VwLmNvbnRyb2xzW2tleV0pOyBlbHNlIGZzZ3JvdXBcIiBbc2l0dWF0aW9uXT1cInNpdHVhdGlvblwiXG4gICAgICAgICAgW3NraXBUb2dnbGVdPVwic2tpcFRvZ2dsZVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBlb0Zvcm1FbGVtZW50VGVtcGxhdGUgcHJvcGVydHlUeXBlPVwiVEFCTEVcIiBsZXQtZWxlbWVudD1cImVsZW1lbnRcIlxuICAgICAgICAgICAgbGV0LWZvcm1FbGVtZW50UmVmPVwiZm9ybUVsZW1lbnRSZWZcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cGxGb3JtRWxlbWVudFRhYmxlOyBjb250ZXh0OiB7ZWxlbWVudCwgZm9ybUVsZW1lbnRSZWZ9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9lby1mb3JtLWVsZW1lbnQ+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZnNncm91cD5cbiAgICAgICAgICA8ZW8tZm9ybS1ncm91cCBbZ3JvdXBdPVwiZ3JvdXAuY29udHJvbHNba2V5XVwiIFtzaXR1YXRpb25dPVwic2l0dWF0aW9uXCJcbiAgICAgICAgICAgIFtza2lwVG9nZ2xlXT1cInNraXBUb2dnbGVcIj48L2VvLWZvcm0tZ3JvdXA+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBncm91cCAtLT5cbiAgPG5nLWNvbnRhaW5lciBjbGFzcz1cIm9tLWdyb3VwXCIgKm5nU3dpdGNoQ2FzZT1cIidncm91cCdcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBrZXkgb2YgZ3JvdXAuY29udHJvbHMgfCBrZXlzXCI+XG5cbiAgICAgIDxlby1mb3JtLWVsZW1lbnQgW2VsZW1lbnRdPVwiZ3JvdXAuY29udHJvbHNba2V5XVwiXG4gICAgICAgICpuZ0lmPVwiZ2V0T2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyKGdyb3VwLmNvbnRyb2xzW2tleV0pOyBlbHNlIG9tZ3JvdXBcIiBbc2l0dWF0aW9uXT1cInNpdHVhdGlvblwiXG4gICAgICAgIFtza2lwVG9nZ2xlXT1cInNraXBUb2dnbGVcIj5cblxuICAgICAgICA8bmctdGVtcGxhdGUgZW9Gb3JtRWxlbWVudFRlbXBsYXRlIHByb3BlcnR5VHlwZT1cIlRBQkxFXCIgbGV0LWVsZW1lbnQ9XCJlbGVtZW50XCJcbiAgICAgICAgICBsZXQtZm9ybUVsZW1lbnRSZWY9XCJmb3JtRWxlbWVudFJlZlwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cGxGb3JtRWxlbWVudFRhYmxlOyBjb250ZXh0OiB7ZWxlbWVudCwgZm9ybUVsZW1lbnRSZWZ9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDwvZW8tZm9ybS1lbGVtZW50PlxuICAgICAgPG5nLXRlbXBsYXRlICNvbWdyb3VwPlxuICAgICAgICA8ZW8tZm9ybS1ncm91cCBbZ3JvdXBdPVwiZ3JvdXAuY29udHJvbHNba2V5XVwiIFtzaXR1YXRpb25dPVwic2l0dWF0aW9uXCIgW3NraXBUb2dnbGVdPVwic2tpcFRvZ2dsZVwiPjwvZW8tZm9ybS1ncm91cD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuXG48L2Rpdj5cblxuXG48bmctdGVtcGxhdGUgI3RwbEZvcm1FbGVtZW50VGFibGUgbGV0LWVsZW1lbnQ9XCJlbGVtZW50XCIgbGV0LWZvcm1FbGVtZW50UmVmPVwiZm9ybUVsZW1lbnRSZWZcIj5cbiAgPGRpdiBjbGFzcz1cInRhYmxlXCI+XG4gICAgPGVvLXRhYmxlIFtwYXJhbXNdPVwie1xuc2l0dWF0aW9uOiBlbGVtZW50Ll9lb0Zvcm1Db250cm9sV3JhcHBlci5zaXR1YXRpb24sXG5lbGVtZW50OiBmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudCxcbnNpemU6IGZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnNpemUsXG5vYmplY3Q6IGZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50Lm9iamVjdFxufVwiIFtmb3JtQ29udHJvbF09XCJlbGVtZW50LmdldChlbGVtZW50Ll9lb0Zvcm1Db250cm9sV3JhcHBlci5jb250cm9sTmFtZSlcIj48L2VvLXRhYmxlPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+Il19
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0tZ3JvdXAvb2JqZWN0LWZvcm0tZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0tZ3JvdXAvb2JqZWN0LWZvcm0tZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRzFFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7QUFTekUsTUFBTSxPQUFPLHdCQUF3QjtJQVByQztRQVNVLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBRXBELFVBQUssR0FBRztZQUNkLEtBQUssRUFBRSxPQUFPO1lBQ2QsS0FBSyxFQUFFLE9BQU87WUFDZCxRQUFRLEVBQUUsVUFBVTtTQUNyQixDQUFDO1FBUUYsb0RBQW9EO1FBQzNDLGNBQVMsR0FBRyxNQUFNLENBQUM7S0F1RDdCO0lBcERDLElBQ0ksTUFBTSxDQUFDLENBQWtCO1FBQzNCLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLE1BQU0sQ0FBQztZQUNsRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxNQUFNLENBQUM7WUFDbEYsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdkMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUlELGtCQUFrQixDQUFDLE9BQU87UUFDeEIsT0FBUSxPQUEyQixDQUFDLFlBQVksQ0FBQztJQUNuRCxDQUFDO0lBRUQsMkJBQTJCLENBQUMsT0FBTztRQUNqQyxPQUFRLE9BQW9DLENBQUMscUJBQXFCLENBQUM7SUFDckUsQ0FBQztJQUdPLFlBQVk7UUFDbEIsNERBQTREO1FBQzVELHlCQUF5QjtRQUN6QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLEtBQUssZUFBZSxFQUFFLENBQUM7Z0JBRXJELGtEQUFrRDtnQkFDbEQsbUZBQW1GO2dCQUNuRixtQ0FBbUM7Z0JBQ25DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7Z0JBQ3RFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFFdkUsOEVBQThFO2dCQUM5RSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDakUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDMUIsQ0FBQztnQkFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQzFCLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDaEQsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQzdLLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQXNCO1FBQzFDLElBQUksaUJBQWlCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNyRCxPQUFPLGlCQUFpQixJQUFJLGlCQUFpQixDQUFDLElBQUksS0FBSyxlQUFlLENBQUM7SUFDekUsQ0FBQzs4R0F2RVUsd0JBQXdCO2tHQUF4Qix3QkFBd0IsZ0xDWnJDLG0vSEFpRmMsbXlIRHJFRCx3QkFBd0I7OzJGQUF4Qix3QkFBd0I7a0JBUHBDLFNBQVM7K0JBQ0UsZUFBZSxpQkFJVixpQkFBaUIsQ0FBQyxJQUFJOzhCQW1CNUIsU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdGLE1BQU07c0JBRFQsS0FBSzt1QkFBQyxPQUFPO2dCQVlMLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0VvRm9ybUdyb3VwV3JhcHBlciwgT2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyfSBmcm9tICcuLi9vYmplY3QtZm9ybS1jb250cm9sLXdyYXBwZXInO1xyXG5pbXBvcnQge0VvRm9ybUdyb3VwLCBPYmplY3RGb3JtR3JvdXB9IGZyb20gJy4uL29iamVjdC1mb3JtLWdyb3VwLm1vZGVsJztcclxuaW1wb3J0IHtPYmplY3RGb3JtSGVscGVyU2VydmljZX0gZnJvbSAnLi4vLi4vb2JqZWN0LWZvcm0taGVscGVyLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlby1mb3JtLWdyb3VwJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LWZvcm0tZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL29iamVjdC1mb3JtLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgLy8gY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgT2JqZWN0Rm9ybUdyb3VwQ29tcG9uZW50IHtcclxuXHJcbiAgcHJpdmF0ZSBmb3JtSGVscGVyU2VydmljZSA9IGluamVjdChPYmplY3RGb3JtSGVscGVyU2VydmljZSk7XHJcblxyXG4gIHByaXZhdGUgdHlwZXMgPSB7XHJcbiAgICBTVEFDSzogJ3N0YWNrJyxcclxuICAgIEdST1VQOiAnZ3JvdXAnLFxyXG4gICAgRklFTERTRVQ6ICdmaWVsZHNldCdcclxuICB9O1xyXG5cclxuICBncm91cDogT2JqZWN0Rm9ybUdyb3VwO1xyXG4gIGdyb3VwVHlwZTogc3RyaW5nO1xyXG4gIGlzQ29yZTogYm9vbGVhbjtcclxuICBpc0RhdGE6IGJvb2xlYW47XHJcbiAgbGF5b3V0U2V0dGluZ3NJRD86IHN0cmluZztcclxuXHJcbiAgLy8gZm9ybSBzaXR1YXRpb24sIGlmIG5vdCBzZXQgZGVmYXVsdCB3aWxsIGJlICdFRElUJ1xyXG4gIEBJbnB1dCgpIHNpdHVhdGlvbiA9ICdFRElUJztcclxuICBASW5wdXQoKSBza2lwVG9nZ2xlOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoJ2dyb3VwJylcclxuICBzZXQgZ3JvdXBkKGc6IE9iamVjdEZvcm1Hcm91cCkge1xyXG4gICAgaWYgKGcpIHtcclxuICAgICAgdGhpcy5ncm91cCA9IGc7XHJcbiAgICAgIHRoaXMuaXNDb3JlID0gdGhpcy5ncm91cC5fZW9Gb3JtR3JvdXAgJiYgdGhpcy5ncm91cC5fZW9Gb3JtR3JvdXAubGFiZWwgPT09ICdjb3JlJztcclxuICAgICAgdGhpcy5pc0RhdGEgPSB0aGlzLmdyb3VwLl9lb0Zvcm1Hcm91cCAmJiB0aGlzLmdyb3VwLl9lb0Zvcm1Hcm91cC5sYWJlbCA9PT0gJ2RhdGEnO1xyXG4gICAgICB0aGlzLmdyb3VwVHlwZSA9IHRoaXMuZ2V0R3JvdXBUeXBlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdyb3VwID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIG5vR3JvdXBMYWJlbHM6IGJvb2xlYW47XHJcblxyXG4gIGdldE9iamVjdEZvcm1Hcm91cChjb250cm9sKTogRW9Gb3JtR3JvdXAge1xyXG4gICAgcmV0dXJuIChjb250cm9sIGFzIE9iamVjdEZvcm1Hcm91cCkuX2VvRm9ybUdyb3VwO1xyXG4gIH1cclxuXHJcbiAgZ2V0T2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyKGNvbnRyb2wpOiBFb0Zvcm1Hcm91cFdyYXBwZXIge1xyXG4gICAgcmV0dXJuIChjb250cm9sIGFzIE9iamVjdEZvcm1Db250cm9sV3JhcHBlcikuX2VvRm9ybUNvbnRyb2xXcmFwcGVyO1xyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgZ2V0R3JvdXBUeXBlKCkge1xyXG4gICAgLy8gbWF5IGFzIHdlbGwgYmUgYW4gT2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyIHNvIGNoZWNrIGZpcnN0XHJcbiAgICAvLyBpZiB3ZSBnb3QgYSByZWFsIGdyb3VwXHJcbiAgICBpZiAodGhpcy5ncm91cC5fZW9Gb3JtR3JvdXApIHtcclxuICAgICAgaWYgKHRoaXMuZ3JvdXAuX2VvRm9ybUdyb3VwLnR5cGUgPT09ICdvMm1Hcm91cFN0YWNrJykge1xyXG5cclxuICAgICAgICAvLyBHcm91cCBzdGFja3MgYXJlIGFibGUgdG8gcHJlc2VydmUgdGhlaXIgc3RhdGUuIFxyXG4gICAgICAgIC8vIFRoZXkgYXJlIHJlbmRlcmVkIGFzIHRhYnMgYW5kIHNob3VsZCByZW1lbWJlciB0aGUgc2VsZWN0ZWQgdGFiLCBzbyB3ZSdsbCBzZXQgYW4gXHJcbiAgICAgICAgLy8gSUQgYW5kIHJlZ2lzdGVyIHRoZW0gZm9yIGNsZWFudXBcclxuICAgICAgICB0aGlzLmxheW91dFNldHRpbmdzSUQgPSAnZW8uZm9ybS5zdGFjay4nICsgdGhpcy5ncm91cC5fZW9Gb3JtR3JvdXAuaWQ7XHJcbiAgICAgICAgdGhpcy5mb3JtSGVscGVyU2VydmljZS5hZGRUZW1wb3JhcnlTdG9yYWdlRW50cnkodGhpcy5sYXlvdXRTZXR0aW5nc0lEKTtcclxuXHJcbiAgICAgICAgLy8gZm9yIGRhdGEgc2VjdGlvbiBvbmx5IHJlbmRlciBhcyBzdGFjayAodGFicykgaWYgd2UgaGF2ZSBtb3JlIHRoYW4gb25lIGNoaWxkXHJcbiAgICAgICAgaWYgKHRoaXMuaXNEYXRhICYmIE9iamVjdC5rZXlzKHRoaXMuZ3JvdXAuY29udHJvbHMpLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMudHlwZXMuR1JPVVA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLnR5cGVzLlNUQUNLO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmdyb3VwLl9lb0Zvcm1Hcm91cC50eXBlID09PSAnbzJtR3JvdXAnKSB7XHJcbiAgICAgICAgcmV0dXJuICh0aGlzLmdyb3VwLl9lb0Zvcm1Hcm91cC5sYWJlbCAmJiAhKHRoaXMuaXNDb3JlIHx8IHRoaXMuaXNEYXRhKSAmJiAhdGhpcy5ub0dyb3VwTGFiZWxzICYmICF0aGlzLnBhcmVudElzU3RhY2sodGhpcy5ncm91cCkpID8gdGhpcy50eXBlcy5GSUVMRFNFVCA6IHRoaXMudHlwZXMuR1JPVVA7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMudHlwZXMuR1JPVVA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhcmVudElzU3RhY2soZ3JvdXA6IE9iamVjdEZvcm1Hcm91cCk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHBhcmVudEZvcm1FbGVtZW50ID0gZ3JvdXAucGFyZW50WydfZW9Gb3JtR3JvdXAnXTtcclxuICAgIHJldHVybiBwYXJlbnRGb3JtRWxlbWVudCAmJiBwYXJlbnRGb3JtRWxlbWVudC50eXBlID09PSAnbzJtR3JvdXBTdGFjayc7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJncm91cFwiIFtuZ1N3aXRjaF09XCJncm91cFR5cGVcIlxyXG4gIGNsYXNzPVwiZm9ybS1lbGVtZW50IHt7Z3JvdXAuX2VvRm9ybUdyb3VwID8gZ3JvdXAuX2VvRm9ybUdyb3VwLnR5cGUgOiAnbzJtQ29udHJvbFdyYXAnfX0gYWxpZ24te3soZ3JvdXAuX2VvRm9ybUdyb3VwICYmIGdyb3VwLl9lb0Zvcm1Hcm91cC5sYXlvdXQpID8gZ3JvdXAuX2VvRm9ybUdyb3VwLmxheW91dC5hbGlnbiA6ICcnfX1cIlxyXG4gIFtmb3JtR3JvdXBdPVwiZ3JvdXBcIj5cclxuXHJcbiAgPCEtLSBncm91cCBzdGFja3MgKHRhYnMpIC0tPlxyXG4gIDx5dmMtdGFicyAqbmdTd2l0Y2hDYXNlPVwiJ3N0YWNrJ1wiIFtsYXlvdXRTZXR0aW5nc0lEXT1cImxheW91dFNldHRpbmdzSURcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSAqbmdGb3I9XCJsZXQga2V5IG9mIGdyb3VwLmNvbnRyb2xzIHwga2V5czsgaW5kZXggYXMgaTtcIiBbeXZjVGFiXT1cIntpZDogJ3QnICsgaSwgXHJcbiAgICBoZWFkZXJTdHlsZUNsYXNzOiAnZGlydHktJyArIGdyb3VwLmNvbnRyb2xzW2tleV0uZGlydHkgKyAnIGludmFsaWQtJyArIGdyb3VwLmNvbnRyb2xzW2tleV0uaW52YWxpZCxcclxuICAgIGxhYmVsOiBnZXRPYmplY3RGb3JtR3JvdXAoZ3JvdXAuY29udHJvbHNba2V5XSkubGFiZWx9XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdGFja1wiIFtuZ0NsYXNzXT1cIntzdGFja0Jhc2U6IGdyb3VwLl9lb0Zvcm1Hcm91cC5sYWJlbCA9PT0gJ2RhdGEnfVwiPlxyXG5cclxuICAgICAgICA8ZW8tZm9ybS1lbGVtZW50IFtlbGVtZW50XT1cImdyb3VwLmNvbnRyb2xzW2tleV1cIlxyXG4gICAgICAgICAgKm5nSWY9XCJnZXRPYmplY3RGb3JtQ29udHJvbFdyYXBwZXIoZ3JvdXAuY29udHJvbHNba2V5XSk7IGVsc2Ugc3RrZ3JvdXBcIiBbc2l0dWF0aW9uXT1cInNpdHVhdGlvblwiXHJcbiAgICAgICAgICBbc2tpcFRvZ2dsZV09XCJza2lwVG9nZ2xlXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgZW9Gb3JtRWxlbWVudFRlbXBsYXRlIHByb3BlcnR5VHlwZT1cIlRBQkxFXCIgbGV0LWVsZW1lbnQ9XCJlbGVtZW50XCJcclxuICAgICAgICAgICAgbGV0LWZvcm1FbGVtZW50UmVmPVwiZm9ybUVsZW1lbnRSZWZcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRwbEZvcm1FbGVtZW50VGFibGU7IGNvbnRleHQ6IHtlbGVtZW50LCBmb3JtRWxlbWVudFJlZn1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9lby1mb3JtLWVsZW1lbnQ+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNzdGtncm91cD5cclxuICAgICAgICAgIDxlby1mb3JtLWdyb3VwIFtncm91cF09XCJncm91cC5jb250cm9sc1trZXldXCIgW25vR3JvdXBMYWJlbHNdPVwidHJ1ZVwiIFtzaXR1YXRpb25dPVwic2l0dWF0aW9uXCJcclxuICAgICAgICAgICAgW3NraXBUb2dnbGVdPVwic2tpcFRvZ2dsZVwiPjwvZW8tZm9ybS1ncm91cD5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC95dmMtdGFicz5cclxuXHJcbiAgPCEtLSBncm91cCB3aXRoIGxlZ2VuZCAtLT5cclxuICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInZmllbGRzZXQnXCIgY2xhc3M9XCJvbS1ncm91cCBmaWVsZHNldFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZ2VuZFwiPjxzcGFuPnt7Z3JvdXAuX2VvRm9ybUdyb3VwLmxhYmVsfX08L3NwYW4+PC9kaXY+XHJcblxyXG4gICAgPGRpdj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQga2V5IG9mIGdyb3VwLmNvbnRyb2xzIHwga2V5c1wiPlxyXG4gICAgICAgIDxlby1mb3JtLWVsZW1lbnQgW2VsZW1lbnRdPVwiZ3JvdXAuY29udHJvbHNba2V5XVwiXHJcbiAgICAgICAgICAqbmdJZj1cImdldE9iamVjdEZvcm1Db250cm9sV3JhcHBlcihncm91cC5jb250cm9sc1trZXldKTsgZWxzZSBmc2dyb3VwXCIgW3NpdHVhdGlvbl09XCJzaXR1YXRpb25cIlxyXG4gICAgICAgICAgW3NraXBUb2dnbGVdPVwic2tpcFRvZ2dsZVwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGVvRm9ybUVsZW1lbnRUZW1wbGF0ZSBwcm9wZXJ0eVR5cGU9XCJUQUJMRVwiIGxldC1lbGVtZW50PVwiZWxlbWVudFwiXHJcbiAgICAgICAgICAgIGxldC1mb3JtRWxlbWVudFJlZj1cImZvcm1FbGVtZW50UmVmXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cGxGb3JtRWxlbWVudFRhYmxlOyBjb250ZXh0OiB7ZWxlbWVudCwgZm9ybUVsZW1lbnRSZWZ9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvZW8tZm9ybS1lbGVtZW50PlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZnNncm91cD5cclxuICAgICAgICAgIDxlby1mb3JtLWdyb3VwIFtncm91cF09XCJncm91cC5jb250cm9sc1trZXldXCIgW3NpdHVhdGlvbl09XCJzaXR1YXRpb25cIlxyXG4gICAgICAgICAgICBbc2tpcFRvZ2dsZV09XCJza2lwVG9nZ2xlXCI+PC9lby1mb3JtLWdyb3VwPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gZ3JvdXAgLS0+XHJcbiAgPG5nLWNvbnRhaW5lciBjbGFzcz1cIm9tLWdyb3VwXCIgKm5nU3dpdGNoQ2FzZT1cIidncm91cCdcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGtleSBvZiBncm91cC5jb250cm9scyB8IGtleXNcIj5cclxuXHJcbiAgICAgIDxlby1mb3JtLWVsZW1lbnQgW2VsZW1lbnRdPVwiZ3JvdXAuY29udHJvbHNba2V5XVwiXHJcbiAgICAgICAgKm5nSWY9XCJnZXRPYmplY3RGb3JtQ29udHJvbFdyYXBwZXIoZ3JvdXAuY29udHJvbHNba2V5XSk7IGVsc2Ugb21ncm91cFwiIFtzaXR1YXRpb25dPVwic2l0dWF0aW9uXCJcclxuICAgICAgICBbc2tpcFRvZ2dsZV09XCJza2lwVG9nZ2xlXCI+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBlb0Zvcm1FbGVtZW50VGVtcGxhdGUgcHJvcGVydHlUeXBlPVwiVEFCTEVcIiBsZXQtZWxlbWVudD1cImVsZW1lbnRcIlxyXG4gICAgICAgICAgbGV0LWZvcm1FbGVtZW50UmVmPVwiZm9ybUVsZW1lbnRSZWZcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cGxGb3JtRWxlbWVudFRhYmxlOyBjb250ZXh0OiB7ZWxlbWVudCwgZm9ybUVsZW1lbnRSZWZ9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgIDwvZW8tZm9ybS1lbGVtZW50PlxyXG4gICAgICA8bmctdGVtcGxhdGUgI29tZ3JvdXA+XHJcbiAgICAgICAgPGVvLWZvcm0tZ3JvdXAgW2dyb3VwXT1cImdyb3VwLmNvbnRyb2xzW2tleV1cIiBbc2l0dWF0aW9uXT1cInNpdHVhdGlvblwiIFtza2lwVG9nZ2xlXT1cInNraXBUb2dnbGVcIj48L2VvLWZvcm0tZ3JvdXA+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbjwvZGl2PlxyXG5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdHBsRm9ybUVsZW1lbnRUYWJsZSBsZXQtZWxlbWVudD1cImVsZW1lbnRcIiBsZXQtZm9ybUVsZW1lbnRSZWY9XCJmb3JtRWxlbWVudFJlZlwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0YWJsZVwiPlxyXG4gICAgPGVvLXRhYmxlIFtwYXJhbXNdPVwie1xyXG5zaXR1YXRpb246IGVsZW1lbnQuX2VvRm9ybUNvbnRyb2xXcmFwcGVyLnNpdHVhdGlvbixcclxuZWxlbWVudDogZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQsXHJcbnNpemU6IGZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnNpemUsXHJcbm9iamVjdDogZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQub2JqZWN0XHJcbn1cIiBbZm9ybUNvbnRyb2xdPVwiZWxlbWVudC5nZXQoZWxlbWVudC5fZW9Gb3JtQ29udHJvbFdyYXBwZXIuY29udHJvbE5hbWUpXCI+PC9lby10YWJsZT5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
@@ -2,4 +2,4 @@ import { UntypedFormGroup } from '@angular/forms';
2
2
  // extensions of the default angular form groups
3
3
  export class ObjectFormGroup extends UntypedFormGroup {
4
4
  }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tZ3JvdXAubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1ncm91cC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQWVoRCxnREFBZ0Q7QUFFaEQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsZ0JBQWdCO0NBRXBEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtVbnR5cGVkRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW9Gb3JtR3JvdXAge1xuICBpZD86IHN0cmluZztcbiAgLy8gdGhlIGxhYmVsIGZvciB0aGUgZm9ybSBncm91cFxuICBsYWJlbD86IHN0cmluZztcbiAgLy8gb2JqZWN0IGhvbGRpbmcgcHJvcGVydGllcyBkZWZpbmluZyBsYXlvdXQgcHJvcGVydGllcyBvZiB0aGUgZ3JvdXBcbiAgbGF5b3V0OiBhbnk7XG4gIC8vIHR5cGUgb2YgZ3JvdXAgaW5kaWNhdGluZyBpZiB0aGUgZm9ybSBpcyBhIHN0YWNrLCBhIGZpZWxkc2V0IG9yIGEgc2ltcGxlIGdyb3VwXG4gIHR5cGU6IHN0cmluZztcbiAgLy8gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGdyb3VwcyBjaGlsZCBmb3JtIGNvbXBvbmVudHNcbiAgLy8ga2V5IGlzIHRoZSBjb250cm9scyBuYW1lLCB2YWx1ZSB0aGUgYWN0dWFsIGZvcm0gY29udHJvbCBvciAtZ3JvdXBcbiAgLy9jb250cm9scz86IGFueTtcbn1cblxuLy8gZXh0ZW5zaW9ucyBvZiB0aGUgZGVmYXVsdCBhbmd1bGFyIGZvcm0gZ3JvdXBzXG5cbmV4cG9ydCBjbGFzcyBPYmplY3RGb3JtR3JvdXAgZXh0ZW5kcyBVbnR5cGVkRm9ybUdyb3VwIHtcbiAgcHVibGljIF9lb0Zvcm1Hcm91cDogRW9Gb3JtR3JvdXA7XG59XG4iXX0=
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tZ3JvdXAubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1ncm91cC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQWVoRCxnREFBZ0Q7QUFFaEQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsZ0JBQWdCO0NBRXBEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtVbnR5cGVkRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVvRm9ybUdyb3VwIHtcclxuICBpZD86IHN0cmluZztcclxuICAvLyB0aGUgbGFiZWwgZm9yIHRoZSBmb3JtIGdyb3VwXHJcbiAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgLy8gb2JqZWN0IGhvbGRpbmcgcHJvcGVydGllcyBkZWZpbmluZyBsYXlvdXQgcHJvcGVydGllcyBvZiB0aGUgZ3JvdXBcclxuICBsYXlvdXQ6IGFueTtcclxuICAvLyB0eXBlIG9mIGdyb3VwIGluZGljYXRpbmcgaWYgdGhlIGZvcm0gaXMgYSBzdGFjaywgYSBmaWVsZHNldCBvciBhIHNpbXBsZSBncm91cFxyXG4gIHR5cGU6IHN0cmluZztcclxuICAvLyBvYmplY3QgY29udGFpbmluZyB0aGUgZ3JvdXBzIGNoaWxkIGZvcm0gY29tcG9uZW50c1xyXG4gIC8vIGtleSBpcyB0aGUgY29udHJvbHMgbmFtZSwgdmFsdWUgdGhlIGFjdHVhbCBmb3JtIGNvbnRyb2wgb3IgLWdyb3VwXHJcbiAgLy9jb250cm9scz86IGFueTtcclxufVxyXG5cclxuLy8gZXh0ZW5zaW9ucyBvZiB0aGUgZGVmYXVsdCBhbmd1bGFyIGZvcm0gZ3JvdXBzXHJcblxyXG5leHBvcnQgY2xhc3MgT2JqZWN0Rm9ybUdyb3VwIGV4dGVuZHMgVW50eXBlZEZvcm1Hcm91cCB7XHJcbiAgcHVibGljIF9lb0Zvcm1Hcm91cDogRW9Gb3JtR3JvdXA7XHJcbn1cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tc2NyaXB0LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL29iamVjdC1mb3JtL29iamVjdC1mb3JtL29iamVjdC1mb3JtLXNjcmlwdC9vYmplY3QtZm9ybS1zY3JpcHQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8vIGludGVyZmFjZSBmb3IgRE1TLU9iamVjdHMgcGFzc2VkIHRvIHRoZSBzY3JpcHRpbmcgc2NvcGUsXG4vLyBpbnNpZGUgb2YgdGhlIHNjcmlwdGluZyBzY29wZXMgb2JqZWN0cyBhcnJheVxuZXhwb3J0IGludGVyZmFjZSBGb3JtU2NyaXB0RG1zT2JqZWN0IHtcbiAgaWQ6IHN0cmluZyxcbiAgdGl0bGU6IHN0cmluZyxcbiAgZGVzY3JpcHRpb246IHN0cmluZyxcbiAgdHlwZTogc3RyaW5nLFxuICBjcmVhdGVkOiBzdHJpbmcgfCBEYXRlLFxuICBjcmVhdG9yOiBzdHJpbmdcbiAgbW9kaWZpZWQ6IHN0cmluZyB8IERhdGUsXG4gIG1vZGlmaWVyOiBzdHJpbmdcbiAgZGF0YTogYW55XG59XG5cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tc2NyaXB0LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL29iamVjdC1mb3JtL29iamVjdC1mb3JtL29iamVjdC1mb3JtLXNjcmlwdC9vYmplY3QtZm9ybS1zY3JpcHQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLy8gaW50ZXJmYWNlIGZvciBETVMtT2JqZWN0cyBwYXNzZWQgdG8gdGhlIHNjcmlwdGluZyBzY29wZSxcclxuLy8gaW5zaWRlIG9mIHRoZSBzY3JpcHRpbmcgc2NvcGVzIG9iamVjdHMgYXJyYXlcclxuZXhwb3J0IGludGVyZmFjZSBGb3JtU2NyaXB0RG1zT2JqZWN0IHtcclxuICBpZDogc3RyaW5nLFxyXG4gIHRpdGxlOiBzdHJpbmcsXHJcbiAgZGVzY3JpcHRpb246IHN0cmluZyxcclxuICB0eXBlOiBzdHJpbmcsXHJcbiAgY3JlYXRlZDogc3RyaW5nIHwgRGF0ZSxcclxuICBjcmVhdG9yOiBzdHJpbmdcclxuICBtb2RpZmllZDogc3RyaW5nIHwgRGF0ZSxcclxuICBtb2RpZmllcjogc3RyaW5nXHJcbiAgZGF0YTogYW55XHJcbn1cclxuXHJcbiJdfQ==
@@ -110,4 +110,4 @@ export class ObjectFormScriptService {
110
110
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ObjectFormScriptService, decorators: [{
111
111
  type: Injectable
112
112
  }], ctorParameters: () => [{ type: i1.Logger }, { type: i1.BackendService }] });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tc2NyaXB0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1zY3JpcHQvb2JqZWN0LWZvcm0tc2NyaXB0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFFBQVEsSUFBSSxrQkFBa0IsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUVoRSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDOzs7QUFHMUUsTUFBTSxPQUFPLHVCQUF1QjtJQUVsQyxZQUFvQixNQUFjLEVBQ2QsT0FBdUI7UUFEdkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFlBQU8sR0FBUCxPQUFPLENBQWdCO0lBQzNDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGFBQWEsQ0FBQyxLQUErQixFQUFFLE1BQVcsRUFBRSxVQUFtQjtRQUVwRixJQUFJLENBQUM7WUFDSCxrQ0FBa0M7WUFDbEMsSUFBSSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsR0FBRyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDakYsc0JBQXNCO1lBQ3RCLElBQUksZ0JBQWdCLEdBQUcsa0JBQWtCLENBQ3ZDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUN2QyxDQUFDO1lBQ0YsMkVBQTJFO1lBQzNFLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztnQkFD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aW4gYXMgb2JzZXJ2YWJsZUZvcmtKb2luLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7T2JqZWN0Rm9ybVNjcmlwdGluZ1Njb3BlfSBmcm9tICcuL29iamVjdC1mb3JtLXNjcmlwdGluZy1zY29wZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQge0xvZ2dlciwgQmFja2VuZFNlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge1V0aWxpdGllc1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3V0aWwvc2VydmljZXMvdXRpbGl0aWVzLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT2JqZWN0Rm9ybVNjcmlwdFNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9nZ2VyOiBMb2dnZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgYmFja2VuZDogQmFja2VuZFNlcnZpY2UpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW4gYSBmb3JtIHNjcmlwdC5cbiAgICogQHBhcmFtIHNjb3BlIC0gdGhlIGN1cnJlbnQgc2NyaXB0aW5nIHNjb3BlXG4gICAqIEBwYXJhbSBzY3JpcHQgLSB0aGUgc2NyaXB0IHRvIGJlIGV4ZWN1dGVkXG4gICAqIEBwYXJhbSBbc2NyaXB0TmFtZV0gLSB0aGUgc2NyaXB0cyBuYW1lXG4gICAqL1xuICBwdWJsaWMgcnVuRm9ybVNjcmlwdChzY29wZTogT2JqZWN0Rm9ybVNjcmlwdGluZ1Njb3BlLCBzY3JpcHQ6IGFueSwgc2NyaXB0TmFtZT86IHN0cmluZykge1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIERlZmluZSBmb3JtIHNjcmlwdCB0aGUgZnVuY3Rpb25cbiAgICAgIGxldCBmb3JtU2NyaXB0RnVuY3Rpb24gPSB0aGlzLmRlZmluZUZ1bmN0aW9uKCdGb3Jtc2NyaXB0LycgKyBzY3JpcHROYW1lLCBzY3JpcHQpO1xuICAgICAgLy8gcnVuIHRoZSBmb3JtIHNjcmlwdFxuICAgICAgbGV0IGZvcm1TY3JpcHRSZXR1cm4gPSBmb3JtU2NyaXB0RnVuY3Rpb24oXG4gICAgICAgIHNjb3BlLCBVdGlsaXRpZXNTZXJ2aWNlLmxvZGFzaCwgbW9tZW50XG4gICAgICApO1xuICAgICAgLy8gQ2hlY2sgaWYgdGhlIGZvcm0gc2NyaXB0IHJldHVybnMgc29tZXRoaW5nIGFuZCBtYXkgZXhwb3J0IGdsb2JhbCBzY3JpcHRzXG4gICAgICBpZiAoZm9ybVNjcmlwdFJldHVybikge1xuICAgICAgICB0aGlzLmltcG9ydEdsb2JhbFNjcmlwdHNBbmRDYWxsSW5pdChzY29wZSwgZm9ybVNjcmlwdFJldHVybik7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikge1xuICAgICAgICBhbGVydCgnU3ludGF4IGVycm9yIGluIEZvcm0tU2NyaXB0LiBTZWUgY29uc29sZSBsb2cgZm9yIGRldGFpbHMuJyk7XG4gICAgICB9XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcignR290IHNjcmlwdCBlcnJvcicsIGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgZm9ybSBzY3JpcHQgZnVuY3Rpb24sIGFwcGVuZGluZyBzb3VyY2UgdXJsIGFzIGNvbW1lbnQuXG4gICAqIEVuYWJsZXMgZGVidWdnaW5nIHVzaW5nIGJyb3dzZXIgZGVidWdnaW5nIHRvb2xzIChDaHJvbWUrRmlyZWZveClcbiAgICogQHNlZTogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9Ub29scy9EZWJ1Z2dlci9Ib3dfdG8vRGVidWdfZXZhbF9zb3VyY2VzXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIC0gdGhlIG5hbWUgb2YgdGhlIHNjcmlwdFxuICAgKiBAcGFyYW0gc2NyaXB0IC0gc2NyaXB0IHRvIGJlIHdyYXBwZWQgaW4gYSBmdW5jdGlvblxuICAgKiBAcmV0dXJucyB0aGUgZnVuY3Rpb25cbiAgICovXG4gIHByaXZhdGUgZGVmaW5lRnVuY3Rpb24obmFtZTogc3RyaW5nLCBzY3JpcHQ6IGFueSk6IEZ1bmN0aW9uIHtcbiAgICAvLyBBcHBlbmRpbmcgc291cmNlIHVybCBhcyBjb21tZW50LiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9Ub29scy9EZWJ1Z2dlci9Ib3dfdG8vRGVidWdfZXZhbF9zb3VyY2VzXG4gICAgLy8gRW5hYmxlcyBkZWJ1Z2dpbmcgdXNpbmcgYnJvd3NlciBkZWJ1Z2dpbmcgdG9vbHMgKENocm9tZStGaXJlZm94KVxuICAgIC8vIFRoZSBsaW5lIGZlZWQgaXMgbmVlZGVkLCBpZiB0aGUgc2NyaXB0IGhhcyBhIGNvbW1lbnQgaW4gdGhlIGxhc3QgbGluZVxuICAgIHJldHVybiBuZXcgRnVuY3Rpb24oJ3Njb3BlJywgJ18nLCAnbW9tZW50Jywgc2NyaXB0ICsgJ1xcbjsvLyMgc291cmNlVVJMPScgKyBuYW1lICsgJy5qcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHRoZSBzY3JpcHQgY29udGFpbnMgZ2xvYmFsIHNjcmlwdCwgdGhpcyBmdW5jdGlvbiB3aWxsIGltcG9ydCBhbmQgcnVuIHRoZW1cbiAgICogYmVmb3JlIHJ1bm5pbmcgdGhlIGFjdHVhbCBzY3JpcHQuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIHRoZSBjdXJyZW50IHNjcmlwdGluZyBzY29wZVxuICAgKiBAcGFyYW0gZm9ybVNjcmlwdFJldHVybiAtIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGFjdHVhbCBmb3JtIHNjcmlwdFxuICAgKi9cbiAgcHJpdmF0ZSBpbXBvcnRHbG9iYWxTY3JpcHRzQW5kQ2FsbEluaXQoc2NvcGU6IE9iamVjdEZvcm1TY3JpcHRpbmdTY29wZSwgZm9ybVNjcmlwdFJldHVybjogYW55KSB7XG5cbiAgICBpZiAoIWZvcm1TY3JpcHRSZXR1cm4uaW5pdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChmb3JtU2NyaXB0UmV0dXJuLnVzZXMpIHtcbiAgICAgIC8vIGNvbGxlY3QgdGhlIGdsb2JhbCBzY3JpcHQgZXhwb3J0cyBwcm9taXNlc1xuICAgICAgbGV0IGV4cG9ydHMgPSBbXTtcbiAgICAgIGxldCBnbG9iYWxzID0gW107XG5cbiAgICAgIC8vIGNvbGxlY3QgT2JzZXJ2YWJsZXMgZm9yIGZldGNoaW5nIGdsb2JhbCBzY3JpcHRzXG4gICAgICBmb3IgKGxldCB1c2Ugb2YgZm9ybVNjcmlwdFJldHVybi51c2VzKSB7XG4gICAgICAgIGdsb2JhbHMucHVzaCh0aGlzLnJlc29sdmVHbG9iYWxTY3JpcHQodXNlLCBzY29wZSkpO1xuICAgICAgfVxuXG4gICAgICBvYnNlcnZhYmxlRm9ya0pvaW4oZ2xvYmFscykuc3Vic2NyaWJlKChnbG9iYWxSZXR1cm5zKSA9PiB7XG5cbiAgICAgICAgZm9yIChsZXQgc2NyaXB0UmV0dXJuIG9mIGdsb2JhbFJldHVybnMpIHtcbiAgICAgICAgICBleHBvcnRzLnB1c2goc2NyaXB0UmV0dXJuWydleHBvcnRzJ10pO1xuICAgICAgICB9XG4gICAgICAgIC8vIEludm9rZSBpbml0IGZ1bmN0aW9uIG9uIGZvcm0gc2NyaXB0IHJldHVybiB3aXRoIHRoZVxuICAgICAgICAvLyBjb2xsZWN0ZWQgZXhwb3J0cyB1c2luZyBqYXZhc2NyaXB0IGFwcGx5IG1hZ2ljXG4gICAgICAgIGZvcm1TY3JpcHRSZXR1cm4uaW5pdC5hcHBseSh0aGlzLCBleHBvcnRzKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBpbnZva2UgaW5pdCBkaXJlY3QgKG5vIHVzZSBvZiBnbG9iYWwgc2NyaXB0cylcbiAgICAgIGZvcm1TY3JpcHRSZXR1cm4uaW5pdCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCBnbG9iYWwgc2NyaXB0cy5cbiAgICogQHBhcmFtIG5hbWUgLSB0aGUgbmFtZSBvZiB0aGUgZ2xvYmFsIHNjcmlwdFxuICAgKiBAcGFyYW0gc2NvcGUgLSB0aGUgY3VycmVudCBzY3JpcHRpbmcgc2NvcGVcbiAgICogQHJldHVybnNcbiAgICovXG4gIHByaXZhdGUgcmVzb2x2ZUdsb2JhbFNjcmlwdChuYW1lOiBzdHJpbmcsIHNjb3BlOiBPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGUpOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB7XG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAnQWNjZXB0JzogJ3RleHQvcGxhaW4nXG4gICAgICB9KSxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgICAgIC5nZXQoYC9zY3JpcHQvJHtuYW1lfS9zY3JpcHRgLCBudWxsLCByZXF1ZXN0T3B0aW9ucykucGlwZShcbiAgICAgIG1hcCgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgLy8gZGVmaW5lIHRoZSBnbG9iYWwgZnVuY3Rpb24gLi4uXG4gICAgICAgIGxldCBnbG9iYWxTY3JpcHQgPSB0aGlzLmRlZmluZUZ1bmN0aW9uKCdHbG9iYWwvJyArIG5hbWUsIHJlcyk7XG4gICAgICAgIC8vIC4uLiBhbmQgcnVuIGl0XG4gICAgICAgIHJldHVybiBnbG9iYWxTY3JpcHQoc2NvcGUsIFV0aWxpdGllc1NlcnZpY2UubG9kYXNoLCBtb21lbnQpO1xuICAgICAgfSkpO1xuICB9XG59XG4iXX0=
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tc2NyaXB0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1zY3JpcHQvb2JqZWN0LWZvcm0tc2NyaXB0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFFBQVEsSUFBSSxrQkFBa0IsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUVoRSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDOzs7QUFHMUUsTUFBTSxPQUFPLHVCQUF1QjtJQUVsQyxZQUFvQixNQUFjLEVBQ2QsT0FBdUI7UUFEdkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFlBQU8sR0FBUCxPQUFPLENBQWdCO0lBQzNDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGFBQWEsQ0FBQyxLQUErQixFQUFFLE1BQVcsRUFBRSxVQUFtQjtRQUVwRixJQUFJLENBQUM7WUFDSCxrQ0FBa0M7WUFDbEMsSUFBSSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsR0FBRyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDakYsc0JBQXNCO1lBQ3RCLElBQUksZ0JBQWdCLEdBQUcsa0JBQWtCLENBQ3ZDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUN2QyxDQUFDO1lBQ0YsMkVBQTJFO1lBQzNFLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztnQkFD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Sm9pbiBhcyBvYnNlcnZhYmxlRm9ya0pvaW4sIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7T2JqZWN0Rm9ybVNjcmlwdGluZ1Njb3BlfSBmcm9tICcuL29iamVjdC1mb3JtLXNjcmlwdGluZy1zY29wZSc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHtMb2dnZXIsIEJhY2tlbmRTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xyXG5pbXBvcnQge1V0aWxpdGllc1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3V0aWwvc2VydmljZXMvdXRpbGl0aWVzLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgT2JqZWN0Rm9ybVNjcmlwdFNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvZ2dlcjogTG9nZ2VyLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgYmFja2VuZDogQmFja2VuZFNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJ1biBhIGZvcm0gc2NyaXB0LlxyXG4gICAqIEBwYXJhbSBzY29wZSAtIHRoZSBjdXJyZW50IHNjcmlwdGluZyBzY29wZVxyXG4gICAqIEBwYXJhbSBzY3JpcHQgLSB0aGUgc2NyaXB0IHRvIGJlIGV4ZWN1dGVkXHJcbiAgICogQHBhcmFtIFtzY3JpcHROYW1lXSAtIHRoZSBzY3JpcHRzIG5hbWVcclxuICAgKi9cclxuICBwdWJsaWMgcnVuRm9ybVNjcmlwdChzY29wZTogT2JqZWN0Rm9ybVNjcmlwdGluZ1Njb3BlLCBzY3JpcHQ6IGFueSwgc2NyaXB0TmFtZT86IHN0cmluZykge1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIC8vIERlZmluZSBmb3JtIHNjcmlwdCB0aGUgZnVuY3Rpb25cclxuICAgICAgbGV0IGZvcm1TY3JpcHRGdW5jdGlvbiA9IHRoaXMuZGVmaW5lRnVuY3Rpb24oJ0Zvcm1zY3JpcHQvJyArIHNjcmlwdE5hbWUsIHNjcmlwdCk7XHJcbiAgICAgIC8vIHJ1biB0aGUgZm9ybSBzY3JpcHRcclxuICAgICAgbGV0IGZvcm1TY3JpcHRSZXR1cm4gPSBmb3JtU2NyaXB0RnVuY3Rpb24oXHJcbiAgICAgICAgc2NvcGUsIFV0aWxpdGllc1NlcnZpY2UubG9kYXNoLCBtb21lbnRcclxuICAgICAgKTtcclxuICAgICAgLy8gQ2hlY2sgaWYgdGhlIGZvcm0gc2NyaXB0IHJldHVybnMgc29tZXRoaW5nIGFuZCBtYXkgZXhwb3J0IGdsb2JhbCBzY3JpcHRzXHJcbiAgICAgIGlmIChmb3JtU2NyaXB0UmV0dXJuKSB7XHJcbiAgICAgICAgdGhpcy5pbXBvcnRHbG9iYWxTY3JpcHRzQW5kQ2FsbEluaXQoc2NvcGUsIGZvcm1TY3JpcHRSZXR1cm4pO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpIHtcclxuICAgICAgICBhbGVydCgnU3ludGF4IGVycm9yIGluIEZvcm0tU2NyaXB0LiBTZWUgY29uc29sZSBsb2cgZm9yIGRldGFpbHMuJyk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ0dvdCBzY3JpcHQgZXJyb3InLCBlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluZSBmb3JtIHNjcmlwdCBmdW5jdGlvbiwgYXBwZW5kaW5nIHNvdXJjZSB1cmwgYXMgY29tbWVudC5cclxuICAgKiBFbmFibGVzIGRlYnVnZ2luZyB1c2luZyBicm93c2VyIGRlYnVnZ2luZyB0b29scyAoQ2hyb21lK0ZpcmVmb3gpXHJcbiAgICogQHNlZTogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9Ub29scy9EZWJ1Z2dlci9Ib3dfdG8vRGVidWdfZXZhbF9zb3VyY2VzXHJcbiAgICpcclxuICAgKiBAcGFyYW0gbmFtZSAtIHRoZSBuYW1lIG9mIHRoZSBzY3JpcHRcclxuICAgKiBAcGFyYW0gc2NyaXB0IC0gc2NyaXB0IHRvIGJlIHdyYXBwZWQgaW4gYSBmdW5jdGlvblxyXG4gICAqIEByZXR1cm5zIHRoZSBmdW5jdGlvblxyXG4gICAqL1xyXG4gIHByaXZhdGUgZGVmaW5lRnVuY3Rpb24obmFtZTogc3RyaW5nLCBzY3JpcHQ6IGFueSk6IEZ1bmN0aW9uIHtcclxuICAgIC8vIEFwcGVuZGluZyBzb3VyY2UgdXJsIGFzIGNvbW1lbnQuIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1Rvb2xzL0RlYnVnZ2VyL0hvd190by9EZWJ1Z19ldmFsX3NvdXJjZXNcclxuICAgIC8vIEVuYWJsZXMgZGVidWdnaW5nIHVzaW5nIGJyb3dzZXIgZGVidWdnaW5nIHRvb2xzIChDaHJvbWUrRmlyZWZveClcclxuICAgIC8vIFRoZSBsaW5lIGZlZWQgaXMgbmVlZGVkLCBpZiB0aGUgc2NyaXB0IGhhcyBhIGNvbW1lbnQgaW4gdGhlIGxhc3QgbGluZVxyXG4gICAgcmV0dXJuIG5ldyBGdW5jdGlvbignc2NvcGUnLCAnXycsICdtb21lbnQnLCBzY3JpcHQgKyAnXFxuOy8vIyBzb3VyY2VVUkw9JyArIG5hbWUgKyAnLmpzJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJZiB0aGUgc2NyaXB0IGNvbnRhaW5zIGdsb2JhbCBzY3JpcHQsIHRoaXMgZnVuY3Rpb24gd2lsbCBpbXBvcnQgYW5kIHJ1biB0aGVtXHJcbiAgICogYmVmb3JlIHJ1bm5pbmcgdGhlIGFjdHVhbCBzY3JpcHQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gc2NvcGUgLSB0aGUgY3VycmVudCBzY3JpcHRpbmcgc2NvcGVcclxuICAgKiBAcGFyYW0gZm9ybVNjcmlwdFJldHVybiAtIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGFjdHVhbCBmb3JtIHNjcmlwdFxyXG4gICAqL1xyXG4gIHByaXZhdGUgaW1wb3J0R2xvYmFsU2NyaXB0c0FuZENhbGxJbml0KHNjb3BlOiBPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGUsIGZvcm1TY3JpcHRSZXR1cm46IGFueSkge1xyXG5cclxuICAgIGlmICghZm9ybVNjcmlwdFJldHVybi5pbml0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZm9ybVNjcmlwdFJldHVybi51c2VzKSB7XHJcbiAgICAgIC8vIGNvbGxlY3QgdGhlIGdsb2JhbCBzY3JpcHQgZXhwb3J0cyBwcm9taXNlc1xyXG4gICAgICBsZXQgZXhwb3J0cyA9IFtdO1xyXG4gICAgICBsZXQgZ2xvYmFscyA9IFtdO1xyXG5cclxuICAgICAgLy8gY29sbGVjdCBPYnNlcnZhYmxlcyBmb3IgZmV0Y2hpbmcgZ2xvYmFsIHNjcmlwdHNcclxuICAgICAgZm9yIChsZXQgdXNlIG9mIGZvcm1TY3JpcHRSZXR1cm4udXNlcykge1xyXG4gICAgICAgIGdsb2JhbHMucHVzaCh0aGlzLnJlc29sdmVHbG9iYWxTY3JpcHQodXNlLCBzY29wZSkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBvYnNlcnZhYmxlRm9ya0pvaW4oZ2xvYmFscykuc3Vic2NyaWJlKChnbG9iYWxSZXR1cm5zKSA9PiB7XHJcblxyXG4gICAgICAgIGZvciAobGV0IHNjcmlwdFJldHVybiBvZiBnbG9iYWxSZXR1cm5zKSB7XHJcbiAgICAgICAgICBleHBvcnRzLnB1c2goc2NyaXB0UmV0dXJuWydleHBvcnRzJ10pO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBJbnZva2UgaW5pdCBmdW5jdGlvbiBvbiBmb3JtIHNjcmlwdCByZXR1cm4gd2l0aCB0aGVcclxuICAgICAgICAvLyBjb2xsZWN0ZWQgZXhwb3J0cyB1c2luZyBqYXZhc2NyaXB0IGFwcGx5IG1hZ2ljXHJcbiAgICAgICAgZm9ybVNjcmlwdFJldHVybi5pbml0LmFwcGx5KHRoaXMsIGV4cG9ydHMpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIGludm9rZSBpbml0IGRpcmVjdCAobm8gdXNlIG9mIGdsb2JhbCBzY3JpcHRzKVxyXG4gICAgICBmb3JtU2NyaXB0UmV0dXJuLmluaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoIGdsb2JhbCBzY3JpcHRzLlxyXG4gICAqIEBwYXJhbSBuYW1lIC0gdGhlIG5hbWUgb2YgdGhlIGdsb2JhbCBzY3JpcHRcclxuICAgKiBAcGFyYW0gc2NvcGUgLSB0aGUgY3VycmVudCBzY3JpcHRpbmcgc2NvcGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVzb2x2ZUdsb2JhbFNjcmlwdChuYW1lOiBzdHJpbmcsIHNjb3BlOiBPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGUpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cclxuICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xyXG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAgICdBY2NlcHQnOiAndGV4dC9wbGFpbidcclxuICAgICAgfSksXHJcbiAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcclxuICAgICAgLmdldChgL3NjcmlwdC8ke25hbWV9L3NjcmlwdGAsIG51bGwsIHJlcXVlc3RPcHRpb25zKS5waXBlKFxyXG4gICAgICBtYXAoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgLy8gZGVmaW5lIHRoZSBnbG9iYWwgZnVuY3Rpb24gLi4uXHJcbiAgICAgICAgbGV0IGdsb2JhbFNjcmlwdCA9IHRoaXMuZGVmaW5lRnVuY3Rpb24oJ0dsb2JhbC8nICsgbmFtZSwgcmVzKTtcclxuICAgICAgICAvLyAuLi4gYW5kIHJ1biBpdFxyXG4gICAgICAgIHJldHVybiBnbG9iYWxTY3JpcHQoc2NvcGUsIFV0aWxpdGllc1NlcnZpY2UubG9kYXNoLCBtb21lbnQpO1xyXG4gICAgICB9KSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -268,4 +268,4 @@ class ScopeElement {
268
268
  return this.element.aliases;
269
269
  }
270
270
  }
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tc2NyaXB0aW5nLXNjb3BlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0tc2NyaXB0L29iamVjdC1mb3JtLXNjcmlwdGluZy1zY29wZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRXBDLHlEQUF5RDtBQUN6RCxNQUFNLE9BQU8sd0JBQXdCO0lBcUJuQzs7Ozs7Ozs7OztPQVVHO0lBQ0gsWUFBbUIsU0FBaUIsRUFDaEIsc0JBQXNCLEVBQ3ZCLEdBQVEsRUFDUCxlQUF5QjtRQUgxQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2hCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBQTtRQUN2QixRQUFHLEdBQUgsR0FBRyxDQUFLO1FBQ1Asb0JBQWUsR0FBZixlQUFlLENBQVU7UUFqQzdDLHFDQUFxQztRQUM5QixVQUFLLEdBQVEsRUFBRSxDQUFDO1FBRXZCLDBEQUEwRDtRQUNuRCxTQUFJLEdBQVEsRUFBRSxDQUFDO1FBS3RCLDhCQUE4QjtRQUN2QixZQUFPLEdBQVEsRUFBRSxDQUFDO1FBQ3pCLGlEQUFpRDtRQUNqRCwrREFBK0Q7UUFDL0QsMkJBQTJCO1FBQzNCLDhDQUE4QztRQUN2QyxZQUFPLEdBQVUsRUFBRSxDQUFDO1FBQ3BCLFlBQU8sR0FBb0QsRUFBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBa0JwRyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFFBQVEsQ0FBQyxLQUFVO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLEtBQUssSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFL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QUNyQyxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUM5QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2Nsb25lRGVlcH0gZnJvbSAnbG9kYXNoLWVzJztcblxuLy8gVGhpcyBjbGFzcyB3aWxsIGJlIGluamVjdGVkIGFzIHNjb3BlIGludG8gZm9ybSBzY3JpcHRzXG5leHBvcnQgY2xhc3MgT2JqZWN0Rm9ybVNjcmlwdGluZ1Njb3BlIHtcblxuICAvLyBMaXN0IG9mIGFsbCBmb3JtIGZpZWxkcyAoZWxlbWVudHMpXG4gIHB1YmxpYyBtb2RlbDogYW55ID0ge307XG5cbiAgLy8gYWxsIGRhdGEgdmFsdWVzIGluY2x1ZGluZyBpbnZpc2libGUgZWxlbWVudHMgKFJFQURPTkxZKVxuICBwdWJsaWMgZGF0YTogYW55ID0ge307XG5cbiAgLy8gVGhlIGlkIG9mIHRoZSBjdXJyZW50IERNUy1PYmplY3QgKFJFQURPTkxZKVxuICBwdWJsaWMgb2JqZWN0SWQ6IHN0cmluZztcblxuICAvLyBhY3Rpb25zIHBhc3NlZCBieSBCUE0gZm9ybXNcbiAgcHVibGljIGFjdGlvbnM6IGFueSA9IHt9O1xuICAvLyBhZGRpdGlvbmFsIG9iamVjdHMgcHJvdmlkZWQgYnkgdGhlIG9iamVjdCBmb3JtXG4gIC8vIHVzZWQgZm9yIGV4YW1wbGUgdG8gcGFzcyBkbXMgb2JqZWN0cyBhdHRhY2hlZCB0byBhIHdvcmsgaXRlbVxuICAvLyB0byB0aGUgc2NyaXB0IChSRUFET05MWSlcbiAgLy8gbWF5IGNvbnRhaW46IEZvcm1TY3JpcHREbXNPYmplY3QsIEZpbGVFbnRyeVxuICBwdWJsaWMgb2JqZWN0czogYW55W10gPSBbXTtcbiAgcHVibGljIGNvbnRleHQ6IHsgaWQ6IHN0cmluZywgdGl0bGU6IHN0cmluZywgdHlwZU5hbWU6IHN0cmluZyB9ID0ge2lkOiAnJywgdGl0bGU6ICcnLCB0eXBlTmFtZTogJyd9O1xuXG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSBzaXR1YXRpb24gLSBDdXJyZW50IGZvcm0gbW9kZWwgc2l0dWF0aW9uIChjb3VsZCBiZSBDUkVBVEUsIFNFQVJDSCBvciBFRElUKVxuICAgKiBAcGFyYW0gb25TY3JpcHRpbmdNb2RlbENoYW5nZSAtIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBzY3JpcHRpbmcgbW9kZWwgY2hhbmdlZFxuICAgKiBCZSBhd2FyZSB0byBwcm92aWRlIGFuIGluc3RhbmNlIG1ldGhvZCBhcyBjYWxsYmFjayBmb3IgdGhlIHNjcmlwdGluZyBzY29wZS5cbiAgICogQHNlZTogaHR0cHM6Ly9ibG9nLmpvaG5ueXJlaWxseS5jb20vMjAxNC8wNC90eXBlc2NyaXB0LWluc3RhbmNlLW1ldGhvZHMuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gYXBpIC0gUGx1Z2luIEFQSSByZWZlcmVuY2VcbiAgICogQHBhcmFtIGlzVGFibGVSb3dTY29wZSAtIHNldCB0aGlzIHRvIHRydWUgaWYgdGhlIGN1cnJlbnQgc2NyaXB0aW5nIHNjb3BlIGlzIGNyZWF0ZWQgZm9yIGFcbiAgICogcm93IGVkaXRpbmcgZm9ybSBmcm9tIGEgdGFibGUgZWxlbWVudC4gSXQgd2lsbCB0aGVuIHByb3ZpZGUgdGhlIHJpZ2h0IHBhcmFtZXRlcnMgZm9yIHRoZSBzY3JpcHRpbmcgZnVuY3Rpb25zXG4gICAqL1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2l0dWF0aW9uOiBzdHJpbmcsXG4gICAgICAgICAgICAgIHByaXZhdGUgb25TY3JpcHRpbmdNb2RlbENoYW5nZSxcbiAgICAgICAgICAgICAgcHVibGljIGFwaTogYW55LFxuICAgICAgICAgICAgICBwcml2YXRlIGlzVGFibGVSb3dTY29wZT86IGJvb2xlYW4pIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBpbnRlcm5hbCBtb2RlbCBhbmQgd3JhcHMgZXZlcnkgbW9kZWwgZWxlbWVudCB3aXRoIGFuIG9ic2VydmVyIHRvIGJlXG4gICAqIGFibGUgdG8gdHJhY2sgdGhlaXIgY2hhbmdlcyBmcm9tIHdpdGhpbiBhIGZvcm0gc2NyaXB0XG4gICAqIEBwYXJhbSBtb2RlbFxuICAgKi9cbiAgcHVibGljIHNldE1vZGVsKG1vZGVsOiBhbnkpIHtcbiAgICB0aGlzLm1vZGVsID0ge307XG4gICAgZm9yIChsZXQgayBvZiBPYmplY3Qua2V5cyhtb2RlbCkpIHtcbiAgICAgIHRoaXMubW9kZWxba10gPSBuZXcgU2NvcGVFbGVtZW50KG1vZGVsW2tdLCB0aGlzLm9uU2NyaXB0aW5nTW9kZWxDaGFuZ2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBvYnNlcnZlZCBtb2RlbC4gVXNlZCBmb3Igcm93IGVkaXRpbmcgZm9ybXMgb2YgdGFibGUgZWxlbWVudHMgdGhhdFxuICAgKiBjcmVhdGUgdGhlaXIgb3duIHNjcmlwdGluZyBzY29wZSBpbiBjb250ZXh0IG9mIHRoZWlyIHBhcmVudCBmb3JtLlxuICAgKiBAcmV0dXJucyB0aGUgb2JzZXJ2ZWQgc2NyaXB0aW5nIHNjb3BlIG1vZGVsXG4gICAqL1xuICBwdWJsaWMgZ2V0TW9kZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWw7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGJ5IHRoZSBvYmplY3QgZm9ybSB3aGVuIHRoZSBmb3JtIG1vZGVsIGNoYW5nZXMuXG4gICAqIEBwYXJhbSBjaGFuZ2UgLSBvYmplY3Qgd2l0aCBrZXkgZXF1YWxzIG5hbWUgb2YgdGhlIGVsZW1lbnRcbiAgICogdGhhdCBjaGFuZ2VzIGFuZCB2YWx1ZSBvZiB0aGUgbmV3IHZhbHVlXG4gICAqL1xuICBwdWJsaWMgbW9kZWxDaGFuZ2VkKGNoYW5nZTogYW55KSB7XG5cbiAgICAvLyBmaW5kIHRoZSBjaGFuZ2VkIGVsZW1lbnQgaW4gdGhlIHNjb3BlcyBtb2RlbFxuICAgIGxldCBwcm9wZXJ0eU5hbWUgPSBPYmplY3Qua2V5cyhjaGFuZ2UpWzBdO1xuICAgIGlmIChjaGFuZ2VbcHJvcGVydHlOYW1lXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubW9kZWxbcHJvcGVydHlOYW1lXSkge1xuICAgICAgbGV0IGVsID0gdGhpcy5tb2RlbFtwcm9wZXJ0eU5hbWVdO1xuICAgICAgZWwudXBkYXRlKGNoYW5nZVtwcm9wZXJ0eU5hbWVdLCB0aGlzLm1vZGVsKTtcbiAgICB9XG4gIH1cbn1cblxuY2xhc3MgU2NvcGVFbGVtZW50IHtcbiAgcHJpdmF0ZSBlbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb3JpZ2luYWxFbGVtZW50OiBhbnksIHByaXZhdGUgb25TY3JpcHRpbmdNb2RlbENoYW5nZTogRnVuY3Rpb24pIHtcbiAgICB0aGlzLmVsZW1lbnQgPSBjbG9uZURlZXAob3JpZ2luYWxFbGVtZW50KTtcbiAgICBpZiAodGhpcy5lbGVtZW50LnZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IG51bGw7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzUHJveHlhYmxlKHRoaXMuZWxlbWVudC52YWx1ZSkpIHtcbiAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IHRoaXMuY3JlYXRlUHJveHkodGhpcy5lbGVtZW50LnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzUHJveHlhYmxlKHZhbHVlLCBrZXk/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkpXG4gICAgICAmJiB2YWx1ZSAhPT0gbnVsbFxuICAgICAgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpXG4gICAgICAmJiAhdmFsdWUuaXNQcm94eVxuICAgICAgJiYgKGtleSA/ICFrZXkuaW5jbHVkZXMoJ19tZXRhJykgOiB0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUHJveHkodmFsdWUpIHtcbiAgICBjb25zdCBoYW5kbGVyID0ge1xuICAgICAgc2V0OiAodGFyZ2V0LCBrZXksIHZhbCkgPT4ge1xuICAgICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gY2xvbmVEZWVwKHRoaXMuZWxlbWVudC52YWx1ZSk7XG4gICAgICAgIHRhcmdldFtrZXldID0gdmFsO1xuICAgICAgICBpZiAodGhpcy5oYXNWYWx1ZUNoYW5nZWQodGhpcy5lbGVtZW50LnZhbHVlLCBwcmV2aW91c1ZhbHVlKSAmJiAha2V5LmluY2x1ZGVzKCdfbWV0YScpKSB7XG4gICAgICAgICAgdGhpcy5vblNjcmlwdGluZ01vZGVsQ2hhbmdlKHRoaXMuZWxlbWVudC5uYW1lLCB7bmV3VmFsdWU6IGNsb25lRGVlcCh0aGlzLmVsZW1lbnQudmFsdWUpLCBuYW1lOiAndmFsdWUnfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9LFxuICAgICAgLy8gVGhpcyBnZXQgdHJhcCBpcyBvbmx5IHVzZWQgdG8gZmluZCBvdXQsIGlmIGFuIG9iamVjdCBpcyBhIHByb3h5IG9yIG5vdC5cbiAgICAgIGdldDogKHRhcmdldCwga2V5KSA9PiB7XG4gICAgICAgIGlmIChrZXkgPT09ICdpc1Byb3h5Jykge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0YXJnZXRba2V5XTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ldyBQcm94eSh2YWx1ZSwgaGFuZGxlcik7XG4gIH1cblxuICBwcml2YXRlIGhhc1ZhbHVlQ2hhbmdlZCh2YWx1ZTEsIHZhbHVlMikge1xuICAgIGxldCB2MSA9IHZhbHVlMTtcbiAgICBsZXQgdjIgPSB2YWx1ZTI7XG4gICAgaWYoQXJyYXkuaXNBcnJheSh2YWx1ZTEpICYmIHR5cGVvZiB2YWx1ZTFbMF0gPT09ICdvYmplY3QnICYmIEFycmF5LmlzQXJyYXkodmFsdWUyKSAmJiB0eXBlb2YgdmFsdWUyWzBdID09PSAnb2JqZWN0Jyl7Ly8gdGhpcyBpcyBvbmx5IHRoZSBjYXNlIGluIHRhYmxlc1xuICAgICAgdjEgPSB2YWx1ZTEubWFwKGVudHJ5ID0+IHRoaXMuY3JlYXRlRW50cnlXaXRob3V0TWV0YWRhdGEoZW50cnkpKTsvLyByZW1vdmluZyBtZXRhZGF0YSBmcm9tIGV2ZXJ5IHJvdywgYmVjYXVzZSBpdCdzIGluc2lnbmlmaWNhbnQgZm9yIGNoYW5nZSBkZXRlY3Rpb25cbiAgICAgIHYyID0gdmFsdWUyLm1hcChlbnRyeSA9PiB0aGlzLmNyZWF0ZUVudHJ5V2l0aG91dE1ldGFkYXRhKGVudHJ5KSk7Ly8gYW5kIGNhbiBjYXVzZSBmYWxzZSBcInRydWVcIi1yZXN1bHRzXG4gICAgfVxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2MSkgIT09IEpTT04uc3RyaW5naWZ5KHYyKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRW50cnlXaXRob3V0TWV0YWRhdGEoZW50cnkpe1xuICAgIGxldCBlbnRyeVdpdGhvdXRNZXRhZGF0YSA9IHsuLi5lbnRyeX07XG4gICAgT2JqZWN0LmtleXMoZW50cnlXaXRob3V0TWV0YWRhdGEpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGRlbGV0ZSBlbnRyeVdpdGhvdXRNZXRhZGF0YVtrZXkgKyAnX21ldGEnXTtcbiAgICB9KTtcbiAgICByZXR1cm4gZW50cnlXaXRob3V0TWV0YWRhdGE7XG4gIH1cblxuICB1cGRhdGUodmFsdWUsIG1vZGVsKSB7XG4gICAgY29uc3QgbmV3VmFsdWUgPSBjbG9uZURlZXAodmFsdWUpO1xuICAgIGlmICh0aGlzLmhhc1ZhbHVlQ2hhbmdlZCh0aGlzLmVsZW1lbnQudmFsdWUsIHZhbHVlKSkge1xuICAgICAgaWYgKHRoaXMuaXNQcm94eWFibGUobmV3VmFsdWUpKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IHRoaXMuY3JlYXRlUHJveHkobmV3VmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5lbGVtZW50LnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5lbGVtZW50Lm9uY2hhbmdlKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudC5vbmNoYW5nZSh0aGlzLCBtb2RlbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0IHZhbHVlKHZhbHVlKSB7XG4gICAgaWYgKHRoaXMuaXNQcm94eWFibGUodmFsdWUpKSB7XG4gICAgICB0aGlzLmVsZW1lbnQudmFsdWUgPSB0aGlzLmNyZWF0ZVByb3h5KHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwge25ld1ZhbHVlOiBjbG9uZURlZXAodGhpcy5lbGVtZW50LnZhbHVlKSwgbmFtZTogJ3ZhbHVlJ30pO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQudmFsdWU7XG4gIH1cblxuICBzZXQgb25jaGFuZ2Uob25jaGFuZ2UpIHtcbiAgICB0aGlzLmVsZW1lbnQub25jaGFuZ2UgPSBvbmNoYW5nZTtcbiAgICB0aGlzLm9uU2NyaXB0aW5nTW9kZWxDaGFuZ2UodGhpcy5lbGVtZW50Lm5hbWUsIHtuZXdWYWx1ZTogb25jaGFuZ2UsIG5hbWU6ICdvbmNoYW5nZSd9KTtcbiAgfVxuXG4gIGdldCBvbmNoYW5nZSgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm9uY2hhbmdlO1xuICB9XG5cbiAgc2V0IHJlcXVpcmVkKHJlcXVpcmVkKSB7XG4gICAgaWYodGhpcy5oYXNWYWx1ZUNoYW5nZWQodGhpcy5lbGVtZW50LnJlcXVpcmVkLCByZXF1aXJlZCkpe1xuICAgICAgdGhpcy5lbGVtZW50LnJlcXVpcmVkID0gcmVxdWlyZWQ7XG4gICAgICB0aGlzLm9uU2NyaXB0aW5nTW9kZWxDaGFuZ2UodGhpcy5lbGVtZW50Lm5hbWUsIHtuZXdWYWx1ZTogcmVxdWlyZWQsIG5hbWU6ICdyZXF1aXJlZCd9KTtcbiAgICB9XG4gIH1cblxuICBnZXQgcmVxdWlyZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5yZXF1aXJlZDtcbiAgfVxuXG4gIHNldCByZWFkb25seShyZWFkb25seSkge1xuICAgIHRoaXMuZWxlbWVudC5yZWFkb25seSA9IHJlYWRvbmx5O1xuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwge25ld1ZhbHVlOiByZWFkb25seSwgbmFtZTogJ3JlYWRvbmx5J30pO1xuICB9XG5cbiAgZ2V0IHJlYWRvbmx5KCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQucmVhZG9ubHk7XG4gIH1cblxuICBzZXQgZXJyb3IoZXJyb3IpIHtcbiAgICBpZih0aGlzLmhhc1ZhbHVlQ2hhbmdlZCh0aGlzLmVsZW1lbnQuZXJyb3IsIGVycm9yKSl7XG4gICAgICB0aGlzLmVsZW1lbnQuZXJyb3IgPSBlcnJvcjtcbiAgICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwge25ld1ZhbHVlOiBlcnJvciwgbmFtZTogJ2Vycm9yJ30pO1xuICAgIH1cbiAgfVxuXG4gIGdldCBlcnJvcigpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LmVycm9yO1xuICB9XG5cbiAgc2V0IG9ucm93ZWRpdChvbnJvd2VkaXQpIHtcbiAgICB0aGlzLmVsZW1lbnQub25yb3dlZGl0ID0gb25yb3dlZGl0O1xuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwge25ld1ZhbHVlOiBvbnJvd2VkaXQsIG5hbWU6ICdvbnJvd2VkaXQnfSk7XG4gIH1cblxuICBnZXQgb25yb3dlZGl0KCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQub25yb3dlZGl0O1xuICB9XG5cbiAgc2V0IGNvbnRleHRJZChjb250ZXh0SWQpIHtcbiAgICB0aGlzLmVsZW1lbnQuY29udGV4dElkID0gY29udGV4dElkO1xuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwge25ld1ZhbHVlOiBjb250ZXh0SWQsIG5hbWU6ICdjb250ZXh0SWQnfSk7XG4gIH1cblxuICBnZXQgY29udGV4dElkKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQuY29udGV4dElkO1xuICB9XG5cbiAgc2V0TGlzdChvYmopIHtcbiAgICBpZiAodGhpcy5vcmlnaW5hbEVsZW1lbnQuc2V0TGlzdCkge1xuICAgICAgdGhpcy5vcmlnaW5hbEVsZW1lbnQuc2V0TGlzdChvYmopO1xuICAgIH1cbiAgfVxuXG4gIGFwcGx5RmlsdGVyKGZ1bmMpIHtcbiAgICBpZiAodGhpcy5vcmlnaW5hbEVsZW1lbnQuYXBwbHlGaWx0ZXIpIHtcbiAgICAgIHRoaXMub3JpZ2luYWxFbGVtZW50LmFwcGx5RmlsdGVyKGZ1bmMpO1xuICAgIH1cbiAgfVxuXG4gIGFwcGx5RGlzYWJsaW5nRmlsdGVyKGZ1bmMpIHtcbiAgICBpZiAodGhpcy5vcmlnaW5hbEVsZW1lbnQuYXBwbHlEaXNhYmxpbmdGaWx0ZXIpIHtcbiAgICAgIHRoaXMub3JpZ2luYWxFbGVtZW50LmFwcGx5RGlzYWJsaW5nRmlsdGVyKGZ1bmMpO1xuICAgIH1cbiAgfVxuXG4gIHNldEZpbHRlcihvYmopIHtcbiAgICBpZiAodGhpcy5vcmlnaW5hbEVsZW1lbnQuc2V0RmlsdGVyKSB7XG4gICAgICB0aGlzLm9yaWdpbmFsRWxlbWVudC5zZXRGaWx0ZXIob2JqKTtcbiAgICB9XG4gIH1cblxuICBzZXRRdWVyeUZpbHRlcnMocXVlcnlGaWx0ZXJzT2JqZWN0OiB7W2ZpZWxkUW5hbWU6IHN0cmluZ106IHtvOiBzdHJpbmcsIHYxOiBhbnksIHYyOiBhbnl9fSwgb2JqZWN0VHlwZXM/OiBzdHJpbmdbXSkge1xuICAgIGlmICh0aGlzLm9yaWdpbmFsRWxlbWVudC5zZXRRdWVyeUZpbHRlcnMpIHtcbiAgICAgIHRoaXMub3JpZ2luYWxFbGVtZW50LnNldFF1ZXJ5RmlsdGVycyhxdWVyeUZpbHRlcnNPYmplY3QsIG9iamVjdFR5cGVzKTtcbiAgICB9XG4gIH1cblxuICBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hbWU7XG4gIH1cblxuICBnZXQgcW5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5xbmFtZTtcbiAgfVxuXG4gIGdldCBsYWJlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LmxhYmVsO1xuICB9XG5cbiAgc2V0IGRlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKSB7XG4gICAgdGhpcy5lbGVtZW50LmRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247XG4gICAgdGhpcy5vblNjcmlwdGluZ01vZGVsQ2hhbmdlKHRoaXMuZWxlbWVudC5uYW1lLCB7bmV3VmFsdWU6IGRlc2NyaXB0aW9uLCBuYW1lOiAnZGVzY3JpcHRpb24nfSk7XG4gIH1cblxuICBnZXQgZGVzY3JpcHRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5kZXNjcmlwdGlvbjtcbiAgfVxuXG4gIGdldCB0eXBlKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQudHlwZTtcbiAgfVxuXG4gIGdldCBtdWx0aXNlbGVjdCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm11bHRpc2VsZWN0O1xuICB9XG5cbiAgZ2V0IGNvZGVzeXN0ZW0oKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5jb2Rlc3lzdGVtO1xuICB9XG5cbiAgZ2V0IG1pbmxlbigpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm1pbmxlbjtcbiAgfVxuXG4gIGdldCBtYXhsZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5tYXhsZW47XG4gIH1cblxuICBnZXQgY2xhc3NpZmljYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5jbGFzc2lmaWNhdGlvbjtcbiAgfVxuXG4gIGdldCBzY2FsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LnNjYWxlO1xuICB9XG5cbiAgZ2V0IHByZWNpc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LnByZWNpc2lvbjtcbiAgfVxuXG4gIGdldCB3aXRodGltZSgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LndpdGh0aW1lO1xuICB9XG5cbiAgZ2V0IGVsZW1lbnRzKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQuZWxlbWVudHM7XG4gIH1cblxuICBnZXQgYWxpYXNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LmFsaWFzZXM7XG4gIH1cbn1cbiJdfQ==
271
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tc2NyaXB0aW5nLXNjb3BlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0tc2NyaXB0L29iamVjdC1mb3JtLXNjcmlwdGluZy1zY29wZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRXBDLHlEQUF5RDtBQUN6RCxNQUFNLE9BQU8sd0JBQXdCO0lBcUJuQzs7Ozs7Ozs7OztPQVVHO0lBQ0gsWUFBbUIsU0FBaUIsRUFDaEIsc0JBQXNCLEVBQ3ZCLEdBQVEsRUFDUCxlQUF5QjtRQUgxQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2hCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBQTtRQUN2QixRQUFHLEdBQUgsR0FBRyxDQUFLO1FBQ1Asb0JBQWUsR0FBZixlQUFlLENBQVU7UUFqQzdDLHFDQUFxQztRQUM5QixVQUFLLEdBQVEsRUFBRSxDQUFDO1FBRXZCLDBEQUEwRDtRQUNuRCxTQUFJLEdBQVEsRUFBRSxDQUFDO1FBS3RCLDhCQUE4QjtRQUN2QixZQUFPLEdBQVEsRUFBRSxDQUFDO1FBQ3pCLGlEQUFpRDtRQUNqRCwrREFBK0Q7UUFDL0QsMkJBQTJCO1FBQzNCLDhDQUE4QztRQUN2QyxZQUFPLEdBQVUsRUFBRSxDQUFDO1FBQ3BCLFlBQU8sR0FBb0QsRUFBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBa0JwRyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFFBQVEsQ0FBQyxLQUFVO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLEtBQUssSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFL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QUNyQyxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUM5QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2Nsb25lRGVlcH0gZnJvbSAnbG9kYXNoLWVzJztcclxuXHJcbi8vIFRoaXMgY2xhc3Mgd2lsbCBiZSBpbmplY3RlZCBhcyBzY29wZSBpbnRvIGZvcm0gc2NyaXB0c1xyXG5leHBvcnQgY2xhc3MgT2JqZWN0Rm9ybVNjcmlwdGluZ1Njb3BlIHtcclxuXHJcbiAgLy8gTGlzdCBvZiBhbGwgZm9ybSBmaWVsZHMgKGVsZW1lbnRzKVxyXG4gIHB1YmxpYyBtb2RlbDogYW55ID0ge307XHJcblxyXG4gIC8vIGFsbCBkYXRhIHZhbHVlcyBpbmNsdWRpbmcgaW52aXNpYmxlIGVsZW1lbnRzIChSRUFET05MWSlcclxuICBwdWJsaWMgZGF0YTogYW55ID0ge307XHJcblxyXG4gIC8vIFRoZSBpZCBvZiB0aGUgY3VycmVudCBETVMtT2JqZWN0IChSRUFET05MWSlcclxuICBwdWJsaWMgb2JqZWN0SWQ6IHN0cmluZztcclxuXHJcbiAgLy8gYWN0aW9ucyBwYXNzZWQgYnkgQlBNIGZvcm1zXHJcbiAgcHVibGljIGFjdGlvbnM6IGFueSA9IHt9O1xyXG4gIC8vIGFkZGl0aW9uYWwgb2JqZWN0cyBwcm92aWRlZCBieSB0aGUgb2JqZWN0IGZvcm1cclxuICAvLyB1c2VkIGZvciBleGFtcGxlIHRvIHBhc3MgZG1zIG9iamVjdHMgYXR0YWNoZWQgdG8gYSB3b3JrIGl0ZW1cclxuICAvLyB0byB0aGUgc2NyaXB0IChSRUFET05MWSlcclxuICAvLyBtYXkgY29udGFpbjogRm9ybVNjcmlwdERtc09iamVjdCwgRmlsZUVudHJ5XHJcbiAgcHVibGljIG9iamVjdHM6IGFueVtdID0gW107XHJcbiAgcHVibGljIGNvbnRleHQ6IHsgaWQ6IHN0cmluZywgdGl0bGU6IHN0cmluZywgdHlwZU5hbWU6IHN0cmluZyB9ID0ge2lkOiAnJywgdGl0bGU6ICcnLCB0eXBlTmFtZTogJyd9O1xyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0b3JcclxuICAgKiBAcGFyYW0gc2l0dWF0aW9uIC0gQ3VycmVudCBmb3JtIG1vZGVsIHNpdHVhdGlvbiAoY291bGQgYmUgQ1JFQVRFLCBTRUFSQ0ggb3IgRURJVClcclxuICAgKiBAcGFyYW0gb25TY3JpcHRpbmdNb2RlbENoYW5nZSAtIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBzY3JpcHRpbmcgbW9kZWwgY2hhbmdlZFxyXG4gICAqIEJlIGF3YXJlIHRvIHByb3ZpZGUgYW4gaW5zdGFuY2UgbWV0aG9kIGFzIGNhbGxiYWNrIGZvciB0aGUgc2NyaXB0aW5nIHNjb3BlLlxyXG4gICAqIEBzZWU6IGh0dHBzOi8vYmxvZy5qb2hubnlyZWlsbHkuY29tLzIwMTQvMDQvdHlwZXNjcmlwdC1pbnN0YW5jZS1tZXRob2RzLmh0bWxcclxuICAgKlxyXG4gICAqIEBwYXJhbSBhcGkgLSBQbHVnaW4gQVBJIHJlZmVyZW5jZVxyXG4gICAqIEBwYXJhbSBpc1RhYmxlUm93U2NvcGUgLSBzZXQgdGhpcyB0byB0cnVlIGlmIHRoZSBjdXJyZW50IHNjcmlwdGluZyBzY29wZSBpcyBjcmVhdGVkIGZvciBhXHJcbiAgICogcm93IGVkaXRpbmcgZm9ybSBmcm9tIGEgdGFibGUgZWxlbWVudC4gSXQgd2lsbCB0aGVuIHByb3ZpZGUgdGhlIHJpZ2h0IHBhcmFtZXRlcnMgZm9yIHRoZSBzY3JpcHRpbmcgZnVuY3Rpb25zXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IocHVibGljIHNpdHVhdGlvbjogc3RyaW5nLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgb25TY3JpcHRpbmdNb2RlbENoYW5nZSxcclxuICAgICAgICAgICAgICBwdWJsaWMgYXBpOiBhbnksXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBpc1RhYmxlUm93U2NvcGU/OiBib29sZWFuKSB7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBpbnRlcm5hbCBtb2RlbCBhbmQgd3JhcHMgZXZlcnkgbW9kZWwgZWxlbWVudCB3aXRoIGFuIG9ic2VydmVyIHRvIGJlXHJcbiAgICogYWJsZSB0byB0cmFjayB0aGVpciBjaGFuZ2VzIGZyb20gd2l0aGluIGEgZm9ybSBzY3JpcHRcclxuICAgKiBAcGFyYW0gbW9kZWxcclxuICAgKi9cclxuICBwdWJsaWMgc2V0TW9kZWwobW9kZWw6IGFueSkge1xyXG4gICAgdGhpcy5tb2RlbCA9IHt9O1xyXG4gICAgZm9yIChsZXQgayBvZiBPYmplY3Qua2V5cyhtb2RlbCkpIHtcclxuICAgICAgdGhpcy5tb2RlbFtrXSA9IG5ldyBTY29wZUVsZW1lbnQobW9kZWxba10sIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBvYnNlcnZlZCBtb2RlbC4gVXNlZCBmb3Igcm93IGVkaXRpbmcgZm9ybXMgb2YgdGFibGUgZWxlbWVudHMgdGhhdFxyXG4gICAqIGNyZWF0ZSB0aGVpciBvd24gc2NyaXB0aW5nIHNjb3BlIGluIGNvbnRleHQgb2YgdGhlaXIgcGFyZW50IGZvcm0uXHJcbiAgICogQHJldHVybnMgdGhlIG9ic2VydmVkIHNjcmlwdGluZyBzY29wZSBtb2RlbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRNb2RlbCgpIHtcclxuICAgIHJldHVybiB0aGlzLm1vZGVsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FsbGVkIGJ5IHRoZSBvYmplY3QgZm9ybSB3aGVuIHRoZSBmb3JtIG1vZGVsIGNoYW5nZXMuXHJcbiAgICogQHBhcmFtIGNoYW5nZSAtIG9iamVjdCB3aXRoIGtleSBlcXVhbHMgbmFtZSBvZiB0aGUgZWxlbWVudFxyXG4gICAqIHRoYXQgY2hhbmdlcyBhbmQgdmFsdWUgb2YgdGhlIG5ldyB2YWx1ZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBtb2RlbENoYW5nZWQoY2hhbmdlOiBhbnkpIHtcclxuXHJcbiAgICAvLyBmaW5kIHRoZSBjaGFuZ2VkIGVsZW1lbnQgaW4gdGhlIHNjb3BlcyBtb2RlbFxyXG4gICAgbGV0IHByb3BlcnR5TmFtZSA9IE9iamVjdC5rZXlzKGNoYW5nZSlbMF07XHJcbiAgICBpZiAoY2hhbmdlW3Byb3BlcnR5TmFtZV0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubW9kZWxbcHJvcGVydHlOYW1lXSkge1xyXG4gICAgICBsZXQgZWwgPSB0aGlzLm1vZGVsW3Byb3BlcnR5TmFtZV07XHJcbiAgICAgIGVsLnVwZGF0ZShjaGFuZ2VbcHJvcGVydHlOYW1lXSwgdGhpcy5tb2RlbCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5jbGFzcyBTY29wZUVsZW1lbnQge1xyXG4gIHByaXZhdGUgZWxlbWVudDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvcmlnaW5hbEVsZW1lbnQ6IGFueSwgcHJpdmF0ZSBvblNjcmlwdGluZ01vZGVsQ2hhbmdlOiBGdW5jdGlvbikge1xyXG4gICAgdGhpcy5lbGVtZW50ID0gY2xvbmVEZWVwKG9yaWdpbmFsRWxlbWVudCk7XHJcbiAgICBpZiAodGhpcy5lbGVtZW50LnZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5lbGVtZW50LnZhbHVlID0gbnVsbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlzUHJveHlhYmxlKHRoaXMuZWxlbWVudC52YWx1ZSkpIHtcclxuICAgICAgdGhpcy5lbGVtZW50LnZhbHVlID0gdGhpcy5jcmVhdGVQcm94eSh0aGlzLmVsZW1lbnQudmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1Byb3h5YWJsZSh2YWx1ZSwga2V5Pzogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkpXHJcbiAgICAgICYmIHZhbHVlICE9PSBudWxsXHJcbiAgICAgICYmICEodmFsdWUgaW5zdGFuY2VvZiBEYXRlKVxyXG4gICAgICAmJiAhdmFsdWUuaXNQcm94eVxyXG4gICAgICAmJiAoa2V5ID8gIWtleS5pbmNsdWRlcygnX21ldGEnKSA6IHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVQcm94eSh2YWx1ZSkge1xyXG4gICAgY29uc3QgaGFuZGxlciA9IHtcclxuICAgICAgc2V0OiAodGFyZ2V0LCBrZXksIHZhbCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBjbG9uZURlZXAodGhpcy5lbGVtZW50LnZhbHVlKTtcclxuICAgICAgICB0YXJnZXRba2V5XSA9IHZhbDtcclxuICAgICAgICBpZiAodGhpcy5oYXNWYWx1ZUNoYW5nZWQodGhpcy5lbGVtZW50LnZhbHVlLCBwcmV2aW91c1ZhbHVlKSAmJiAha2V5LmluY2x1ZGVzKCdfbWV0YScpKSB7XHJcbiAgICAgICAgICB0aGlzLm9uU2NyaXB0aW5nTW9kZWxDaGFuZ2UodGhpcy5lbGVtZW50Lm5hbWUsIHtuZXdWYWx1ZTogY2xvbmVEZWVwKHRoaXMuZWxlbWVudC52YWx1ZSksIG5hbWU6ICd2YWx1ZSd9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH0sXHJcbiAgICAgIC8vIFRoaXMgZ2V0IHRyYXAgaXMgb25seSB1c2VkIHRvIGZpbmQgb3V0LCBpZiBhbiBvYmplY3QgaXMgYSBwcm94eSBvciBub3QuXHJcbiAgICAgIGdldDogKHRhcmdldCwga2V5KSA9PiB7XHJcbiAgICAgICAgaWYgKGtleSA9PT0gJ2lzUHJveHknKSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRhcmdldFtrZXldO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBuZXcgUHJveHkodmFsdWUsIGhhbmRsZXIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNWYWx1ZUNoYW5nZWQodmFsdWUxLCB2YWx1ZTIpIHtcclxuICAgIGxldCB2MSA9IHZhbHVlMTtcclxuICAgIGxldCB2MiA9IHZhbHVlMjtcclxuICAgIGlmKEFycmF5LmlzQXJyYXkodmFsdWUxKSAmJiB0eXBlb2YgdmFsdWUxWzBdID09PSAnb2JqZWN0JyAmJiBBcnJheS5pc0FycmF5KHZhbHVlMikgJiYgdHlwZW9mIHZhbHVlMlswXSA9PT0gJ29iamVjdCcpey8vIHRoaXMgaXMgb25seSB0aGUgY2FzZSBpbiB0YWJsZXNcclxuICAgICAgdjEgPSB2YWx1ZTEubWFwKGVudHJ5ID0+IHRoaXMuY3JlYXRlRW50cnlXaXRob3V0TWV0YWRhdGEoZW50cnkpKTsvLyByZW1vdmluZyBtZXRhZGF0YSBmcm9tIGV2ZXJ5IHJvdywgYmVjYXVzZSBpdCdzIGluc2lnbmlmaWNhbnQgZm9yIGNoYW5nZSBkZXRlY3Rpb25cclxuICAgICAgdjIgPSB2YWx1ZTIubWFwKGVudHJ5ID0+IHRoaXMuY3JlYXRlRW50cnlXaXRob3V0TWV0YWRhdGEoZW50cnkpKTsvLyBhbmQgY2FuIGNhdXNlIGZhbHNlIFwidHJ1ZVwiLXJlc3VsdHNcclxuICAgIH1cclxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2MSkgIT09IEpTT04uc3RyaW5naWZ5KHYyKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlRW50cnlXaXRob3V0TWV0YWRhdGEoZW50cnkpe1xyXG4gICAgbGV0IGVudHJ5V2l0aG91dE1ldGFkYXRhID0gey4uLmVudHJ5fTtcclxuICAgIE9iamVjdC5rZXlzKGVudHJ5V2l0aG91dE1ldGFkYXRhKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgIGRlbGV0ZSBlbnRyeVdpdGhvdXRNZXRhZGF0YVtrZXkgKyAnX21ldGEnXTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGVudHJ5V2l0aG91dE1ldGFkYXRhO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlKHZhbHVlLCBtb2RlbCkge1xyXG4gICAgY29uc3QgbmV3VmFsdWUgPSBjbG9uZURlZXAodmFsdWUpO1xyXG4gICAgaWYgKHRoaXMuaGFzVmFsdWVDaGFuZ2VkKHRoaXMuZWxlbWVudC52YWx1ZSwgdmFsdWUpKSB7XHJcbiAgICAgIGlmICh0aGlzLmlzUHJveHlhYmxlKG5ld1ZhbHVlKSkge1xyXG4gICAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IHRoaXMuY3JlYXRlUHJveHkobmV3VmFsdWUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IG5ld1ZhbHVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmVsZW1lbnQub25jaGFuZ2UpIHtcclxuICAgICAgICB0aGlzLmVsZW1lbnQub25jaGFuZ2UodGhpcywgbW9kZWwpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXQgdmFsdWUodmFsdWUpIHtcclxuICAgIGlmICh0aGlzLmlzUHJveHlhYmxlKHZhbHVlKSkge1xyXG4gICAgICB0aGlzLmVsZW1lbnQudmFsdWUgPSB0aGlzLmNyZWF0ZVByb3h5KHZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vblNjcmlwdGluZ01vZGVsQ2hhbmdlKHRoaXMuZWxlbWVudC5uYW1lLCB7bmV3VmFsdWU6IGNsb25lRGVlcCh0aGlzLmVsZW1lbnQudmFsdWUpLCBuYW1lOiAndmFsdWUnfSk7XHJcbiAgfVxyXG5cclxuICBnZXQgdmFsdWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgc2V0IG9uY2hhbmdlKG9uY2hhbmdlKSB7XHJcbiAgICB0aGlzLmVsZW1lbnQub25jaGFuZ2UgPSBvbmNoYW5nZTtcclxuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwge25ld1ZhbHVlOiBvbmNoYW5nZSwgbmFtZTogJ29uY2hhbmdlJ30pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG9uY2hhbmdlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5vbmNoYW5nZTtcclxuICB9XHJcblxyXG4gIHNldCByZXF1aXJlZChyZXF1aXJlZCkge1xyXG4gICAgaWYodGhpcy5oYXNWYWx1ZUNoYW5nZWQodGhpcy5lbGVtZW50LnJlcXVpcmVkLCByZXF1aXJlZCkpe1xyXG4gICAgICB0aGlzLmVsZW1lbnQucmVxdWlyZWQgPSByZXF1aXJlZDtcclxuICAgICAgdGhpcy5vblNjcmlwdGluZ01vZGVsQ2hhbmdlKHRoaXMuZWxlbWVudC5uYW1lLCB7bmV3VmFsdWU6IHJlcXVpcmVkLCBuYW1lOiAncmVxdWlyZWQnfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgcmVxdWlyZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LnJlcXVpcmVkO1xyXG4gIH1cclxuXHJcbiAgc2V0IHJlYWRvbmx5KHJlYWRvbmx5KSB7XHJcbiAgICB0aGlzLmVsZW1lbnQucmVhZG9ubHkgPSByZWFkb25seTtcclxuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwge25ld1ZhbHVlOiByZWFkb25seSwgbmFtZTogJ3JlYWRvbmx5J30pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlYWRvbmx5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5yZWFkb25seTtcclxuICB9XHJcblxyXG4gIHNldCBlcnJvcihlcnJvcikge1xyXG4gICAgaWYodGhpcy5oYXNWYWx1ZUNoYW5nZWQodGhpcy5lbGVtZW50LmVycm9yLCBlcnJvcikpe1xyXG4gICAgICB0aGlzLmVsZW1lbnQuZXJyb3IgPSBlcnJvcjtcclxuICAgICAgdGhpcy5vblNjcmlwdGluZ01vZGVsQ2hhbmdlKHRoaXMuZWxlbWVudC5uYW1lLCB7bmV3VmFsdWU6IGVycm9yLCBuYW1lOiAnZXJyb3InfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgZXJyb3IoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LmVycm9yO1xyXG4gIH1cclxuXHJcbiAgc2V0IG9ucm93ZWRpdChvbnJvd2VkaXQpIHtcclxuICAgIHRoaXMuZWxlbWVudC5vbnJvd2VkaXQgPSBvbnJvd2VkaXQ7XHJcbiAgICB0aGlzLm9uU2NyaXB0aW5nTW9kZWxDaGFuZ2UodGhpcy5lbGVtZW50Lm5hbWUsIHtuZXdWYWx1ZTogb25yb3dlZGl0LCBuYW1lOiAnb25yb3dlZGl0J30pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG9ucm93ZWRpdCgpIHtcclxuICAgIHJldHVybiB0aGlzLmVsZW1lbnQub25yb3dlZGl0O1xyXG4gIH1cclxuXHJcbiAgc2V0IGNvbnRleHRJZChjb250ZXh0SWQpIHtcclxuICAgIHRoaXMuZWxlbWVudC5jb250ZXh0SWQgPSBjb250ZXh0SWQ7XHJcbiAgICB0aGlzLm9uU2NyaXB0aW5nTW9kZWxDaGFuZ2UodGhpcy5lbGVtZW50Lm5hbWUsIHtuZXdWYWx1ZTogY29udGV4dElkLCBuYW1lOiAnY29udGV4dElkJ30pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbnRleHRJZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmVsZW1lbnQuY29udGV4dElkO1xyXG4gIH1cclxuXHJcbiAgc2V0TGlzdChvYmopIHtcclxuICAgIGlmICh0aGlzLm9yaWdpbmFsRWxlbWVudC5zZXRMaXN0KSB7XHJcbiAgICAgIHRoaXMub3JpZ2luYWxFbGVtZW50LnNldExpc3Qob2JqKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFwcGx5RmlsdGVyKGZ1bmMpIHtcclxuICAgIGlmICh0aGlzLm9yaWdpbmFsRWxlbWVudC5hcHBseUZpbHRlcikge1xyXG4gICAgICB0aGlzLm9yaWdpbmFsRWxlbWVudC5hcHBseUZpbHRlcihmdW5jKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFwcGx5RGlzYWJsaW5nRmlsdGVyKGZ1bmMpIHtcclxuICAgIGlmICh0aGlzLm9yaWdpbmFsRWxlbWVudC5hcHBseURpc2FibGluZ0ZpbHRlcikge1xyXG4gICAgICB0aGlzLm9yaWdpbmFsRWxlbWVudC5hcHBseURpc2FibGluZ0ZpbHRlcihmdW5jKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldEZpbHRlcihvYmopIHtcclxuICAgIGlmICh0aGlzLm9yaWdpbmFsRWxlbWVudC5zZXRGaWx0ZXIpIHtcclxuICAgICAgdGhpcy5vcmlnaW5hbEVsZW1lbnQuc2V0RmlsdGVyKG9iaik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRRdWVyeUZpbHRlcnMocXVlcnlGaWx0ZXJzT2JqZWN0OiB7W2ZpZWxkUW5hbWU6IHN0cmluZ106IHtvOiBzdHJpbmcsIHYxOiBhbnksIHYyOiBhbnl9fSwgb2JqZWN0VHlwZXM/OiBzdHJpbmdbXSkge1xyXG4gICAgaWYgKHRoaXMub3JpZ2luYWxFbGVtZW50LnNldFF1ZXJ5RmlsdGVycykge1xyXG4gICAgICB0aGlzLm9yaWdpbmFsRWxlbWVudC5zZXRRdWVyeUZpbHRlcnMocXVlcnlGaWx0ZXJzT2JqZWN0LCBvYmplY3RUeXBlcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgbmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmVsZW1lbnQubmFtZTtcclxuICB9XHJcblxyXG4gIGdldCBxbmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmVsZW1lbnQucW5hbWU7XHJcbiAgfVxyXG5cclxuICBnZXQgbGFiZWwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LmxhYmVsO1xyXG4gIH1cclxuXHJcbiAgc2V0IGRlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKSB7XHJcbiAgICB0aGlzLmVsZW1lbnQuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjtcclxuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwge25ld1ZhbHVlOiBkZXNjcmlwdGlvbiwgbmFtZTogJ2Rlc2NyaXB0aW9uJ30pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRlc2NyaXB0aW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5kZXNjcmlwdGlvbjtcclxuICB9XHJcblxyXG4gIGdldCB0eXBlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC50eXBlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG11bHRpc2VsZWN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5tdWx0aXNlbGVjdDtcclxuICB9XHJcblxyXG4gIGdldCBjb2Rlc3lzdGVtKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5jb2Rlc3lzdGVtO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1pbmxlbigpIHtcclxuICAgIHJldHVybiB0aGlzLmVsZW1lbnQubWlubGVuO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1heGxlbigpIHtcclxuICAgIHJldHVybiB0aGlzLmVsZW1lbnQubWF4bGVuO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNsYXNzaWZpY2F0aW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5jbGFzc2lmaWNhdGlvbjtcclxuICB9XHJcblxyXG4gIGdldCBzY2FsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmVsZW1lbnQuc2NhbGU7XHJcbiAgfVxyXG5cclxuICBnZXQgcHJlY2lzaW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5wcmVjaXNpb247XHJcbiAgfVxyXG5cclxuICBnZXQgd2l0aHRpbWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LndpdGh0aW1lO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVsZW1lbnRzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5lbGVtZW50cztcclxuICB9XHJcblxyXG4gIGdldCBhbGlhc2VzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5hbGlhc2VzO1xyXG4gIH1cclxufVxyXG4iXX0=