@eo-sdk/client 11.9.0-rc.2 → 11.10.0-rc.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 (281) hide show
  1. package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts.map +1 -1
  2. package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts +1 -0
  3. package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts.map +1 -1
  4. package/app/eo-client/dashboard/widgets/charts-widget/icharts.d.ts +1 -0
  5. package/app/eo-client/dashboard/widgets/charts-widget/icharts.d.ts.map +1 -1
  6. package/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics-setup/signature-statistics-setup.component.d.ts.map +1 -1
  7. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts +1 -0
  8. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
  9. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts +4 -2
  10. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts.map +1 -1
  11. package/app/eo-framework/form-elements/number-range/number-range.component.d.ts +7 -2
  12. package/app/eo-framework/form-elements/number-range/number-range.component.d.ts.map +1 -1
  13. package/app/eo-framework/form-elements/organization/organization.component.d.ts +10 -0
  14. package/app/eo-framework/form-elements/organization/organization.component.d.ts.map +1 -1
  15. package/app/eo-framework/inbox-details/inbox-details.component.d.ts +28 -5
  16. package/app/eo-framework/inbox-details/inbox-details.component.d.ts.map +1 -1
  17. package/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.d.ts +0 -1
  18. package/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.d.ts.map +1 -1
  19. package/app/eo-framework/object-form/object-form-helper.service.d.ts.map +1 -1
  20. package/assets/_default/i18n/de.json +3 -0
  21. package/assets/_default/i18n/en.json +11 -8
  22. package/assets/_default/i18n/ja.json +1132 -0
  23. package/assets/_default/i18n/ko.json +1132 -0
  24. package/assets/_default/i18n/th.json +1132 -0
  25. package/assets/_default/i18n/zh.json +1132 -0
  26. package/esm2022/app/eo-client/about-state/about-state.component.mjs +6 -6
  27. package/esm2022/app/eo-client/dashboard/dashboard.component.mjs +3 -3
  28. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.mjs +7 -5
  29. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.mjs +83 -120
  30. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/icharts.mjs +1 -1
  31. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.mjs +3 -3
  32. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.mjs +3 -3
  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 +6 -6
  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-intray-widget/info-intray-setup/info-intray-setup.component.mjs +3 -3
  40. package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.mjs +3 -3
  41. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component.mjs +3 -3
  42. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +3 -3
  43. package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget-setup/picture-widget-setup.component.mjs +3 -3
  44. package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget.component.mjs +3 -3
  45. package/esm2022/app/eo-client/dashboard/widgets/search-widget/search-widget.component.mjs +5 -5
  46. package/esm2022/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics-setup/signature-statistics-setup.component.mjs +7 -7
  47. package/esm2022/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics-widget.component.mjs +3 -3
  48. package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-setup/todo-setup.component.mjs +3 -3
  49. package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-widget.component.mjs +3 -3
  50. package/esm2022/app/eo-client/eo-client-routing.module.mjs +4 -4
  51. package/esm2022/app/eo-client/eo-client.module.mjs +4 -4
  52. package/esm2022/app/eo-client/favorite-state/favorite-state.component.mjs +3 -3
  53. package/esm2022/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +3 -3
  54. package/esm2022/app/eo-client/inbox-state/inbox-state-routing.module.mjs +4 -4
  55. package/esm2022/app/eo-client/inbox-state/inbox-state.module.mjs +4 -4
  56. package/esm2022/app/eo-client/login/login.component.mjs +3 -3
  57. package/esm2022/app/eo-client/notifications-state/notifications-state.component.mjs +3 -3
  58. package/esm2022/app/eo-client/object-state/object-state/object-state.component.mjs +3 -3
  59. package/esm2022/app/eo-client/object-state/object-state-routing.module.mjs +4 -4
  60. package/esm2022/app/eo-client/object-state/object-state-service/object-state.service.mjs +3 -3
  61. package/esm2022/app/eo-client/object-state/object-state.module.mjs +4 -4
  62. package/esm2022/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +3 -3
  63. package/esm2022/app/eo-client/prepare-state/prepare-state-routing.module.mjs +4 -4
  64. package/esm2022/app/eo-client/prepare-state/prepare-state.module.mjs +4 -4
  65. package/esm2022/app/eo-client/process-state/process-state.component.mjs +3 -3
  66. package/esm2022/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +3 -3
  67. package/esm2022/app/eo-client/result-state/result-state.component.mjs +3 -3
  68. package/esm2022/app/eo-client/settings/settings.component.mjs +3 -3
  69. package/esm2022/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +3 -3
  70. package/esm2022/app/eo-client/version-state/version-state.component.mjs +3 -3
  71. package/esm2022/app/eo-framework/accordion/accordion.module.mjs +4 -4
  72. package/esm2022/app/eo-framework/accordion/simple-accordion/simple-accordion.component.mjs +3 -3
  73. package/esm2022/app/eo-framework/actions/action-menu/action-component-anchor/action-component-anchor.directive.mjs +3 -3
  74. package/esm2022/app/eo-framework/actions/action-menu/action-menu.component.mjs +3 -3
  75. package/esm2022/app/eo-framework/actions/action-service/action.service.mjs +3 -3
  76. package/esm2022/app/eo-framework/actions/action.module.mjs +4 -4
  77. package/esm2022/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.mjs +3 -3
  78. package/esm2022/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission-action.mjs +3 -3
  79. package/esm2022/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.mjs +3 -3
  80. package/esm2022/app/eo-framework/actions/actions/add-subscription-action/add-subscription-action.mjs +3 -3
  81. package/esm2022/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing/cancel-signing.component.mjs +3 -3
  82. package/esm2022/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing-action.mjs +3 -3
  83. package/esm2022/app/eo-framework/actions/actions/clipboard/clipboard-action.mjs +3 -3
  84. package/esm2022/app/eo-framework/actions/actions/clipboard/clipboard-object-action/clipboard-object-action.component.mjs +3 -3
  85. package/esm2022/app/eo-framework/actions/actions/copy-action/copy-action.mjs +3 -3
  86. package/esm2022/app/eo-framework/actions/actions/custom-actions/custom-actions.component.mjs +3 -3
  87. package/esm2022/app/eo-framework/actions/actions/cut-action/cut-action.mjs +3 -3
  88. package/esm2022/app/eo-framework/actions/actions/delete-action/delete/delete.component.mjs +3 -3
  89. package/esm2022/app/eo-framework/actions/actions/delete-action/delete-action.mjs +3 -3
  90. package/esm2022/app/eo-framework/actions/actions/delete-action/delete-prepared-action.mjs +3 -3
  91. package/esm2022/app/eo-framework/actions/actions/delete-content-action/delete-content/delete-content.component.mjs +3 -3
  92. package/esm2022/app/eo-framework/actions/actions/delete-content-action/delete-content-action.mjs +3 -3
  93. package/esm2022/app/eo-framework/actions/actions/download-action/download-action.mjs +3 -3
  94. package/esm2022/app/eo-framework/actions/actions/download-action/download-object-action/download-object-action.component.mjs +3 -3
  95. package/esm2022/app/eo-framework/actions/actions/email/email/email.component.mjs +3 -3
  96. package/esm2022/app/eo-framework/actions/actions/email/email-action.mjs +3 -3
  97. package/esm2022/app/eo-framework/actions/actions/favorite-action/favorite-action.mjs +3 -3
  98. package/esm2022/app/eo-framework/actions/actions/finalize/definalize-action.mjs +3 -3
  99. package/esm2022/app/eo-framework/actions/actions/finalize/finalize-action.mjs +4 -4
  100. package/esm2022/app/eo-framework/actions/actions/finalize/finalize-object-action/finalize-object-action.component.mjs +3 -3
  101. package/esm2022/app/eo-framework/actions/actions/open-context-action/open-context-action.mjs +3 -3
  102. package/esm2022/app/eo-framework/actions/actions/open-document-action/open-document-action.component.mjs +3 -3
  103. package/esm2022/app/eo-framework/actions/actions/open-document-action/open-document-action.mjs +3 -3
  104. package/esm2022/app/eo-framework/actions/actions/open-versions-action/open-versions-action.mjs +3 -3
  105. package/esm2022/app/eo-framework/actions/actions/remove-subscription-action/remove-subscription-action.mjs +3 -3
  106. package/esm2022/app/eo-framework/actions/actions/restore-version-action/restore-version-action.mjs +3 -3
  107. package/esm2022/app/eo-framework/actions/actions/return-task-action/return-task/return-task.component.mjs +3 -3
  108. package/esm2022/app/eo-framework/actions/actions/return-task-action/return-task-action.mjs +3 -3
  109. package/esm2022/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.mjs +3 -3
  110. package/esm2022/app/eo-framework/actions/actions/share-object-action/share-object-action.mjs +3 -3
  111. package/esm2022/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.mjs +4 -4
  112. package/esm2022/app/eo-framework/actions/actions/signature-action/sequence-list-item/sequence-list-item.component.mjs +3 -3
  113. package/esm2022/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +3 -3
  114. package/esm2022/app/eo-framework/actions/actions/signature-action/signature-action.component.mjs +3 -3
  115. package/esm2022/app/eo-framework/actions/actions/unlock-action/unlock-action.mjs +3 -3
  116. package/esm2022/app/eo-framework/actions/actions/unlock-action/unlock-object-action/unlock-object-action.component.mjs +3 -3
  117. package/esm2022/app/eo-framework/actions/actions/update-resubmission-action/update-resubmission-action.mjs +3 -3
  118. package/esm2022/app/eo-framework/actions/actions/workflow-action/simple-workflow-action.component.mjs +3 -3
  119. package/esm2022/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.mjs +3 -3
  120. package/esm2022/app/eo-framework/actions/actions/workflow-action/workflow-action.component.mjs +3 -3
  121. package/esm2022/app/eo-framework/app-shell/app-bar/app-add/app-add-dialog/app-add-dialog.component.mjs +3 -3
  122. package/esm2022/app/eo-framework/app-shell/app-bar/app-add/app-add.component.mjs +3 -3
  123. package/esm2022/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +3 -3
  124. package/esm2022/app/eo-framework/app-shell/app-bar/app-process/app-process.component.mjs +3 -3
  125. package/esm2022/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +3 -3
  126. package/esm2022/app/eo-framework/app-shell/app-bar/context-search/context-search.component.mjs +3 -3
  127. package/esm2022/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.mjs +3 -3
  128. package/esm2022/app/eo-framework/app-shell/app-bar/user-avatar-overlay/user-avatar-overlay.component.mjs +3 -3
  129. package/esm2022/app/eo-framework/app-shell/app-shell-routing.module.mjs +4 -4
  130. package/esm2022/app/eo-framework/app-shell/app-shell.module.mjs +4 -4
  131. package/esm2022/app/eo-framework/app-shell/license-warning/license-warning.component.mjs +3 -3
  132. package/esm2022/app/eo-framework/cta/component/cta.component.mjs +3 -3
  133. package/esm2022/app/eo-framework/cta/cta.module.mjs +4 -4
  134. package/esm2022/app/eo-framework/eo-framework.module.mjs +4 -4
  135. package/esm2022/app/eo-framework/error/error.module.mjs +4 -4
  136. package/esm2022/app/eo-framework/error/error404/error404.component.mjs +3 -3
  137. package/esm2022/app/eo-framework/error/not-found/not-found.component.mjs +3 -3
  138. package/esm2022/app/eo-framework/form-elements/checkbox/checkbox.component.mjs +3 -3
  139. package/esm2022/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +3 -3
  140. package/esm2022/app/eo-framework/form-elements/date/date.component.mjs +3 -3
  141. package/esm2022/app/eo-framework/form-elements/date/year-range/year-range.directive.mjs +3 -3
  142. package/esm2022/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +19 -10
  143. package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +6 -6
  144. package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.service.mjs +3 -3
  145. package/esm2022/app/eo-framework/form-elements/form-elements.module.mjs +4 -4
  146. package/esm2022/app/eo-framework/form-elements/form-input/form-input.component.mjs +3 -3
  147. package/esm2022/app/eo-framework/form-elements/form-input/input-focus/input-focus.directive.mjs +3 -3
  148. package/esm2022/app/eo-framework/form-elements/id-reference/id-reference.component.mjs +3 -3
  149. package/esm2022/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.mjs +3 -3
  150. package/esm2022/app/eo-framework/form-elements/id-reference/reference-finder-entry/reference-finder-entry.component.mjs +3 -3
  151. package/esm2022/app/eo-framework/form-elements/id-reference/service/reference-finder.service.mjs +3 -3
  152. package/esm2022/app/eo-framework/form-elements/number/number.component.mjs +3 -3
  153. package/esm2022/app/eo-framework/form-elements/number-range/number-range.component.mjs +12 -6
  154. package/esm2022/app/eo-framework/form-elements/organization/organization.component.mjs +34 -14
  155. package/esm2022/app/eo-framework/form-elements/password/password.component.mjs +3 -3
  156. package/esm2022/app/eo-framework/form-elements/reference/reference.component.mjs +3 -3
  157. package/esm2022/app/eo-framework/form-elements/string/string.component.mjs +3 -3
  158. package/esm2022/app/eo-framework/frame/frame.component.mjs +3 -3
  159. package/esm2022/app/eo-framework/grid/column-configurator/column-configurator.component.mjs +3 -3
  160. package/esm2022/app/eo-framework/grid/extensions/custom-sort/custom-sort.component.mjs +3 -3
  161. package/esm2022/app/eo-framework/grid/extensions/empty/empty.component.mjs +3 -3
  162. package/esm2022/app/eo-framework/grid/extensions/filter/abstract-filter.component.mjs +3 -3
  163. package/esm2022/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.mjs +3 -3
  164. package/esm2022/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.mjs +3 -3
  165. package/esm2022/app/eo-framework/grid/extensions/filter/text/text-filter.component.mjs +3 -3
  166. package/esm2022/app/eo-framework/grid/extensions/pagination/pagination.component.mjs +3 -3
  167. package/esm2022/app/eo-framework/grid/extensions/quick-filter/quick-filter.component.mjs +3 -3
  168. package/esm2022/app/eo-framework/grid/extensions/reset-filter/reset-filter.component.mjs +3 -3
  169. package/esm2022/app/eo-framework/grid/extensions/services/list-settings.service.mjs +3 -3
  170. package/esm2022/app/eo-framework/grid/extensions/total-count/total-count.component.mjs +3 -3
  171. package/esm2022/app/eo-framework/grid/filters/codesystem-filter.component.mjs +3 -3
  172. package/esm2022/app/eo-framework/grid/filters/datetime-filter.component.mjs +3 -3
  173. package/esm2022/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +3 -3
  174. package/esm2022/app/eo-framework/grid/filters/list-filter.component.mjs +3 -3
  175. package/esm2022/app/eo-framework/grid/filters/organization-filter.component.mjs +3 -3
  176. package/esm2022/app/eo-framework/grid/grid.component.mjs +3 -3
  177. package/esm2022/app/eo-framework/grid/grid.module.mjs +4 -4
  178. package/esm2022/app/eo-framework/inbox-details/duetimeInfo/duetimeInfo.component.mjs +3 -3
  179. package/esm2022/app/eo-framework/inbox-details/inbox-details.component.mjs +54 -14
  180. package/esm2022/app/eo-framework/list-container/list-container.component.mjs +3 -3
  181. package/esm2022/app/eo-framework/list-container/list-container.module.mjs +4 -4
  182. package/esm2022/app/eo-framework/media/content-preview.service.mjs +3 -3
  183. package/esm2022/app/eo-framework/media/media.component.mjs +3 -3
  184. package/esm2022/app/eo-framework/media/media.module.mjs +4 -4
  185. package/esm2022/app/eo-framework/object-details/edit-icon/edit-icon.component.mjs +3 -3
  186. package/esm2022/app/eo-framework/object-details/favorite-icon/favorite-icon.component.mjs +3 -3
  187. package/esm2022/app/eo-framework/object-details/object-details.component.mjs +3 -3
  188. package/esm2022/app/eo-framework/object-details/object-details.module.mjs +4 -4
  189. package/esm2022/app/eo-framework/object-details/object-history/history-filter/history-filter-pipe/history-filter.pipe.mjs +3 -3
  190. package/esm2022/app/eo-framework/object-details/object-history/history-filter/history-filter.component.mjs +3 -3
  191. package/esm2022/app/eo-framework/object-details/object-history/object-history.component.mjs +3 -3
  192. package/esm2022/app/eo-framework/object-details/object-links/object-links.component.mjs +3 -3
  193. package/esm2022/app/eo-framework/object-form/object-form/form-element/form-element-template.directive.mjs +3 -3
  194. package/esm2022/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +3 -3
  195. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +3 -3
  196. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +4 -12
  197. package/esm2022/app/eo-framework/object-form/object-form/object-form-group/object-form-group.component.mjs +3 -3
  198. package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.mjs +3 -3
  199. package/esm2022/app/eo-framework/object-form/object-form/object-form.component.mjs +3 -3
  200. package/esm2022/app/eo-framework/object-form/object-form-edit/object-form-edit.component.mjs +3 -3
  201. package/esm2022/app/eo-framework/object-form/object-form-helper.service.mjs +5 -5
  202. package/esm2022/app/eo-framework/object-form/object-form.module.mjs +4 -4
  203. package/esm2022/app/eo-framework/object-state-details/object-state-details.component.mjs +3 -3
  204. package/esm2022/app/eo-framework/plugins/plugin.component.mjs +9 -9
  205. package/esm2022/app/eo-framework/plugins/plugin.directive.mjs +3 -3
  206. package/esm2022/app/eo-framework/plugins/plugin.service.mjs +3 -3
  207. package/esm2022/app/eo-framework/plugins/plugins.module.mjs +4 -4
  208. package/esm2022/app/eo-framework/prepare-details/prepare-content-exists-info/prepare-content-exists-info.component.mjs +3 -3
  209. package/esm2022/app/eo-framework/prepare-details/prepare-details.component.mjs +3 -3
  210. package/esm2022/app/eo-framework/process/details/process-details.component.mjs +3 -3
  211. package/esm2022/app/eo-framework/process/history/process-history.component.mjs +3 -3
  212. package/esm2022/app/eo-framework/process/process-file/process-file.component.mjs +3 -3
  213. package/esm2022/app/eo-framework/process-form/process-form.component.mjs +3 -3
  214. package/esm2022/app/eo-framework/process-form/process-form.module.mjs +4 -4
  215. package/esm2022/app/eo-framework/quick-search/quick-search/quick-search.component.mjs +3 -3
  216. package/esm2022/app/eo-framework/quick-search/quick-search.module.mjs +4 -4
  217. package/esm2022/app/eo-framework/recyclebin-details/recyclebin-details.component.mjs +3 -3
  218. package/esm2022/app/eo-framework/result-list/result-list.component.mjs +3 -3
  219. package/esm2022/app/eo-framework/result-list/result-list.module.mjs +4 -4
  220. package/esm2022/app/eo-framework/settings/change-password/change-password-form/change-password-form.component.mjs +3 -3
  221. package/esm2022/app/eo-framework/settings/permissions/permissions.component.mjs +3 -3
  222. package/esm2022/app/eo-framework/settings/settings.module.mjs +4 -4
  223. package/esm2022/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts-section/global-shortcuts-section.component.mjs +3 -3
  224. package/esm2022/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts.component.mjs +3 -3
  225. package/esm2022/app/eo-framework/shortcuts/shortcuts.directive.mjs +3 -3
  226. package/esm2022/app/eo-framework/shortcuts/shortcuts.module.mjs +4 -4
  227. package/esm2022/app/eo-framework/shortcuts/shortcuts.service.mjs +3 -3
  228. package/esm2022/app/eo-framework/stored-query/stored-query/stored-query.component.mjs +3 -3
  229. package/esm2022/app/eo-framework/stored-query/stored-query-details/dynamic-property-switch/dynamic-property-switch.component.mjs +3 -3
  230. package/esm2022/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.mjs +3 -3
  231. package/esm2022/app/eo-framework/stored-query/stored-query.module.mjs +4 -4
  232. package/esm2022/app/eo-framework/tree/tree-node/tree-node.component.mjs +5 -5
  233. package/esm2022/app/eo-framework/tree/tree.component.mjs +3 -3
  234. package/esm2022/app/eo-framework/tree/tree.module.mjs +4 -4
  235. package/esm2022/app/eo-framework/ui/clipboard/clipboard.component.mjs +3 -3
  236. package/esm2022/app/eo-framework/ui/eo-dialog/eo-dialog.component.mjs +9 -9
  237. package/esm2022/app/eo-framework/ui/eo-icon/eo-icon.component.mjs +3 -3
  238. package/esm2022/app/eo-framework/ui/error-message/error-message.component.mjs +3 -3
  239. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry/indexdata-summary-entry.component.mjs +3 -3
  240. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +3 -3
  241. package/esm2022/app/eo-framework/ui/loading-spinner/loading-spinner.component.mjs +3 -3
  242. package/esm2022/app/eo-framework/ui/outside-click/outside-click.directive.mjs +3 -3
  243. package/esm2022/app/eo-framework/ui/overlay/overlay.component.mjs +3 -3
  244. package/esm2022/app/eo-framework/ui/query-scope-select/query-scope-select.component.mjs +3 -3
  245. package/esm2022/app/eo-framework/ui/router-link/router-link.directive.mjs +3 -3
  246. package/esm2022/app/eo-framework/ui/rtl-aware/rtl-aware.directive.mjs +3 -3
  247. package/esm2022/app/eo-framework/ui/signature-tab/signature-tab.component.mjs +3 -3
  248. package/esm2022/app/eo-framework/ui/ui.module.mjs +4 -4
  249. package/esm2022/app/eo-framework/ui/user-avatar/user-avatar.component.mjs +3 -3
  250. package/esm2022/app/eo-framework/upload-overlay/upload-overlay-guard.service.mjs +3 -3
  251. package/esm2022/app/eo-framework/upload-overlay/upload-overlay.component.mjs +5 -5
  252. package/esm2022/app/eo-framework/util/directive/prevent-double-click.directive.mjs +3 -3
  253. package/esm2022/app/eo-framework/util/directive/trap-focus.directive.mjs +3 -3
  254. package/esm2022/app/eo-framework/util/services/utilities.service.mjs +3 -3
  255. package/esm2022/app/eo-framework/util/sortable/order-by.pipe.mjs +3 -3
  256. package/esm2022/app/eo-framework/util/util.module.mjs +4 -4
  257. package/esm2022/app/eo-framework-core/agent/agent.service.mjs +3 -3
  258. package/esm2022/app/eo-framework-core/api/grid.service.mjs +3 -3
  259. package/esm2022/app/eo-framework-core/api/plugins.service.mjs +3 -3
  260. package/esm2022/app/eo-framework-core/empty-state/empty-state.service.mjs +3 -3
  261. package/esm2022/app/eo-framework-core/eo-framework-core.module.mjs +4 -4
  262. package/esm2022/app/eo-framework-core/error-handler/error-handler.service.mjs +3 -3
  263. package/esm2022/app/eo-framework-core/layout/layout.service.mjs +3 -3
  264. package/esm2022/app/eo-framework-core/location/location.service.mjs +3 -3
  265. package/esm2022/app/eo-framework-core/pending-changes/pending-changes-guard.service.mjs +3 -3
  266. package/esm2022/app/eo-framework-core/pending-changes/pending-changes.service.mjs +3 -3
  267. package/esm2022/app/eo-framework-core/pipes/filesize.pipe.mjs +3 -3
  268. package/esm2022/app/eo-framework-core/pipes/keys.pipe.mjs +3 -3
  269. package/esm2022/app/eo-framework-core/pipes/locale-date.pipe.mjs +3 -3
  270. package/esm2022/app/eo-framework-core/pipes/locale-number.pipe.mjs +12 -12
  271. package/esm2022/app/eo-framework-core/pipes/pipes.module.mjs +4 -4
  272. package/esm2022/app/eo-framework-core/pipes/safe-html.pipe.mjs +3 -3
  273. package/esm2022/app/eo-framework-core/references/reference.service.mjs +3 -3
  274. package/esm2022/app/eo-framework-core/route-guards/auth/auth-guard.service.mjs +3 -3
  275. package/esm2022/app/eo-framework-core/route-guards/capabilities/capabilities-guard.service.mjs +3 -3
  276. package/esm2022/app/eo-framework-core/search/app-search.service.mjs +3 -3
  277. package/esm2022/app/eo-framework-core/selection/selection.service.mjs +3 -3
  278. package/esm2022/app/eo-framework-core/title/page-title.service.mjs +3 -3
  279. package/fesm2022/eo-sdk-client.mjs +1014 -983
  280. package/fesm2022/eo-sdk-client.mjs.map +1 -1
  281. package/package.json +12 -12
@@ -28,8 +28,8 @@ import * as i0 from "@angular/core";
28
28
  * Module holding the base components of the application shell like application bar, side, search etc.
29
29
  */
30
30
  export class EoAppShellModule {
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: EoAppShellModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
32
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.4", ngImport: i0, type: EoAppShellModule, declarations: [AppBarComponent,
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: EoAppShellModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
32
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: EoAppShellModule, declarations: [AppBarComponent,
33
33
  SideBarComponent,
34
34
  AppSearchComponent,
35
35
  AppAddComponent,
@@ -53,7 +53,7 @@ export class EoAppShellModule {
53
53
  YvcAutocompleteModule,
54
54
  YvcDialogModule,
55
55
  ReactiveFormsModule], exports: [AppBarComponent, LicenseWarningComponent] }); }
56
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: EoAppShellModule, imports: [AppShellRoutingModule,
56
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: EoAppShellModule, imports: [AppShellRoutingModule,
57
57
  CommonModule,
58
58
  FormsModule,
59
59
  UiModule,
@@ -70,7 +70,7 @@ export class EoAppShellModule {
70
70
  YvcDialogModule,
71
71
  ReactiveFormsModule] }); }
72
72
  }
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: EoAppShellModule, decorators: [{
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: EoAppShellModule, decorators: [{
74
74
  type: NgModule,
75
75
  args: [{
76
76
  imports: [
@@ -12,10 +12,10 @@ export class LicenseWarningComponent {
12
12
  const after30Days = new Date(new Date().setDate((new Date()).getDate() + 30));
13
13
  return !this.licenseState?.error && expiryDate < after30Days;
14
14
  }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: LicenseWarningComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: LicenseWarningComponent, selector: "eo-license-warning", inputs: { licenseState: "licenseState", transparent: "transparent" }, ngImport: i0, template: "<div *ngIf=\"licenseState && licenseState?.type !== 'PRODUCTION'; else production\" [ngClass]=\"{'accent-color': transparent}\">\n <span *ngIf=\"expiresWithinAMonth(); else notExpiring\" translate [translateParams]=\"{type: licenseState?.type, date: licenseState?.expires | localeDate: 'eoShortDate'}\">eo.license.warning.expirationDate</span>\n <ng-template #notExpiring>\n <span *ngIf=\"!licenseState?.error; else expired\" translate [translateParams]=\"{type: licenseState?.type}\">eo.license.warning.type</span>\n </ng-template>\n</div>\n\n<ng-template #production>\n <div [ngClass]=\"{'accent-color': transparent}\">\n <div *ngIf=\"expiresWithinAMonth(); else notExpiring\">\n <span translate *ngIf=\"!licenseState?.error; else expired\" [translateParams]=\"{date: licenseState?.expires | localeDate: 'eoShortDate'}\">eo.license.warning.type.production.expiration</span>\n </div>\n <ng-template #notExpiring>\n <span *ngIf=\"!licenseState?.error; else expired\"></span>\n </ng-template>\n </div>\n</ng-template>\n\n<ng-template #expired>\n <span *ngIf=\"licenseState?.error === 'EXPIRED' || licenseState?.error === 'EXPIRED_WITH_GRAND'; else error\" translate>eo.license.warning.expired</span>\n</ng-template>\n\n<ng-template #error>\n <span translate>eo.license.warning.invalid</span>\n</ng-template>\n", styles: [":host{z-index:15}:host div{font-size:var(--font-subhead);width:max-content}:host div.accent-color{color:var(--color-accent)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: i3.LocaleDatePipe, name: "localeDate" }] }); }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: LicenseWarningComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: LicenseWarningComponent, selector: "eo-license-warning", inputs: { licenseState: "licenseState", transparent: "transparent" }, ngImport: i0, template: "<div *ngIf=\"licenseState && licenseState?.type !== 'PRODUCTION'; else production\" [ngClass]=\"{'accent-color': transparent}\">\n <span *ngIf=\"expiresWithinAMonth(); else notExpiring\" translate [translateParams]=\"{type: licenseState?.type, date: licenseState?.expires | localeDate: 'eoShortDate'}\">eo.license.warning.expirationDate</span>\n <ng-template #notExpiring>\n <span *ngIf=\"!licenseState?.error; else expired\" translate [translateParams]=\"{type: licenseState?.type}\">eo.license.warning.type</span>\n </ng-template>\n</div>\n\n<ng-template #production>\n <div [ngClass]=\"{'accent-color': transparent}\">\n <div *ngIf=\"expiresWithinAMonth(); else notExpiring\">\n <span translate *ngIf=\"!licenseState?.error; else expired\" [translateParams]=\"{date: licenseState?.expires | localeDate: 'eoShortDate'}\">eo.license.warning.type.production.expiration</span>\n </div>\n <ng-template #notExpiring>\n <span *ngIf=\"!licenseState?.error; else expired\"></span>\n </ng-template>\n </div>\n</ng-template>\n\n<ng-template #expired>\n <span *ngIf=\"licenseState?.error === 'EXPIRED' || licenseState?.error === 'EXPIRED_WITH_GRAND'; else error\" translate>eo.license.warning.expired</span>\n</ng-template>\n\n<ng-template #error>\n <span translate>eo.license.warning.invalid</span>\n</ng-template>\n", styles: [":host{z-index:15}:host div{font-size:var(--font-subhead);width:max-content}:host div.accent-color{color:var(--color-accent)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: i3.LocaleDatePipe, name: "localeDate" }] }); }
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: LicenseWarningComponent, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: LicenseWarningComponent, decorators: [{
19
19
  type: Component,
20
20
  args: [{ selector: 'eo-license-warning', template: "<div *ngIf=\"licenseState && licenseState?.type !== 'PRODUCTION'; else production\" [ngClass]=\"{'accent-color': transparent}\">\n <span *ngIf=\"expiresWithinAMonth(); else notExpiring\" translate [translateParams]=\"{type: licenseState?.type, date: licenseState?.expires | localeDate: 'eoShortDate'}\">eo.license.warning.expirationDate</span>\n <ng-template #notExpiring>\n <span *ngIf=\"!licenseState?.error; else expired\" translate [translateParams]=\"{type: licenseState?.type}\">eo.license.warning.type</span>\n </ng-template>\n</div>\n\n<ng-template #production>\n <div [ngClass]=\"{'accent-color': transparent}\">\n <div *ngIf=\"expiresWithinAMonth(); else notExpiring\">\n <span translate *ngIf=\"!licenseState?.error; else expired\" [translateParams]=\"{date: licenseState?.expires | localeDate: 'eoShortDate'}\">eo.license.warning.type.production.expiration</span>\n </div>\n <ng-template #notExpiring>\n <span *ngIf=\"!licenseState?.error; else expired\"></span>\n </ng-template>\n </div>\n</ng-template>\n\n<ng-template #expired>\n <span *ngIf=\"licenseState?.error === 'EXPIRED' || licenseState?.error === 'EXPIRED_WITH_GRAND'; else error\" translate>eo.license.warning.expired</span>\n</ng-template>\n\n<ng-template #error>\n <span translate>eo.license.warning.invalid</span>\n</ng-template>\n", styles: [":host{z-index:15}:host div{font-size:var(--font-subhead);width:max-content}:host div.accent-color{color:var(--color-accent)}\n"] }]
21
21
  }], propDecorators: { licenseState: [{
@@ -5,10 +5,10 @@ export class CtaComponent {
5
5
  constructor() {
6
6
  this.active = false;
7
7
  }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: CtaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: CtaComponent, selector: "eo-cta", inputs: { active: "active" }, ngImport: i0, template: "<section class=\"cta\" [ngClass]=\"{active: active}\">\n <ng-content></ng-content>\n</section>\n", styles: [".cta{height:0;transition:all .1s ease-in-out;opacity:0;overflow:hidden}.cta.active{height:35px;opacity:1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CtaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: CtaComponent, selector: "eo-cta", inputs: { active: "active" }, ngImport: i0, template: "<section class=\"cta\" [ngClass]=\"{active: active}\">\n <ng-content></ng-content>\n</section>\n", styles: [".cta{height:0;transition:all .1s ease-in-out;opacity:0;overflow:hidden}.cta.active{height:35px;opacity:1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: CtaComponent, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CtaComponent, decorators: [{
12
12
  type: Component,
13
13
  args: [{ selector: 'eo-cta', template: "<section class=\"cta\" [ngClass]=\"{active: active}\">\n <ng-content></ng-content>\n</section>\n", styles: [".cta{height:0;transition:all .1s ease-in-out;opacity:0;overflow:hidden}.cta.active{height:35px;opacity:1}\n"] }]
14
14
  }], propDecorators: { active: [{
@@ -3,11 +3,11 @@ import { CommonModule } from '@angular/common';
3
3
  import { CtaComponent } from './component/cta.component';
4
4
  import * as i0 from "@angular/core";
5
5
  export class CtaModule {
6
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: CtaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.4", ngImport: i0, type: CtaModule, declarations: [CtaComponent], imports: [CommonModule], exports: [CtaComponent] }); }
8
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: CtaModule, imports: [CommonModule] }); }
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CtaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: CtaModule, declarations: [CtaComponent], imports: [CommonModule], exports: [CtaComponent] }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CtaModule, imports: [CommonModule] }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: CtaModule, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CtaModule, decorators: [{
11
11
  type: NgModule,
12
12
  args: [{
13
13
  imports: [
@@ -37,8 +37,8 @@ import { UtilModule } from './util/util.module';
37
37
  import { YvcSplitViewModule } from '@yuuvis/components/split-view';
38
38
  import * as i0 from "@angular/core";
39
39
  export class EoFrameworkModule {
40
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: EoFrameworkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
41
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.4", ngImport: i0, type: EoFrameworkModule, declarations: [UploadOverlayComponent,
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: EoFrameworkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
41
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: EoFrameworkModule, declarations: [UploadOverlayComponent,
42
42
  PrepareDetailsComponent,
43
43
  InboxDetailsComponent,
44
44
  ProcessHistoryComponent,
@@ -100,7 +100,7 @@ export class EoFrameworkModule {
100
100
  PluginsModule,
101
101
  FrameComponent,
102
102
  ObjectStateDetailsComponent] }); }
103
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: EoFrameworkModule, imports: [CommonModule,
103
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: EoFrameworkModule, imports: [CommonModule,
104
104
  EoAppShellModule,
105
105
  ObjectFormModule,
106
106
  UiModule,
@@ -146,7 +146,7 @@ export class EoFrameworkModule {
146
146
  AccordionModule,
147
147
  PluginsModule] }); }
148
148
  }
149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: EoFrameworkModule, decorators: [{
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: EoFrameworkModule, decorators: [{
150
150
  type: NgModule,
151
151
  args: [{
152
152
  imports: [
@@ -5,15 +5,15 @@ import { Error404Component } from './error404/error404.component';
5
5
  import { UiModule } from '../ui/ui.module';
6
6
  import * as i0 from "@angular/core";
7
7
  export class ErrorModule {
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ErrorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.4", ngImport: i0, type: ErrorModule, declarations: [NotFoundComponent,
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ErrorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: ErrorModule, declarations: [NotFoundComponent,
10
10
  Error404Component], imports: [CommonModule,
11
11
  UiModule], exports: [NotFoundComponent,
12
12
  Error404Component] }); }
13
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ErrorModule, imports: [CommonModule,
13
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ErrorModule, imports: [CommonModule,
14
14
  UiModule] }); }
15
15
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ErrorModule, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ErrorModule, decorators: [{
17
17
  type: NgModule,
18
18
  args: [{
19
19
  imports: [
@@ -3,10 +3,10 @@ import * as i0 from "@angular/core";
3
3
  import * as i1 from "@ngx-translate/core";
4
4
  import * as i2 from "../../ui/eo-icon/eo-icon.component";
5
5
  export class Error404Component {
6
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: Error404Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: Error404Component, selector: "eo-error404", ngImport: i0, template: "<section class=\"not-found\">\n <header class=\"header\">\n <h3 class=\"title\">\n <span translate>eo.status.404.title</span>\n <span class=\"description\" translate>eo.status.404.description</span>\n </h3>\n <eo-icon class=\"icon\" [iconSrc]=\"'assets/_default/svg/ic_error.svg'\"></eo-icon>\n </header>\n</section>\n\n", styles: [".not-found{display:flex;flex-flow:column;position:fixed;left:0;right:0;top:var(--app-bar-height);bottom:0}.not-found .header{background:var(--color-primary);color:var(--color-white);flex:0 0 33vh;display:flex;align-items:flex-end}.not-found .header .title{flex:1 1 auto;padding:var(--app-pane-padding);font-size:var(--font-display);color:var(--main-background);opacity:.84;display:flex;font-weight:var(--font-weight-light);flex-direction:column;padding-bottom:0;margin-bottom:var(--app-pane-padding)}.not-found .header .description{margin:calc(var(--app-pane-padding) / 2) 0;font-size:var(--font-title);font-weight:var(--font-weight-light);opacity:.84;white-space:unset}.not-found .header eo-icon.icon{position:absolute;height:initial;right:0;width:400px;transform:translateY(10vh);opacity:.1;color:var(--main-background)}\n"], dependencies: [{ kind: "directive", type: i1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i2.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }] }); }
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: Error404Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: Error404Component, selector: "eo-error404", ngImport: i0, template: "<section class=\"not-found\">\n <header class=\"header\">\n <h3 class=\"title\">\n <span translate>eo.status.404.title</span>\n <span class=\"description\" translate>eo.status.404.description</span>\n </h3>\n <eo-icon class=\"icon\" [iconSrc]=\"'assets/_default/svg/ic_error.svg'\"></eo-icon>\n </header>\n</section>\n\n", styles: [".not-found{display:flex;flex-flow:column;position:fixed;left:0;right:0;top:var(--app-bar-height);bottom:0}.not-found .header{background:var(--color-primary);color:var(--color-white);flex:0 0 33vh;display:flex;align-items:flex-end}.not-found .header .title{flex:1 1 auto;padding:var(--app-pane-padding);font-size:var(--font-display);color:var(--main-background);opacity:.84;display:flex;font-weight:var(--font-weight-light);flex-direction:column;padding-bottom:0;margin-bottom:var(--app-pane-padding)}.not-found .header .description{margin:calc(var(--app-pane-padding) / 2) 0;font-size:var(--font-title);font-weight:var(--font-weight-light);opacity:.84;white-space:unset}.not-found .header eo-icon.icon{position:absolute;height:initial;right:0;width:400px;transform:translateY(10vh);opacity:.1;color:var(--main-background)}\n"], dependencies: [{ kind: "directive", type: i1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i2.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }] }); }
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: Error404Component, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: Error404Component, decorators: [{
10
10
  type: Component,
11
11
  args: [{ selector: 'eo-error404', template: "<section class=\"not-found\">\n <header class=\"header\">\n <h3 class=\"title\">\n <span translate>eo.status.404.title</span>\n <span class=\"description\" translate>eo.status.404.description</span>\n </h3>\n <eo-icon class=\"icon\" [iconSrc]=\"'assets/_default/svg/ic_error.svg'\"></eo-icon>\n </header>\n</section>\n\n", styles: [".not-found{display:flex;flex-flow:column;position:fixed;left:0;right:0;top:var(--app-bar-height);bottom:0}.not-found .header{background:var(--color-primary);color:var(--color-white);flex:0 0 33vh;display:flex;align-items:flex-end}.not-found .header .title{flex:1 1 auto;padding:var(--app-pane-padding);font-size:var(--font-display);color:var(--main-background);opacity:.84;display:flex;font-weight:var(--font-weight-light);flex-direction:column;padding-bottom:0;margin-bottom:var(--app-pane-padding)}.not-found .header .description{margin:calc(var(--app-pane-padding) / 2) 0;font-size:var(--font-title);font-weight:var(--font-weight-light);opacity:.84;white-space:unset}.not-found .header eo-icon.icon{position:absolute;height:initial;right:0;width:400px;transform:translateY(10vh);opacity:.1;color:var(--main-background)}\n"] }]
12
12
  }] });
@@ -10,10 +10,10 @@ export class NotFoundComponent {
10
10
  this.titleService = titleService;
11
11
  this.titleService.setDefaultTitle();
12
12
  }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: NotFoundComponent, deps: [{ token: i1.PageTitleService }], target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: NotFoundComponent, selector: "eo-not-found", ngImport: i0, template: '<eo-error404></eo-error404>', isInline: true, dependencies: [{ kind: "component", type: i2.Error404Component, selector: "eo-error404" }] }); }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NotFoundComponent, deps: [{ token: i1.PageTitleService }], target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: NotFoundComponent, selector: "eo-not-found", ngImport: i0, template: '<eo-error404></eo-error404>', isInline: true, dependencies: [{ kind: "component", type: i2.Error404Component, selector: "eo-error404" }] }); }
15
15
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: NotFoundComponent, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NotFoundComponent, decorators: [{
17
17
  type: Component,
18
18
  args: [{
19
19
  selector: 'eo-not-found',
@@ -34,8 +34,8 @@ export class CheckboxComponent {
34
34
  }
35
35
  this.propagateChange(this.value);
36
36
  }
37
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: CheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
38
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: CheckboxComponent, selector: "eo-checkbox", inputs: { required: "required", tristate: "tristate", readonly: "readonly" }, providers: [
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
38
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: CheckboxComponent, selector: "eo-checkbox", inputs: { required: "required", tristate: "tristate", readonly: "readonly" }, providers: [
39
39
  {
40
40
  provide: NG_VALUE_ACCESSOR,
41
41
  useExisting: forwardRef(() => CheckboxComponent),
@@ -43,7 +43,7 @@ export class CheckboxComponent {
43
43
  }
44
44
  ], ngImport: i0, template: "<yvc-checkbox [title]=\"value === null ? ('eo.form.property.checkbox.indefinite.tooltip' | translate) : ''\" [(ngModel)]=\"value\" (ngModelChange)=\"onChange($event)\" [tristate]=\"tristate\"\n [readonly]=\"readonly\"></yvc-checkbox>\n", styles: [":host{display:flex;align-items:center}:host .tristate{display:flex;align-items:center}:host .tristate ::ng-deep .pi-times:before{content:\"\"}:host eo-icon{height:16px;width:16px;color:var(--text-color-hint);cursor:pointer;margin:1px 0 0 4px}:host-context(.dark) eo-icon{color:rgba(var(--color-white-rgb),.8)}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.CheckboxComponent, selector: "yvc-checkbox", inputs: ["tristate", "readonly"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
45
45
  }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: CheckboxComponent, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CheckboxComponent, decorators: [{
47
47
  type: Component,
48
48
  args: [{ selector: 'eo-checkbox', providers: [
49
49
  {
@@ -252,8 +252,8 @@ export class CodesystemComponent {
252
252
  }
253
253
  };
254
254
  }
255
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: CodesystemComponent, deps: [{ token: i1.SystemService }], target: i0.ɵɵFactoryTarget.Component }); }
256
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: CodesystemComponent, selector: "eo-codesystem", inputs: { situation: "situation", pickerTitle: "pickerTitle", placeholder: "placeholder", codesystem: "codesystem", multiselect: "multiselect", readonly: "readonly", inputStyleClass: "inputStyleClass", emptyMessage: "emptyMessage", filterFunction: "filterFunction", disablingFilterFunction: "disablingFilterFunction" }, providers: [
255
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CodesystemComponent, deps: [{ token: i1.SystemService }], target: i0.ɵɵFactoryTarget.Component }); }
256
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: CodesystemComponent, selector: "eo-codesystem", inputs: { situation: "situation", pickerTitle: "pickerTitle", placeholder: "placeholder", codesystem: "codesystem", multiselect: "multiselect", readonly: "readonly", inputStyleClass: "inputStyleClass", emptyMessage: "emptyMessage", filterFunction: "filterFunction", disablingFilterFunction: "disablingFilterFunction" }, providers: [
257
257
  {
258
258
  provide: NG_VALUE_ACCESSOR,
259
259
  useExisting: forwardRef(() => CodesystemComponent),
@@ -266,7 +266,7 @@ export class CodesystemComponent {
266
266
  }
267
267
  ], viewQueries: [{ propertyName: "autoCompleteInput", first: true, predicate: ["autocomplete"], descendants: true }, { propertyName: "autoCompleteButton", first: true, predicate: ["button"], descendants: true }], ngImport: i0, template: "<div class=\"eo-codesystem\" *ngIf=\"codesystem\"\n [ngClass]=\"{full: selectedNodes && selectedNodes.length === autocompleteValues.length, readonly: readonly}\">\n\n <yvc-autocomplete #autocomplete (suggestionSelect)=\"onAutoCompleteSelect($event)\"\n (suggestionUnselect)=\"onAutoCompleteUnselect($event)\" [autocompleteValues]=\"autocompleteRes\" field=\"name\"\n [disabled]=\"readonly\" [placeholder]=\"placeholder\" [forceSelection]=\"true\" (autocompleteFnc)=\"autocompleteFn($event)\"\n [multiple]=\"multiselect\" (ngModelChange)=\"onAutocompleteValueChange($event)\" [(ngModel)]=\"selectedNodes\">\n </yvc-autocomplete>\n <button type=\"button\" #button *ngIf=\"!readonly\"\n (click)=\"setDialogVisible(true, $event)\" \n (keydown.enter)=\"setDialogVisible(true, $event)\" \n >\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n</div>\n\n<eo-dialog [title]=\"pickerTitle || ''\" [visible]=\"display\" (hide)=\"display = false\">\n <eo-tree [tree]=\"tree\" [isDisplayed]=\"display\" *ngIf=\"display\" [options]=\"{multiselect: multiselect}\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\" [readonly]=\"readonly\"\n [emptyMessage]=\"emptyMessage\">\n </eo-tree>\n</eo-dialog>", styles: [".eo-codesystem{display:flex;align-items:center;justify-content:space-between}.eo-codesystem yvc-autocomplete{display:flex;flex:1;border:0;outline:0}.eo-codesystem>button{padding:0}.eo-codesystem>button eo-icon{width:16px;height:16px;margin:auto}.eo-codesystem.full ::ng-deep yvc-autocomplete .inputToken{display:none}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i5.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: i6.TreeComponent, selector: "eo-tree", inputs: ["options", "isDisplayed", "readonly", "emptyMessage", "selectionKey", "highlightedNodes", "tree", "treeUpdate"], outputs: ["expandedNodesChanged", "onSelected"] }, { kind: "component", type: i7.AutoComplete, selector: "yvc-autocomplete", inputs: ["field", "placeholder", "minLength", "multiple", "typeahead", "distinctValues", "forceSelection", "autocompleteValues", "disabled"], outputs: ["autocompleteFnc", "blur", "focus", "suggestionUnselect", "suggestionSelect"] }] }); }
268
268
  }
269
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: CodesystemComponent, decorators: [{
269
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CodesystemComponent, decorators: [{
270
270
  type: Component,
271
271
  args: [{ selector: 'eo-codesystem', providers: [
272
272
  {
@@ -60,8 +60,8 @@ export class DateComponent {
60
60
  ngOnDestroy() {
61
61
  this._subs.forEach((s) => s.unsubscribe());
62
62
  }
63
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: DateComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
64
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: DateComponent, selector: "eo-date", inputs: { withTime: "withTime", readonly: "readonly", onlyFutureDates: "onlyFutureDates" }, providers: [
63
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DateComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
64
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: DateComponent, selector: "eo-date", inputs: { withTime: "withTime", readonly: "readonly", onlyFutureDates: "onlyFutureDates" }, providers: [
65
65
  {
66
66
  provide: NG_VALUE_ACCESSOR,
67
67
  useExisting: forwardRef(() => DateComponent),
@@ -74,7 +74,7 @@ export class DateComponent {
74
74
  }
75
75
  ], viewQueries: [{ propertyName: "picker", first: true, predicate: ["picker"], descendants: true, read: NgModel }], ngImport: i0, template: "<yvc-datepicker #picker [calendar]=\"true\" [disabled]=\"readonly\" [locale]=\"locale\" [withTime]=\"withTime\" [labels]=\"labels\"\n [hour12]=\"locale === 'en'\" \n [onlyFutureDates]=\"onlyFutureDates\"\n [ngModelOptions]=\"{standalone: true}\" [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"></yvc-datepicker>", styles: [":host yvc-datepicker{border:0;outline:0;box-sizing:border-box;overflow-x:auto}\n"], dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.Datepicker, selector: "yvc-datepicker", inputs: ["calendar", "readonly", "hour12", "locale", "labels", "withTime", "onlyFutureDates", "minDate", "maxDate", "disabled"] }] }); }
76
76
  }
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: DateComponent, decorators: [{
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DateComponent, decorators: [{
78
78
  type: Component,
79
79
  args: [{ selector: 'eo-date', providers: [
80
80
  {
@@ -25,10 +25,10 @@ export class YearRangeDirective {
25
25
  this.rangeMin = 0;
26
26
  this.rangeMax = 9999;
27
27
  }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: YearRangeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
29
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: YearRangeDirective, selector: "[eoYearRange]", inputs: { rangeMin: "rangeMin", rangeMax: "rangeMax" }, host: { listeners: { "input": "onKeyDown($event)" } }, ngImport: i0 }); }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: YearRangeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
29
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0", type: YearRangeDirective, selector: "[eoYearRange]", inputs: { rangeMin: "rangeMin", rangeMax: "rangeMax" }, host: { listeners: { "input": "onKeyDown($event)" } }, ngImport: i0 }); }
30
30
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: YearRangeDirective, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: YearRangeDirective, decorators: [{
32
32
  type: Directive,
33
33
  args: [{
34
34
  selector: '[eoYearRange]'
@@ -13,9 +13,10 @@ import * as i6 from "@yuuvis/components/dropdown";
13
13
  import * as i7 from "../codesystem/codesystem.component";
14
14
  import * as i8 from "../date/date.component";
15
15
  export class DatetimeRangeComponent {
16
- constructor(fb, translate) {
16
+ constructor(fb, translate, elemRef) {
17
17
  this.fb = fb;
18
18
  this.translate = translate;
19
+ this.elemRef = elemRef;
19
20
  this.operator = 'eq';
20
21
  this.swapInputs = false;
21
22
  this.rangeForm = this.fb.group({
@@ -62,9 +63,13 @@ export class DatetimeRangeComponent {
62
63
  reset() {
63
64
  this._setValue(new RangeValue(this.searchOption, null, null));
64
65
  }
66
+ catchFocusOnDropdown() {
67
+ setTimeout(() => {
68
+ this.elemRef.nativeElement.querySelector('yvc-dropdown').focus();
69
+ }, 200);
70
+ }
65
71
  onValueChange(searchOption = this.searchOption) {
66
72
  let dateValue = this.formatDate(this.rangeForm.get('dateValue').value);
67
- let datePickerValue = this.rangeForm.get('datePickerValue').value;
68
73
  if (searchOption === SearchFilter.OPERATOR.INTERVAL_INCLUDE_BOTH) {
69
74
  const dateValueFrom = this.formatDate(this.rangeForm.get('dateValueFrom').value);
70
75
  if (dateValueFrom && dateValue) {
@@ -82,6 +87,10 @@ export class DatetimeRangeComponent {
82
87
  this.swapInputs = false;
83
88
  this.isValid = this.rangeForm.valid;
84
89
  const oldSearchOption = this.searchOption;
90
+ if (oldSearchOption !== searchOption) {
91
+ this.rangeForm.reset();
92
+ }
93
+ const datePickerValue = this.rangeForm.get('datePickerValue').value;
85
94
  this._setValue(!datePickerValue ? null : new RangeValue(searchOption, datePickerValue));
86
95
  if (this.previousDateValue !== datePickerValue || oldSearchOption !== searchOption) {
87
96
  this.propagateChange(this.value);
@@ -123,7 +132,7 @@ export class DatetimeRangeComponent {
123
132
  }
124
133
  if (value && value instanceof RangeValue && (value.firstValue || value.secondValue)) {
125
134
  // This prevents the value change event from being fired twice during initialization or when there is already a value
126
- if (this.rangeForm.pristine && this.value != null && value != this.value) {
135
+ if (this.rangeForm.pristine && this.value != null && value !== this.value && value.operator === this.value.operator) {
127
136
  return;
128
137
  }
129
138
  const fV = value.firstValue ? new Date(value.firstValue) : null;
@@ -291,8 +300,8 @@ export class DatetimeRangeComponent {
291
300
  this.getPlaceholderCodesystem();
292
301
  this.searchOption = this.operator;
293
302
  }
294
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: DatetimeRangeComponent, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
295
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.4", type: DatetimeRangeComponent, selector: "eo-datetime-range", inputs: { withTime: "withTime", pickerTitle: "pickerTitle", operator: "operator", situation: "situation" }, host: { properties: { "class.swap": "this.swapInputs" }, classAttribute: "form-element-range" }, providers: [
303
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DatetimeRangeComponent, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.TranslateService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
304
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: DatetimeRangeComponent, selector: "eo-datetime-range", inputs: { withTime: "withTime", pickerTitle: "pickerTitle", operator: "operator", situation: "situation" }, host: { properties: { "class.swap": "this.swapInputs" }, classAttribute: "form-element-range" }, providers: [
296
305
  {
297
306
  provide: NG_VALUE_ACCESSOR,
298
307
  useExisting: forwardRef(() => DatetimeRangeComponent),
@@ -303,9 +312,9 @@ export class DatetimeRangeComponent {
303
312
  useExisting: forwardRef(() => DatetimeRangeComponent),
304
313
  multi: true,
305
314
  }
306
- ], ngImport: i0, template: "<form class=\"eo-datetime-range\" [formGroup]=\"rangeForm\">\n <eo-date *ngIf=\"searchOption === 'gtelte'\" [withTime]=\"withTime\"\n formControlName=\"dateValueFrom\"></eo-date>\n\n <yvc-dropdown [ngModel]=\"searchOption\" (ngModelChange)=\"onValueChange($event)\" [ngModelOptions]=\"{standalone: true}\"\n [options]=\"availableSearchOptions\"></yvc-dropdown>\n \n @if(searchOption === 'mr'){\n <eo-codesystem formControlName=\"datePickerValue\" [pickerTitle]=\"datePicker.title\"\n [emptyMessage]=\"'eo.workspace.widget.stored.queries.list.notAvailable'\"\n [codesystem]=\"datePicker.codesystem\"></eo-codesystem>\n }\n @else{\n <eo-date [withTime]=\"withTime\" formControlName=\"dateValue\"></eo-date>\n }\n</form>\n\n<div class=\"errors\" *ngIf=\"rangeForm.invalid\">\n <div class=\"err-msg\" translate>eo.form.property.date.invalid</div>\n <eo-icon class=\"button\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"reset()\"></eo-icon>\n</div>\n", styles: [".eo-datetime-range{display:flex;flex-flow:row nowrap;align-items:stretch;gap:2px}.eo-datetime-range yvc-dropdown{border-radius:2px;outline:1px solid rgba(0,0,0,.2);background-color:var(--list-item-hover-background)}.eo-datetime-range yvc-dropdown:hover{background-color:var(--list-item-selected-background)}.eo-datetime-range eo-date{flex:1 1 auto}.err-msg{color:var(--color-error);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4)}.errors{display:flex;align-items:center;justify-content:space-between;gap:.5em}.errors .err-msg:before{content:\"!\";padding:0 calc(var(--app-pane-padding) / 4)}.errors eo-icon{color:var(--color-error);width:18px;height:18px}eo-codesystem{width:100%}::ng-deep yvc-dropdown[aria-expanded=true],::ng-deep .yvc-dropdown:focus{background-color:var(--color-primary-4)!important}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i6.Dropdown, selector: "yvc-dropdown", inputs: ["options", "filter", "disabled", "multiple", "disableClearButton"] }, { kind: "component", type: i7.CodesystemComponent, selector: "eo-codesystem", inputs: ["situation", "pickerTitle", "placeholder", "codesystem", "multiselect", "readonly", "inputStyleClass", "emptyMessage", "filterFunction", "disablingFilterFunction"] }, { kind: "component", type: i8.DateComponent, selector: "eo-date", inputs: ["withTime", "readonly", "onlyFutureDates"] }] }); }
315
+ ], ngImport: i0, template: "<form class=\"eo-datetime-range\" [formGroup]=\"rangeForm\">\n <eo-date *ngIf=\"searchOption === 'gtelte'\" [withTime]=\"withTime\"\n formControlName=\"dateValueFrom\"></eo-date>\n\n <yvc-dropdown [ngModel]=\"searchOption\" (ngModelChange)=\"onValueChange($event)\" [ngModelOptions]=\"{standalone: true}\"\n [options]=\"availableSearchOptions\" (onDropdownOptionsClose)=\"catchFocusOnDropdown()\"></yvc-dropdown>\n \n @if(searchOption === 'mr'){\n <eo-codesystem formControlName=\"datePickerValue\" [pickerTitle]=\"datePicker.title\"\n [emptyMessage]=\"'eo.workspace.widget.stored.queries.list.notAvailable'\"\n [codesystem]=\"datePicker.codesystem\"></eo-codesystem>\n }\n @else{\n <eo-date [withTime]=\"withTime\" formControlName=\"dateValue\"></eo-date>\n }\n</form>\n\n<div class=\"errors\" *ngIf=\"rangeForm.invalid\">\n <div class=\"err-msg\" translate>eo.form.property.date.invalid</div>\n <eo-icon class=\"button\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"reset()\"></eo-icon>\n</div>\n", styles: [".eo-datetime-range{display:flex;flex-flow:row nowrap;align-items:stretch;gap:2px}.eo-datetime-range yvc-dropdown{border-radius:2px;outline:1px solid rgba(0,0,0,.2);background-color:var(--list-item-hover-background)}.eo-datetime-range yvc-dropdown:hover{background-color:var(--list-item-selected-background)}.eo-datetime-range eo-date{flex:1 1 auto}.err-msg{color:var(--color-error);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4)}.errors{display:flex;align-items:center;justify-content:space-between;gap:.5em}.errors .err-msg:before{content:\"!\";padding:0 calc(var(--app-pane-padding) / 4)}.errors eo-icon{color:var(--color-error);width:18px;height:18px}eo-codesystem{width:100%}::ng-deep yvc-dropdown[aria-expanded=true],::ng-deep .yvc-dropdown:focus{background-color:var(--color-primary-4)!important}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i6.Dropdown, selector: "yvc-dropdown", inputs: ["options", "filter", "disabled", "multiple", "disableClearButton"], outputs: ["onDropdownOptionsClose"] }, { kind: "component", type: i7.CodesystemComponent, selector: "eo-codesystem", inputs: ["situation", "pickerTitle", "placeholder", "codesystem", "multiselect", "readonly", "inputStyleClass", "emptyMessage", "filterFunction", "disablingFilterFunction"] }, { kind: "component", type: i8.DateComponent, selector: "eo-date", inputs: ["withTime", "readonly", "onlyFutureDates"] }] }); }
307
316
  }
308
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: DatetimeRangeComponent, decorators: [{
317
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DatetimeRangeComponent, decorators: [{
309
318
  type: Component,
310
319
  args: [{ selector: 'eo-datetime-range', providers: [
311
320
  {
@@ -320,8 +329,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
320
329
  }
321
330
  ], host: {
322
331
  class: 'form-element-range'
323
- }, template: "<form class=\"eo-datetime-range\" [formGroup]=\"rangeForm\">\n <eo-date *ngIf=\"searchOption === 'gtelte'\" [withTime]=\"withTime\"\n formControlName=\"dateValueFrom\"></eo-date>\n\n <yvc-dropdown [ngModel]=\"searchOption\" (ngModelChange)=\"onValueChange($event)\" [ngModelOptions]=\"{standalone: true}\"\n [options]=\"availableSearchOptions\"></yvc-dropdown>\n \n @if(searchOption === 'mr'){\n <eo-codesystem formControlName=\"datePickerValue\" [pickerTitle]=\"datePicker.title\"\n [emptyMessage]=\"'eo.workspace.widget.stored.queries.list.notAvailable'\"\n [codesystem]=\"datePicker.codesystem\"></eo-codesystem>\n }\n @else{\n <eo-date [withTime]=\"withTime\" formControlName=\"dateValue\"></eo-date>\n }\n</form>\n\n<div class=\"errors\" *ngIf=\"rangeForm.invalid\">\n <div class=\"err-msg\" translate>eo.form.property.date.invalid</div>\n <eo-icon class=\"button\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"reset()\"></eo-icon>\n</div>\n", styles: [".eo-datetime-range{display:flex;flex-flow:row nowrap;align-items:stretch;gap:2px}.eo-datetime-range yvc-dropdown{border-radius:2px;outline:1px solid rgba(0,0,0,.2);background-color:var(--list-item-hover-background)}.eo-datetime-range yvc-dropdown:hover{background-color:var(--list-item-selected-background)}.eo-datetime-range eo-date{flex:1 1 auto}.err-msg{color:var(--color-error);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4)}.errors{display:flex;align-items:center;justify-content:space-between;gap:.5em}.errors .err-msg:before{content:\"!\";padding:0 calc(var(--app-pane-padding) / 4)}.errors eo-icon{color:var(--color-error);width:18px;height:18px}eo-codesystem{width:100%}::ng-deep yvc-dropdown[aria-expanded=true],::ng-deep .yvc-dropdown:focus{background-color:var(--color-primary-4)!important}\n"] }]
324
- }], ctorParameters: () => [{ type: i1.UntypedFormBuilder }, { type: i2.TranslateService }], propDecorators: { withTime: [{
332
+ }, template: "<form class=\"eo-datetime-range\" [formGroup]=\"rangeForm\">\n <eo-date *ngIf=\"searchOption === 'gtelte'\" [withTime]=\"withTime\"\n formControlName=\"dateValueFrom\"></eo-date>\n\n <yvc-dropdown [ngModel]=\"searchOption\" (ngModelChange)=\"onValueChange($event)\" [ngModelOptions]=\"{standalone: true}\"\n [options]=\"availableSearchOptions\" (onDropdownOptionsClose)=\"catchFocusOnDropdown()\"></yvc-dropdown>\n \n @if(searchOption === 'mr'){\n <eo-codesystem formControlName=\"datePickerValue\" [pickerTitle]=\"datePicker.title\"\n [emptyMessage]=\"'eo.workspace.widget.stored.queries.list.notAvailable'\"\n [codesystem]=\"datePicker.codesystem\"></eo-codesystem>\n }\n @else{\n <eo-date [withTime]=\"withTime\" formControlName=\"dateValue\"></eo-date>\n }\n</form>\n\n<div class=\"errors\" *ngIf=\"rangeForm.invalid\">\n <div class=\"err-msg\" translate>eo.form.property.date.invalid</div>\n <eo-icon class=\"button\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"reset()\"></eo-icon>\n</div>\n", styles: [".eo-datetime-range{display:flex;flex-flow:row nowrap;align-items:stretch;gap:2px}.eo-datetime-range yvc-dropdown{border-radius:2px;outline:1px solid rgba(0,0,0,.2);background-color:var(--list-item-hover-background)}.eo-datetime-range yvc-dropdown:hover{background-color:var(--list-item-selected-background)}.eo-datetime-range eo-date{flex:1 1 auto}.err-msg{color:var(--color-error);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4)}.errors{display:flex;align-items:center;justify-content:space-between;gap:.5em}.errors .err-msg:before{content:\"!\";padding:0 calc(var(--app-pane-padding) / 4)}.errors eo-icon{color:var(--color-error);width:18px;height:18px}eo-codesystem{width:100%}::ng-deep yvc-dropdown[aria-expanded=true],::ng-deep .yvc-dropdown:focus{background-color:var(--color-primary-4)!important}\n"] }]
333
+ }], ctorParameters: () => [{ type: i1.UntypedFormBuilder }, { type: i2.TranslateService }, { type: i0.ElementRef }], propDecorators: { withTime: [{
325
334
  type: Input
326
335
  }], pickerTitle: [{
327
336
  type: Input
@@ -333,4 +342,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
333
342
  type: HostBinding,
334
343
  args: ['class.swap']
335
344
  }] } });
336
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvZm9ybS1lbGVtZW50cy9kYXRldGltZS1yYW5nZS9kYXRldGltZS1yYW5nZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL2RhdGV0aW1lLXJhbmdlL2RhdGV0aW1lLXJhbmdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFVLFVBQVUsRUFBRSxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQU1MLGlCQUFpQixFQUNqQixhQUFhLEVBQ2QsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsVUFBVSxFQUFFLFlBQVksRUFBbUIsTUFBTSxjQUFjLENBQUM7QUFDeEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1EQUFtRCxDQUFDOzs7Ozs7Ozs7O0FBc0JqRixNQUFNLE9BQU8sc0JBQXNCO0lBcUNqQyxZQUFvQixFQUFzQixFQUNqQyxTQUEyQjtRQURoQixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUNqQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQWxDM0IsYUFBUSxHQUFHLElBQUksQ0FBQztRQUlFLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFOUMsY0FBUyxHQUFjLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ25DLFNBQVMsRUFBRSxFQUFFO1lBQ2IsYUFBYSxFQUFFLEVBQUU7WUFDakIsZUFBZSxFQUFFLEVBQUU7U0FDcEIsQ0FBQyxDQUFDO1FBRUssWUFBTyxHQUFHLElBQUksQ0FBQztRQUV2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Q0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQzs4R0FqWFUsc0JBQXNCO2tHQUF0QixzQkFBc0IseVBBaEJ0QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsc0JBQXNCLENBQUM7Z0JBQ3JELEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRDtnQkFDRSxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDckQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQzdCSCxnL0JBcUJBOzsyRkRhYSxzQkFBc0I7a0JBcEJsQyxTQUFTOytCQUNFLG1CQUFtQixhQUdsQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQzs0QkFDckQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDOzRCQUNyRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixRQUNLO3dCQUNKLEtBQUssRUFBRSxvQkFBb0I7cUJBQzVCO3NIQUlRLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR3FCLFVBQVU7c0JBQXBDLFdBQVc7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZ30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb3JtR3JvdXAsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIFZhbGlkYXRvcixcbiAgVW50eXBlZEZvcm1CdWlsZGVyLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgTkdfVkFMSURBVE9SU1xufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtSYW5nZVZhbHVlLCBTZWFyY2hGaWx0ZXIsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge0xvY2FsZURhdGVQaXBlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9waXBlcy9sb2NhbGUtZGF0ZS5waXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tZGF0ZXRpbWUtcmFuZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXRpbWUtcmFuZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRldGltZS1yYW5nZS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGV0aW1lUmFuZ2VDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRldGltZVJhbmdlQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH1cbiAgXSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZm9ybS1lbGVtZW50LXJhbmdlJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIERhdGV0aW1lUmFuZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3Ige1xuXG4gIEBJbnB1dCgpIHdpdGhUaW1lOiBib29sZWFuO1xuICBASW5wdXQoKSBwaWNrZXJUaXRsZTogc3RyaW5nO1xuICBASW5wdXQoKSBvcGVyYXRvciA9ICdlcSc7XG4gIEBJbnB1dCgpIHNpdHVhdGlvbjogc3RyaW5nO1xuXG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zd2FwJykgc3dhcElucHV0cyA9IGZhbHNlO1xuXG4gIHJhbmdlRm9ybTogRm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgZGF0ZVZhbHVlOiBbXSxcbiAgICBkYXRlVmFsdWVGcm9tOiBbXSxcbiAgICBkYXRlUGlja2VyVmFsdWU6IFtdXG4gIH0pO1xuICB2YWx1ZTogUmFuZ2VWYWx1ZTtcbiAgcHJpdmF0ZSBpc1ZhbGlkID0gdHJ1ZTtcblxuICAvLyBvcHRpb25zIGZvciBzZWFyY2ggc2l0dWF0aW9uXG4gIHB1YmxpYyBhdmFpbGFibGVTZWFyY2hPcHRpb25zID0gW1xuICAgIHtsYWJlbDogUmFuZ2VWYWx1ZS5nZXRPcGVyYXRvckxhYmVsKFNlYXJjaEZpbHRlci5PUEVSQVRPUi5FUVVBTCksIHZhbHVlOiBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuRVFVQUx9LFxuICAgIHtsYWJlbDogUmFuZ2VWYWx1ZS5nZXRPcGVyYXRvckxhYmVsKFNlYXJjaEZpbHRlci5PUEVSQVRPUi5HUkVBVEVSX09SX0VRVUFMKSwgdmFsdWU6IFNlYXJjaEZpbHRlci5PUEVSQVRPUi5HUkVBVEVSX09SX0VRVUFMfSxcbiAgICB7bGFiZWw6IFJhbmdlVmFsdWUuZ2V0T3BlcmF0b3JMYWJlbChTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuTEVTU19PUl9FUVVBTCksIHZhbHVlOiBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuTEVTU19PUl9FUVVBTH0sXG4gICAge2xhYmVsOiBSYW5nZVZhbHVlLmdldE9wZXJhdG9yTGFiZWwoU2VhcmNoRmlsdGVyLk9QRVJBVE9SLklOVEVSVkFMX0lOQ0xVREVfQk9USCksIHZhbHVlOiBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuSU5URVJWQUxfSU5DTFVERV9CT1RIfSxcbiAgICB7bGFiZWw6IFJhbmdlVmFsdWUuZ2V0T3BlcmF0b3JMYWJlbChTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuTU9SRSksIHZhbHVlOiBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuTU9SRX1cbiAgXTtcblxuICAvLyB0aGUgc2VsZWN0ZWQgc2VhcmNoIG9wdGlvblxuICBwdWJsaWMgc2VhcmNoT3B0aW9uOiBzdHJpbmc7XG4gIGRhdGVQaXBlOiBMb2NhbGVEYXRlUGlwZTtcbiAgcHJldmlvdXNEYXRlVmFsdWUgPSBudWxsO1xuICBwcmV2aW91c0RhdGVWYWx1ZUZyb20gPSBudWxsO1xuICBkYXRlUGlja2VyID0ge1xuICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zZWFyY2guYWdnLnRpbWUuc3BhbicpLFxuICAgIGNvZGVzeXN0ZW06IG51bGwsXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuZGF0ZVBpcGUgPSBuZXcgTG9jYWxlRGF0ZVBpcGUodHJhbnNsYXRlKTtcbiAgICB0aGlzLnJhbmdlRm9ybS52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vblZhbHVlQ2hhbmdlKCkpO1xuICB9XG5cbiAgcHJvcGFnYXRlQ2hhbmdlID0gKF86IGFueSkgPT4geyB9O1xuICB2YWxpZGF0aW9uQ2hhbmdlID0gKCkgPT4geyB9O1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IFJhbmdlVmFsdWUpOiB2b2lkIHtcbiAgICB0aGlzLl9zZXRWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBvblNlYXJjaFNpdHVhdGlvbigpIHtcbiAgICBpZiAodGhpcy5zaXR1YXRpb24gIT09ICdTRUFSQ0gnKSB7XG4gICAgICB0aGlzLmF2YWlsYWJsZVNlYXJjaE9wdGlvbnMgPSB0aGlzLmF2YWlsYWJsZVNlYXJjaE9wdGlvbnMuZmlsdGVyKG9wdGlvbiA9PiBvcHRpb24udmFsdWUgIT09IFNlYXJjaEZpbHRlci5PUEVSQVRPUi5NT1JFKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZT8oZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLnZhbGlkYXRpb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgfVxuXG4gIHJlc2V0KCkge1xuICAgIHRoaXMuX3NldFZhbHVlKG5ldyBSYW5nZVZhbHVlKFxuICAgICAgdGhpcy5zZWFyY2hPcHRpb24sXG4gICAgICBudWxsLCBudWxsXG4gICAgKSk7XG4gIH1cblxuICBvblZhbHVlQ2hhbmdlKHNlYXJjaE9wdGlvbiA9IHRoaXMuc2VhcmNoT3B0aW9uKSB7XG4gICAgbGV0IGRhdGVWYWx1ZSA9IHRoaXMuZm9ybWF0RGF0ZSh0aGlzLnJhbmdlRm9ybS5nZXQoJ2RhdGVWYWx1ZScpLnZhbHVlKTtcbiAgICBsZXQgZGF0ZVBpY2tlclZhbHVlID0gdGhpcy5yYW5nZUZvcm0uZ2V0KCdkYXRlUGlja2VyVmFsdWUnKS52YWx1ZTtcblxuICAgIGlmIChzZWFyY2hPcHRpb24gPT09IFNlYXJjaEZpbHRlci5PUEVSQVRPUi5JTlRFUlZBTF9JTkNMVURFX0JPVEgpIHtcbiAgICAgIGNvbnN0IGRhdGVWYWx1ZUZyb20gPSB0aGlzLmZvcm1hdERhdGUodGhpcy5yYW5nZUZvcm0uZ2V0KCdkYXRlVmFsdWVGcm9tJykudmFsdWUpO1xuXG4gICAgICBpZiAoZGF0ZVZhbHVlRnJvbSAmJiBkYXRlVmFsdWUpIHtcbiAgICAgICAgdGhpcy5pc1ZhbGlkID0gdGhpcy5yYW5nZUZvcm0udmFsaWQgJiYgISFkYXRlVmFsdWVGcm9tICYmICEhZGF0ZVZhbHVlO1xuICAgICAgICB0aGlzLnN3YXBJbnB1dHMgPSBkYXRlVmFsdWVGcm9tICYmIGRhdGVWYWx1ZSAmJiBkYXRlVmFsdWVGcm9tID4gZGF0ZVZhbHVlO1xuICAgICAgICB0aGlzLl9zZXRWYWx1ZShuZXcgUmFuZ2VWYWx1ZShcbiAgICAgICAgICBzZWFyY2hPcHRpb24sXG4gICAgICAgICAgdGhpcy5zd2FwSW5wdXRzID8gZGF0ZVZhbHVlIDogZGF0ZVZhbHVlRnJvbSxcbiAgICAgICAgICB0aGlzLnN3YXBJbnB1dHMgPyBkYXRlVmFsdWVGcm9tIDogZGF0ZVZhbHVlXG4gICAgICAgICkpO1xuICAgICAgICBpZiAodGhpcy5wcmV2aW91c0RhdGVWYWx1ZSAhPT0gZGF0ZVZhbHVlIHx8IHRoaXMucHJldmlvdXNEYXRlVmFsdWVGcm9tICE9PSBkYXRlVmFsdWVGcm9tIHx8IHRoaXMuc2VhcmNoT3B0aW9uICE9PSBzZWFyY2hPcHRpb24pIHtcbiAgICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgICB0aGlzLnByZXZpb3VzRGF0ZVZhbHVlID0gZGF0ZVZhbHVlO1xuICAgICAgICAgIHRoaXMucHJldmlvdXNEYXRlVmFsdWVGcm9tID0gZGF0ZVZhbHVlRnJvbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoc2VhcmNoT3B0aW9uID09PSBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuTU9SRSkge1xuICAgICAgdGhpcy5zd2FwSW5wdXRzID0gZmFsc2U7XG4gICAgICB0aGlzLmlzVmFsaWQgPSB0aGlzLnJhbmdlRm9ybS52YWxpZDtcbiAgICAgIGNvbnN0IG9sZFNlYXJjaE9wdGlvbiA9IHRoaXMuc2VhcmNoT3B0aW9uO1xuICAgICAgdGhpcy5fc2V0VmFsdWUoIWRhdGVQaWNrZXJWYWx1ZSA/IG51bGwgOiBuZXcgUmFuZ2VWYWx1ZShzZWFyY2hPcHRpb24sIGRhdGVQaWNrZXJWYWx1ZSkpO1xuXG4gICAgICBpZiAodGhpcy5wcmV2aW91c0RhdGVWYWx1ZSAhPT0gZGF0ZVBpY2tlclZhbHVlIHx8IG9sZFNlYXJjaE9wdGlvbiAhPT0gc2VhcmNoT3B0aW9uKSB7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgICAgICB0aGlzLnByZXZpb3VzRGF0ZVZhbHVlID0gZGF0ZVBpY2tlclZhbHVlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN3YXBJbnB1dHMgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNWYWxpZCA9IHRoaXMucmFuZ2VGb3JtLnZhbGlkO1xuICAgICAgaWYgKHNlYXJjaE9wdGlvbiA9PT0gU2VhcmNoRmlsdGVyLk9QRVJBVE9SLkxFU1NfT1JfRVFVQUwgJiYgZGF0ZVZhbHVlKSB7XG4gICAgICAgIGNvbnN0IG5ld0RhdGVWYWx1ZSA9IG5ldyBEYXRlKGRhdGVWYWx1ZSk7XG4gICAgICAgIGlmICghdGhpcy53aXRoVGltZSkge1xuICAgICAgICAgIG5ld0RhdGVWYWx1ZS5zZXRIb3VycygyMywgNTkpO1xuICAgICAgICB9XG4gICAgICAgIGRhdGVWYWx1ZSA9IG5ld0RhdGVWYWx1ZS50b0lTT1N0cmluZygpO1xuICAgICAgfSBlbHNlIGlmIChzZWFyY2hPcHRpb24gPT09IFNlYXJjaEZpbHRlci5PUEVSQVRPUi5HUkVBVEVSX09SX0VRVUFMICYmIGRhdGVWYWx1ZSkge1xuICAgICAgICBjb25zdCBuZXdEYXRlVmFsdWUgPSBuZXcgRGF0ZShkYXRlVmFsdWUpO1xuICAgICAgICBpZiAoIXRoaXMud2l0aFRpbWUpIHtcbiAgICAgICAgICBuZXdEYXRlVmFsdWUuc2V0SG91cnMoMCwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgZGF0ZVZhbHVlID0gbmV3RGF0ZVZhbHVlLnRvSVNPU3RyaW5nKCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5pc1ZhbGlkKSB7XG4gICAgICAgIGNvbnN0IG9sZFNlYXJjaE9wdGlvbiA9IHRoaXMuc2VhcmNoT3B0aW9uO1xuICAgICAgICB0aGlzLl9zZXRWYWx1ZSghZGF0ZVZhbHVlID8gbnVsbCA6IG5ldyBSYW5nZVZhbHVlKHNlYXJjaE9wdGlvbiwgZGF0ZVZhbHVlKSk7XG4gICAgICAgIGlmICh0aGlzLnByZXZpb3VzRGF0ZVZhbHVlICE9PSBkYXRlVmFsdWUgfHwgb2xkU2VhcmNoT3B0aW9uICE9PSBzZWFyY2hPcHRpb24pIHtcbiAgICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgICB0aGlzLnByZXZpb3VzRGF0ZVZhbHVlID0gZGF0ZVZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2VhcmNoT3B0aW9uID0gc2VhcmNoT3B0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0VmFsdWUodmFsdWU6IFJhbmdlVmFsdWUsIGVtaXRFdmVudCA9IGZhbHNlKSB7XG4gICAgdGhpcy5nZXRQbGFjZWhvbGRlckNvZGVzeXN0ZW0oKTtcbiAgICBpZiAoSlNPTi5zdHJpbmdpZnkodGhpcy52YWx1ZSkgPT09IEpTT04uc3RyaW5naWZ5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSBpbnN0YW5jZW9mIFJhbmdlVmFsdWUgJiYgKHZhbHVlLmZpcnN0VmFsdWUgfHwgdmFsdWUuc2Vjb25kVmFsdWUpKSB7XG5cbiAgICAgIC8vIFRoaXMgcHJldmVudHMgdGhlIHZhbHVlIGNoYW5nZSBldmVudCBmcm9tIGJlaW5nIGZpcmVkIHR3aWNlIGR1cmluZyBpbml0aWFsaXphdGlvbiBvciB3aGVuIHRoZXJlIGlzIGFscmVhZHkgYSB2YWx1ZVxuICAgICAgaWYgKHRoaXMucmFuZ2VGb3JtLnByaXN0aW5lICYmIHRoaXMudmFsdWUgIT0gbnVsbCAmJiB2YWx1ZSAhPSB0aGlzLnZhbHVlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZlYgPSB2YWx1ZS5maXJzdFZhbHVlID8gbmV3IERhdGUodmFsdWUuZmlyc3RWYWx1ZSkgOiBudWxsO1xuICAgICAgY29uc3Qgc1YgPSB2YWx1ZS5zZWNvbmRWYWx1ZSA/IG5ldyBEYXRlKHZhbHVlLnNlY29uZFZhbHVlKSA6IG51bGw7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG5cbiAgICAgIHRoaXMuc2VhcmNoT3B0aW9uID0gKHZhbHVlLm9wZXJhdG9yID09PSAncmcnID8gJ21yJyA6IHZhbHVlLm9wZXJhdG9yKSB8fCBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuRVFVQUw7XG5cbiAgICAgIGlmICghdmFsdWUuc2Vjb25kVmFsdWUpIHtcbiAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHRoaXMucmFuZ2VGb3JtLnZhbHVlLmRhdGVWYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KGZWKSkge1xuICAgICAgICAgIHRoaXMucmFuZ2VGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgZGF0ZVZhbHVlOiBmVlxuICAgICAgICAgIH0sIHtlbWl0RXZlbnR9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkodGhpcy5yYW5nZUZvcm0udmFsdWUuZGF0ZVBpY2tlclZhbHVlKSAhPT0gSlNPTi5zdHJpbmdpZnkoZlYpKSB7XG4gICAgICAgICAgdGhpcy52YWx1ZS5maXJzdFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmFuZ2VGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIGRhdGVQaWNrZXJWYWx1ZTogdGhpcy52YWx1ZS5maXJzdFZhbHVlXG4gICAgICAgIH0sIHtlbWl0RXZlbnR9KTtcblxuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkodGhpcy5yYW5nZUZvcm0udmFsdWUuZGF0ZVZhbHVlRnJvbSkgIT09IEpTT04uc3RyaW5naWZ5KGZWKSkge1xuICAgICAgICAgIHRoaXMucmFuZ2VGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgZGF0ZVZhbHVlRnJvbTogZlZcbiAgICAgICAgICB9LCB7ZW1pdEV2ZW50fSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHRoaXMucmFuZ2VGb3JtLnZhbHVlLmRhdGVWYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KHNWKSkge1xuICAgICAgICAgIHRoaXMucmFuZ2VGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgZGF0ZVZhbHVlOiBzVlxuICAgICAgICAgIH0sIHtlbWl0RXZlbnR9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgICAgdGhpcy5yYW5nZUZvcm0ucmVzZXQoKTtcbiAgICB9XG4gIH1cblxuICBmb3JtYXREYXRlKHZhbHVlOiBEYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gIXZhbHVlID8gbnVsbCA6XG4gICAgICB0aGlzLndpdGhUaW1lID8gdmFsdWUudG9JU09TdHJpbmcoKS5yZXBsYWNlKCc6MDAuMDAwJywgJycpIDogdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odmFsdWUsICd5eXl5LU1NLWRkJyk7XG4gIH1cblxuICBcbiAgZ2V0UGxhY2Vob2xkZXJDb2Rlc3lzdGVtKCkge1xuICAgIGxldCBlbnRyaWVzID0gW1xuICAgICAge1xuICAgICAgICBpZDogJ3llc3RlcmRheScsXG4gICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnZW8uc2VhcmNoLmFnZy50aW1lLnllc3RlcmRheScpLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnZW8uc2VhcmNoLmFnZy50aW1lLnllc3RlcmRheSdcbiAgICAgICAgKSxcbiAgICAgICAgdmFsdWU6ICd5ZXN0ZXJkYXknXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3RvZGF5JyxcbiAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdlby5zZWFyY2guYWdnLnRpbWUudG9kYXknKSxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLnNlYXJjaC5hZ2cudGltZS50b2RheSdcbiAgICAgICAgKSxcbiAgICAgICAgdmFsdWU6ICd0b2RheSdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAndG9tb3Jyb3cnLFxuICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLnNlYXJjaC5hZ2cudGltZS50b21vcnJvdycpLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnZW8uc2VhcmNoLmFnZy50aW1lLnRvbW9ycm93J1xuICAgICAgICApLFxuICAgICAgICB2YWx1ZTogJ3RvbW9ycm93J1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdsYXN0d2VlaycsXG4gICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnZW8uc2VhcmNoLmFnZy50aW1lLmxhc3R3ZWVrJyksXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdlby5zZWFyY2guYWdnLnRpbWUubGFzdHdlZWsnXG4gICAgICAgICksXG4gICAgICAgIHZhbHVlOiAnbGFzdHdlZWsnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3RoaXN3ZWVrJyxcbiAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdlby5zZWFyY2guYWdnLnRpbWUudGhpc3dlZWsnKSxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLnNlYXJjaC5hZ2cudGltZS50aGlzd2VlaydcbiAgICAgICAgKSxcbiAgICAgICAgdmFsdWU6ICd0aGlzd2VlaydcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnbmV4dHdlZWsnLFxuICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLnNlYXJjaC5hZ2cudGltZS5uZXh0d2VlaycpLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnZW8uc2VhcmNoLmFnZy50aW1lLm5leHR3ZWVrJ1xuICAgICAgICApLFxuICAgICAgICB2YWx1ZTogJ25leHR3ZWVrJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdsYXN0bW9udGgnLFxuICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLnNlYXJjaC5hZ2cudGltZS5sYXN0bW9udGgnKSxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLnNlYXJjaC5hZ2cudGltZS5sYXN0bW9udGgnXG4gICAgICAgICksXG4gICAgICAgIHZhbHVlOiAnbGFzdG1vbnRoJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICd0aGlzbW9udGgnLFxuICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLnNlYXJjaC5hZ2cudGltZS50aGlzbW9udGgnKSxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLnNlYXJjaC5hZ2cudGltZS50aGlzbW9udGgnXG4gICAgICAgICksXG4gICAgICAgIHZhbHVlOiAndGhpc21vbnRoJ1xuICAgICAgfSxcblxuICAgICAge1xuICAgICAgICBpZDogJ25leHRtb250aCcsXG4gICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnZW8uc2VhcmNoLmFnZy50aW1lLm5leHRtb250aCcpLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnZW8uc2VhcmNoLmFnZy50aW1lLm5leHRtb250aCdcbiAgICAgICAgKSxcbiAgICAgICAgdmFsdWU6ICduZXh0bW9udGgnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3RoaXNxdWFydGVyJyxcbiAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdlby5zZWFyY2guYWdnLnRpbWUudGhpc3F1YXJ0ZXInKSxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLnNlYXJjaC5hZ2cudGltZS50aGlzcXVhcnRlcidcbiAgICAgICAgKSxcbiAgICAgICAgdmFsdWU6ICd0aGlzcXVhcnRlcidcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnbGFzdHF1YXJ0ZXInLFxuICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLnNlYXJjaC5hZ2cudGltZS5sYXN0cXVhcnRlcicpLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnZW8uc2VhcmNoLmFnZy50aW1lLmxhc3RxdWFydGVyJ1xuICAgICAgICApLFxuICAgICAgICB2YWx1ZTogJ2xhc3RxdWFydGVyJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICduZXh0cXVhcnRlcicsXG4gICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnZW8uc2VhcmNoLmFnZy50aW1lLm5leHRxdWFydGVyJyksXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdlby5zZWFyY2guYWdnLnRpbWUubmV4dHF1YXJ0ZXInXG4gICAgICAgICksXG4gICAgICAgIHZhbHVlOiAnbmV4dHF1YXJ0ZXInXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ2xhc3R5ZWFyJyxcbiAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdlby5zZWFyY2guYWdnLnRpbWUubGFzdHllYXInXG4gICAgICAgICksXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdlby5zZWFyY2guYWdnLnRpbWUubGFzdHllYXInXG4gICAgICAgICksXG4gICAgICAgIHZhbHVlOiAnbGFzdHllYXInXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3RoaXN5ZWFyJyxcbiAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdlby5zZWFyY2guYWdnLnRpbWUudGhpc3llYXInXG4gICAgICAgICksXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdlby5zZWFyY2guYWdnLnRpbWUudGhpc3llYXInXG4gICAgICAgICksXG4gICAgICAgIHZhbHVlOiAndGhpc3llYXInXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ25leHR5ZWFyJyxcbiAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdlby5zZWFyY2guYWdnLnRpbWUubmV4dHllYXInKSxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLnNlYXJjaC5hZ2cudGltZS5uZXh0eWVhcidcbiAgICAgICAgKSxcbiAgICAgICAgdmFsdWU6ICduZXh0eWVhcidcbiAgICAgIH1cbiAgICBdO1xuICAgIHJldHVybiB0aGlzLmRhdGVQaWNrZXIuY29kZXN5c3RlbSA9IHtcbiAgICAgIGVudHJpZXM6IGVudHJpZXMubWFwKChyZXMpID0+ICh7XG4gICAgICAgIGlkOiByZXMuaWQsXG4gICAgICAgIGxhYmVsOiByZXMubGFiZWwsXG4gICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogcmVzLmRlZmF1bHRyZXByZXNlbnRhdGlvbixcbiAgICAgICAgZGF0YTogcmVzLnZhbHVlXG4gICAgICB9KSksXG4gICAgfTtcbiAgfVxuXG4gIC8vIHJldHVybnMgbnVsbCB3aGVuIHZhbGlkIGVsc2UgdGhlIHZhbGlkYXRpb24gb2JqZWN0XG4gIHB1YmxpYyB2YWxpZGF0ZShjOiBVbnR5cGVkRm9ybUNvbnRyb2wpIHtcbiAgICB0aGlzLm9uU2VhcmNoU2l0dWF0aW9uKCk7XG5cbiAgICBsZXQgZXJyO1xuICAgIGlmICh0aGlzLnNlYXJjaE9wdGlvbiA9PT0gU2VhcmNoRmlsdGVyLk9QRVJBVE9SLkVRVUFMKSB7XG4gICAgICBlcnIgPSB7XG4gICAgICAgIGRhdGVjb250cm9sOiB7XG4gICAgICAgICAgdmFsaWQ6IGZhbHNlLFxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBlcnIgPSB7XG4gICAgICAgIGRhdGVyYW5nZToge1xuICAgICAgICAgIHZhbGlkOiBmYWxzZSxcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuICh0aGlzLmlzVmFsaWQpID8gbnVsbCA6IGVycjtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZ2V0UGxhY2Vob2xkZXJDb2Rlc3lzdGVtKCk7XG4gICAgdGhpcy5zZWFyY2hPcHRpb24gPSB0aGlzLm9wZXJhdG9yO1xuICB9XG59XG4iLCI8Zm9ybSBjbGFzcz1cImVvLWRhdGV0aW1lLXJhbmdlXCIgW2Zvcm1Hcm91cF09XCJyYW5nZUZvcm1cIj5cbiAgPGVvLWRhdGUgKm5nSWY9XCJzZWFyY2hPcHRpb24gPT09ICdndGVsdGUnXCIgW3dpdGhUaW1lXT1cIndpdGhUaW1lXCJcbiAgICBmb3JtQ29udHJvbE5hbWU9XCJkYXRlVmFsdWVGcm9tXCI+PC9lby1kYXRlPlxuXG4gIDx5dmMtZHJvcGRvd24gW25nTW9kZWxdPVwic2VhcmNoT3B0aW9uXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCIgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXG4gICAgW29wdGlvbnNdPVwiYXZhaWxhYmxlU2VhcmNoT3B0aW9uc1wiPjwveXZjLWRyb3Bkb3duPlxuIFxuICAgIEBpZihzZWFyY2hPcHRpb24gPT09ICdtcicpe1xuICAgICAgPGVvLWNvZGVzeXN0ZW0gZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVBpY2tlclZhbHVlXCIgW3BpY2tlclRpdGxlXT1cImRhdGVQaWNrZXIudGl0bGVcIlxuICAgICAgICBbZW1wdHlNZXNzYWdlXT1cIidlby53b3Jrc3BhY2Uud2lkZ2V0LnN0b3JlZC5xdWVyaWVzLmxpc3Qubm90QXZhaWxhYmxlJ1wiXG4gICAgICAgIFtjb2Rlc3lzdGVtXT1cImRhdGVQaWNrZXIuY29kZXN5c3RlbVwiPjwvZW8tY29kZXN5c3RlbT5cbiAgICB9XG4gICAgQGVsc2V7XG4gICAgICA8ZW8tZGF0ZSBbd2l0aFRpbWVdPVwid2l0aFRpbWVcIiBmb3JtQ29udHJvbE5hbWU9XCJkYXRlVmFsdWVcIj48L2VvLWRhdGU+XG4gICAgfVxuPC9mb3JtPlxuXG48ZGl2IGNsYXNzPVwiZXJyb3JzXCIgKm5nSWY9XCJyYW5nZUZvcm0uaW52YWxpZFwiPlxuICA8ZGl2IGNsYXNzPVwiZXJyLW1zZ1wiIHRyYW5zbGF0ZT5lby5mb3JtLnByb3BlcnR5LmRhdGUuaW52YWxpZDwvZGl2PlxuICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvblwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2NsZWFyLnN2ZydcIiAoY2xpY2spPVwicmVzZXQoKVwiPjwvZW8taWNvbj5cbjwvZGl2PlxuIl19
345
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvZm9ybS1lbGVtZW50cy9kYXRldGltZS1yYW5nZS9kYXRldGltZS1yYW5nZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL2RhdGV0aW1lLXJhbmdlL2RhdGV0aW1lLXJhbmdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFVLFVBQVUsRUFBRSxXQUFXLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQU1MLGlCQUFpQixFQUNqQixhQUFhLEVBQ2QsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsVUFBVSxFQUFFLFlBQVksRUFBbUIsTUFBTSxjQUFjLENBQUM7QUFDeEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1EQUFtRCxDQUFDOzs7Ozs7Ozs7O0FBc0JqRixNQUFNLE9BQU8sc0JBQXNCO0lBcUNqQyxZQUFvQixFQUFzQixFQUN2QixTQUEyQixFQUMxQixPQUFtQjtRQUZuQixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMxQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBbkM5QixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBSUUsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUU5QyxjQUFTLEdBQWMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDbkMsU0FBUyxFQUFFLEVBQUU7WUFDYixhQUFhLEVBQUUsRUFBRTtZQUNqQixlQUFlLEVBQUUsRUFBRTtTQUNwQixD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LEtBQUssRUFBRSxvQkFBb0I7cUJBQzVCOytJQUlRLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR3FCLFVBQVU7c0JBQXBDLFdBQVc7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZywgRWxlbWVudFJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb3JtR3JvdXAsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIFZhbGlkYXRvcixcbiAgVW50eXBlZEZvcm1CdWlsZGVyLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgTkdfVkFMSURBVE9SU1xufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtSYW5nZVZhbHVlLCBTZWFyY2hGaWx0ZXIsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge0xvY2FsZURhdGVQaXBlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9waXBlcy9sb2NhbGUtZGF0ZS5waXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tZGF0ZXRpbWUtcmFuZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXRpbWUtcmFuZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRldGltZS1yYW5nZS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGV0aW1lUmFuZ2VDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRldGltZVJhbmdlQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH1cbiAgXSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZm9ybS1lbGVtZW50LXJhbmdlJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIERhdGV0aW1lUmFuZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3Ige1xuXG4gIEBJbnB1dCgpIHdpdGhUaW1lOiBib29sZWFuO1xuICBASW5wdXQoKSBwaWNrZXJUaXRsZTogc3RyaW5nO1xuICBASW5wdXQoKSBvcGVyYXRvciA9ICdlcSc7XG4gIEBJbnB1dCgpIHNpdHVhdGlvbjogc3RyaW5nO1xuXG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zd2FwJykgc3dhcElucHV0cyA9IGZhbHNlO1xuXG4gIHJhbmdlRm9ybTogRm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgZGF0ZVZhbHVlOiBbXSxcbiAgICBkYXRlVmFsdWVGcm9tOiBbXSxcbiAgICBkYXRlUGlja2VyVmFsdWU6IFtdXG4gIH0pO1xuICB2YWx1ZTogUmFuZ2VWYWx1ZTtcbiAgcHJpdmF0ZSBpc1ZhbGlkID0gdHJ1ZTtcblxuICAvLyBvcHRpb25zIGZvciBzZWFyY2ggc2l0dWF0aW9uXG4gIHB1YmxpYyBhdmFpbGFibGVTZWFyY2hPcHRpb25zID0gW1xuICAgIHtsYWJlbDogUmFuZ2VWYWx1ZS5nZXRPcGVyYXRvckxhYmVsKFNlYXJjaEZpbHRlci5PUEVSQVRPUi5FUVVBTCksIHZhbHVlOiBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuRVFVQUx9LFxuICAgIHtsYWJlbDogUmFuZ2VWYWx1ZS5nZXRPcGVyYXRvckxhYmVsKFNlYXJjaEZpbHRlci5PUEVSQVRPUi5HUkVBVEVSX09SX0VRVUFMKSwgdmFsdWU6IFNlYXJjaEZpbHRlci5PUEVSQVRPUi5HUkVBVEVSX09SX0VRVUFMfSxcbiAgICB7bGFiZWw6IFJhbmdlVmFsdWUuZ2V0T3BlcmF0b3JMYWJlbChTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuTEVTU19PUl9FUVVBTCksIHZhbHVlOiBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuTEVTU19PUl9FUVVBTH0sXG4gICAge2xhYmVsOiBSYW5nZVZhbHVlLmdldE9wZXJhdG9yTGFiZWwoU2VhcmNoRmlsdGVyLk9QRVJBVE9SLklOVEVSVkFMX0lOQ0xVREVfQk9USCksIHZhbHVlOiBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuSU5URVJWQUxfSU5DTFVERV9CT1RIfSxcbiAgICB7bGFiZWw6IFJhbmdlVmFsdWUuZ2V0T3BlcmF0b3JMYWJlbChTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuTU9SRSksIHZhbHVlOiBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuTU9SRX1cbiAgXTtcblxuICAvLyB0aGUgc2VsZWN0ZWQgc2VhcmNoIG9wdGlvblxuICBwdWJsaWMgc2VhcmNoT3B0aW9uOiBzdHJpbmc7XG4gIGRhdGVQaXBlOiBMb2NhbGVEYXRlUGlwZTtcbiAgcHJldmlvdXNEYXRlVmFsdWUgPSBudWxsO1xuICBwcmV2aW91c0RhdGVWYWx1ZUZyb20gPSBudWxsO1xuICBkYXRlUGlja2VyID0ge1xuICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zZWFyY2guYWdnLnRpbWUuc3BhbicpLFxuICAgIGNvZGVzeXN0ZW06IG51bGwsXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgICAgICAgICAgICBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGVsZW1SZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgKSB7XG4gICAgdGhpcy5kYXRlUGlwZSA9IG5ldyBMb2NhbGVEYXRlUGlwZSh0cmFuc2xhdGUpO1xuICAgIHRoaXMucmFuZ2VGb3JtLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKClcbiAgICApLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uVmFsdWVDaGFuZ2UoKSk7XG4gIH1cblxuICBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XG4gIHZhbGlkYXRpb25DaGFuZ2UgPSAoKSA9PiB7IH07XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogUmFuZ2VWYWx1ZSk6IHZvaWQge1xuICAgIHRoaXMuX3NldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIG9uU2VhcmNoU2l0dWF0aW9uKCkge1xuICAgIGlmICh0aGlzLnNpdHVhdGlvbiAhPT0gJ1NFQVJDSCcpIHtcbiAgICAgIHRoaXMuYXZhaWxhYmxlU2VhcmNoT3B0aW9ucyA9IHRoaXMuYXZhaWxhYmxlU2VhcmNoT3B0aW9ucy5maWx0ZXIob3B0aW9uID0+IG9wdGlvbi52YWx1ZSAhPT0gU2VhcmNoRmlsdGVyLk9QRVJBVE9SLk1PUkUpO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlPyhmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMudmFsaWRhdGlvbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICB9XG5cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5fc2V0VmFsdWUobmV3IFJhbmdlVmFsdWUoXG4gICAgICB0aGlzLnNlYXJjaE9wdGlvbixcbiAgICAgIG51bGwsIG51bGxcbiAgICApKTtcbiAgfVxuXG4gIGNhdGNoRm9jdXNPbkRyb3Bkb3duKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5lbGVtUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigneXZjLWRyb3Bkb3duJykuZm9jdXMoKTtcbiAgICB9LCAyMDApO1xuICB9XG5cbiAgb25WYWx1ZUNoYW5nZShzZWFyY2hPcHRpb24gPSB0aGlzLnNlYXJjaE9wdGlvbikge1xuICAgIGxldCBkYXRlVmFsdWUgPSB0aGlzLmZvcm1hdERhdGUodGhpcy5yYW5nZUZvcm0uZ2V0KCdkYXRlVmFsdWUnKS52YWx1ZSk7XG4gICAgaWYgKHNlYXJjaE9wdGlvbiA9PT0gU2VhcmNoRmlsdGVyLk9QRVJBVE9SLklOVEVSVkFMX0lOQ0xVREVfQk9USCkge1xuICAgICAgY29uc3QgZGF0ZVZhbHVlRnJvbSA9IHRoaXMuZm9ybWF0RGF0ZSh0aGlzLnJhbmdlRm9ybS5nZXQoJ2RhdGVWYWx1ZUZyb20nKS52YWx1ZSk7XG5cbiAgICAgIGlmIChkYXRlVmFsdWVGcm9tICYmIGRhdGVWYWx1ZSkge1xuICAgICAgICB0aGlzLmlzVmFsaWQgPSB0aGlzLnJhbmdlRm9ybS52YWxpZCAmJiAhIWRhdGVWYWx1ZUZyb20gJiYgISFkYXRlVmFsdWU7XG4gICAgICAgIHRoaXMuc3dhcElucHV0cyA9IGRhdGVWYWx1ZUZyb20gJiYgZGF0ZVZhbHVlICYmIGRhdGVWYWx1ZUZyb20gPiBkYXRlVmFsdWU7XG4gICAgICAgIHRoaXMuX3NldFZhbHVlKG5ldyBSYW5nZVZhbHVlKFxuICAgICAgICAgIHNlYXJjaE9wdGlvbixcbiAgICAgICAgICB0aGlzLnN3YXBJbnB1dHMgPyBkYXRlVmFsdWUgOiBkYXRlVmFsdWVGcm9tLFxuICAgICAgICAgIHRoaXMuc3dhcElucHV0cyA/IGRhdGVWYWx1ZUZyb20gOiBkYXRlVmFsdWVcbiAgICAgICAgKSk7XG4gICAgICAgIGlmICh0aGlzLnByZXZpb3VzRGF0ZVZhbHVlICE9PSBkYXRlVmFsdWUgfHwgdGhpcy5wcmV2aW91c0RhdGVWYWx1ZUZyb20gIT09IGRhdGVWYWx1ZUZyb20gfHwgdGhpcy5zZWFyY2hPcHRpb24gIT09IHNlYXJjaE9wdGlvbikge1xuICAgICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgICAgICAgIHRoaXMucHJldmlvdXNEYXRlVmFsdWUgPSBkYXRlVmFsdWU7XG4gICAgICAgICAgdGhpcy5wcmV2aW91c0RhdGVWYWx1ZUZyb20gPSBkYXRlVmFsdWVGcm9tO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChzZWFyY2hPcHRpb24gPT09IFNlYXJjaEZpbHRlci5PUEVSQVRPUi5NT1JFKSB7XG4gICAgICB0aGlzLnN3YXBJbnB1dHMgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNWYWxpZCA9IHRoaXMucmFuZ2VGb3JtLnZhbGlkO1xuICAgICAgY29uc3Qgb2xkU2VhcmNoT3B0aW9uID0gdGhpcy5zZWFyY2hPcHRpb247XG4gICAgICBpZiAob2xkU2VhcmNoT3B0aW9uICE9PSBzZWFyY2hPcHRpb24pIHtcbiAgICAgICAgdGhpcy5yYW5nZUZvcm0ucmVzZXQoKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRhdGVQaWNrZXJWYWx1ZSA9IHRoaXMucmFuZ2VGb3JtLmdldCgnZGF0ZVBpY2tlclZhbHVlJykudmFsdWU7XG4gICAgICB0aGlzLl9zZXRWYWx1ZSghZGF0ZVBpY2tlclZhbHVlID8gbnVsbCA6IG5ldyBSYW5nZVZhbHVlKHNlYXJjaE9wdGlvbiwgZGF0ZVBpY2tlclZhbHVlKSk7XG5cbiAgICAgIGlmICh0aGlzLnByZXZpb3VzRGF0ZVZhbHVlICE9PSBkYXRlUGlja2VyVmFsdWUgfHwgb2xkU2VhcmNoT3B0aW9uICE9PSBzZWFyY2hPcHRpb24gKSB7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgICAgICB0aGlzLnByZXZpb3VzRGF0ZVZhbHVlID0gZGF0ZVBpY2tlclZhbHVlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN3YXBJbnB1dHMgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNWYWxpZCA9IHRoaXMucmFuZ2VGb3JtLnZhbGlkO1xuICAgICAgaWYgKHNlYXJjaE9wdGlvbiA9PT0gU2VhcmNoRmlsdGVyLk9QRVJBVE9SLkxFU1NfT1JfRVFVQUwgJiYgZGF0ZVZhbHVlKSB7XG4gICAgICAgIGNvbnN0IG5ld0RhdGVWYWx1ZSA9IG5ldyBEYXRlKGRhdGVWYWx1ZSk7XG4gICAgICAgIGlmICghdGhpcy53aXRoVGltZSkge1xuICAgICAgICAgIG5ld0RhdGVWYWx1ZS5zZXRIb3VycygyMywgNTkpO1xuICAgICAgICB9XG4gICAgICAgIGRhdGVWYWx1ZSA9IG5ld0RhdGVWYWx1ZS50b0lTT1N0cmluZygpO1xuICAgICAgfSBlbHNlIGlmIChzZWFyY2hPcHRpb24gPT09IFNlYXJjaEZpbHRlci5PUEVSQVRPUi5HUkVBVEVSX09SX0VRVUFMICYmIGRhdGVWYWx1ZSkge1xuICAgICAgICBjb25zdCBuZXdEYXRlVmFsdWUgPSBuZXcgRGF0ZShkYXRlVmFsdWUpO1xuICAgICAgICBpZiAoIXRoaXMud2l0aFRpbWUpIHtcbiAgICAgICAgICBuZXdEYXRlVmFsdWUuc2V0SG91cnMoMCwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgZGF0ZVZhbHVlID0gbmV3RGF0ZVZhbHVlLnRvSVNPU3RyaW5nKCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5pc1ZhbGlkKSB7XG4gICAgICAgIGNvbnN0IG9sZFNlYXJjaE9wdGlvbiA9IHRoaXMuc2VhcmNoT3B0aW9uO1xuICAgICAgICB0aGlzLl9zZXRWYWx1ZSghZGF0ZVZhbHVlID8gbnVsbCA6IG5ldyBSYW5nZVZhbHVlKHNlYXJjaE9wdGlvbiwgZGF0ZVZhbHVlKSk7XG4gICAgICAgIGlmICh0aGlzLnByZXZpb3VzRGF0ZVZhbHVlICE9PSBkYXRlVmFsdWUgfHwgb2xkU2VhcmNoT3B0aW9uICE9PSBzZWFyY2hPcHRpb24pIHtcbiAgICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgICB0aGlzLnByZXZpb3VzRGF0ZVZhbHVlID0gZGF0ZVZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2VhcmNoT3B0aW9uID0gc2VhcmNoT3B0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0VmFsdWUodmFsdWU6IFJhbmdlVmFsdWUsIGVtaXRFdmVudCA9IGZhbHNlKSB7XG4gICAgdGhpcy5nZXRQbGFjZWhvbGRlckNvZGVzeXN0ZW0oKTtcbiAgICBpZiAoSlNPTi5zdHJpbmdpZnkodGhpcy52YWx1ZSkgPT09IEpTT04uc3RyaW5naWZ5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSBpbnN0YW5jZW9mIFJhbmdlVmFsdWUgJiYgKHZhbHVlLmZpcnN0VmFsdWUgfHwgdmFsdWUuc2Vjb25kVmFsdWUpKSB7XG5cbiAgICAgIC8vIFRoaXMgcHJldmVudHMgdGhlIHZhbHVlIGNoYW5nZSBldmVudCBmcm9tIGJlaW5nIGZpcmVkIHR3aWNlIGR1cmluZyBpbml0aWFsaXphdGlvbiBvciB3aGVuIHRoZXJlIGlzIGFscmVhZHkgYSB2YWx1ZVxuICAgICAgaWYgKHRoaXMucmFuZ2VGb3JtLnByaXN0aW5lICYmIHRoaXMudmFsdWUgIT0gbnVsbCAmJiB2YWx1ZSAhPT0gdGhpcy52YWx1ZSAmJiB2YWx1ZS5vcGVyYXRvciA9PT0gdGhpcy52YWx1ZS5vcGVyYXRvcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZWID0gdmFsdWUuZmlyc3RWYWx1ZSA/IG5ldyBEYXRlKHZhbHVlLmZpcnN0VmFsdWUpIDogbnVsbDtcbiAgICAgIGNvbnN0IHNWID0gdmFsdWUuc2Vjb25kVmFsdWUgPyBuZXcgRGF0ZSh2YWx1ZS5zZWNvbmRWYWx1ZSkgOiBudWxsO1xuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuXG4gICAgICB0aGlzLnNlYXJjaE9wdGlvbiA9ICh2YWx1ZS5vcGVyYXRvciA9PT0gJ3JnJyA/ICdtcicgOiB2YWx1ZS5vcGVyYXRvcikgfHwgU2VhcmNoRmlsdGVyLk9QRVJBVE9SLkVRVUFMO1xuXG4gICAgICBpZiAoIXZhbHVlLnNlY29uZFZhbHVlKSB7XG4gICAgICAgIGlmIChKU09OLnN0cmluZ2lmeSh0aGlzLnJhbmdlRm9ybS52YWx1ZS5kYXRlVmFsdWUpICE9PSBKU09OLnN0cmluZ2lmeShmVikpIHtcbiAgICAgICAgICB0aGlzLnJhbmdlRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgIGRhdGVWYWx1ZTogZlZcbiAgICAgICAgICB9LCB7ZW1pdEV2ZW50fSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHRoaXMucmFuZ2VGb3JtLnZhbHVlLmRhdGVQaWNrZXJWYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KGZWKSkge1xuICAgICAgICAgIHRoaXMudmFsdWUuZmlyc3RWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJhbmdlRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICBkYXRlUGlja2VyVmFsdWU6IHRoaXMudmFsdWUuZmlyc3RWYWx1ZVxuICAgICAgICB9LCB7ZW1pdEV2ZW50fSk7XG5cblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHRoaXMucmFuZ2VGb3JtLnZhbHVlLmRhdGVWYWx1ZUZyb20pICE9PSBKU09OLnN0cmluZ2lmeShmVikpIHtcbiAgICAgICAgICB0aGlzLnJhbmdlRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgIGRhdGVWYWx1ZUZyb206IGZWXG4gICAgICAgICAgfSwge2VtaXRFdmVudH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChKU09OLnN0cmluZ2lmeSh0aGlzLnJhbmdlRm9ybS52YWx1ZS5kYXRlVmFsdWUpICE9PSBKU09OLnN0cmluZ2lmeShzVikpIHtcbiAgICAgICAgICB0aGlzLnJhbmdlRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgIGRhdGVWYWx1ZTogc1ZcbiAgICAgICAgICB9LCB7ZW1pdEV2ZW50fSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgIHRoaXMucmFuZ2VGb3JtLnJlc2V0KCk7XG4gICAgfVxuICB9XG5cbiAgZm9ybWF0RGF0ZSh2YWx1ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuICF2YWx1ZSA/IG51bGwgOlxuICAgICAgdGhpcy53aXRoVGltZSA/IHZhbHVlLnRvSVNPU3RyaW5nKCkucmVwbGFjZSgnOjAwLjAwMCcsICcnKSA6IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLCAneXl5eS1NTS1kZCcpO1xuICB9XG5cblxuICBnZXRQbGFjZWhvbGRlckNvZGVzeXN0ZW0oKSB7XG4gICAgbGV0IGVudHJpZXMgPSBbXG4gICAgICB7XG4gICAgICAgIGlkOiAneWVzdGVyZGF5JyxcbiAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdlby5zZWFyY2guYWdnLnRpbWUueWVzdGVyZGF5JyksXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdlby5zZWFyY2guYWdnLnRpbWUueWVzdGVyZGF5J1xuICAgICAgICApLFxuICAgICAgICB2YWx1ZTogJ3llc3RlcmRheSdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAndG9kYXknLFxuICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLnNlYXJjaC5hZ2cudGltZS50b2RheScpLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnZW8uc2VhcmNoLmFnZy50aW1lLnRvZGF5J1xuICAgICAgICApLFxuICAgICAgICB2YWx1ZTogJ3RvZGF5J1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICd0b21vcnJvdycsXG4gICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnZW8uc2VhcmNoLmFnZy50aW1lLnRvbW9ycm93JyksXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdlby5zZWFyY2guYWdnLnRpbWUudG9tb3Jyb3cnXG4gICAgICAgICksXG4gICAgICAgIHZhbHVlOiAndG9tb3Jyb3cnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ2xhc3R3ZWVrJyxcbiAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdlby5zZWFyY2guYWdnLnRpbWUubGFzdHdlZWsnKSxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLnNlYXJjaC5hZ2cudGltZS5sYXN0d2VlaydcbiAgICAgICAgKSxcbiAgICAgICAgdmFsdWU6ICdsYXN0d2VlaydcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAndGhpc3dlZWsnLFxuICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLnNlYXJjaC5hZ2cudGltZS50aGlzd2VlaycpLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnZW8uc2VhcmNoLmFnZy50aW1lLnRoaXN3ZWVrJ1xuICAgICAgICApLFxuICAgICAgICB2YWx1ZTogJ3RoaXN3ZWVrJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICduZXh0d2VlaycsXG4gICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnZW8uc2VhcmNoLmFnZy50aW1lLm5leHR3ZWVrJyksXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdlby5zZWFyY2guYWdnLnRpbWUubmV4dHdlZWsnXG4gICAgICAgICksXG4gICAgICAgIHZhbHVlOiAnbmV4dHdlZWsnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ2xhc3Rtb250aCcsXG4gICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnZW8uc2VhcmNoLmFnZy50aW1lLmxhc3Rtb250aCcpLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnZW8uc2VhcmNoLmFnZy50aW1lLmxhc3Rtb250aCdcbiAgICAgICAgKSxcbiAgICAgICAgdmFsdWU6ICdsYXN0bW9udGgnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3RoaXNtb250aCcsXG4gICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnZW8uc2VhcmNoLmFnZy50aW1lLnRoaXNtb250aCcpLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnZW8uc2VhcmNoLmFnZy50aW1lLnRoaXNtb250aCdcbiAgICAgICAgKSxcbiAgICAgICAgdmFsdWU6ICd0aGlzbW9udGgnXG4gICAgICB9LFxuXG4gICAgICB7XG4gICAgICAgIGlkOiAnbmV4dG1vbnRoJyxcbiAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdlby5zZWFyY2guYWdnLnRpbWUubmV4dG1vbnRoJyksXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdlby5zZWFyY2guYWdnLnRpbWUubmV4dG1vbnRoJ1xuICAgICAgICApLFxuICAgICAgICB2YWx1ZTogJ25leHRtb250aCdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAndGhpc3F1YXJ0ZXInLFxuICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLnNlYXJjaC5hZ2cudGltZS50aGlzcXVhcnRlcicpLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnZW8uc2VhcmNoLmFnZy50aW1lLnRoaXNxdWFydGVyJ1xuICAgICAgICApLFxuICAgICAgICB2YWx1ZTogJ3RoaXNxdWFydGVyJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdsYXN0cXVhcnRlcicsXG4gICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnZW8uc2VhcmNoLmFnZy50aW1lLmxhc3RxdWFydGVyJyksXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdlby5zZWFyY2guYWdnLnRpbWUubGFzdHF1YXJ0ZXInXG4gICAgICAgICksXG4gICAgICAgIHZhbHVlOiAnbGFzdHF1YXJ0ZXInXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ25leHRxdWFydGVyJyxcbiAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdlby5zZWFyY2guYWdnLnRpbWUubmV4dHF1YXJ0ZXInKSxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLnNlYXJjaC5hZ2cudGltZS5uZXh0cXVhcnRlcidcbiAgICAgICAgKSxcbiAgICAgICAgdmFsdWU6ICduZXh0cXVhcnRlcidcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnbGFzdHllYXInLFxuICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLnNlYXJjaC5hZ2cudGltZS5sYXN0eWVhcidcbiAgICAgICAgKSxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLnNlYXJjaC5hZ2cudGltZS5sYXN0eWVhcidcbiAgICAgICAgKSxcbiAgICAgICAgdmFsdWU6ICdsYXN0eWVhcidcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAndGhpc3llYXInLFxuICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLnNlYXJjaC5hZ2cudGltZS50aGlzeWVhcidcbiAgICAgICAgKSxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLnNlYXJjaC5hZ2cudGltZS50aGlzeWVhcidcbiAgICAgICAgKSxcbiAgICAgICAgdmFsdWU6ICd0aGlzeWVhcidcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnbmV4dHllYXInLFxuICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLnNlYXJjaC5hZ2cudGltZS5uZXh0eWVhcicpLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnZW8uc2VhcmNoLmFnZy50aW1lLm5leHR5ZWFyJ1xuICAgICAgICApLFxuICAgICAgICB2YWx1ZTogJ25leHR5ZWFyJ1xuICAgICAgfVxuICAgIF07XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVBpY2tlci5jb2Rlc3lzdGVtID0ge1xuICAgICAgZW50cmllczogZW50cmllcy5tYXAoKHJlcykgPT4gKHtcbiAgICAgICAgaWQ6IHJlcy5pZCxcbiAgICAgICAgbGFiZWw6IHJlcy5sYWJlbCxcbiAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiByZXMuZGVmYXVsdHJlcHJlc2VudGF0aW9uLFxuICAgICAgICBkYXRhOiByZXMudmFsdWVcbiAgICAgIH0pKSxcbiAgICB9O1xuICB9XG5cbiAgLy8gcmV0dXJucyBudWxsIHdoZW4gdmFsaWQgZWxzZSB0aGUgdmFsaWRhdGlvbiBvYmplY3RcbiAgcHVibGljIHZhbGlkYXRlKGM6IFVudHlwZWRGb3JtQ29udHJvbCkge1xuICAgIHRoaXMub25TZWFyY2hTaXR1YXRpb24oKTtcblxuICAgIGxldCBlcnI7XG4gICAgaWYgKHRoaXMuc2VhcmNoT3B0aW9uID09PSBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuRVFVQUwpIHtcbiAgICAgIGVyciA9IHtcbiAgICAgICAgZGF0ZWNvbnRyb2w6IHtcbiAgICAgICAgICB2YWxpZDogZmFsc2UsXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGVyciA9IHtcbiAgICAgICAgZGF0ZXJhbmdlOiB7XG4gICAgICAgICAgdmFsaWQ6IGZhbHNlLFxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gKHRoaXMuaXNWYWxpZCkgPyBudWxsIDogZXJyO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5nZXRQbGFjZWhvbGRlckNvZGVzeXN0ZW0oKTtcbiAgICB0aGlzLnNlYXJjaE9wdGlvbiA9IHRoaXMub3BlcmF0b3I7XG4gIH1cbn1cbiIsIjxmb3JtIGNsYXNzPVwiZW8tZGF0ZXRpbWUtcmFuZ2VcIiBbZm9ybUdyb3VwXT1cInJhbmdlRm9ybVwiPlxuICA8ZW8tZGF0ZSAqbmdJZj1cInNlYXJjaE9wdGlvbiA9PT0gJ2d0ZWx0ZSdcIiBbd2l0aFRpbWVdPVwid2l0aFRpbWVcIlxuICAgIGZvcm1Db250cm9sTmFtZT1cImRhdGVWYWx1ZUZyb21cIj48L2VvLWRhdGU+XG5cbiAgPHl2Yy1kcm9wZG93biBbbmdNb2RlbF09XCJzZWFyY2hPcHRpb25cIiAobmdNb2RlbENoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIiBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcbiAgICBbb3B0aW9uc109XCJhdmFpbGFibGVTZWFyY2hPcHRpb25zXCIgKG9uRHJvcGRvd25PcHRpb25zQ2xvc2UpPVwiY2F0Y2hGb2N1c09uRHJvcGRvd24oKVwiPjwveXZjLWRyb3Bkb3duPlxuIFxuICAgIEBpZihzZWFyY2hPcHRpb24gPT09ICdtcicpe1xuICAgICAgPGVvLWNvZGVzeXN0ZW0gZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVBpY2tlclZhbHVlXCIgW3BpY2tlclRpdGxlXT1cImRhdGVQaWNrZXIudGl0bGVcIlxuICAgICAgICBbZW1wdHlNZXNzYWdlXT1cIidlby53b3Jrc3BhY2Uud2lkZ2V0LnN0b3JlZC5xdWVyaWVzLmxpc3Qubm90QXZhaWxhYmxlJ1wiXG4gICAgICAgIFtjb2Rlc3lzdGVtXT1cImRhdGVQaWNrZXIuY29kZXN5c3RlbVwiPjwvZW8tY29kZXN5c3RlbT5cbiAgICB9XG4gICAgQGVsc2V7XG4gICAgICA8ZW8tZGF0ZSBbd2l0aFRpbWVdPVwid2l0aFRpbWVcIiBmb3JtQ29udHJvbE5hbWU9XCJkYXRlVmFsdWVcIj48L2VvLWRhdGU+XG4gICAgfVxuPC9mb3JtPlxuXG48ZGl2IGNsYXNzPVwiZXJyb3JzXCIgKm5nSWY9XCJyYW5nZUZvcm0uaW52YWxpZFwiPlxuICA8ZGl2IGNsYXNzPVwiZXJyLW1zZ1wiIHRyYW5zbGF0ZT5lby5mb3JtLnByb3BlcnR5LmRhdGUuaW52YWxpZDwvZGl2PlxuICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvblwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2NsZWFyLnN2ZydcIiAoY2xpY2spPVwicmVzZXQoKVwiPjwvZW8taWNvbj5cbjwvZGl2PlxuIl19