@alfresco/adf-core 8.1.0-14259307019 → 8.1.0-14328175466

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 (317) hide show
  1. package/api/lib/alfresco-api/alfresco-api.utils.d.ts +1 -1
  2. package/breadcrumbs/styles/_breadcrumb.theme.scss +4 -4
  3. package/custom-theme/material-theme.scss +7 -4
  4. package/custom-theme/theme/custom-theme-palettes.scss +12 -8
  5. package/custom-theme/theme/typography.scss +26 -26
  6. package/esm2022/api/lib/adf-http-client.service.mjs +4 -4
  7. package/esm2022/auth/authentication-interceptor/authentication.interceptor.mjs +4 -4
  8. package/esm2022/breadcrumbs/components/breadcrumb/breadcrumb.component.mjs +4 -4
  9. package/esm2022/breadcrumbs/components/breadcrumb-item/breadcrumb-item.component.mjs +4 -4
  10. package/esm2022/breadcrumbs/directives/breadcrumb-focus.directive.mjs +4 -4
  11. package/esm2022/feature-flags/lib/components/feature-flags-wrapper.mjs +4 -4
  12. package/esm2022/feature-flags/lib/components/feature-override-indicator.component.mjs +4 -4
  13. package/esm2022/feature-flags/lib/components/flags/flags.component.mjs +4 -4
  14. package/esm2022/feature-flags/lib/directives/features.directive.mjs +4 -4
  15. package/esm2022/feature-flags/lib/directives/not-features.directive.mjs +4 -4
  16. package/esm2022/feature-flags/lib/guards/is-feature-off.guard.mjs +4 -4
  17. package/esm2022/feature-flags/lib/guards/is-feature-on.guard.mjs +4 -4
  18. package/esm2022/feature-flags/lib/guards/is-flags-override-on.guard.mjs +4 -4
  19. package/esm2022/feature-flags/lib/services/debug-features.service.mjs +4 -4
  20. package/esm2022/feature-flags/lib/services/dummy-features.service.mjs +4 -4
  21. package/esm2022/feature-flags/lib/services/qa-features.helper.mjs +4 -4
  22. package/esm2022/feature-flags/lib/services/storage-features.service.mjs +4 -4
  23. package/esm2022/lib/about/about-extension-list/about-extension-list.component.mjs +4 -4
  24. package/esm2022/lib/about/about-license-list/about-license-list.component.mjs +4 -4
  25. package/esm2022/lib/about/about-module-list/module-list.component.mjs +4 -4
  26. package/esm2022/lib/about/about-package/package-list.component.mjs +4 -4
  27. package/esm2022/lib/about/about-panel.directive.mjs +4 -4
  28. package/esm2022/lib/about/about-repository-info/about-repository-info.component.mjs +4 -4
  29. package/esm2022/lib/about/about-server-settings/about-server-settings.component.mjs +4 -4
  30. package/esm2022/lib/about/about-status-list/about-status-list.component.mjs +4 -4
  31. package/esm2022/lib/about/about.component.mjs +4 -4
  32. package/esm2022/lib/about/about.module.mjs +5 -5
  33. package/esm2022/lib/app-config/app-config-storage-prefix.factory.mjs +4 -4
  34. package/esm2022/lib/app-config/app-config.module.mjs +5 -5
  35. package/esm2022/lib/app-config/app-config.pipe.mjs +4 -4
  36. package/esm2022/lib/app-config/app-config.service.mjs +4 -4
  37. package/esm2022/lib/app-config/debug-app-config.service.mjs +4 -4
  38. package/esm2022/lib/auth/authentication-interceptor/auth-bearer.interceptor.mjs +4 -4
  39. package/esm2022/lib/auth/basic-auth/basic-alfresco-auth.service.mjs +4 -4
  40. package/esm2022/lib/auth/basic-auth/content-auth.mjs +4 -4
  41. package/esm2022/lib/auth/basic-auth/process-auth.mjs +4 -4
  42. package/esm2022/lib/auth/guard/auth-guard.service.mjs +4 -4
  43. package/esm2022/lib/auth/oidc/auth-config.service.mjs +4 -4
  44. package/esm2022/lib/auth/oidc/auth-routing.module.mjs +5 -5
  45. package/esm2022/lib/auth/oidc/auth.module.mjs +5 -5
  46. package/esm2022/lib/auth/oidc/oidc-authentication.service.mjs +4 -4
  47. package/esm2022/lib/auth/oidc/redirect-auth.service.mjs +4 -4
  48. package/esm2022/lib/auth/oidc/retry-login.service.mjs +4 -4
  49. package/esm2022/lib/auth/oidc/token.interceptor.mjs +4 -4
  50. package/esm2022/lib/auth/oidc/view/authentication-confirmation/authentication-confirmation.component.mjs +4 -4
  51. package/esm2022/lib/auth/services/authentication.service.mjs +4 -4
  52. package/esm2022/lib/auth/services/identity-group.service.mjs +4 -4
  53. package/esm2022/lib/auth/services/identity-role.service.mjs +4 -4
  54. package/esm2022/lib/auth/services/identity-user.service.mjs +4 -4
  55. package/esm2022/lib/auth/services/jwt-helper.service.mjs +4 -4
  56. package/esm2022/lib/auth/services/oauth2.service.mjs +4 -4
  57. package/esm2022/lib/auth/services/time-sync.service.mjs +4 -4
  58. package/esm2022/lib/auth/services/user-access.service.mjs +4 -4
  59. package/esm2022/lib/avatar/avatar.component.mjs +4 -4
  60. package/esm2022/lib/blank-page/blank-page.component.mjs +4 -4
  61. package/esm2022/lib/blank-page/blank-page.module.mjs +5 -5
  62. package/esm2022/lib/button/button.component.mjs +4 -4
  63. package/esm2022/lib/card-view/card-view.module.mjs +5 -5
  64. package/esm2022/lib/card-view/components/base-card-view.mjs +4 -4
  65. package/esm2022/lib/card-view/components/card-view/card-view.component.mjs +4 -4
  66. package/esm2022/lib/card-view/components/card-view-arrayitem/card-view-arrayitem.component.mjs +4 -4
  67. package/esm2022/lib/card-view/components/card-view-boolitem/card-view-boolitem.component.mjs +4 -4
  68. package/esm2022/lib/card-view/components/card-view-dateitem/card-view-dateitem.component.mjs +4 -4
  69. package/esm2022/lib/card-view/components/card-view-item-dispatcher/card-view-item-dispatcher.component.mjs +4 -4
  70. package/esm2022/lib/card-view/components/card-view-keyvaluepairsitem/card-view-keyvaluepairsitem.component.mjs +4 -4
  71. package/esm2022/lib/card-view/components/card-view-mapitem/card-view-mapitem.component.mjs +4 -4
  72. package/esm2022/lib/card-view/components/card-view-selectitem/card-view-selectitem.component.mjs +4 -4
  73. package/esm2022/lib/card-view/components/card-view-selectitem/select-filter-input/select-filter-input.component.mjs +4 -4
  74. package/esm2022/lib/card-view/components/card-view-textitem/card-view-textitem.component.mjs +4 -4
  75. package/esm2022/lib/card-view/services/card-item-types.service.mjs +4 -4
  76. package/esm2022/lib/card-view/services/card-view-update.service.mjs +4 -4
  77. package/esm2022/lib/clipboard/clipboard.directive.mjs +7 -7
  78. package/esm2022/lib/clipboard/clipboard.module.mjs +5 -5
  79. package/esm2022/lib/clipboard/clipboard.service.mjs +4 -4
  80. package/esm2022/lib/comments/comment-list/comment-list.component.mjs +4 -4
  81. package/esm2022/lib/comments/comment-list/comment-list.module.mjs +5 -5
  82. package/esm2022/lib/comments/comments.component.mjs +4 -4
  83. package/esm2022/lib/comments/comments.module.mjs +5 -5
  84. package/esm2022/lib/common/mock/app-config.service.mock.mjs +4 -4
  85. package/esm2022/lib/common/services/cookie.service.mjs +4 -4
  86. package/esm2022/lib/common/services/download.service.mjs +4 -4
  87. package/esm2022/lib/common/services/highlight-transform.service.mjs +4 -4
  88. package/esm2022/lib/common/services/log.service.mjs +4 -4
  89. package/esm2022/lib/common/services/page-title.service.mjs +4 -4
  90. package/esm2022/lib/common/services/sort-by-category.service.mjs +4 -4
  91. package/esm2022/lib/common/services/storage.service.mjs +4 -4
  92. package/esm2022/lib/common/services/thumbnail.service.mjs +4 -4
  93. package/esm2022/lib/common/services/url.service.mjs +4 -4
  94. package/esm2022/lib/common/services/user-preferences.service.mjs +4 -4
  95. package/esm2022/lib/common/utils/date-fns-adapter.mjs +4 -4
  96. package/esm2022/lib/common/utils/datetime-fns-adapter.mjs +4 -4
  97. package/esm2022/lib/common/utils/moment-date-adapter.mjs +4 -4
  98. package/esm2022/lib/context-menu/context-menu-list.component.mjs +4 -4
  99. package/esm2022/lib/context-menu/context-menu-overlay.service.mjs +4 -4
  100. package/esm2022/lib/context-menu/context-menu.directive.mjs +4 -4
  101. package/esm2022/lib/context-menu/context-menu.module.mjs +5 -5
  102. package/esm2022/lib/core.module.mjs +5 -5
  103. package/esm2022/lib/datatable/components/amount-cell/amount-cell.component.mjs +4 -4
  104. package/esm2022/lib/datatable/components/boolean-cell/boolean-cell.component.mjs +4 -4
  105. package/esm2022/lib/datatable/components/columns-selector/columns-search-filter.pipe.mjs +4 -4
  106. package/esm2022/lib/datatable/components/columns-selector/columns-selector.component.mjs +4 -4
  107. package/esm2022/lib/datatable/components/datatable/datatable.component.mjs +4 -4
  108. package/esm2022/lib/datatable/components/datatable-cell/datatable-cell.component.mjs +4 -4
  109. package/esm2022/lib/datatable/components/datatable-row/datatable-row.component.mjs +4 -4
  110. package/esm2022/lib/datatable/components/date-cell/date-cell.component.mjs +4 -4
  111. package/esm2022/lib/datatable/components/empty-list/empty-list.component.mjs +13 -13
  112. package/esm2022/lib/datatable/components/filesize-cell/filesize-cell.component.mjs +4 -4
  113. package/esm2022/lib/datatable/components/icon-cell/icon-cell.component.mjs +4 -4
  114. package/esm2022/lib/datatable/components/json-cell/json-cell.component.mjs +4 -4
  115. package/esm2022/lib/datatable/components/location-cell/location-cell.component.mjs +4 -4
  116. package/esm2022/lib/datatable/components/number-cell/number-cell.component.mjs +4 -4
  117. package/esm2022/lib/datatable/data/data-table.schema.mjs +4 -4
  118. package/esm2022/lib/datatable/data-column/data-column-header.component.mjs +4 -4
  119. package/esm2022/lib/datatable/data-column/data-column-list.component.mjs +4 -4
  120. package/esm2022/lib/datatable/data-column/data-column.component.mjs +4 -4
  121. package/esm2022/lib/datatable/datatable.module.mjs +5 -5
  122. package/esm2022/lib/datatable/directives/custom-empty-content-template.directive.mjs +4 -4
  123. package/esm2022/lib/datatable/directives/custom-loading-template.directive.mjs +4 -4
  124. package/esm2022/lib/datatable/directives/custom-no-permission-template.directive.mjs +4 -4
  125. package/esm2022/lib/datatable/directives/drop-zone.directive.mjs +4 -4
  126. package/esm2022/lib/datatable/directives/header-filter-template.directive.mjs +4 -4
  127. package/esm2022/lib/datatable/directives/loading-template.directive.mjs +4 -4
  128. package/esm2022/lib/datatable/directives/main-data-table-action-template.directive.mjs +4 -4
  129. package/esm2022/lib/datatable/directives/no-content-template.directive.mjs +4 -4
  130. package/esm2022/lib/datatable/directives/no-permission-template.directive.mjs +4 -4
  131. package/esm2022/lib/datatable/directives/resizable/resizable.directive.mjs +4 -4
  132. package/esm2022/lib/datatable/directives/resizable/resize-handle.directive.mjs +4 -4
  133. package/esm2022/lib/datatable/services/datatable.service.mjs +4 -4
  134. package/esm2022/lib/dialogs/confirm-dialog/confirm.dialog.mjs +4 -4
  135. package/esm2022/lib/dialogs/confirm-dialog/confirm.dialog.module.mjs +5 -5
  136. package/esm2022/lib/dialogs/dialog/dialog.component.mjs +4 -4
  137. package/esm2022/lib/dialogs/edit-json/edit-json.dialog.mjs +4 -4
  138. package/esm2022/lib/dialogs/edit-json/edit-json.dialog.module.mjs +5 -5
  139. package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +4 -4
  140. package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +5 -5
  141. package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes.guard.mjs +4 -4
  142. package/esm2022/lib/directives/directive.module.mjs +5 -5
  143. package/esm2022/lib/directives/highlight.directive.mjs +4 -4
  144. package/esm2022/lib/directives/infinite-select-scroll.directive.mjs +4 -4
  145. package/esm2022/lib/directives/logout.directive.mjs +4 -4
  146. package/esm2022/lib/directives/tooltip-card/tooltip-card.component.mjs +4 -4
  147. package/esm2022/lib/directives/tooltip-card/tooltip-card.directive.mjs +4 -4
  148. package/esm2022/lib/directives/upload.directive.mjs +4 -4
  149. package/esm2022/lib/dynamic-chip-list/dynamic-chip-list.component.mjs +4 -4
  150. package/esm2022/lib/dynamic-chip-list/dynamic-chip-list.module.mjs +5 -5
  151. package/esm2022/lib/form/components/form-base.component.mjs +4 -4
  152. package/esm2022/lib/form/components/form-custom-button.directive.mjs +4 -4
  153. package/esm2022/lib/form/components/form-field/form-field.component.mjs +4 -4
  154. package/esm2022/lib/form/components/form-renderer.component.mjs +5 -5
  155. package/esm2022/lib/form/components/form-section/form-section.component.mjs +4 -4
  156. package/esm2022/lib/form/components/inplace-form-input/inplace-form-input.component.mjs +4 -4
  157. package/esm2022/lib/form/components/middlewares/decimal-middleware.service.mjs +4 -4
  158. package/esm2022/lib/form/components/widgets/amount/amount.widget.mjs +4 -4
  159. package/esm2022/lib/form/components/widgets/base-viewer/base-viewer.widget.mjs +4 -4
  160. package/esm2022/lib/form/components/widgets/checkbox/checkbox.widget.mjs +4 -4
  161. package/esm2022/lib/form/components/widgets/date/date.widget.mjs +4 -4
  162. package/esm2022/lib/form/components/widgets/date-time/date-time.widget.mjs +4 -4
  163. package/esm2022/lib/form/components/widgets/decimal/decimal.component.mjs +4 -4
  164. package/esm2022/lib/form/components/widgets/display-text/display-text.widget.mjs +4 -4
  165. package/esm2022/lib/form/components/widgets/error/error.component.mjs +4 -4
  166. package/esm2022/lib/form/components/widgets/header/header.widget.mjs +4 -4
  167. package/esm2022/lib/form/components/widgets/hyperlink/hyperlink.widget.mjs +4 -4
  168. package/esm2022/lib/form/components/widgets/json/json.widget.mjs +4 -4
  169. package/esm2022/lib/form/components/widgets/multiline-text/multiline-text.widget.mjs +4 -4
  170. package/esm2022/lib/form/components/widgets/number/number.widget.mjs +4 -4
  171. package/esm2022/lib/form/components/widgets/text/text-mask.component.mjs +4 -4
  172. package/esm2022/lib/form/components/widgets/text/text.widget.mjs +4 -4
  173. package/esm2022/lib/form/components/widgets/unknown/unknown.widget.mjs +4 -4
  174. package/esm2022/lib/form/components/widgets/widget.component.mjs +4 -4
  175. package/esm2022/lib/form/form-base.module.mjs +5 -5
  176. package/esm2022/lib/form/pipes/field-style.pipe.mjs +4 -4
  177. package/esm2022/lib/form/services/form-rendering.service.mjs +4 -4
  178. package/esm2022/lib/form/services/form.service.mjs +4 -4
  179. package/esm2022/lib/form/services/widget-visibility.service.mjs +4 -4
  180. package/esm2022/lib/header/header.component.mjs +4 -4
  181. package/esm2022/lib/header/navbar/navbar-item.component.mjs +4 -4
  182. package/esm2022/lib/header/navbar/navbar.component.mjs +4 -4
  183. package/esm2022/lib/icon/icon.component.mjs +4 -4
  184. package/esm2022/lib/icon/icon.module.mjs +5 -5
  185. package/esm2022/lib/identity-user-info/identity-user-info.component.mjs +4 -4
  186. package/esm2022/lib/identity-user-info/identity-user-info.module.mjs +5 -5
  187. package/esm2022/lib/info-drawer/info-drawer-layout.component.mjs +13 -13
  188. package/esm2022/lib/info-drawer/info-drawer.component.mjs +7 -7
  189. package/esm2022/lib/info-drawer/info-drawer.module.mjs +5 -5
  190. package/esm2022/lib/language-menu/language-menu.component.mjs +4 -4
  191. package/esm2022/lib/language-menu/language-menu.module.mjs +5 -5
  192. package/esm2022/lib/language-menu/language-picker.component.mjs +4 -4
  193. package/esm2022/lib/language-menu/service/language.service.mjs +4 -4
  194. package/esm2022/lib/layout/components/header/header.component.mjs +4 -4
  195. package/esm2022/lib/layout/components/layout-container/layout-container.component.mjs +4 -4
  196. package/esm2022/lib/layout/components/sidebar-action/sidebar-action-menu.component.mjs +13 -13
  197. package/esm2022/lib/layout/components/sidenav-layout/sidenav-layout.component.mjs +4 -4
  198. package/esm2022/lib/layout/directives/sidenav-layout-content.directive.mjs +4 -4
  199. package/esm2022/lib/layout/directives/sidenav-layout-header.directive.mjs +4 -4
  200. package/esm2022/lib/layout/directives/sidenav-layout-navigation.directive.mjs +4 -4
  201. package/esm2022/lib/layout/layout.module.mjs +5 -5
  202. package/esm2022/lib/login/components/login/login.component.mjs +4 -4
  203. package/esm2022/lib/login/components/login-dialog/login-dialog.component.mjs +4 -4
  204. package/esm2022/lib/login/components/login-dialog-panel/login-dialog-panel.component.mjs +4 -4
  205. package/esm2022/lib/login/directives/login-footer.directive.mjs +4 -4
  206. package/esm2022/lib/login/directives/login-header.directive.mjs +4 -4
  207. package/esm2022/lib/login/login.module.mjs +5 -5
  208. package/esm2022/lib/material.module.mjs +5 -5
  209. package/esm2022/lib/mock/cookie.service.mock.mjs +4 -4
  210. package/esm2022/lib/mock/translation.service.mock.mjs +4 -4
  211. package/esm2022/lib/notifications/components/add-notification.stories.component.mjs +4 -4
  212. package/esm2022/lib/notifications/components/notification-history.component.mjs +4 -4
  213. package/esm2022/lib/notifications/notification-history.module.mjs +5 -5
  214. package/esm2022/lib/notifications/services/notification.service.mjs +4 -4
  215. package/esm2022/lib/pagination/infinite-pagination.component.mjs +4 -4
  216. package/esm2022/lib/pagination/pagination.component.mjs +4 -4
  217. package/esm2022/lib/pagination/pagination.module.mjs +5 -5
  218. package/esm2022/lib/pipes/date-time.pipe.mjs +4 -4
  219. package/esm2022/lib/pipes/decimal-number.pipe.mjs +4 -4
  220. package/esm2022/lib/pipes/file-size.pipe.mjs +4 -4
  221. package/esm2022/lib/pipes/file-type.pipe.mjs +4 -4
  222. package/esm2022/lib/pipes/format-space.pipe.mjs +4 -4
  223. package/esm2022/lib/pipes/full-name.pipe.mjs +4 -4
  224. package/esm2022/lib/pipes/localized-date.pipe.mjs +4 -4
  225. package/esm2022/lib/pipes/multi-value.pipe.mjs +4 -4
  226. package/esm2022/lib/pipes/pipe.module.mjs +5 -5
  227. package/esm2022/lib/pipes/text-highlight.pipe.mjs +4 -4
  228. package/esm2022/lib/pipes/time-ago.pipe.mjs +4 -4
  229. package/esm2022/lib/pipes/truncate.pipe.mjs +4 -4
  230. package/esm2022/lib/pipes/user-initial.pipe.mjs +4 -4
  231. package/esm2022/lib/progress/progress.component.mjs +4 -4
  232. package/esm2022/lib/search-text/search-text-input.component.mjs +4 -4
  233. package/esm2022/lib/search-text/search-text-input.module.mjs +5 -5
  234. package/esm2022/lib/search-text/search-trigger.directive.mjs +4 -4
  235. package/esm2022/lib/snackbar-content/snackbar-content.component.mjs +4 -4
  236. package/esm2022/lib/snackbar-content/snackbar-content.module.mjs +5 -5
  237. package/esm2022/lib/sorting-picker/sorting-picker.component.mjs +4 -4
  238. package/esm2022/lib/templates/empty-content/empty-content.component.mjs +4 -4
  239. package/esm2022/lib/templates/error-content/error-content.component.mjs +4 -4
  240. package/esm2022/lib/templates/template.module.mjs +5 -5
  241. package/esm2022/lib/testing/core.story.module.mjs +5 -5
  242. package/esm2022/lib/testing/core.testing.module.mjs +5 -5
  243. package/esm2022/lib/testing/noop-auth.module.mjs +8 -8
  244. package/esm2022/lib/testing/noop-translate.module.mjs +8 -8
  245. package/esm2022/lib/toolbar/toolbar-divider.component.mjs +4 -4
  246. package/esm2022/lib/toolbar/toolbar-title.component.mjs +4 -4
  247. package/esm2022/lib/toolbar/toolbar.component.mjs +4 -4
  248. package/esm2022/lib/toolbar/toolbar.module.mjs +5 -5
  249. package/esm2022/lib/translation/translate-loader.service.mjs +4 -4
  250. package/esm2022/lib/translation/translation.service.mjs +4 -4
  251. package/esm2022/lib/viewer/components/download-prompt-dialog/download-prompt-dialog.component.mjs +4 -4
  252. package/esm2022/lib/viewer/components/img-viewer/img-viewer.component.mjs +8 -5
  253. package/esm2022/lib/viewer/components/media-player/media-player.component.mjs +8 -5
  254. package/esm2022/lib/viewer/components/pdf-viewer/pdf-viewer.component.mjs +8 -4
  255. package/esm2022/lib/viewer/components/pdf-viewer-password-dialog/pdf-viewer-password-dialog.mjs +4 -4
  256. package/esm2022/lib/viewer/components/pdf-viewer-thumb/pdf-viewer-thumb.component.mjs +4 -4
  257. package/esm2022/lib/viewer/components/pdf-viewer-thumbnails/pdf-viewer-thumbnails.component.mjs +4 -4
  258. package/esm2022/lib/viewer/components/txt-viewer/txt-viewer.component.mjs +4 -4
  259. package/esm2022/lib/viewer/components/unknown-format/unknown-format.component.mjs +4 -4
  260. package/esm2022/lib/viewer/components/viewer-more-actions.component.mjs +4 -4
  261. package/esm2022/lib/viewer/components/viewer-open-with.component.mjs +4 -4
  262. package/esm2022/lib/viewer/components/viewer-render/viewer-render.component.mjs +7 -5
  263. package/esm2022/lib/viewer/components/viewer-sidebar.component.mjs +4 -4
  264. package/esm2022/lib/viewer/components/viewer-toolbar-actions.component.mjs +4 -4
  265. package/esm2022/lib/viewer/components/viewer-toolbar-custom-actions.component.mjs +4 -4
  266. package/esm2022/lib/viewer/components/viewer-toolbar.component.mjs +4 -4
  267. package/esm2022/lib/viewer/components/viewer.component.mjs +13 -11
  268. package/esm2022/lib/viewer/directives/viewer-extension.directive.mjs +4 -4
  269. package/esm2022/lib/viewer/services/rendering-queue.services.mjs +4 -4
  270. package/esm2022/lib/viewer/services/view-util.service.mjs +4 -4
  271. package/esm2022/lib/viewer/viewer.module.mjs +5 -5
  272. package/esm2022/shell/lib/components/shell/shell.component.mjs +4 -4
  273. package/esm2022/shell/lib/shell.module.mjs +5 -5
  274. package/feature-flags/lib/providers/debug-feature-flags.provider.d.ts +2 -2
  275. package/fesm2022/adf-core.mjs +850 -836
  276. package/fesm2022/adf-core.mjs.map +1 -1
  277. package/fesm2022/alfresco-adf-core-api.mjs +4 -4
  278. package/fesm2022/alfresco-adf-core-api.mjs.map +1 -1
  279. package/fesm2022/alfresco-adf-core-auth.mjs +3 -3
  280. package/fesm2022/alfresco-adf-core-auth.mjs.map +1 -1
  281. package/fesm2022/alfresco-adf-core-breadcrumbs.mjs +10 -10
  282. package/fesm2022/alfresco-adf-core-breadcrumbs.mjs.map +1 -1
  283. package/fesm2022/alfresco-adf-core-feature-flags.mjs +37 -37
  284. package/fesm2022/alfresco-adf-core-feature-flags.mjs.map +1 -1
  285. package/fesm2022/alfresco-adf-core-shell.mjs +8 -8
  286. package/fesm2022/alfresco-adf-core-shell.mjs.map +1 -1
  287. package/lib/prebuilt-themes/adf-blue-orange.css +1 -1
  288. package/lib/prebuilt-themes/adf-blue-purple.css +1 -1
  289. package/lib/prebuilt-themes/adf-cyan-orange.css +1 -1
  290. package/lib/prebuilt-themes/adf-cyan-purple.css +1 -1
  291. package/lib/prebuilt-themes/adf-green-orange.css +1 -1
  292. package/lib/prebuilt-themes/adf-green-purple.css +1 -1
  293. package/lib/prebuilt-themes/adf-indigo-pink.css +1 -1
  294. package/lib/prebuilt-themes/adf-pink-bluegrey.css +1 -1
  295. package/lib/prebuilt-themes/adf-purple-green.css +1 -1
  296. package/lib/styles/_components-variables.scss +42 -42
  297. package/lib/styles/_index.scss +57 -57
  298. package/lib/styles/_typography.scss +13 -13
  299. package/lib/styles/prebuilt/adf-blue-orange.scss +5 -5
  300. package/lib/styles/prebuilt/adf-blue-purple.scss +5 -5
  301. package/lib/styles/prebuilt/adf-cyan-orange.scss +5 -5
  302. package/lib/styles/prebuilt/adf-cyan-purple.scss +5 -5
  303. package/lib/styles/prebuilt/adf-green-orange.scss +5 -5
  304. package/lib/styles/prebuilt/adf-green-purple.scss +5 -5
  305. package/lib/styles/prebuilt/adf-indigo-pink.scss +5 -5
  306. package/lib/styles/prebuilt/adf-pink-bluegrey.scss +5 -5
  307. package/lib/styles/prebuilt/adf-purple-green.scss +5 -5
  308. package/lib/viewer/components/img-viewer/img-viewer.component.d.ts +2 -1
  309. package/lib/viewer/components/media-player/media-player.component.d.ts +2 -1
  310. package/lib/viewer/components/pdf-viewer/pdf-viewer.component.d.ts +2 -1
  311. package/lib/viewer/components/viewer-render/viewer-render.component.d.ts +1 -0
  312. package/lib/viewer/components/viewer-render/viewer-render.component.scss +12 -0
  313. package/lib/viewer/components/viewer.component.d.ts +1 -0
  314. package/package.json +3 -3
  315. package/schematics/migrations/schematics/migrations/7_0_0/index.d.ts +1 -1
  316. package/schematics/migrations/schematics/migrations/7_0_0/index.js +2 -2
  317. package/schematics/migrations/schematics/migrations/7_0_0/index.js.map +1 -1
@@ -82,6 +82,7 @@ export class ImgViewerComponent {
82
82
  // eslint-disable-next-line @angular-eslint/no-output-native
83
83
  this.submit = new EventEmitter();
84
84
  this.isSaving = new EventEmitter();
85
+ this.imageLoaded = new EventEmitter();
85
86
  this.scale = 1.0;
86
87
  this.isEditing = false;
87
88
  this.initializeScaling();
@@ -181,12 +182,12 @@ export class ImgViewerComponent {
181
182
  onImageError() {
182
183
  this.error.emit();
183
184
  }
184
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImgViewerComponent, deps: [{ token: i1.AppConfigService }, { token: i2.UrlService }], target: i0.ɵɵFactoryTarget.Component }); }
185
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ImgViewerComponent, isStandalone: true, selector: "adf-img-viewer", inputs: { showToolbar: "showToolbar", readOnly: "readOnly", allowedEditActions: "allowedEditActions", urlFile: "urlFile", blobFile: "blobFile", fileName: "fileName" }, outputs: { error: "error", submit: "submit", isSaving: "isSaving" }, host: { listeners: { "document:keydown": "onKeyDown($event)", "document:fullscreenchange": "fullScreenChangeHandler()" }, classAttribute: "adf-image-viewer" }, viewQueries: [{ propertyName: "imageElement", first: true, predicate: ["image"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div id=\"adf-image-container\"\n (keydown)=\"onKeyDown($event)\"\n class=\"adf-image-container\"\n tabindex=\"0\"\n role=\"img\"\n [attr.aria-label]=\"fileName\"\n data-automation-id=\"adf-image-container\">\n <img #image id=\"viewer-image\"\n [src]=\"urlFile\"\n [alt]=\"fileName\"\n (error)=\"onImageError()\" />\n</div>\n\n<div class=\"adf-image-viewer__toolbar\" *ngIf=\"showToolbar\">\n <adf-toolbar class=\"adf-main-toolbar\">\n <button id=\"viewer-zoom-out-button\"\n title=\"{{ 'ADF_VIEWER.ARIA.ZOOM_OUT' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.ZOOM_OUT' | translate }}\"\n mat-icon-button\n (click)=\"zoomOut()\">\n <mat-icon>zoom_out</mat-icon>\n </button>\n\n <div class=\"adf-image-viewer__toolbar-page-scale\" data-automation-id=\"adf-page-scale\">\n {{ currentScaleText }}\n </div>\n\n <button id=\"viewer-zoom-in-button\"\n mat-icon-button\n title=\"{{ 'ADF_VIEWER.ARIA.ZOOM_IN' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.ZOOM_IN' | translate }}\"\n (click)=\"zoomIn()\">\n <mat-icon>zoom_in</mat-icon>\n </button>\n\n <button *ngIf=\"!readOnly && allowedEditActions.rotate\" id=\"viewer-rotate-button\"\n title=\"{{ 'ADF_VIEWER.ARIA.ROTATE' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.ROTATE' | translate }}\"\n mat-icon-button\n (click)=\"rotateImage()\">\n <mat-icon>rotate_left</mat-icon>\n </button>\n <button *ngIf=\"!readOnly && allowedEditActions.crop\" id=\"viewer-crop-button\"\n title=\"{{ 'ADF_VIEWER.ARIA.CROP' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.CROP' | translate }}\"\n mat-icon-button\n (click)=\"cropImage()\">\n <mat-icon>crop</mat-icon>\n </button>\n\n <button id=\"viewer-reset-button\"\n title=\"{{ 'ADF_VIEWER.ARIA.RESET' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.RESET' | translate }}\"\n mat-icon-button\n (click)=\"reset()\">\n <mat-icon>zoom_out_map</mat-icon>\n </button>\n\n </adf-toolbar>\n\n <adf-toolbar class=\"adf-secondary-toolbar\" *ngIf=\"isEditing && !readOnly\">\n <button id=\"viewer-cancel-button\"\n title=\"{{ 'ADF_VIEWER.ARIA.CANCEL' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.CANCEL' | translate }}\"\n mat-icon-button\n (click)=\"reset()\">\n <mat-icon>close</mat-icon>\n </button>\n\n <button id=\"viewer-save-button\"\n title=\"{{ 'ADF_VIEWER.ARIA.SAVE' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.SAVE' | translate }}\"\n mat-icon-button\n (click)=\"save()\">\n <mat-icon>check</mat-icon>\n </button>\n\n </adf-toolbar>\n</div>\n", styles: [".adf-image-viewer{width:100%}.adf-image-viewer .adf-image-container{display:flex;height:90vh;align-items:center;justify-content:center}.adf-image-viewer .adf-image-container:focus{outline-offset:-1px;outline:1px solid var(--theme-accent-color-a200)}.adf-image-viewer .adf-image-container img{max-height:100%;max-width:100%}@media screen and (-ms-high-contrast: active),screen and (-ms-high-contrast: none){.adf-image-viewer .adf-image-container img{height:100%}}.adf-image-viewer__toolbar{position:absolute;bottom:5px;left:50%;transform:translate(-50%)}.adf-image-viewer__toolbar .adf-toolbar .mat-toolbar{max-height:48px;background-color:var(--adf-theme-background-card-color);border-width:0;border-radius:2px;box-shadow:0 2px 2px #0000003d,0 0 2px #0000001f}.adf-image-viewer__toolbar .adf-main-toolbar{display:inline-block}.adf-image-viewer__toolbar .adf-secondary-toolbar{display:inline-block;margin-left:10px}.adf-image-viewer__toolbar-page-scale{cursor:default;width:79px;height:24px;font-size:var(--theme-body-1-font-size);border:1px solid var(--adf-theme-foreground-text-color-007);text-align:center;line-height:24px;margin-left:4px;margin-right:4px}\n"], dependencies: [{ kind: "component", type: ToolbarComponent, selector: "adf-toolbar", inputs: ["title", "color"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
185
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ImgViewerComponent, deps: [{ token: i1.AppConfigService }, { token: i2.UrlService }], target: i0.ɵɵFactoryTarget.Component }); }
186
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: ImgViewerComponent, isStandalone: true, selector: "adf-img-viewer", inputs: { showToolbar: "showToolbar", readOnly: "readOnly", allowedEditActions: "allowedEditActions", urlFile: "urlFile", blobFile: "blobFile", fileName: "fileName" }, outputs: { error: "error", submit: "submit", isSaving: "isSaving", imageLoaded: "imageLoaded" }, host: { listeners: { "document:keydown": "onKeyDown($event)", "document:fullscreenchange": "fullScreenChangeHandler()" }, classAttribute: "adf-image-viewer" }, viewQueries: [{ propertyName: "imageElement", first: true, predicate: ["image"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div id=\"adf-image-container\"\n (keydown)=\"onKeyDown($event)\"\n class=\"adf-image-container\"\n tabindex=\"0\"\n role=\"img\"\n [attr.aria-label]=\"fileName\"\n data-automation-id=\"adf-image-container\">\n <img #image id=\"viewer-image\"\n [src]=\"urlFile\"\n [alt]=\"fileName\"\n (load)=\"imageLoaded.emit()\"\n (error)=\"onImageError()\" />\n</div>\n\n<div class=\"adf-image-viewer__toolbar\" *ngIf=\"showToolbar\">\n <adf-toolbar class=\"adf-main-toolbar\">\n <button id=\"viewer-zoom-out-button\"\n title=\"{{ 'ADF_VIEWER.ARIA.ZOOM_OUT' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.ZOOM_OUT' | translate }}\"\n mat-icon-button\n (click)=\"zoomOut()\">\n <mat-icon>zoom_out</mat-icon>\n </button>\n\n <div class=\"adf-image-viewer__toolbar-page-scale\" data-automation-id=\"adf-page-scale\">\n {{ currentScaleText }}\n </div>\n\n <button id=\"viewer-zoom-in-button\"\n mat-icon-button\n title=\"{{ 'ADF_VIEWER.ARIA.ZOOM_IN' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.ZOOM_IN' | translate }}\"\n (click)=\"zoomIn()\">\n <mat-icon>zoom_in</mat-icon>\n </button>\n\n <button *ngIf=\"!readOnly && allowedEditActions.rotate\" id=\"viewer-rotate-button\"\n title=\"{{ 'ADF_VIEWER.ARIA.ROTATE' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.ROTATE' | translate }}\"\n mat-icon-button\n (click)=\"rotateImage()\">\n <mat-icon>rotate_left</mat-icon>\n </button>\n <button *ngIf=\"!readOnly && allowedEditActions.crop\" id=\"viewer-crop-button\"\n title=\"{{ 'ADF_VIEWER.ARIA.CROP' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.CROP' | translate }}\"\n mat-icon-button\n (click)=\"cropImage()\">\n <mat-icon>crop</mat-icon>\n </button>\n\n <button id=\"viewer-reset-button\"\n title=\"{{ 'ADF_VIEWER.ARIA.RESET' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.RESET' | translate }}\"\n mat-icon-button\n (click)=\"reset()\">\n <mat-icon>zoom_out_map</mat-icon>\n </button>\n\n </adf-toolbar>\n\n <adf-toolbar class=\"adf-secondary-toolbar\" *ngIf=\"isEditing && !readOnly\">\n <button id=\"viewer-cancel-button\"\n title=\"{{ 'ADF_VIEWER.ARIA.CANCEL' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.CANCEL' | translate }}\"\n mat-icon-button\n (click)=\"reset()\">\n <mat-icon>close</mat-icon>\n </button>\n\n <button id=\"viewer-save-button\"\n title=\"{{ 'ADF_VIEWER.ARIA.SAVE' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.SAVE' | translate }}\"\n mat-icon-button\n (click)=\"save()\">\n <mat-icon>check</mat-icon>\n </button>\n\n </adf-toolbar>\n</div>\n", styles: [".adf-image-viewer{width:100%}.adf-image-viewer .adf-image-container{display:flex;height:90vh;align-items:center;justify-content:center}.adf-image-viewer .adf-image-container:focus{outline-offset:-1px;outline:1px solid var(--theme-accent-color-a200)}.adf-image-viewer .adf-image-container img{max-height:100%;max-width:100%}@media screen and (-ms-high-contrast: active),screen and (-ms-high-contrast: none){.adf-image-viewer .adf-image-container img{height:100%}}.adf-image-viewer__toolbar{position:absolute;bottom:5px;left:50%;transform:translate(-50%)}.adf-image-viewer__toolbar .adf-toolbar .mat-toolbar{max-height:48px;background-color:var(--adf-theme-background-card-color);border-width:0;border-radius:2px;box-shadow:0 2px 2px #0000003d,0 0 2px #0000001f}.adf-image-viewer__toolbar .adf-main-toolbar{display:inline-block}.adf-image-viewer__toolbar .adf-secondary-toolbar{display:inline-block;margin-left:10px}.adf-image-viewer__toolbar-page-scale{cursor:default;width:79px;height:24px;font-size:var(--theme-body-1-font-size);border:1px solid var(--adf-theme-foreground-text-color-007);text-align:center;line-height:24px;margin-left:4px;margin-right:4px}\n"], dependencies: [{ kind: "component", type: ToolbarComponent, selector: "adf-toolbar", inputs: ["title", "color"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
186
187
  }
187
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImgViewerComponent, decorators: [{
188
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ImgViewerComponent, decorators: [{
188
189
  type: Component,
189
- args: [{ selector: 'adf-img-viewer', standalone: true, host: { class: 'adf-image-viewer' }, imports: [ToolbarComponent, TranslateModule, MatIconModule, MatButtonModule, NgIf], encapsulation: ViewEncapsulation.None, template: "<div id=\"adf-image-container\"\n (keydown)=\"onKeyDown($event)\"\n class=\"adf-image-container\"\n tabindex=\"0\"\n role=\"img\"\n [attr.aria-label]=\"fileName\"\n data-automation-id=\"adf-image-container\">\n <img #image id=\"viewer-image\"\n [src]=\"urlFile\"\n [alt]=\"fileName\"\n (error)=\"onImageError()\" />\n</div>\n\n<div class=\"adf-image-viewer__toolbar\" *ngIf=\"showToolbar\">\n <adf-toolbar class=\"adf-main-toolbar\">\n <button id=\"viewer-zoom-out-button\"\n title=\"{{ 'ADF_VIEWER.ARIA.ZOOM_OUT' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.ZOOM_OUT' | translate }}\"\n mat-icon-button\n (click)=\"zoomOut()\">\n <mat-icon>zoom_out</mat-icon>\n </button>\n\n <div class=\"adf-image-viewer__toolbar-page-scale\" data-automation-id=\"adf-page-scale\">\n {{ currentScaleText }}\n </div>\n\n <button id=\"viewer-zoom-in-button\"\n mat-icon-button\n title=\"{{ 'ADF_VIEWER.ARIA.ZOOM_IN' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.ZOOM_IN' | translate }}\"\n (click)=\"zoomIn()\">\n <mat-icon>zoom_in</mat-icon>\n </button>\n\n <button *ngIf=\"!readOnly && allowedEditActions.rotate\" id=\"viewer-rotate-button\"\n title=\"{{ 'ADF_VIEWER.ARIA.ROTATE' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.ROTATE' | translate }}\"\n mat-icon-button\n (click)=\"rotateImage()\">\n <mat-icon>rotate_left</mat-icon>\n </button>\n <button *ngIf=\"!readOnly && allowedEditActions.crop\" id=\"viewer-crop-button\"\n title=\"{{ 'ADF_VIEWER.ARIA.CROP' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.CROP' | translate }}\"\n mat-icon-button\n (click)=\"cropImage()\">\n <mat-icon>crop</mat-icon>\n </button>\n\n <button id=\"viewer-reset-button\"\n title=\"{{ 'ADF_VIEWER.ARIA.RESET' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.RESET' | translate }}\"\n mat-icon-button\n (click)=\"reset()\">\n <mat-icon>zoom_out_map</mat-icon>\n </button>\n\n </adf-toolbar>\n\n <adf-toolbar class=\"adf-secondary-toolbar\" *ngIf=\"isEditing && !readOnly\">\n <button id=\"viewer-cancel-button\"\n title=\"{{ 'ADF_VIEWER.ARIA.CANCEL' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.CANCEL' | translate }}\"\n mat-icon-button\n (click)=\"reset()\">\n <mat-icon>close</mat-icon>\n </button>\n\n <button id=\"viewer-save-button\"\n title=\"{{ 'ADF_VIEWER.ARIA.SAVE' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.SAVE' | translate }}\"\n mat-icon-button\n (click)=\"save()\">\n <mat-icon>check</mat-icon>\n </button>\n\n </adf-toolbar>\n</div>\n", styles: [".adf-image-viewer{width:100%}.adf-image-viewer .adf-image-container{display:flex;height:90vh;align-items:center;justify-content:center}.adf-image-viewer .adf-image-container:focus{outline-offset:-1px;outline:1px solid var(--theme-accent-color-a200)}.adf-image-viewer .adf-image-container img{max-height:100%;max-width:100%}@media screen and (-ms-high-contrast: active),screen and (-ms-high-contrast: none){.adf-image-viewer .adf-image-container img{height:100%}}.adf-image-viewer__toolbar{position:absolute;bottom:5px;left:50%;transform:translate(-50%)}.adf-image-viewer__toolbar .adf-toolbar .mat-toolbar{max-height:48px;background-color:var(--adf-theme-background-card-color);border-width:0;border-radius:2px;box-shadow:0 2px 2px #0000003d,0 0 2px #0000001f}.adf-image-viewer__toolbar .adf-main-toolbar{display:inline-block}.adf-image-viewer__toolbar .adf-secondary-toolbar{display:inline-block;margin-left:10px}.adf-image-viewer__toolbar-page-scale{cursor:default;width:79px;height:24px;font-size:var(--theme-body-1-font-size);border:1px solid var(--adf-theme-foreground-text-color-007);text-align:center;line-height:24px;margin-left:4px;margin-right:4px}\n"] }]
190
+ args: [{ selector: 'adf-img-viewer', standalone: true, host: { class: 'adf-image-viewer' }, imports: [ToolbarComponent, TranslateModule, MatIconModule, MatButtonModule, NgIf], encapsulation: ViewEncapsulation.None, template: "<div id=\"adf-image-container\"\n (keydown)=\"onKeyDown($event)\"\n class=\"adf-image-container\"\n tabindex=\"0\"\n role=\"img\"\n [attr.aria-label]=\"fileName\"\n data-automation-id=\"adf-image-container\">\n <img #image id=\"viewer-image\"\n [src]=\"urlFile\"\n [alt]=\"fileName\"\n (load)=\"imageLoaded.emit()\"\n (error)=\"onImageError()\" />\n</div>\n\n<div class=\"adf-image-viewer__toolbar\" *ngIf=\"showToolbar\">\n <adf-toolbar class=\"adf-main-toolbar\">\n <button id=\"viewer-zoom-out-button\"\n title=\"{{ 'ADF_VIEWER.ARIA.ZOOM_OUT' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.ZOOM_OUT' | translate }}\"\n mat-icon-button\n (click)=\"zoomOut()\">\n <mat-icon>zoom_out</mat-icon>\n </button>\n\n <div class=\"adf-image-viewer__toolbar-page-scale\" data-automation-id=\"adf-page-scale\">\n {{ currentScaleText }}\n </div>\n\n <button id=\"viewer-zoom-in-button\"\n mat-icon-button\n title=\"{{ 'ADF_VIEWER.ARIA.ZOOM_IN' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.ZOOM_IN' | translate }}\"\n (click)=\"zoomIn()\">\n <mat-icon>zoom_in</mat-icon>\n </button>\n\n <button *ngIf=\"!readOnly && allowedEditActions.rotate\" id=\"viewer-rotate-button\"\n title=\"{{ 'ADF_VIEWER.ARIA.ROTATE' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.ROTATE' | translate }}\"\n mat-icon-button\n (click)=\"rotateImage()\">\n <mat-icon>rotate_left</mat-icon>\n </button>\n <button *ngIf=\"!readOnly && allowedEditActions.crop\" id=\"viewer-crop-button\"\n title=\"{{ 'ADF_VIEWER.ARIA.CROP' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.CROP' | translate }}\"\n mat-icon-button\n (click)=\"cropImage()\">\n <mat-icon>crop</mat-icon>\n </button>\n\n <button id=\"viewer-reset-button\"\n title=\"{{ 'ADF_VIEWER.ARIA.RESET' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.RESET' | translate }}\"\n mat-icon-button\n (click)=\"reset()\">\n <mat-icon>zoom_out_map</mat-icon>\n </button>\n\n </adf-toolbar>\n\n <adf-toolbar class=\"adf-secondary-toolbar\" *ngIf=\"isEditing && !readOnly\">\n <button id=\"viewer-cancel-button\"\n title=\"{{ 'ADF_VIEWER.ARIA.CANCEL' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.CANCEL' | translate }}\"\n mat-icon-button\n (click)=\"reset()\">\n <mat-icon>close</mat-icon>\n </button>\n\n <button id=\"viewer-save-button\"\n title=\"{{ 'ADF_VIEWER.ARIA.SAVE' | translate }}\"\n attr.aria-label=\"{{ 'ADF_VIEWER.ARIA.SAVE' | translate }}\"\n mat-icon-button\n (click)=\"save()\">\n <mat-icon>check</mat-icon>\n </button>\n\n </adf-toolbar>\n</div>\n", styles: [".adf-image-viewer{width:100%}.adf-image-viewer .adf-image-container{display:flex;height:90vh;align-items:center;justify-content:center}.adf-image-viewer .adf-image-container:focus{outline-offset:-1px;outline:1px solid var(--theme-accent-color-a200)}.adf-image-viewer .adf-image-container img{max-height:100%;max-width:100%}@media screen and (-ms-high-contrast: active),screen and (-ms-high-contrast: none){.adf-image-viewer .adf-image-container img{height:100%}}.adf-image-viewer__toolbar{position:absolute;bottom:5px;left:50%;transform:translate(-50%)}.adf-image-viewer__toolbar .adf-toolbar .mat-toolbar{max-height:48px;background-color:var(--adf-theme-background-card-color);border-width:0;border-radius:2px;box-shadow:0 2px 2px #0000003d,0 0 2px #0000001f}.adf-image-viewer__toolbar .adf-main-toolbar{display:inline-block}.adf-image-viewer__toolbar .adf-secondary-toolbar{display:inline-block;margin-left:10px}.adf-image-viewer__toolbar-page-scale{cursor:default;width:79px;height:24px;font-size:var(--theme-body-1-font-size);border:1px solid var(--adf-theme-foreground-text-color-007);text-align:center;line-height:24px;margin-left:4px;margin-right:4px}\n"] }]
190
191
  }], ctorParameters: () => [{ type: i1.AppConfigService }, { type: i2.UrlService }], propDecorators: { showToolbar: [{
191
192
  type: Input
192
193
  }], readOnly: [{
@@ -205,6 +206,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
205
206
  type: Output
206
207
  }], isSaving: [{
207
208
  type: Output
209
+ }], imageLoaded: [{
210
+ type: Output
208
211
  }], imageElement: [{
209
212
  type: ViewChild,
210
213
  args: ['image', { static: false }]
@@ -215,4 +218,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
215
218
  type: HostListener,
216
219
  args: ['document:fullscreenchange']
217
220
  }] } });
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3ZpZXdlci9jb21wb25lbnRzL2ltZy12aWV3ZXIvaW1nLXZpZXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3ZpZXdlci9jb21wb25lbnRzL2ltZy12aWV3ZXIvaW1nLXZpZXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUVILFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxPQUFPLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7OztBQVdwRCxNQUFNLE9BQU8sa0JBQWtCO0lBcUMzQixTQUFTLENBQUMsS0FBb0I7UUFDMUIsUUFBUSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDaEIsS0FBSyxXQUFXO2dCQUNaLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztn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LElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQzsrR0FuTVEsa0JBQWtCO21HQUFsQixrQkFBa0IsbWxCQ2pEL0IsaW5HQStFQSxrc0NEakNjLGdCQUFnQixtRkFBRSxlQUFlLDJGQUFFLGFBQWEsbUxBQUUsZUFBZSw0SUFBRSxJQUFJOzs0RkFHeEUsa0JBQWtCO2tCQVQ5QixTQUFTOytCQUNJLGdCQUFnQixjQUNkLElBQUksUUFHVixFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxXQUMxQixDQUFDLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLElBQUksQ0FBQyxpQkFDbkUsaUJBQWlCLENBQUMsSUFBSTs4R0FJckMsV0FBVztzQkFEVixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBT04sT0FBTztzQkFETixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sS0FBSztzQkFESixNQUFNO2dCQUtQLE1BQU07c0JBREwsTUFBTTtnQkFJUCxRQUFRO3NCQURQLE1BQU07Z0JBSVAsWUFBWTtzQkFEWCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBSXJDLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFpQzVDLHVCQUF1QjtzQkFEdEIsWUFBWTt1QkFBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgQ3JvcHBlciBmcm9tICdjcm9wcGVyanMnO1xuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2FwcC1jb25maWcnO1xuaW1wb3J0IHsgVXJsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbic7XG5pbXBvcnQgeyBUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vdG9vbGJhcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLWltZy12aWV3ZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ltZy12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ltZy12aWV3ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7IGNsYXNzOiAnYWRmLWltYWdlLXZpZXdlcicgfSxcbiAgICBpbXBvcnRzOiBbVG9vbGJhckNvbXBvbmVudCwgVHJhbnNsYXRlTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE5nSWZdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgSW1nVmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd1Rvb2xiYXIgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICByZWFkT25seSA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIGFsbG93ZWRFZGl0QWN0aW9uczogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7XG4gICAgICAgIHJvdGF0ZTogdHJ1ZSxcbiAgICAgICAgY3JvcDogdHJ1ZVxuICAgIH07XG5cbiAgICBASW5wdXQoKVxuICAgIHVybEZpbGU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgYmxvYkZpbGU6IEJsb2I7XG5cbiAgICBASW5wdXQoKVxuICAgIGZpbGVOYW1lOiBzdHJpbmc7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgICBAT3V0cHV0KClcbiAgICBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gICAgQE91dHB1dCgpXG4gICAgc3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBpc1NhdmluZyA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2ltYWdlJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgaW1hZ2VFbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICAgICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jcm9wcGVyLm1vdmUoLTMsIDApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNyb3BwZXIubW92ZSgwLCAtMyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3JvcHBlci5tb3ZlKDMsIDApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3JvcHBlci5tb3ZlKDAsIDMpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaSc6XG4gICAgICAgICAgICAgICAgdGhpcy56b29tSW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ28nOlxuICAgICAgICAgICAgICAgIHRoaXMuem9vbU91dCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncic6XG4gICAgICAgICAgICAgICAgdGhpcy5yb3RhdGVJbWFnZSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmZ1bGxzY3JlZW5jaGFuZ2UnKVxuICAgIGZ1bGxTY3JlZW5DaGFuZ2VIYW5kbGVyKCkge1xuICAgICAgICBpZiAoZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNjYWxlOiBudW1iZXIgPSAxLjA7XG4gICAgY3JvcHBlcjogQ3JvcHBlcjtcbiAgICBpc0VkaXRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGdldCBjdXJyZW50U2NhbGVUZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBNYXRoLnJvdW5kKHRoaXMuc2NhbGUgKiAxMDApICsgJyUnO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZSwgcHJpdmF0ZSB1cmxTZXJ2aWNlOiBVcmxTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVNjYWxpbmcoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGNvbnN0IGJsb2JGaWxlID0gY2hhbmdlc1snYmxvYkZpbGUnXTtcbiAgICAgICAgaWYgKGJsb2JGaWxlPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudXJsRmlsZSA9IHRoaXMudXJsU2VydmljZS5jcmVhdGVUcnVzdGVkVXJsKHRoaXMuYmxvYkZpbGUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjaGFuZ2VzWyd1cmxGaWxlJ10uZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2VzWyd1cmxGaWxlJ10ucHJldmlvdXNWYWx1ZSAhPT0gY2hhbmdlc1sndXJsRmlsZSddLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY3JvcHBlci5yZXBsYWNlKGNoYW5nZXNbJ3VybEZpbGUnXS5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLnVybEZpbGUgJiYgIXRoaXMuYmxvYkZpbGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQXR0cmlidXRlIHVybEZpbGUgb3IgYmxvYkZpbGUgaXMgcmVxdWlyZWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5jcm9wcGVyID0gbmV3IENyb3BwZXIodGhpcy5pbWFnZUVsZW1lbnQubmF0aXZlRWxlbWVudCwge1xuICAgICAgICAgICAgYXV0b0Nyb3A6IGZhbHNlLFxuICAgICAgICAgICAgY2hlY2tPcmllbnRhdGlvbjogZmFsc2UsXG4gICAgICAgICAgICBkcmFnTW9kZTogJ21vdmUnLFxuICAgICAgICAgICAgYmFja2dyb3VuZDogZmFsc2UsXG4gICAgICAgICAgICBzY2FsYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIHpvb21PbldoZWVsOiB0cnVlLFxuICAgICAgICAgICAgdG9nZ2xlRHJhZ01vZGVPbkRibGNsaWNrOiBmYWxzZSxcbiAgICAgICAgICAgIHZpZXdNb2RlOiAxLFxuICAgICAgICAgICAgY2hlY2tDcm9zc09yaWdpbjogZmFsc2UsXG4gICAgICAgICAgICByZWFkeTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FudmFzQ29udGFpbmVyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmNyb3BwZXIuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIGluaXRpYWxpemVTY2FsaW5nKCkge1xuICAgICAgICBjb25zdCBzY2FsaW5nID0gdGhpcy5hcHBDb25maWdTZXJ2aWNlLmdldDxudW1iZXI+KCdhZGYtdmlld2VyLXJlbmRlci5pbWFnZS12aWV3ZXItc2NhbGluZycsIHVuZGVmaW5lZCkgLyAxMDA7XG4gICAgICAgIGlmIChzY2FsaW5nKSB7XG4gICAgICAgICAgICB0aGlzLnNjYWxlID0gc2NhbGluZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHpvb21JbigpIHtcbiAgICAgICAgdGhpcy5jcm9wcGVyLnpvb20oMC4yKTtcbiAgICAgICAgdGhpcy5zY2FsZSA9ICsodGhpcy5zY2FsZSArIDAuMikudG9GaXhlZCgxKTtcbiAgICB9XG5cbiAgICB6b29tT3V0KCkge1xuICAgICAgICBpZiAodGhpcy5zY2FsZSA+IDAuMikge1xuICAgICAgICAgICAgdGhpcy5jcm9wcGVyLnpvb20oLTAuMik7XG4gICAgICAgICAgICB0aGlzLnNjYWxlID0gKyh0aGlzLnNjYWxlIC0gMC4yKS50b0ZpeGVkKDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcm90YXRlSW1hZ2UoKSB7XG4gICAgICAgIHRoaXMuaXNFZGl0aW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jcm9wcGVyLnJvdGF0ZSgtOTApO1xuICAgIH1cblxuICAgIGNyb3BJbWFnZSgpIHtcbiAgICAgICAgdGhpcy5pc0VkaXRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmNyb3BwZXIuc2V0RHJhZ01vZGUoJ2Nyb3AnKTtcbiAgICAgICAgdGhpcy5jcm9wcGVyLmNyb3AoKTtcbiAgICB9XG5cbiAgICBzYXZlKCkge1xuICAgICAgICB0aGlzLmlzU2F2aW5nLmVtaXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuaXNFZGl0aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY3JvcHBlci5zZXREcmFnTW9kZSgnbW92ZScpO1xuICAgICAgICB0aGlzLmNyb3BwZXIuZ2V0Q3JvcHBlZENhbnZhcygpLnRvQmxvYigoYmxvYikgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdWJtaXQuZW1pdChibG9iKTtcbiAgICAgICAgICAgIHRoaXMuY3JvcHBlci5yZXBsYWNlKHRoaXMuY3JvcHBlci5nZXRDcm9wcGVkQ2FudmFzKCkudG9EYXRhVVJMKCkpO1xuICAgICAgICAgICAgdGhpcy5jcm9wcGVyLmNsZWFyKCk7XG4gICAgICAgICAgICB0aGlzLmlzU2F2aW5nLmVtaXQoZmFsc2UpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXNldCgpIHtcbiAgICAgICAgdGhpcy5pc0VkaXRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jcm9wcGVyLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuY3JvcHBlci5yZXNldCgpO1xuICAgICAgICB0aGlzLmNyb3BwZXIuc2V0RHJhZ01vZGUoJ21vdmUnKTtcbiAgICAgICAgdGhpcy5zY2FsZSA9IDEuMDtcbiAgICAgICAgdGhpcy51cGRhdGVDYW52YXNDb250YWluZXIoKTtcbiAgICB9XG5cbiAgICB1cGRhdGVDYW52YXNDb250YWluZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmltYWdlRWxlbWVudC5uYXRpdmVFbGVtZW50LndpZHRoIDwgdGhpcy5jcm9wcGVyLmdldENvbnRhaW5lckRhdGEoKS53aWR0aCkge1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLmltYWdlRWxlbWVudC5uYXRpdmVFbGVtZW50LndpZHRoO1xuICAgICAgICAgICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5pbWFnZUVsZW1lbnQubmF0aXZlRWxlbWVudC5oZWlnaHQ7XG4gICAgICAgICAgICBjb25zdCB0b3AgPSAodGhpcy5jcm9wcGVyLmdldENvbnRhaW5lckRhdGEoKS5oZWlnaHQgLSB0aGlzLmltYWdlRWxlbWVudC5uYXRpdmVFbGVtZW50LmhlaWdodCkgLyAyO1xuICAgICAgICAgICAgY29uc3QgbGVmdCA9ICh0aGlzLmNyb3BwZXIuZ2V0Q29udGFpbmVyRGF0YSgpLndpZHRoIC0gdGhpcy5pbWFnZUVsZW1lbnQubmF0aXZlRWxlbWVudC53aWR0aCkgLyAyO1xuXG4gICAgICAgICAgICB0aGlzLmNyb3BwZXIuc2V0Q2FudmFzRGF0YSh7XG4gICAgICAgICAgICAgICAgd2lkdGgsXG4gICAgICAgICAgICAgICAgaGVpZ2h0LFxuICAgICAgICAgICAgICAgIHRvcCxcbiAgICAgICAgICAgICAgICBsZWZ0XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSW1hZ2VFcnJvcigpIHtcbiAgICAgICAgdGhpcy5lcnJvci5lbWl0KCk7XG4gICAgfVxufVxuIiwiPGRpdiBpZD1cImFkZi1pbWFnZS1jb250YWluZXJcIlxuICAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gICAgIGNsYXNzPVwiYWRmLWltYWdlLWNvbnRhaW5lclwiXG4gICAgIHRhYmluZGV4PVwiMFwiXG4gICAgIHJvbGU9XCJpbWdcIlxuICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImZpbGVOYW1lXCJcbiAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLWltYWdlLWNvbnRhaW5lclwiPlxuICAgIDxpbWcgI2ltYWdlIGlkPVwidmlld2VyLWltYWdlXCJcbiAgICAgICAgIFtzcmNdPVwidXJsRmlsZVwiXG4gICAgICAgICBbYWx0XT1cImZpbGVOYW1lXCJcbiAgICAgICAgIChlcnJvcik9XCJvbkltYWdlRXJyb3IoKVwiIC8+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImFkZi1pbWFnZS12aWV3ZXJfX3Rvb2xiYXJcIiAqbmdJZj1cInNob3dUb29sYmFyXCI+XG4gICAgPGFkZi10b29sYmFyIGNsYXNzPVwiYWRmLW1haW4tdG9vbGJhclwiPlxuICAgICAgICA8YnV0dG9uIGlkPVwidmlld2VyLXpvb20tb3V0LWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnQURGX1ZJRVdFUi5BUklBLlpPT01fT1VUJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwie3sgJ0FERl9WSUVXRVIuQVJJQS5aT09NX09VVCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ6b29tT3V0KClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj56b29tX291dDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtaW1hZ2Utdmlld2VyX190b29sYmFyLXBhZ2Utc2NhbGVcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJhZGYtcGFnZS1zY2FsZVwiPlxuICAgICAgICAgICAge3sgY3VycmVudFNjYWxlVGV4dCB9fVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8YnV0dG9uIGlkPVwidmlld2VyLXpvb20taW4tYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdBREZfVklFV0VSLkFSSUEuWk9PTV9JTicgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIGF0dHIuYXJpYS1sYWJlbD1cInt7ICdBREZfVklFV0VSLkFSSUEuWk9PTV9JTicgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ6b29tSW4oKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPnpvb21faW48L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIXJlYWRPbmx5ICYmIGFsbG93ZWRFZGl0QWN0aW9ucy5yb3RhdGVcIiBpZD1cInZpZXdlci1yb3RhdGUtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdBREZfVklFV0VSLkFSSUEuUk9UQVRFJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwie3sgJ0FERl9WSUVXRVIuQVJJQS5ST1RBVEUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicm90YXRlSW1hZ2UoKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPnJvdGF0ZV9sZWZ0PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCIhcmVhZE9ubHkgJiYgYWxsb3dlZEVkaXRBY3Rpb25zLmNyb3BcIiBpZD1cInZpZXdlci1jcm9wLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnQURGX1ZJRVdFUi5BUklBLkNST1AnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICBhdHRyLmFyaWEtbGFiZWw9XCJ7eyAnQURGX1ZJRVdFUi5BUklBLkNST1AnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY3JvcEltYWdlKClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5jcm9wPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvbiBpZD1cInZpZXdlci1yZXNldC1idXR0b25cIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0FERl9WSUVXRVIuQVJJQS5SRVNFVCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIGF0dHIuYXJpYS1sYWJlbD1cInt7ICdBREZfVklFV0VSLkFSSUEuUkVTRVQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVzZXQoKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPnpvb21fb3V0X21hcDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgPC9hZGYtdG9vbGJhcj5cblxuICAgIDxhZGYtdG9vbGJhciBjbGFzcz1cImFkZi1zZWNvbmRhcnktdG9vbGJhclwiICpuZ0lmPVwiaXNFZGl0aW5nICYmICFyZWFkT25seVwiPlxuICAgICAgICA8YnV0dG9uIGlkPVwidmlld2VyLWNhbmNlbC1idXR0b25cIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0FERl9WSUVXRVIuQVJJQS5DQU5DRUwnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICBhdHRyLmFyaWEtbGFiZWw9XCJ7eyAnQURGX1ZJRVdFUi5BUklBLkNBTkNFTCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIChjbGljayk9XCJyZXNldCgpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8YnV0dG9uIGlkPVwidmlld2VyLXNhdmUtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdBREZfVklFV0VSLkFSSUEuU0FWRScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIGF0dHIuYXJpYS1sYWJlbD1cInt7ICdBREZfVklFV0VSLkFSSUEuU0FWRScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzYXZlKClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5jaGVjazwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgPC9hZGYtdG9vbGJhcj5cbjwvZGl2PlxuIl19
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3ZpZXdlci9jb21wb25lbnRzL2ltZy12aWV3ZXIvaW1nLXZpZXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3ZpZXdlci9jb21wb25lbnRzL2ltZy12aWV3ZXIvaW1nLXZpZXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUVILFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxPQUFPLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7OztBQVdwRCxNQUFNLE9BQU8sa0JBQWtCO0lBd0MzQixTQUFTLENBQUMsS0FBb0I7UUFDMUIsUUFBUSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDaEIsS0FBSyxXQUFXO2dCQUNaLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztn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QUM7UUFDUCxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVk7UUFDUixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7OEdBdE1RLGtCQUFrQjtrR0FBbEIsa0JBQWtCLCttQkNqRC9CLHlwR0FnRkEsa3NDRGxDYyxnQkFBZ0IsbUZBQUUsZUFBZSwyRkFBRSxhQUFhLG1MQUFFLGVBQWUsNElBQUUsSUFBSTs7MkZBR3hFLGtCQUFrQjtrQkFUOUIsU0FBUzsrQkFDSSxnQkFBZ0IsY0FDZCxJQUFJLFFBR1YsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsV0FDMUIsQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsaUJBQ25FLGlCQUFpQixDQUFDLElBQUk7OEdBSXJDLFdBQVc7c0JBRFYsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sa0JBQWtCO3NCQURqQixLQUFLO2dCQU9OLE9BQU87c0JBRE4sS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUtOLEtBQUs7c0JBREosTUFBTTtnQkFLUCxNQUFNO3NCQURMLE1BQU07Z0JBSVAsUUFBUTtzQkFEUCxNQUFNO2dCQUlQLFdBQVc7c0JBRFYsTUFBTTtnQkFJUCxZQUFZO3NCQURYLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFJckMsU0FBUztzQkFEUixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWlDNUMsdUJBQXVCO3NCQUR0QixZQUFZO3VCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCBDcm9wcGVyIGZyb20gJ2Nyb3BwZXJqcyc7XG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLWNvbmZpZyc7XG5pbXBvcnQgeyBVcmxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uJztcbmltcG9ydCB7IFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi90b29sYmFyJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtaW1nLXZpZXdlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW1nLXZpZXdlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW1nLXZpZXdlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGhvc3Q6IHsgY2xhc3M6ICdhZGYtaW1hZ2Utdmlld2VyJyB9LFxuICAgIGltcG9ydHM6IFtUb29sYmFyQ29tcG9uZW50LCBUcmFuc2xhdGVNb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTmdJZl0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBJbWdWaWV3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICBzaG93VG9vbGJhciA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHJlYWRPbmx5ID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dlZEVkaXRBY3Rpb25zOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHtcbiAgICAgICAgcm90YXRlOiB0cnVlLFxuICAgICAgICBjcm9wOiB0cnVlXG4gICAgfTtcblxuICAgIEBJbnB1dCgpXG4gICAgdXJsRmlsZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBibG9iRmlsZTogQmxvYjtcblxuICAgIEBJbnB1dCgpXG4gICAgZmlsZU5hbWU6IHN0cmluZztcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICAgIEBPdXRwdXQoKVxuICAgIGVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgICBAT3V0cHV0KClcbiAgICBzdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIGlzU2F2aW5nID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgaW1hZ2VMb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdpbWFnZScsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIGltYWdlRWxlbWVudDogRWxlbWVudFJlZjtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxuICAgIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3JvcHBlci5tb3ZlKC0zLCAwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jcm9wcGVyLm1vdmUoMCwgLTMpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNyb3BwZXIubW92ZSgzLCAwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNyb3BwZXIubW92ZSgwLCAzKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2knOlxuICAgICAgICAgICAgICAgIHRoaXMuem9vbUluKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdvJzpcbiAgICAgICAgICAgICAgICB0aGlzLnpvb21PdXQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3InOlxuICAgICAgICAgICAgICAgIHRoaXMucm90YXRlSW1hZ2UoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpmdWxsc2NyZWVuY2hhbmdlJylcbiAgICBmdWxsU2NyZWVuQ2hhbmdlSGFuZGxlcigpIHtcbiAgICAgICAgaWYgKGRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzY2FsZTogbnVtYmVyID0gMS4wO1xuICAgIGNyb3BwZXI6IENyb3BwZXI7XG4gICAgaXNFZGl0aW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBnZXQgY3VycmVudFNjYWxlVGV4dCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gTWF0aC5yb3VuZCh0aGlzLnNjYWxlICogMTAwKSArICclJztcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UsIHByaXZhdGUgdXJsU2VydmljZTogVXJsU2VydmljZSkge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVTY2FsaW5nKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBjb25zdCBibG9iRmlsZSA9IGNoYW5nZXNbJ2Jsb2JGaWxlJ107XG4gICAgICAgIGlmIChibG9iRmlsZT8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnVybEZpbGUgPSB0aGlzLnVybFNlcnZpY2UuY3JlYXRlVHJ1c3RlZFVybCh0aGlzLmJsb2JGaWxlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY2hhbmdlc1sndXJsRmlsZSddLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICBpZiAoY2hhbmdlc1sndXJsRmlsZSddLnByZXZpb3VzVmFsdWUgIT09IGNoYW5nZXNbJ3VybEZpbGUnXS5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNyb3BwZXIucmVwbGFjZShjaGFuZ2VzWyd1cmxGaWxlJ10uY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy51cmxGaWxlICYmICF0aGlzLmJsb2JGaWxlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0dHJpYnV0ZSB1cmxGaWxlIG9yIGJsb2JGaWxlIGlzIHJlcXVpcmVkJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuY3JvcHBlciA9IG5ldyBDcm9wcGVyKHRoaXMuaW1hZ2VFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgICAgICAgIGF1dG9Dcm9wOiBmYWxzZSxcbiAgICAgICAgICAgIGNoZWNrT3JpZW50YXRpb246IGZhbHNlLFxuICAgICAgICAgICAgZHJhZ01vZGU6ICdtb3ZlJyxcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGZhbHNlLFxuICAgICAgICAgICAgc2NhbGFibGU6IHRydWUsXG4gICAgICAgICAgICB6b29tT25XaGVlbDogdHJ1ZSxcbiAgICAgICAgICAgIHRvZ2dsZURyYWdNb2RlT25EYmxjbGljazogZmFsc2UsXG4gICAgICAgICAgICB2aWV3TW9kZTogMSxcbiAgICAgICAgICAgIGNoZWNrQ3Jvc3NPcmlnaW46IGZhbHNlLFxuICAgICAgICAgICAgcmVhZHk6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNhbnZhc0NvbnRhaW5lcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5jcm9wcGVyLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplU2NhbGluZygpIHtcbiAgICAgICAgY29uc3Qgc2NhbGluZyA9IHRoaXMuYXBwQ29uZmlnU2VydmljZS5nZXQ8bnVtYmVyPignYWRmLXZpZXdlci1yZW5kZXIuaW1hZ2Utdmlld2VyLXNjYWxpbmcnLCB1bmRlZmluZWQpIC8gMTAwO1xuICAgICAgICBpZiAoc2NhbGluZykge1xuICAgICAgICAgICAgdGhpcy5zY2FsZSA9IHNjYWxpbmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB6b29tSW4oKSB7XG4gICAgICAgIHRoaXMuY3JvcHBlci56b29tKDAuMik7XG4gICAgICAgIHRoaXMuc2NhbGUgPSArKHRoaXMuc2NhbGUgKyAwLjIpLnRvRml4ZWQoMSk7XG4gICAgfVxuXG4gICAgem9vbU91dCgpIHtcbiAgICAgICAgaWYgKHRoaXMuc2NhbGUgPiAwLjIpIHtcbiAgICAgICAgICAgIHRoaXMuY3JvcHBlci56b29tKC0wLjIpO1xuICAgICAgICAgICAgdGhpcy5zY2FsZSA9ICsodGhpcy5zY2FsZSAtIDAuMikudG9GaXhlZCgxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJvdGF0ZUltYWdlKCkge1xuICAgICAgICB0aGlzLmlzRWRpdGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuY3JvcHBlci5yb3RhdGUoLTkwKTtcbiAgICB9XG5cbiAgICBjcm9wSW1hZ2UoKSB7XG4gICAgICAgIHRoaXMuaXNFZGl0aW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jcm9wcGVyLnNldERyYWdNb2RlKCdjcm9wJyk7XG4gICAgICAgIHRoaXMuY3JvcHBlci5jcm9wKCk7XG4gICAgfVxuXG4gICAgc2F2ZSgpIHtcbiAgICAgICAgdGhpcy5pc1NhdmluZy5lbWl0KHRydWUpO1xuICAgICAgICB0aGlzLmlzRWRpdGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNyb3BwZXIuc2V0RHJhZ01vZGUoJ21vdmUnKTtcbiAgICAgICAgdGhpcy5jcm9wcGVyLmdldENyb3BwZWRDYW52YXMoKS50b0Jsb2IoKGJsb2IpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3VibWl0LmVtaXQoYmxvYik7XG4gICAgICAgICAgICB0aGlzLmNyb3BwZXIucmVwbGFjZSh0aGlzLmNyb3BwZXIuZ2V0Q3JvcHBlZENhbnZhcygpLnRvRGF0YVVSTCgpKTtcbiAgICAgICAgICAgIHRoaXMuY3JvcHBlci5jbGVhcigpO1xuICAgICAgICAgICAgdGhpcy5pc1NhdmluZy5lbWl0KGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVzZXQoKSB7XG4gICAgICAgIHRoaXMuaXNFZGl0aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY3JvcHBlci5jbGVhcigpO1xuICAgICAgICB0aGlzLmNyb3BwZXIucmVzZXQoKTtcbiAgICAgICAgdGhpcy5jcm9wcGVyLnNldERyYWdNb2RlKCdtb3ZlJyk7XG4gICAgICAgIHRoaXMuc2NhbGUgPSAxLjA7XG4gICAgICAgIHRoaXMudXBkYXRlQ2FudmFzQ29udGFpbmVyKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlQ2FudmFzQ29udGFpbmVyKCkge1xuICAgICAgICBpZiAodGhpcy5pbWFnZUVsZW1lbnQubmF0aXZlRWxlbWVudC53aWR0aCA8IHRoaXMuY3JvcHBlci5nZXRDb250YWluZXJEYXRhKCkud2lkdGgpIHtcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gdGhpcy5pbWFnZUVsZW1lbnQubmF0aXZlRWxlbWVudC53aWR0aDtcbiAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuaW1hZ2VFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuaGVpZ2h0O1xuICAgICAgICAgICAgY29uc3QgdG9wID0gKHRoaXMuY3JvcHBlci5nZXRDb250YWluZXJEYXRhKCkuaGVpZ2h0IC0gdGhpcy5pbWFnZUVsZW1lbnQubmF0aXZlRWxlbWVudC5oZWlnaHQpIC8gMjtcbiAgICAgICAgICAgIGNvbnN0IGxlZnQgPSAodGhpcy5jcm9wcGVyLmdldENvbnRhaW5lckRhdGEoKS53aWR0aCAtIHRoaXMuaW1hZ2VFbGVtZW50Lm5hdGl2ZUVsZW1lbnQud2lkdGgpIC8gMjtcblxuICAgICAgICAgICAgdGhpcy5jcm9wcGVyLnNldENhbnZhc0RhdGEoe1xuICAgICAgICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgICAgICB0b3AsXG4gICAgICAgICAgICAgICAgbGVmdFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkltYWdlRXJyb3IoKSB7XG4gICAgICAgIHRoaXMuZXJyb3IuZW1pdCgpO1xuICAgIH1cbn1cbiIsIjxkaXYgaWQ9XCJhZGYtaW1hZ2UtY29udGFpbmVyXCJcbiAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgICBjbGFzcz1cImFkZi1pbWFnZS1jb250YWluZXJcIlxuICAgICB0YWJpbmRleD1cIjBcIlxuICAgICByb2xlPVwiaW1nXCJcbiAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJmaWxlTmFtZVwiXG4gICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1pbWFnZS1jb250YWluZXJcIj5cbiAgICA8aW1nICNpbWFnZSBpZD1cInZpZXdlci1pbWFnZVwiXG4gICAgICAgICBbc3JjXT1cInVybEZpbGVcIlxuICAgICAgICAgW2FsdF09XCJmaWxlTmFtZVwiXG4gICAgICAgICAobG9hZCk9XCJpbWFnZUxvYWRlZC5lbWl0KClcIlxuICAgICAgICAgKGVycm9yKT1cIm9uSW1hZ2VFcnJvcigpXCIgLz5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiYWRmLWltYWdlLXZpZXdlcl9fdG9vbGJhclwiICpuZ0lmPVwic2hvd1Rvb2xiYXJcIj5cbiAgICA8YWRmLXRvb2xiYXIgY2xhc3M9XCJhZGYtbWFpbi10b29sYmFyXCI+XG4gICAgICAgIDxidXR0b24gaWQ9XCJ2aWV3ZXItem9vbS1vdXQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdBREZfVklFV0VSLkFSSUEuWk9PTV9PVVQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICBhdHRyLmFyaWEtbGFiZWw9XCJ7eyAnQURGX1ZJRVdFUi5BUklBLlpPT01fT1VUJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInpvb21PdXQoKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPnpvb21fb3V0PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1pbWFnZS12aWV3ZXJfX3Rvb2xiYXItcGFnZS1zY2FsZVwiIGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1wYWdlLXNjYWxlXCI+XG4gICAgICAgICAgICB7eyBjdXJyZW50U2NhbGVUZXh0IH19XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxidXR0b24gaWQ9XCJ2aWV3ZXItem9vbS1pbi1idXR0b25cIlxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0FERl9WSUVXRVIuQVJJQS5aT09NX0lOJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwie3sgJ0FERl9WSUVXRVIuQVJJQS5aT09NX0lOJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInpvb21JbigpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+em9vbV9pbjwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxidXR0b24gKm5nSWY9XCIhcmVhZE9ubHkgJiYgYWxsb3dlZEVkaXRBY3Rpb25zLnJvdGF0ZVwiIGlkPVwidmlld2VyLXJvdGF0ZS1idXR0b25cIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0FERl9WSUVXRVIuQVJJQS5ST1RBVEUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICBhdHRyLmFyaWEtbGFiZWw9XCJ7eyAnQURGX1ZJRVdFUi5BUklBLlJPVEFURScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIChjbGljayk9XCJyb3RhdGVJbWFnZSgpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+cm90YXRlX2xlZnQ8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFyZWFkT25seSAmJiBhbGxvd2VkRWRpdEFjdGlvbnMuY3JvcFwiIGlkPVwidmlld2VyLWNyb3AtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdBREZfVklFV0VSLkFSSUEuQ1JPUCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIGF0dHIuYXJpYS1sYWJlbD1cInt7ICdBREZfVklFV0VSLkFSSUEuQ1JPUCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjcm9wSW1hZ2UoKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmNyb3A8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8YnV0dG9uIGlkPVwidmlld2VyLXJlc2V0LWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnQURGX1ZJRVdFUi5BUklBLlJFU0VUJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwie3sgJ0FERl9WSUVXRVIuQVJJQS5SRVNFVCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIChjbGljayk9XCJyZXNldCgpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+em9vbV9vdXRfbWFwPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICA8L2FkZi10b29sYmFyPlxuXG4gICAgPGFkZi10b29sYmFyIGNsYXNzPVwiYWRmLXNlY29uZGFyeS10b29sYmFyXCIgKm5nSWY9XCJpc0VkaXRpbmcgJiYgIXJlYWRPbmx5XCI+XG4gICAgICAgIDxidXR0b24gaWQ9XCJ2aWV3ZXItY2FuY2VsLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnQURGX1ZJRVdFUi5BUklBLkNBTkNFTCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIGF0dHIuYXJpYS1sYWJlbD1cInt7ICdBREZfVklFV0VSLkFSSUEuQ0FOQ0VMJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlc2V0KClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxidXR0b24gaWQ9XCJ2aWV3ZXItc2F2ZS1idXR0b25cIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0FERl9WSUVXRVIuQVJJQS5TQVZFJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwie3sgJ0FERl9WSUVXRVIuQVJJQS5TQVZFJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNhdmUoKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmNoZWNrPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICA8L2FkZi10b29sYmFyPlxuPC9kaXY+XG4iXX0=
@@ -25,6 +25,7 @@ export class MediaPlayerComponent {
25
25
  /** media subtitles for the media player*/
26
26
  this.tracks = [];
27
27
  this.error = new EventEmitter();
28
+ this.canPlay = new EventEmitter();
28
29
  }
29
30
  ngOnChanges(changes) {
30
31
  const blobFile = changes['blobFile'];
@@ -39,12 +40,12 @@ export class MediaPlayerComponent {
39
40
  onMediaPlayerError(event) {
40
41
  this.error.emit(event);
41
42
  }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MediaPlayerComponent, deps: [{ token: i1.UrlService }], target: i0.ɵɵFactoryTarget.Component }); }
43
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MediaPlayerComponent, isStandalone: true, selector: "adf-media-player", inputs: { urlFile: "urlFile", blobFile: "blobFile", mimeType: "mimeType", fileName: "fileName", tracks: "tracks" }, outputs: { error: "error" }, host: { classAttribute: "adf-media-player" }, usesOnChanges: true, ngImport: i0, template: "<video controls class=\"adf-video-player\"\n [ngClass]=\"{ 'adf-audio-file': mimeType && mimeType.startsWith('audio') }\">\n <source [src]=\"urlFile\"\n [type]=\"mimeType\"\n (error)=\"onMediaPlayerError($event)\" />\n <track *ngFor=\"let track of tracks\"\n [kind]=\"track.kind\"\n [label]=\"track.label\"\n [srclang]=\"track.srclang\"\n [src]=\"track.src\" />\n</video>\n", styles: [".adf-media-player{display:flex}.adf-media-player video{display:flex;flex:1;max-height:90vh;max-width:100%}.adf-media-player video.adf-video-player.adf-audio-file::-webkit-media-text-track-container{transform:translateY(-50%)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], encapsulation: i0.ViewEncapsulation.None }); }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: MediaPlayerComponent, deps: [{ token: i1.UrlService }], target: i0.ɵɵFactoryTarget.Component }); }
44
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: MediaPlayerComponent, isStandalone: true, selector: "adf-media-player", inputs: { urlFile: "urlFile", blobFile: "blobFile", mimeType: "mimeType", fileName: "fileName", tracks: "tracks" }, outputs: { error: "error", canPlay: "canPlay" }, host: { classAttribute: "adf-media-player" }, usesOnChanges: true, ngImport: i0, template: "<video controls class=\"adf-video-player\" (canplay)=\"canPlay.emit()\"\n [ngClass]=\"{ 'adf-audio-file': mimeType && mimeType.startsWith('audio') }\">\n <source [src]=\"urlFile\"\n [type]=\"mimeType\"\n (error)=\"onMediaPlayerError($event)\" />\n <track *ngFor=\"let track of tracks\"\n [kind]=\"track.kind\"\n [label]=\"track.label\"\n [srclang]=\"track.srclang\"\n [src]=\"track.src\" />\n</video>\n", styles: [".adf-media-player{display:flex}.adf-media-player video{display:flex;flex:1;max-height:90vh;max-width:100%}.adf-media-player video.adf-video-player.adf-audio-file::-webkit-media-text-track-container{transform:translateY(-50%)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], encapsulation: i0.ViewEncapsulation.None }); }
44
45
  }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MediaPlayerComponent, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: MediaPlayerComponent, decorators: [{
46
47
  type: Component,
47
- args: [{ selector: 'adf-media-player', standalone: true, host: { class: 'adf-media-player' }, imports: [NgClass, NgForOf], encapsulation: ViewEncapsulation.None, template: "<video controls class=\"adf-video-player\"\n [ngClass]=\"{ 'adf-audio-file': mimeType && mimeType.startsWith('audio') }\">\n <source [src]=\"urlFile\"\n [type]=\"mimeType\"\n (error)=\"onMediaPlayerError($event)\" />\n <track *ngFor=\"let track of tracks\"\n [kind]=\"track.kind\"\n [label]=\"track.label\"\n [srclang]=\"track.srclang\"\n [src]=\"track.src\" />\n</video>\n", styles: [".adf-media-player{display:flex}.adf-media-player video{display:flex;flex:1;max-height:90vh;max-width:100%}.adf-media-player video.adf-video-player.adf-audio-file::-webkit-media-text-track-container{transform:translateY(-50%)}\n"] }]
48
+ args: [{ selector: 'adf-media-player', standalone: true, host: { class: 'adf-media-player' }, imports: [NgClass, NgForOf], encapsulation: ViewEncapsulation.None, template: "<video controls class=\"adf-video-player\" (canplay)=\"canPlay.emit()\"\n [ngClass]=\"{ 'adf-audio-file': mimeType && mimeType.startsWith('audio') }\">\n <source [src]=\"urlFile\"\n [type]=\"mimeType\"\n (error)=\"onMediaPlayerError($event)\" />\n <track *ngFor=\"let track of tracks\"\n [kind]=\"track.kind\"\n [label]=\"track.label\"\n [srclang]=\"track.srclang\"\n [src]=\"track.src\" />\n</video>\n", styles: [".adf-media-player{display:flex}.adf-media-player video{display:flex;flex:1;max-height:90vh;max-width:100%}.adf-media-player video.adf-video-player.adf-audio-file::-webkit-media-text-track-container{transform:translateY(-50%)}\n"] }]
48
49
  }], ctorParameters: () => [{ type: i1.UrlService }], propDecorators: { urlFile: [{
49
50
  type: Input
50
51
  }], blobFile: [{
@@ -57,5 +58,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
57
58
  type: Input
58
59
  }], error: [{
59
60
  type: Output
61
+ }], canPlay: [{
62
+ type: Output
60
63
  }] } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtcGxheWVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvdmlld2VyL2NvbXBvbmVudHMvbWVkaWEtcGxheWVyL21lZGlhLXBsYXllci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3ZpZXdlci9jb21wb25lbnRzL21lZGlhLXBsYXllci9tZWRpYS1wbGF5ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFpQixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQVk3QyxNQUFNLE9BQU8sb0JBQW9CO0lBb0I3QixZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBUDFDLDBDQUEwQztRQUUxQyxXQUFNLEdBQVksRUFBRSxDQUFDO1FBR3JCLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBRWEsQ0FBQztJQUU5QyxXQUFXLENBQUMsT0FBc0I7UUFDOUIsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXJDLElBQUksUUFBUSxFQUFFLFlBQVksRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDL0QsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFDakUsQ0FBQztJQUNMLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFVO1FBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7K0dBckNRLG9CQUFvQjttR0FBcEIsb0JBQW9CLGdTQy9CakMsaWNBV0EsNlJEaUJjLE9BQU8sb0ZBQUUsT0FBTzs7NEZBR2pCLG9CQUFvQjtrQkFUaEMsU0FBUzsrQkFDSSxrQkFBa0IsY0FDaEIsSUFBSSxRQUdWLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLFdBQzFCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxpQkFDWixpQkFBaUIsQ0FBQyxJQUFJOytFQUlyQyxPQUFPO3NCQUROLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sTUFBTTtzQkFETCxLQUFLO2dCQUlOLEtBQUs7c0JBREosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgTmdDbGFzcywgTmdGb3JPZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXJsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFjayB9IGZyb20gJy4uLy4uL21vZGVscy92aWV3ZXIubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1tZWRpYS1wbGF5ZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21lZGlhLXBsYXllci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbWVkaWEtcGxheWVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaG9zdDogeyBjbGFzczogJ2FkZi1tZWRpYS1wbGF5ZXInIH0sXG4gICAgaW1wb3J0czogW05nQ2xhc3MsIE5nRm9yT2ZdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgTWVkaWFQbGF5ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpXG4gICAgdXJsRmlsZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBibG9iRmlsZTogQmxvYjtcblxuICAgIEBJbnB1dCgpXG4gICAgbWltZVR5cGU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgZmlsZU5hbWU6IHN0cmluZztcblxuICAgIC8qKiBtZWRpYSBzdWJ0aXRsZXMgZm9yIHRoZSBtZWRpYSBwbGF5ZXIqL1xuICAgIEBJbnB1dCgpXG4gICAgdHJhY2tzOiBUcmFja1tdID0gW107XG5cbiAgICBAT3V0cHV0KClcbiAgICBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB1cmxTZXJ2aWNlOiBVcmxTZXJ2aWNlKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBjb25zdCBibG9iRmlsZSA9IGNoYW5nZXNbJ2Jsb2JGaWxlJ107XG5cbiAgICAgICAgaWYgKGJsb2JGaWxlPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudXJsRmlsZSA9IHRoaXMudXJsU2VydmljZS5jcmVhdGVUcnVzdGVkVXJsKHRoaXMuYmxvYkZpbGUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLnVybEZpbGUgJiYgIXRoaXMuYmxvYkZpbGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQXR0cmlidXRlIHVybEZpbGUgb3IgYmxvYkZpbGUgaXMgcmVxdWlyZWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTWVkaWFQbGF5ZXJFcnJvcihldmVudDogYW55KSB7XG4gICAgICAgIHRoaXMuZXJyb3IuZW1pdChldmVudCk7XG4gICAgfVxufVxuIiwiPHZpZGVvIGNvbnRyb2xzIGNsYXNzPVwiYWRmLXZpZGVvLXBsYXllclwiXG4gICAgICAgW25nQ2xhc3NdPVwieyAnYWRmLWF1ZGlvLWZpbGUnOiBtaW1lVHlwZSAmJiBtaW1lVHlwZS5zdGFydHNXaXRoKCdhdWRpbycpIH1cIj5cbiAgICA8c291cmNlIFtzcmNdPVwidXJsRmlsZVwiXG4gICAgICAgICAgICBbdHlwZV09XCJtaW1lVHlwZVwiXG4gICAgICAgICAgICAoZXJyb3IpPVwib25NZWRpYVBsYXllckVycm9yKCRldmVudClcIiAvPlxuICAgIDx0cmFjayAqbmdGb3I9XCJsZXQgdHJhY2sgb2YgdHJhY2tzXCJcbiAgICAgICAgICAgW2tpbmRdPVwidHJhY2sua2luZFwiXG4gICAgICAgICAgIFtsYWJlbF09XCJ0cmFjay5sYWJlbFwiXG4gICAgICAgICAgIFtzcmNsYW5nXT1cInRyYWNrLnNyY2xhbmdcIlxuICAgICAgICAgICBbc3JjXT1cInRyYWNrLnNyY1wiIC8+XG48L3ZpZGVvPlxuIl19
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtcGxheWVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvdmlld2VyL2NvbXBvbmVudHMvbWVkaWEtcGxheWVyL21lZGlhLXBsYXllci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3ZpZXdlci9jb21wb25lbnRzL21lZGlhLXBsYXllci9tZWRpYS1wbGF5ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFpQixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQVk3QyxNQUFNLE9BQU8sb0JBQW9CO0lBdUI3QixZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBVjFDLDBDQUEwQztRQUUxQyxXQUFNLEdBQVksRUFBRSxDQUFDO1FBR3JCLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBR2hDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBRVUsQ0FBQztJQUU5QyxXQUFXLENBQUMsT0FBc0I7UUFDOUIsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXJDLElBQUksUUFBUSxFQUFFLFlBQVksRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDL0QsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFDakUsQ0FBQztJQUNMLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFVO1FBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7OEdBeENRLG9CQUFvQjtrR0FBcEIsb0JBQW9CLG9UQy9CakMsOGRBV0EsNlJEaUJjLE9BQU8sb0ZBQUUsT0FBTzs7MkZBR2pCLG9CQUFvQjtrQkFUaEMsU0FBUzsrQkFDSSxrQkFBa0IsY0FDaEIsSUFBSSxRQUdWLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLFdBQzFCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxpQkFDWixpQkFBaUIsQ0FBQyxJQUFJOytFQUlyQyxPQUFPO3NCQUROLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sTUFBTTtzQkFETCxLQUFLO2dCQUlOLEtBQUs7c0JBREosTUFBTTtnQkFJUCxPQUFPO3NCQUROLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IE5nQ2xhc3MsIE5nRm9yT2YgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVybFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb21tb24nO1xuaW1wb3J0IHsgVHJhY2sgfSBmcm9tICcuLi8uLi9tb2RlbHMvdmlld2VyLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtbWVkaWEtcGxheWVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tZWRpYS1wbGF5ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL21lZGlhLXBsYXllci5jb21wb25lbnQuc2NzcyddLFxuICAgIGhvc3Q6IHsgY2xhc3M6ICdhZGYtbWVkaWEtcGxheWVyJyB9LFxuICAgIGltcG9ydHM6IFtOZ0NsYXNzLCBOZ0Zvck9mXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIE1lZGlhUGxheWVyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKVxuICAgIHVybEZpbGU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgYmxvYkZpbGU6IEJsb2I7XG5cbiAgICBASW5wdXQoKVxuICAgIG1pbWVUeXBlOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIGZpbGVOYW1lOiBzdHJpbmc7XG5cbiAgICAvKiogbWVkaWEgc3VidGl0bGVzIGZvciB0aGUgbWVkaWEgcGxheWVyKi9cbiAgICBASW5wdXQoKVxuICAgIHRyYWNrczogVHJhY2tbXSA9IFtdO1xuXG4gICAgQE91dHB1dCgpXG4gICAgZXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIGNhblBsYXkgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHVybFNlcnZpY2U6IFVybFNlcnZpY2UpIHt9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGNvbnN0IGJsb2JGaWxlID0gY2hhbmdlc1snYmxvYkZpbGUnXTtcblxuICAgICAgICBpZiAoYmxvYkZpbGU/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy51cmxGaWxlID0gdGhpcy51cmxTZXJ2aWNlLmNyZWF0ZVRydXN0ZWRVcmwodGhpcy5ibG9iRmlsZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMudXJsRmlsZSAmJiAhdGhpcy5ibG9iRmlsZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdHRyaWJ1dGUgdXJsRmlsZSBvciBibG9iRmlsZSBpcyByZXF1aXJlZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25NZWRpYVBsYXllckVycm9yKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgdGhpcy5lcnJvci5lbWl0KGV2ZW50KTtcbiAgICB9XG59XG4iLCI8dmlkZW8gY29udHJvbHMgY2xhc3M9XCJhZGYtdmlkZW8tcGxheWVyXCIgKGNhbnBsYXkpPVwiY2FuUGxheS5lbWl0KClcIlxuICAgICAgIFtuZ0NsYXNzXT1cInsgJ2FkZi1hdWRpby1maWxlJzogbWltZVR5cGUgJiYgbWltZVR5cGUuc3RhcnRzV2l0aCgnYXVkaW8nKSB9XCI+XG4gICAgPHNvdXJjZSBbc3JjXT1cInVybEZpbGVcIlxuICAgICAgICAgICAgW3R5cGVdPVwibWltZVR5cGVcIlxuICAgICAgICAgICAgKGVycm9yKT1cIm9uTWVkaWFQbGF5ZXJFcnJvcigkZXZlbnQpXCIgLz5cbiAgICA8dHJhY2sgKm5nRm9yPVwibGV0IHRyYWNrIG9mIHRyYWNrc1wiXG4gICAgICAgICAgIFtraW5kXT1cInRyYWNrLmtpbmRcIlxuICAgICAgICAgICBbbGFiZWxdPVwidHJhY2subGFiZWxcIlxuICAgICAgICAgICBbc3JjbGFuZ109XCJ0cmFjay5zcmNsYW5nXCJcbiAgICAgICAgICAgW3NyY109XCJ0cmFjay5zcmNcIiAvPlxuPC92aWRlbz5cbiJdfQ==