@scion/workbench 17.0.0-beta.7 → 17.0.0-beta.9
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.
- package/README.md +1 -1
- package/esm2022/lib/activation-instant.provider.mjs +3 -3
- package/esm2022/lib/common/asserts.util.mjs +2 -2
- package/esm2022/lib/common/coerce-observable.pipe.mjs +3 -3
- package/esm2022/lib/common/filter-by-predicate.pipe.mjs +3 -3
- package/esm2022/lib/common/filter-by-text.pipe.mjs +3 -3
- package/esm2022/lib/common/grid-element-if-visible.pipe.mjs +6 -6
- package/esm2022/lib/common/instanceof.pipe.mjs +3 -3
- package/esm2022/lib/common/map-coerce.pipe.mjs +3 -3
- package/esm2022/lib/common/null-if-empty.pipe.mjs +3 -3
- package/esm2022/lib/common/objects.util.mjs +34 -0
- package/esm2022/lib/common/typeof.pipe.mjs +3 -3
- package/esm2022/lib/common/uuid.util.mjs +17 -0
- package/esm2022/lib/content-projection/content-as-overlay.component.mjs +3 -3
- package/esm2022/lib/content-projection/content-projection.directive.mjs +3 -3
- package/esm2022/lib/dialog/dialog-footer/dialog-action-filter.pipe.mjs +3 -3
- package/esm2022/lib/dialog/dialog-footer/dialog-footer.component.mjs +3 -3
- package/esm2022/lib/dialog/dialog-footer/workbench-dialog-action.directive.mjs +9 -6
- package/esm2022/lib/dialog/dialog-footer/workbench-dialog-footer.directive.mjs +9 -6
- package/esm2022/lib/dialog/dialog-header/dialog-header.component.mjs +3 -3
- package/esm2022/lib/dialog/dialog-header/workbench-dialog-header.directive.mjs +9 -6
- package/esm2022/lib/dialog/movable.directive.mjs +3 -3
- package/esm2022/lib/dialog/resizable.directive.mjs +3 -3
- package/esm2022/lib/dialog/workbench-dialog.component.mjs +53 -24
- package/esm2022/lib/dialog/workbench-dialog.mjs +1 -1
- package/esm2022/lib/dialog/workbench-dialog.options.mjs +1 -1
- package/esm2022/lib/dialog/workbench-dialog.registry.mjs +4 -4
- package/esm2022/lib/dialog/workbench-dialog.service.mjs +5 -5
- package/esm2022/lib/dialog//311/265workbench-dialog.mjs +7 -7
- package/esm2022/lib/dialog//311/265workbench-dialog.service.mjs +3 -3
- package/esm2022/lib/executor/single-task-executor.mjs +26 -7
- package/esm2022/lib/filter-field/filter-field.component.mjs +6 -6
- package/esm2022/lib/glass-pane/glass-pane.directive.mjs +15 -7
- package/esm2022/lib/layout/grid-element/grid-element.component.mjs +10 -10
- package/esm2022/lib/layout/main-area-layout/main-area-layout.component.mjs +6 -4
- package/esm2022/lib/layout/migration/model/workbench-layout-migration-v1.model.mjs +11 -0
- package/esm2022/lib/layout/migration/model/workbench-layout-migration-v2.model.mjs +11 -0
- package/esm2022/lib/layout/migration/model/workbench-layout-migration-v3.model.mjs +11 -0
- package/esm2022/lib/layout/migration/model/workbench-layout-migration-v4.model.mjs +11 -0
- package/esm2022/lib/layout/migration/workbench-layout-migration-v2.service.mjs +59 -0
- package/esm2022/lib/layout/migration/workbench-layout-migration-v3.service.mjs +117 -0
- package/esm2022/lib/layout/migration/workbench-layout-migration-v4.service.mjs +57 -0
- package/esm2022/lib/layout/workbench-layout.component.mjs +6 -4
- package/esm2022/lib/layout/workbench-layout.factory.mjs +4 -4
- package/esm2022/lib/layout/workbench-layout.mjs +1 -1
- package/esm2022/lib/layout/workbench-layout.model.mjs +5 -6
- package/esm2022/lib/layout/workbench-layout.service.mjs +3 -3
- package/esm2022/lib/layout/workbench-layouts.util.mjs +37 -1
- package/esm2022/lib/layout/workench-layout-serializer.service.mjs +53 -21
- package/esm2022/lib/layout//311/265workbench-layout.factory.mjs +8 -5
- package/esm2022/lib/layout//311/265workbench-layout.mjs +382 -195
- package/esm2022/lib/logging/console-appender.service.mjs +3 -3
- package/esm2022/lib/logging/logger.mjs +3 -3
- package/esm2022/lib/logging/logging-support.mjs +4 -4
- package/esm2022/lib/logging/logging.model.mjs +3 -3
- package/esm2022/lib/logging//311/265logger.mjs +3 -3
- package/esm2022/lib/message-box/message-box-footer/message-box-footer.component.mjs +18 -20
- package/esm2022/lib/message-box/message-box-header/message-box-header.component.mjs +3 -3
- package/esm2022/lib/message-box/workbench-message-box.component.mjs +15 -6
- package/esm2022/lib/message-box/workbench-message-box.options.mjs +1 -1
- package/esm2022/lib/message-box/workbench-message-box.service.mjs +5 -5
- package/esm2022/lib/message-box//311/265workbench-message-box.service.mjs +5 -5
- package/esm2022/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.mjs +26 -13
- package/esm2022/lib/microfrontend-platform/initialization/ng-zone-observable-decorator.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/initialization/workbench-host-manifest-interceptor.service.mjs +25 -13
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-capability-validator.interceptor.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-intent-handler.interceptor.mjs +11 -11
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.mjs +5 -5
- package/esm2022/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.mjs +11 -9
- package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.mjs +112 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.mjs +43 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.mjs +16 -13
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-capability-validator.interceptor.mjs +34 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.interceptor.mjs +88 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-legacy-intent-translator.interceptor.mjs +32 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box.component.mjs +121 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-notification/microfrontend-notification-intent-handler.service.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-platform-config-loader.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-capability-validator.interceptor.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.mjs +9 -6
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.mjs +9 -15
- package/esm2022/lib/microfrontend-platform/microfrontend-splash/microfrontend-splash.component.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.mjs +37 -32
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-validator.interceptor.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.mjs +13 -11
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-routes.mjs +14 -9
- package/esm2022/lib/microfrontend-platform/workbench-microfrontend-support.mjs +54 -23
- package/esm2022/lib/migration/workbench-migration.mjs +11 -0
- package/esm2022/lib/migration/workbench-migrator.mjs +38 -0
- package/esm2022/lib/notification/notification-css-classes.pipe.mjs +3 -3
- package/esm2022/lib/notification/notification-list.component.mjs +3 -3
- package/esm2022/lib/notification/notification.component.mjs +3 -3
- package/esm2022/lib/notification/notification.config.mjs +1 -1
- package/esm2022/lib/notification/notification.mjs +1 -1
- package/esm2022/lib/notification/notification.service.mjs +9 -9
- package/esm2022/lib/notification/text-notification.component.mjs +3 -3
- package/esm2022/lib/page-not-found/format-url.pipe.mjs +26 -0
- package/esm2022/lib/page-not-found/page-not-found.component.mjs +28 -0
- package/esm2022/lib/part/part-action-bar/part-action-bar.component.mjs +3 -3
- package/esm2022/lib/part/part-action-bar/part-action-filter.pipe.mjs +3 -3
- package/esm2022/lib/part/part-action-bar/part-action.directive.mjs +4 -4
- package/esm2022/lib/part/part-bar/part-bar.component.mjs +10 -8
- package/esm2022/lib/part/part-portal.pipe.mjs +3 -3
- package/esm2022/lib/part/part.component.mjs +6 -4
- package/esm2022/lib/part/view-context-menu/accelerator-format.pipe.mjs +3 -3
- package/esm2022/lib/part/view-context-menu/text.component.mjs +3 -3
- package/esm2022/lib/part/view-context-menu/view-menu.component.mjs +3 -3
- package/esm2022/lib/part/view-context-menu/view-menu.directive.mjs +4 -4
- package/esm2022/lib/part/view-context-menu/view-menu.service.mjs +18 -18
- package/esm2022/lib/part/view-list/view-list.component.mjs +3 -3
- package/esm2022/lib/part/view-list-button/view-list-button.component.mjs +3 -3
- package/esm2022/lib/part/view-list-item/view-list-item.component.mjs +9 -9
- package/esm2022/lib/part/view-tab/view-tab.component.mjs +13 -11
- package/esm2022/lib/part/view-tab-content/view-tab-content.component.mjs +5 -5
- package/esm2022/lib/part/view-tab-drag-image/view-tab-drag-image.component.mjs +9 -9
- package/esm2022/lib/part/workbench-part-action.registry.mjs +3 -3
- package/esm2022/lib/part/workbench-part.model.mjs +1 -1
- package/esm2022/lib/part/workbench-part.registry.mjs +3 -3
- package/esm2022/lib/part//311/265workbench-part.model.mjs +3 -3
- package/esm2022/lib/perspective/migration/model/workbench-perspective-migration-v1.model.mjs +11 -0
- package/esm2022/lib/perspective/migration/model/workbench-perspective-migration-v2.model.mjs +11 -0
- package/esm2022/lib/perspective/migration/workbench-perspective-migration-v2.service.mjs +57 -0
- package/esm2022/lib/perspective/workbench-grid-merger.service.mjs +19 -51
- package/esm2022/lib/perspective/workbench-perspective-storage.service.mjs +23 -18
- package/esm2022/lib/perspective/workbench-perspective-view-conflict-resolver.service.mjs +27 -42
- package/esm2022/lib/perspective/workbench-perspective.model.mjs +1 -1
- package/esm2022/lib/perspective/workbench-perspective.registry.mjs +3 -3
- package/esm2022/lib/perspective/workbench-perspective.service.mjs +15 -10
- package/esm2022/lib/perspective/workench-perspective-serializer.service.mjs +62 -0
- package/esm2022/lib/perspective//311/265workbench-perspective.model.mjs +98 -78
- package/esm2022/lib/popup/popup.component.mjs +22 -10
- package/esm2022/lib/popup/popup.config.mjs +3 -1
- package/esm2022/lib/popup/popup.service.mjs +4 -4
- package/esm2022/lib/portal/workbench-portal-outlet.directive.mjs +6 -6
- package/esm2022/lib/public_api.mjs +3 -2
- package/esm2022/lib/registry/workbench-object-registry.mjs +3 -3
- package/esm2022/lib/routing/empty-outlet/empty-outlet.component.mjs +31 -0
- package/esm2022/lib/routing/public_api.mjs +1 -1
- package/esm2022/lib/routing/router.util.mjs +89 -35
- package/esm2022/lib/routing/routing.model.mjs +1 -1
- package/esm2022/lib/routing/url-segment-matcher.mjs +46 -0
- package/esm2022/lib/routing/workbench-auxiliary-routes-registrator.service.mjs +58 -49
- package/esm2022/lib/routing/workbench-dialog-differ.mjs +6 -6
- package/esm2022/lib/routing/workbench-layout-differ.mjs +14 -17
- package/esm2022/lib/routing/workbench-message-box-differ.mjs +51 -0
- package/esm2022/lib/routing/workbench-navigational-states.mjs +4 -28
- package/esm2022/lib/routing/workbench-popup-differ.mjs +6 -6
- package/esm2022/lib/routing/workbench-route-data.mjs +14 -4
- package/esm2022/lib/routing/workbench-router-link.directive.mjs +24 -32
- package/esm2022/lib/routing/workbench-router.service.mjs +13 -378
- package/esm2022/lib/routing/workbench-url-observer.service.mjs +69 -82
- package/esm2022/lib/routing//311/265location.mjs +3 -3
- package/esm2022/lib/routing//311/265workbench-router.service.mjs +314 -0
- package/esm2022/lib/startup/splash/splash.component.mjs +3 -3
- package/esm2022/lib/startup/workbench-launcher.service.mjs +11 -11
- package/esm2022/lib/storage/workbench-storage.mjs +3 -3
- package/esm2022/lib/testing/public_api.mjs +2 -1
- package/esm2022/lib/testing/workbench-testing.module.mjs +13 -39
- package/esm2022/lib/testing/workbench.provider.mjs +60 -0
- package/esm2022/lib/theme/workbench-theme-switcher.service.mjs +3 -3
- package/esm2022/lib/view/public_api.mjs +2 -1
- package/esm2022/lib/view/view-move-handler.service.mjs +42 -62
- package/esm2022/lib/view/view-portal.pipe.mjs +4 -4
- package/esm2022/lib/view/view.component.mjs +20 -40
- package/esm2022/lib/view/workbench-view-route-guards.mjs +47 -0
- package/esm2022/lib/view/workbench-view.model.mjs +6 -4
- package/esm2022/lib/view/workbench-view.registry.mjs +4 -4
- package/esm2022/lib/view//311/265workbench-view.model.mjs +106 -27
- package/esm2022/lib/view-dnd/requires-drop-zone.pipe.mjs +7 -7
- package/esm2022/lib/view-dnd/view-drag.service.mjs +6 -6
- package/esm2022/lib/view-dnd/view-drop-placeholder-renderer.service.mjs +3 -3
- package/esm2022/lib/view-dnd/view-drop-zone.directive.mjs +4 -4
- package/esm2022/lib/view-dnd/view-tab-drag-image-renderer.service.mjs +6 -4
- package/esm2022/lib/workbench-config.mjs +15 -0
- package/esm2022/lib/workbench-id.mjs +3 -3
- package/esm2022/lib/workbench.component.mjs +20 -12
- package/esm2022/lib/workbench.constants.mjs +7 -9
- package/esm2022/lib/workbench.model.mjs +1 -1
- package/esm2022/lib/workbench.module.mjs +15 -86
- package/esm2022/lib/workbench.provider.mjs +117 -0
- package/esm2022/lib/workbench.service.mjs +5 -5
- package/esm2022/lib//311/265workbench.service.mjs +15 -21
- package/fesm2022/scion-workbench.mjs +5490 -4166
- package/fesm2022/scion-workbench.mjs.map +1 -1
- package/lib/common/objects.util.d.ts +17 -0
- package/lib/common/uuid.util.d.ts +8 -0
- package/lib/dialog/workbench-dialog.component.d.ts +16 -7
- package/lib/dialog/workbench-dialog.d.ts +1 -1
- package/lib/dialog/workbench-dialog.options.d.ts +4 -3
- package/lib/dialog/workbench-dialog.registry.d.ts +4 -3
- package/lib/dialog/workbench-dialog.service.d.ts +1 -1
- package/lib/dialog//311/265workbench-dialog.d.ts +2 -2
- package/lib/executor/single-task-executor.d.ts +6 -1
- package/lib/filter-field/filter-field.component.d.ts +1 -1
- package/lib/glass-pane/glass-pane.directive.d.ts +21 -0
- package/lib/layout/grid-element/grid-element.component.d.ts +2 -2
- package/lib/layout/migration/model/workbench-layout-migration-v1.model.d.ts +16 -0
- package/lib/layout/migration/model/workbench-layout-migration-v2.model.d.ts +22 -0
- package/lib/layout/migration/model/workbench-layout-migration-v3.model.d.ts +30 -0
- package/lib/layout/migration/model/workbench-layout-migration-v4.model.d.ts +31 -0
- package/lib/layout/migration/workbench-layout-migration-v2.service.d.ts +13 -0
- package/lib/layout/migration/workbench-layout-migration-v3.service.d.ts +16 -0
- package/lib/layout/migration/workbench-layout-migration-v4.service.d.ts +12 -0
- package/lib/layout/workbench-layout.d.ts +61 -7
- package/lib/layout/workbench-layout.factory.d.ts +1 -1
- package/lib/layout/workbench-layout.model.d.ts +19 -9
- package/lib/layout/workbench-layouts.util.d.ts +18 -0
- package/lib/layout/workench-layout-serializer.service.d.ts +28 -7
- package/lib/layout//311/265workbench-layout.d.ts +172 -98
- package/lib/layout//311/265workbench-layout.factory.d.ts +4 -0
- package/lib/logging/logging-support.d.ts +2 -2
- package/lib/message-box/workbench-message-box.component.d.ts +3 -0
- package/lib/message-box/workbench-message-box.options.d.ts +4 -3
- package/lib/message-box/workbench-message-box.service.d.ts +1 -1
- package/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.d.ts +7 -1
- package/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.d.ts +1 -0
- package/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.d.ts +39 -0
- package/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.d.ts +25 -0
- package/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.d.ts +4 -2
- package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-capability-validator.interceptor.d.ts +10 -0
- package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.interceptor.d.ts +28 -0
- package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-legacy-intent-translator.interceptor.d.ts +11 -0
- package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box.component.d.ts +48 -0
- package/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.d.ts +3 -7
- package/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.d.ts +4 -9
- package/lib/microfrontend-platform/workbench-microfrontend-support.d.ts +3 -3
- package/lib/migration/workbench-migration.d.ts +9 -0
- package/lib/migration/workbench-migrator.d.ts +18 -0
- package/lib/notification/notification.config.d.ts +1 -1
- package/lib/notification/notification.d.ts +1 -3
- package/lib/page-not-found/format-url.pipe.d.ts +11 -0
- package/lib/page-not-found/page-not-found.component.d.ts +8 -0
- package/lib/part/part-action-bar/part-action.directive.d.ts +1 -1
- package/lib/part/part-bar/part-bar.component.d.ts +4 -3
- package/lib/part/view-context-menu/view-menu.directive.d.ts +1 -1
- package/lib/part/view-context-menu/view-menu.service.d.ts +5 -4
- package/lib/part/view-list-item/view-list-item.component.d.ts +5 -4
- package/lib/part/view-tab/view-tab.component.d.ts +6 -5
- package/lib/part/view-tab-drag-image/view-tab-drag-image.component.d.ts +3 -3
- package/lib/part/workbench-part.model.d.ts +5 -4
- package/lib/part//311/265workbench-part.model.d.ts +5 -4
- package/lib/perspective/migration/model/workbench-perspective-migration-v1.model.d.ts +8 -0
- package/lib/perspective/migration/model/workbench-perspective-migration-v2.model.d.ts +10 -0
- package/lib/perspective/migration/workbench-perspective-migration-v2.service.d.ts +13 -0
- package/lib/perspective/workbench-grid-merger.service.d.ts +9 -16
- package/lib/perspective/workbench-perspective-storage.service.d.ts +10 -28
- package/lib/perspective/workbench-perspective-view-conflict-resolver.service.d.ts +8 -25
- package/lib/perspective/workbench-perspective.model.d.ts +123 -14
- package/lib/perspective/workbench-perspective.service.d.ts +10 -3
- package/lib/perspective/workench-perspective-serializer.service.d.ts +26 -0
- package/lib/perspective//311/265workbench-perspective.model.d.ts +16 -14
- package/lib/popup/popup.component.d.ts +1 -0
- package/lib/popup/popup.config.d.ts +4 -3
- package/lib/portal/workbench-portal-outlet.directive.d.ts +2 -2
- package/lib/public_api.d.ts +4 -3
- package/lib/registry/workbench-object-registry.d.ts +2 -2
- package/lib/routing/empty-outlet/empty-outlet.component.d.ts +15 -0
- package/lib/routing/public_api.d.ts +2 -2
- package/lib/routing/router.util.d.ts +45 -19
- package/lib/routing/routing.model.d.ts +107 -8
- package/lib/routing/url-segment-matcher.d.ts +20 -0
- package/lib/routing/workbench-auxiliary-routes-registrator.service.d.ts +25 -15
- package/lib/routing/workbench-layout-differ.d.ts +4 -7
- package/lib/routing/workbench-message-box-differ.d.ts +25 -0
- package/lib/routing/workbench-navigational-states.d.ts +6 -19
- package/lib/routing/workbench-route-data.d.ts +13 -3
- package/lib/routing/workbench-router-link.directive.d.ts +22 -7
- package/lib/routing/workbench-router.service.d.ts +42 -142
- package/lib/routing/workbench-url-observer.service.d.ts +10 -28
- package/lib/routing//311/265workbench-router.service.d.ts +74 -0
- package/lib/startup/workbench-launcher.service.d.ts +4 -4
- package/lib/testing/public_api.d.ts +1 -0
- package/lib/testing/workbench-testing.module.d.ts +7 -6
- package/lib/testing/workbench.provider.d.ts +29 -0
- package/lib/view/public_api.d.ts +2 -1
- package/lib/view/view-move-handler.service.d.ts +2 -4
- package/lib/view/view-portal.pipe.d.ts +2 -1
- package/lib/view/view.component.d.ts +1 -11
- package/lib/view/workbench-view-route-guards.d.ts +36 -0
- package/lib/view/workbench-view.model.d.ts +37 -5
- package/lib/view/workbench-view.registry.d.ts +4 -3
- package/lib/view//311/265workbench-view.model.d.ts +61 -15
- package/lib/view-dnd/view-drag.service.d.ts +9 -4
- package/lib/view-dnd/view-drop-zone.directive.d.ts +1 -1
- package/lib/{workbench-module-config.d.ts → workbench-config.d.ts} +29 -71
- package/lib/workbench.component.d.ts +2 -2
- package/lib/workbench.constants.d.ts +6 -8
- package/lib/workbench.model.d.ts +20 -8
- package/lib/workbench.module.d.ts +12 -7
- package/lib/workbench.provider.d.ts +38 -0
- package/lib/workbench.service.d.ts +32 -8
- package/lib//311/265workbench.service.d.ts +9 -3
- package/package.json +8 -8
- package/esm2022/lib/layout/migration/workbench-layout-migrator.service.mjs +0 -38
- package/esm2022/lib/layout/migration/workbench-layout-v1-migrator.service.mjs +0 -59
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.service.mjs +0 -46
- package/esm2022/lib/view/workbench-view-pre-destroy.guard.mjs +0 -36
- package/esm2022/lib/workbench-module-config.mjs +0 -15
- package/lib/layout/migration/workbench-layout-migrator.service.d.ts +0 -15
- package/lib/layout/migration/workbench-layout-v1-migrator.service.d.ts +0 -12
- package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.service.d.ts +0 -17
- package/lib/view/workbench-view-pre-destroy.guard.d.ts +0 -5
|
@@ -19,10 +19,10 @@ export class PartActionBarComponent {
|
|
|
19
19
|
constructor(part) {
|
|
20
20
|
this.part = part;
|
|
21
21
|
}
|
|
22
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
23
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: PartActionBarComponent, deps: [{ token: i1.WorkbenchPart }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: PartActionBarComponent, isStandalone: true, selector: "wb-part-action-bar", ngImport: i0, template: "<ul class=\"start\" *ngIf=\"part.actions$ | async | wbPartActionFilter:'start' | wbNullIfEmpty as startActions\">\n <li *ngFor=\"let startAction of startActions\" class=\"e2e-part-action\" [ngClass]=\"startAction.cssClass\">\n <ng-container *cdkPortalOutlet=\"startAction.portal\"></ng-container>\n </li>\n</ul>\n\n<ul class=\"end\" *ngIf=\"part.actions$ | async | wbPartActionFilter:'end' | wbNullIfEmpty as endActions\">\n <li *ngFor=\"let endAction of endActions\" class=\"e2e-part-action\" [ngClass]=\"endAction.cssClass\">\n <ng-container *cdkPortalOutlet=\"endAction.portal\"></ng-container>\n </li>\n</ul>\n", styles: [":host{display:flex;gap:.5em}:host>ul{all:unset;list-style:none;flex:auto;display:flex;gap:.5em;align-items:center}:host>ul.start{padding-left:var(--sci-workbench-part-bar-actions-padding-inline);place-content:flex-start}:host>ul.end{padding-right:var(--sci-workbench-part-bar-actions-padding-inline);place-content:flex-end}:host>ul>li{all:unset;flex:none}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "pipe", type: PartActionFilterPipe, name: "wbPartActionFilter" }, { kind: "pipe", type: NullIfEmptyPipe, name: "wbNullIfEmpty" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24
24
|
}
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: PartActionBarComponent, decorators: [{
|
|
26
26
|
type: Component,
|
|
27
27
|
args: [{ selector: 'wb-part-action-bar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
28
28
|
NgIf,
|
|
@@ -16,10 +16,10 @@ export class PartActionFilterPipe {
|
|
|
16
16
|
transform(actions, align) {
|
|
17
17
|
return actions?.filter(action => (action.align ?? 'start') === align) ?? [];
|
|
18
18
|
}
|
|
19
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
20
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: PartActionFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
20
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: PartActionFilterPipe, isStandalone: true, name: "wbPartActionFilter" }); }
|
|
21
21
|
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: PartActionFilterPipe, decorators: [{
|
|
23
23
|
type: Pipe,
|
|
24
24
|
args: [{ name: 'wbPartActionFilter', standalone: true }]
|
|
25
25
|
}] });
|
|
@@ -59,10 +59,10 @@ export class WorkbenchPartActionDirective {
|
|
|
59
59
|
ngOnDestroy() {
|
|
60
60
|
this._action?.dispose();
|
|
61
61
|
}
|
|
62
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
63
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.
|
|
62
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchPartActionDirective, deps: [{ token: i0.TemplateRef }, { token: i1.WorkbenchService }, { token: i2.WorkbenchView, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
63
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.6", type: WorkbenchPartActionDirective, isStandalone: true, selector: "ng-template[wbPartAction]", inputs: { align: "align", canMatch: "canMatch", cssClass: "cssClass" }, ngImport: i0 }); }
|
|
64
64
|
}
|
|
65
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchPartActionDirective, decorators: [{
|
|
66
66
|
type: Directive,
|
|
67
67
|
args: [{ selector: 'ng-template[wbPartAction]', standalone: true }]
|
|
68
68
|
}], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i1.WorkbenchService }, { type: i2.WorkbenchView, decorators: [{
|
|
@@ -74,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
|
|
|
74
74
|
}], cssClass: [{
|
|
75
75
|
type: Input
|
|
76
76
|
}] } });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydC1hY3Rpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvcGFydC9wYXJ0LWFjdGlvbi1iYXIvcGFydC1hY3Rpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUl6RixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFJbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFFSCxNQUFNLE9BQU8sNEJBQTRCO0lBNEJ2QyxZQUFvQixTQUE0QixFQUM1QixpQkFBbUMsRUFDdkIsS0FBb0I7UUFGaEMsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFDNUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUN2QixVQUFLLEdBQUwsS0FBSyxDQUFlO1FBMUJwRDs7V0FFRztRQUVJLFVBQUssR0FBb0IsT0FBTyxDQUFDO0lBdUJ4QyxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDO1lBQ3ZELE1BQU0sRUFBRSxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUssQ0FBQztZQUNqRCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFtQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7WUFDeEcsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxJQUFtQjtRQUMvQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztTQUM1QztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDOzhHQW5EVSw0QkFBNEI7a0dBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFEeEMsU0FBUzttQkFBQyxFQUFDLFFBQVEsRUFBRSwyQkFBMkIsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFDOzswQkErQnJELFFBQVE7eUNBdEJkLEtBQUs7c0JBRFgsS0FBSztnQkFhQyxRQUFRO3NCQURkLEtBQUs7Z0JBT0MsUUFBUTtzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0RpcmVjdGl2ZSwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgVGVtcGxhdGVSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEaXNwb3NhYmxlfSBmcm9tICcuLi8uLi9jb21tb24vZGlzcG9zYWJsZSc7XG5pbXBvcnQge1dvcmtiZW5jaFNlcnZpY2V9IGZyb20gJy4uLy4uL3dvcmtiZW5jaC5zZXJ2aWNlJztcbmltcG9ydCB7V29ya2JlbmNoVmlld30gZnJvbSAnLi4vLi4vdmlldy93b3JrYmVuY2gtdmlldy5tb2RlbCc7XG5pbXBvcnQge1RlbXBsYXRlUG9ydGFsfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7V29ya2JlbmNoUGFydH0gZnJvbSAnLi4vd29ya2JlbmNoLXBhcnQubW9kZWwnO1xuaW1wb3J0IHtDYW5NYXRjaFBhcnRGbn0gZnJvbSAnLi4vLi4vd29ya2JlbmNoLm1vZGVsJztcblxuLyoqXG4gKiBVc2UgdGhpcyBkaXJlY3RpdmUgdG8gY29udHJpYnV0ZSBhbiBhY3Rpb24gdG8gYSBwYXJ0J3MgYWN0aW9uIGJhci5cbiAqXG4gKiBQYXJ0IGFjdGlvbnMgYXJlIGRpc3BsYXllZCB0byB0aGUgcmlnaHQgb2YgdGhlIHZpZXcgdGFiIGJhciBhbmQgZW5hYmxlIGludGVyYWN0aW9uIHdpdGggdGhlIHBhcnQgYW5kIGl0cyBjb250ZW50LlxuICpcbiAqIFRoZSBob3N0IGVsZW1lbnQgb2YgdGhpcyBtb2RlbGluZyBkaXJlY3RpdmUgbXVzdCBiZSBhIDxuZy10ZW1wbGF0ZT4uIFRoZSBhY3Rpb24gc2hhcmVzIHRoZSBsaWZlY3ljbGUgb2YgdGhlIGhvc3QgZWxlbWVudC5cbiAqXG4gKiBgYGBodG1sXG4gKiA8bmctdGVtcGxhdGUgd2JQYXJ0QWN0aW9uPlxuICogICA8YnV0dG9uIHdiUm91dGVyTGluaz1cIi9wYXRoL3RvL3ZpZXdcIiBbd2JSb3V0ZXJMaW5rRXh0cmFzXT1cInt0YXJnZXQ6ICdibGFuayd9XCIgY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPlxuICogICAgIGFkZFxuICogICA8L2J1dHRvbj5cbiAqIDwvbmctdGVtcGxhdGU+
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydC1hY3Rpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvcGFydC9wYXJ0LWFjdGlvbi1iYXIvcGFydC1hY3Rpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUl6RixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFJbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFFSCxNQUFNLE9BQU8sNEJBQTRCO0lBNEJ2QyxZQUFvQixTQUE0QixFQUM1QixpQkFBbUMsRUFDdkIsS0FBb0I7UUFGaEMsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFDNUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUN2QixVQUFLLEdBQUwsS0FBSyxDQUFlO1FBMUJwRDs7V0FFRztRQUVJLFVBQUssR0FBb0IsT0FBTyxDQUFDO0lBdUJ4QyxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDO1lBQ3ZELE1BQU0sRUFBRSxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUssQ0FBQztZQUNqRCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFtQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7WUFDeEcsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxJQUFtQjtRQUMvQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztTQUM1QztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDOzhHQW5EVSw0QkFBNEI7a0dBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFEeEMsU0FBUzttQkFBQyxFQUFDLFFBQVEsRUFBRSwyQkFBMkIsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFDOzswQkErQnJELFFBQVE7eUNBdEJkLEtBQUs7c0JBRFgsS0FBSztnQkFhQyxRQUFRO3NCQURkLEtBQUs7Z0JBT0MsUUFBUTtzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0RpcmVjdGl2ZSwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgVGVtcGxhdGVSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEaXNwb3NhYmxlfSBmcm9tICcuLi8uLi9jb21tb24vZGlzcG9zYWJsZSc7XG5pbXBvcnQge1dvcmtiZW5jaFNlcnZpY2V9IGZyb20gJy4uLy4uL3dvcmtiZW5jaC5zZXJ2aWNlJztcbmltcG9ydCB7V29ya2JlbmNoVmlld30gZnJvbSAnLi4vLi4vdmlldy93b3JrYmVuY2gtdmlldy5tb2RlbCc7XG5pbXBvcnQge1RlbXBsYXRlUG9ydGFsfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7V29ya2JlbmNoUGFydH0gZnJvbSAnLi4vd29ya2JlbmNoLXBhcnQubW9kZWwnO1xuaW1wb3J0IHtDYW5NYXRjaFBhcnRGbn0gZnJvbSAnLi4vLi4vd29ya2JlbmNoLm1vZGVsJztcblxuLyoqXG4gKiBVc2UgdGhpcyBkaXJlY3RpdmUgdG8gY29udHJpYnV0ZSBhbiBhY3Rpb24gdG8gYSBwYXJ0J3MgYWN0aW9uIGJhci5cbiAqXG4gKiBQYXJ0IGFjdGlvbnMgYXJlIGRpc3BsYXllZCB0byB0aGUgcmlnaHQgb2YgdGhlIHZpZXcgdGFiIGJhciBhbmQgZW5hYmxlIGludGVyYWN0aW9uIHdpdGggdGhlIHBhcnQgYW5kIGl0cyBjb250ZW50LlxuICpcbiAqIFRoZSBob3N0IGVsZW1lbnQgb2YgdGhpcyBtb2RlbGluZyBkaXJlY3RpdmUgbXVzdCBiZSBhIDxuZy10ZW1wbGF0ZT4uIFRoZSBhY3Rpb24gc2hhcmVzIHRoZSBsaWZlY3ljbGUgb2YgdGhlIGhvc3QgZWxlbWVudC5cbiAqXG4gKiBgYGBodG1sXG4gKiA8bmctdGVtcGxhdGUgd2JQYXJ0QWN0aW9uPlxuICogICA8YnV0dG9uIHdiUm91dGVyTGluaz1cIi9wYXRoL3RvL3ZpZXdcIiBbd2JSb3V0ZXJMaW5rRXh0cmFzXT1cInt0YXJnZXQ6ICdibGFuayd9XCIgY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPlxuICogICAgIGFkZFxuICogICA8L2J1dHRvbj5cbiAqIDwvbmctdGVtcGxhdGU+XG4gKiBgYGBcbiAqXG4gKiBJZiB0aGUgYWN0aW9uIGlzIG1vZGVsZWQgaW4gYSB2aWV3IHRlbXBsYXRlLCBpdCBpcyBpbmhlcmVudGx5IGFzc29jaWF0ZWQgd2l0aCB0aGF0IHZpZXcsIGkuZS4sIG9ubHkgZGlzcGxheWVkIHdoZW4gYWN0aXZlLlxuICogVG8gbm90IGFzc29jaWF0ZSBhbiBhY3Rpb24gd2l0aCBhIHZpZXcsIG1vZGVsIHRoZSBhY3Rpb24gaW5zaWRlIHRoZSBgd2Itd29ya2JlbmNoYCBIVE1MIGVsZW1lbnQgb3IgcmVnaXN0ZXIgaXQgcHJvZ3JhbW1hdGljYWxseS5cbiAqXG4gKiBTcGVjaWZ5IGEgYGNhbk1hdGNoYCBmdW5jdGlvbiB0byBtYXRjaCBhIHNwZWNpZmljIHBhcnQsIHBhcnRzIGluIGEgc3BlY2lmaWMgYXJlYSwgb3IgcGFydHMgZnJvbSBhIHNwZWNpZmljIHBlcnNwZWN0aXZlLlxuICovXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogJ25nLXRlbXBsYXRlW3diUGFydEFjdGlvbl0nLCBzdGFuZGFsb25lOiB0cnVlfSlcbmV4cG9ydCBjbGFzcyBXb3JrYmVuY2hQYXJ0QWN0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgX2FjdGlvbjogRGlzcG9zYWJsZSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHdoZXJlIHRvIHBsYWNlIHRoaXMgYWN0aW9uIGluIHRoZSBwYXJ0IGJhci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhbGlnbjogJ3N0YXJ0JyB8ICdlbmQnID0gJ3N0YXJ0JztcblxuICAvKipcbiAgICogUHJlZGljYXRlIHRvIG1hdGNoIGEgc3BlY2lmaWMgcGFydCwgcGFydHMgaW4gYSBzcGVjaWZpYyBhcmVhLCBvciBwYXJ0cyBmcm9tIGEgc3BlY2lmaWMgcGVyc3BlY3RpdmUuXG4gICAqXG4gICAqIElmIHRoZSBhY3Rpb24gaXMgbW9kZWxlZCBpbiBhIHZpZXcgdGVtcGxhdGUsIGl0IGlzIGluaGVyZW50bHkgYXNzb2NpYXRlZCB3aXRoIHRoYXQgdmlldywgaS5lLiwgb25seSBkaXNwbGF5ZWRcbiAgICogd2hlbiBhY3RpdmUuIFRvIG5vdCBhc3NvY2lhdGUgYW4gYWN0aW9uIHdpdGggYSB2aWV3LCBtb2RlbCB0aGUgYWN0aW9uIGluc2lkZSB0aGUgYHdiLXdvcmtiZW5jaGAgSFRNTCBlbGVtZW50XG4gICAqIG9yIHJlZ2lzdGVyIGl0IHByb2dyYW1tYXRpY2FsbHkuXG4gICAqXG4gICAqIFRoZSBmdW5jdGlvbiBjYW4gY2FsbCBgaW5qZWN0YCB0byBnZXQgYW55IHJlcXVpcmVkIGRlcGVuZGVuY2llcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYW5NYXRjaD86IENhbk1hdGNoUGFydEZuO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgQ1NTIGNsYXNzKGVzKSB0byBhZGQgdG8gdGhlIGFjdGlvbiwgZS5nLiwgdG8gbG9jYXRlIHRoZSBhY3Rpb24gaW4gdGVzdHMuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgY3NzQ2xhc3M/OiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF90ZW1wbGF0ZTogVGVtcGxhdGVSZWY8dm9pZD4sXG4gICAgICAgICAgICAgIHByaXZhdGUgX3dvcmtiZW5jaFNlcnZpY2U6IFdvcmtiZW5jaFNlcnZpY2UsXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX3ZpZXc6IFdvcmtiZW5jaFZpZXcpIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9hY3Rpb24gPSB0aGlzLl93b3JrYmVuY2hTZXJ2aWNlLnJlZ2lzdGVyUGFydEFjdGlvbih7XG4gICAgICBwb3J0YWw6IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLl90ZW1wbGF0ZSwgbnVsbCEpLFxuICAgICAgYWxpZ246IHRoaXMuYWxpZ24sXG4gICAgICBjYW5NYXRjaDogKChwYXJ0OiBXb3JrYmVuY2hQYXJ0KSA9PiB0aGlzLm1hdGNoZXNDb250ZXh0dWFsVmlldyhwYXJ0KSAmJiAodGhpcy5jYW5NYXRjaD8uKHBhcnQpID8/IHRydWUpKSxcbiAgICAgIGNzc0NsYXNzOiB0aGlzLmNzc0NsYXNzLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXRjaGVzQ29udGV4dHVhbFZpZXcocGFydDogV29ya2JlbmNoUGFydCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLl92aWV3Py5pZCkge1xuICAgICAgcmV0dXJuIHBhcnQuYWN0aXZlVmlld0lkID09PSB0aGlzLl92aWV3LmlkO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hY3Rpb24/LmRpc3Bvc2UoKTtcbiAgfVxufVxuIl19
|
|
@@ -24,7 +24,7 @@ import { fromDimension$ } from '@scion/toolkit/observable';
|
|
|
24
24
|
import { WORKBENCH_ID } from '../../workbench-id';
|
|
25
25
|
import * as i0 from "@angular/core";
|
|
26
26
|
import * as i1 from "../../layout/workbench-layout.service";
|
|
27
|
-
import * as i2 from "../../routing
|
|
27
|
+
import * as i2 from "../../routing/\u0275workbench-router.service";
|
|
28
28
|
import * as i3 from "../../view-dnd/view-tab-drag-image-renderer.service";
|
|
29
29
|
import * as i4 from "../\u0275workbench-part.model";
|
|
30
30
|
import * as i5 from "../../view-dnd/view-drag.service";
|
|
@@ -113,7 +113,7 @@ export class PartBarComponent {
|
|
|
113
113
|
}
|
|
114
114
|
onDoubleClick(event) {
|
|
115
115
|
if (this._part.isInMainArea) {
|
|
116
|
-
this._router
|
|
116
|
+
this._router.navigate(layout => layout.toggleMaximized()).then();
|
|
117
117
|
}
|
|
118
118
|
event.stopPropagation();
|
|
119
119
|
}
|
|
@@ -209,7 +209,7 @@ export class PartBarComponent {
|
|
|
209
209
|
this.unsetDragState({ unsetDragSource: false });
|
|
210
210
|
// Activate the view next to the view being dragged out of this tabbar. But, do not push the navigation into browsing history stack.
|
|
211
211
|
if (this.dragSourceViewTab && this.dragSourceViewTab.active) {
|
|
212
|
-
this._router
|
|
212
|
+
this._router.navigate(layout => layout.activateAdjacentView(this.dragSourceViewTab.viewId), { skipLocationChange: true }).then();
|
|
213
213
|
}
|
|
214
214
|
}
|
|
215
215
|
/**
|
|
@@ -233,7 +233,9 @@ export class PartBarComponent {
|
|
|
233
233
|
workbenchId: this._dragData.workbenchId,
|
|
234
234
|
partId: this._dragData.partId,
|
|
235
235
|
viewId: this._dragData.viewId,
|
|
236
|
+
alternativeViewId: this._dragData.alternativeViewId,
|
|
236
237
|
viewUrlSegments: this._dragData.viewUrlSegments,
|
|
238
|
+
navigationHint: this._dragData.navigationHint,
|
|
237
239
|
classList: this._dragData.classList,
|
|
238
240
|
},
|
|
239
241
|
target: {
|
|
@@ -411,10 +413,10 @@ export class PartBarComponent {
|
|
|
411
413
|
setCssVariable(this._host, { '--ɵpart-bar-indent-right': `${this._tabbarIndent.right}px` });
|
|
412
414
|
});
|
|
413
415
|
}
|
|
414
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
415
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
416
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: PartBarComponent, deps: [{ token: i0.ElementRef }, { token: WORKBENCH_ID }, { token: i1.WorkbenchLayoutService }, { token: i2.ɵWorkbenchRouter }, { token: i3.ViewTabDragImageRenderer }, { token: i4.ɵWorkbenchPart }, { token: i5.ViewDragService }, { token: i0.DestroyRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
417
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: PartBarComponent, isStandalone: true, selector: "wb-part-bar", host: { listeners: { "dblclick": "onDoubleClick($event)", "dragstart": "onViewDragStart($event)", "dragend": "onViewDragEnd()" } }, viewQueries: [{ propertyName: "_viewportElement", first: true, predicate: SciViewportComponent, descendants: true, read: ElementRef, static: true }, { propertyName: "_viewportComponent", first: true, predicate: SciViewportComponent, descendants: true, static: true }, { propertyName: "_tabCornerRadiusElement", first: true, predicate: ["tab_corner_radius"], descendants: true, static: true }, { propertyName: "_paddingInlineElement", first: true, predicate: ["padding_inline"], descendants: true, static: true }, { propertyName: "injectViewTabs", predicate: ViewTabComponent, descendants: true }], ngImport: i0, template: "<sci-viewport class=\"tabbar\" scrollbarStyle=\"hidden\"\n [class.dragover]=\"dragover$ | async\"\n sciDimension (sciDimensionChange)=\"onTabbarViewportDimensionChange()\"\n (scroll)=\"onScroll()\">\n <ng-container *ngFor=\"let viewId of viewIds$ | async;\">\n <div class=\"divider\" *ngIf=\"viewtab === dropTargetViewTab\"></div>\n <wb-view-tab #viewtab\n [viewId]=\"viewId\"\n [class.drag-source]=\"viewtab === dragSourceViewTab\"\n [class.drop-target]=\"viewtab === dropTargetViewTab\">\n </wb-view-tab>\n <div class=\"divider\"></div>\n </ng-container>\n\n <!-- Placeholder element to grow the viewport to fit the drag image. -->\n <div class=\"drag-image-placeholder\"></div>\n</sci-viewport>\n<wb-part-action-bar/>\n<wb-view-list-button/>\n\n<!-- Element for injecting the corner radius into the component. -->\n<div class=\"tab-corner-radius\" #tab_corner_radius></div>\n<!-- Element for injecting the tabbar padding into the component. -->\n<div class=\"padding-inline\" #padding_inline></div>\n", styles: ["@charset \"UTF-8\";:host{--\\275part-bar-indent-left: 0;--\\275part-bar-indent-right: 0;--\\275part-bar-drag-source-width: 0;--\\275part-bar-drag-image-placeholder-width: 0;display:flex;color:var(--sci-workbench-tab-text-color);background-color:var(--sci-workbench-part-bar-background-color);border-top:var(--sci-workbench-part-bar-padding-top) solid transparent;background-clip:border-box;height:var(--sci-workbench-tab-height);box-sizing:content-box;position:relative;container-name:viewtab;container-type:size}wb-workbench:has(wb-main-area-layout) wb-part:not(.main-area) :host{background-color:var(--sci-workbench-part-peripheral-bar-background-color)}:host>sci-viewport.tabbar{flex:initial}:host>sci-viewport.tabbar::part(content){display:flex;padding-left:var(--\\275part-bar-indent-left);padding-right:var(--\\275part-bar-indent-right)}:host>sci-viewport.tabbar:not(.dragover):not(:has(wb-view-tab:not(.drag-source)))::part(content){padding-right:0}:host>sci-viewport.tabbar>wb-view-tab{flex:none}:host>sci-viewport.tabbar>wb-view-tab.drag-source{display:none}:host>sci-viewport.tabbar>div.divider{flex:none;display:flex;position:relative;width:0}:host>sci-viewport.tabbar>div.divider:after{flex:none;align-self:center;content:\"\";position:absolute;width:1px;left:-1px;height:65%;background-color:var(--sci-workbench-part-bar-divider-color)}:host>sci-viewport.tabbar>div.drag-image-placeholder{flex:none;width:var(--\\275part-bar-drag-image-placeholder-width)}:host>sci-viewport.tabbar>wb-view-tab.drop-target,:host>sci-viewport.tabbar wb-view-tab.drop-target~:is(wb-view-tab,div.divider),:host>sci-viewport.tabbar>div.divider:has(+wb-view-tab.drop-target){transform:translate(var(--\\275part-bar-drag-source-width))}:host>sci-viewport.tabbar>wb-view-tab:is(.active,.drag-source)+div.divider{display:none}:host>sci-viewport.tabbar>div.divider:has(+wb-view-tab.active:not(.drag-source)){display:none}:host>sci-viewport.tabbar>div.divider:has(+wb-view-tab.drag-source:not(.active)){display:none}:host>wb-part-action-bar{flex:auto}:host>wb-view-list-button{flex:none}:host:before{content:\"\";position:absolute;bottom:0;left:0;right:0;height:1px;background-color:var(--sci-workbench-tab-border-color)}:host>div.tab-corner-radius{position:absolute;visibility:hidden;width:var(--sci-workbench-tab-border-radius)}:host>div.padding-inline{position:absolute;visibility:hidden;width:var(--sci-workbench-part-bar-padding-inline)}:host:not(.calculating-max-viewport-width).drag-enter wb-view-tab,:host:not(.calculating-max-viewport-width).drag-enter div.divider,:host:not(.calculating-max-viewport-width).drag-over wb-view-tab,:host:not(.calculating-max-viewport-width).drag-over div.divider,:host:not(.calculating-max-viewport-width).drag-leave wb-view-tab,:host:not(.calculating-max-viewport-width).drag-leave div.divider{transition:transform 175ms cubic-bezier(0,0,.2,1)}:host:not(.calculating-max-viewport-width).drag-enter div.drag-image-placeholder,:host:not(.calculating-max-viewport-width).drag-leave div.drag-image-placeholder{transition:width 175ms cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: SciViewportComponent, selector: "sci-viewport", inputs: ["scrollbarStyle"], outputs: ["scroll"] }, { kind: "ngmodule", type: SciDimensionModule }, { kind: "directive", type: i6.SciDimensionDirective, selector: "[sciDimension]", inputs: ["emitOutsideAngular"], outputs: ["sciDimensionChange"], exportAs: ["sciDimension"] }, { kind: "component", type: ViewTabComponent, selector: "wb-view-tab", inputs: ["viewId"] }, { kind: "component", type: PartActionBarComponent, selector: "wb-part-action-bar" }, { kind: "component", type: ViewListButtonComponent, selector: "wb-view-list-button" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
416
418
|
}
|
|
417
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
419
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: PartBarComponent, decorators: [{
|
|
418
420
|
type: Component,
|
|
419
421
|
args: [{ selector: 'wb-part-bar', standalone: true, imports: [
|
|
420
422
|
NgFor,
|
|
@@ -429,7 +431,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
|
|
|
429
431
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
430
432
|
type: Inject,
|
|
431
433
|
args: [WORKBENCH_ID]
|
|
432
|
-
}] }, { type: i1.WorkbenchLayoutService }, { type: i2
|
|
434
|
+
}] }, { type: i1.WorkbenchLayoutService }, { type: i2.ɵWorkbenchRouter }, { type: i3.ViewTabDragImageRenderer }, { type: i4.ɵWorkbenchPart }, { type: i5.ViewDragService }, { type: i0.DestroyRef }, { type: i0.NgZone }], propDecorators: { _viewportElement: [{
|
|
433
435
|
type: ViewChild,
|
|
434
436
|
args: [SciViewportComponent, { static: true, read: ElementRef }]
|
|
435
437
|
}], _viewportComponent: [{
|
|
@@ -454,4 +456,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
|
|
|
454
456
|
type: HostListener,
|
|
455
457
|
args: ['dragend']
|
|
456
458
|
}] } });
|
|
457
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydC1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvcGFydC9wYXJ0LWJhci9wYXJ0LWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9wYXJ0L3BhcnQtYmFyL3BhcnQtYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBYyxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBNkIsU0FBUyxFQUFFLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxSSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVoRSxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUYsT0FBTyxFQUFDLHVCQUF1QixFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQWMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2xJLE9BQU8sRUFBYyxpQkFBaUIsRUFBMkIsTUFBTSxxREFBcUQsQ0FBQztBQUU3SCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUV0SCxPQUFPLEVBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDL0YsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFaEUsT0FB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QUl2Qyx1QkFBdUI7c0JBRDlCLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUl0QyxxQkFBcUI7c0JBRDVCLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUloQyxjQUFjO3NCQUR4QixZQUFZO3VCQUFDLGdCQUFnQjtnQkFxRXZCLGFBQWE7c0JBRG5CLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXdCN0IsZUFBZTtzQkFEckIsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBOEM5QixhQUFhO3NCQURuQixZQUFZO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjMgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBEZXN0cm95UmVmLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgTmdab25lLCBPbkluaXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtWaWV3VGFiQ29tcG9uZW50fSBmcm9tICcuLi92aWV3LXRhYi92aWV3LXRhYi5jb21wb25lbnQnO1xuaW1wb3J0IHtXb3JrYmVuY2hMYXlvdXRTZXJ2aWNlfSBmcm9tICcuLi8uLi9sYXlvdXQvd29ya2JlbmNoLWxheW91dC5zZXJ2aWNlJztcbmltcG9ydCB7ZmlsdGVyLCBtYXAsIG1lcmdlTWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZSwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge2FuaW1hdGlvbkZyYW1lU2NoZWR1bGVyLCBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZpcnN0VmFsdWVGcm9tLCBmcm9tLCBpbnRlcnZhbCwgT2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NvbnN0cmFpbkZuLCBWaWV3RHJhZ0ltYWdlUmVjdCwgVmlld1RhYkRyYWdJbWFnZVJlbmRlcmVyfSBmcm9tICcuLi8uLi92aWV3LWRuZC92aWV3LXRhYi1kcmFnLWltYWdlLXJlbmRlcmVyLnNlcnZpY2UnO1xuaW1wb3J0IHtWaWV3RHJhZ0RhdGEsIFZpZXdEcmFnU2VydmljZX0gZnJvbSAnLi4vLi4vdmlldy1kbmQvdmlldy1kcmFnLnNlcnZpY2UnO1xuaW1wb3J0IHtnZXRDc3NUcmFuc2xhdGlvbiwgc2V0Q3NzQ2xhc3MsIHNldENzc1ZhcmlhYmxlLCB1bnNldENzc0NsYXNzLCB1bnNldENzc1ZhcmlhYmxlfSBmcm9tICcuLi8uLi9jb21tb24vZG9tLnV0aWwnO1xuaW1wb3J0IHvJtVdvcmtiZW5jaFBhcnR9IGZyb20gJy4uL8m1d29ya2JlbmNoLXBhcnQubW9kZWwnO1xuaW1wb3J0IHtmaWx0ZXJBcnJheSwgbWFwQXJyYXksIG9ic2VydmVJbnNpZGUsIHN1YnNjcmliZUluc2lkZX0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvb3BlcmF0b3JzJztcbmltcG9ydCB7U2NpVmlld3BvcnRDb21wb25lbnR9IGZyb20gJ0BzY2lvbi9jb21wb25lbnRzL3ZpZXdwb3J0JztcbmltcG9ydCB7V29ya2JlbmNoUm91dGVyfSBmcm9tICcuLi8uLi9yb3V0aW5nL3dvcmtiZW5jaC1yb3V0ZXIuc2VydmljZSc7XG5pbXBvcnQge1NjaURpbWVuc2lvbk1vZHVsZX0gZnJvbSAnQHNjaW9uL2NvbXBvbmVudHMvZGltZW5zaW9uJztcbmltcG9ydCB7QXN5bmNQaXBlLCBOZ0ZvciwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7UGFydEFjdGlvbkJhckNvbXBvbmVudH0gZnJvbSAnLi4vcGFydC1hY3Rpb24tYmFyL3BhcnQtYWN0aW9uLWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHtWaWV3TGlzdEJ1dHRvbkNvbXBvbmVudH0gZnJvbSAnLi4vdmlldy1saXN0LWJ1dHRvbi92aWV3LWxpc3QtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtmcm9tRGltZW5zaW9uJH0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvb2JzZXJ2YWJsZSc7XG5pbXBvcnQge1dPUktCRU5DSF9JRH0gZnJvbSAnLi4vLi4vd29ya2JlbmNoLWlkJztcblxuLyoqXG4gKiBSZW5kZXJzIHZpZXcgdGFicyBhbmQgYWN0aW9ucyBvZiBhIHtAbGluayBXb3JrYmVuY2hQYXJ0fS5cbiAqXG4gKiBUYWJzIGFyZSBhZGRlZCB0byBhIHZpZXdwb3J0LCB3aGljaCB0aGUgdXNlciBjYW4gc2Nyb2xsIGlmIG5vdCBlbm91Z2ggc3BhY2UuIFRoZSB2aWV3cG9ydCBncm93cyB3aXRoIGl0cyB0YWJzLFxuICogYWxsb3dpbmcgYWN0aW9ucyB0byBiZSBwbGFjZWQgZGlyZWN0bHkgYWZ0ZXIgdGhlIGxhc3QgdGFiIG9yIG9uIHRoZSByaWdodCBzaWRlLlxuICpcbiAqICMjIERyYWcgRXZlbnRzXG4gKiBXZSB1c2UgbmF0aXZlIGRyYWcgYW5kIGRyb3AgdG8gc3VwcG9ydCBkcmFnZ2luZyB2aWV3cyB0byBvdGhlciB3aW5kb3dzLlxuICpcbiAqIEJ5IGxpc3RlbmluZyB0byBkcmFnIGV2ZW50cywgdGhlIHRhYmJhciB2aXN1YWxpemVzIHRhYnMgZHVyaW5nIGEgZHJhZyBvcGVyYXRpb24uIFRoZSBkcmFnIG9wZXJhdGlvbiBpcyBpbml0aWF0ZWQgaW4ge0BsaW5rIFZpZXdUYWJDb21wb25lbnR9LlxuICogLSBgZHJhZ3N0YXJ0YCBhbmQgYGRyYWdlbmRgIGV2ZW50cyBhcmUgZmlyZWQgaW4gdGhlIHRhYmJhciB3aGVyZSB0aGUgZHJhZyBvcGVyYXRpb24gd2FzIGluaXRpYXRlZC5cbiAqIC0gYGRyYWdlbnRlcmAgZXZlbnQgaXMgZmlyZWQgd2hlbiBhIHRhYiBlbnRlcnMgdGhlIHRhYmJhci5cbiAqIC0gYGRyYWdvdmVyYCBldmVudHMgYXJlIGZpcmVkIHdoZW4gZHJhZ2dpbmcgYSB0YWIgb3ZlciB0aGUgdGFiYmFyLlxuICogLSBgZHJhZ2xlYXZlYCBldmVudCBpcyBmaXJlZCB3aGVuIGEgdGFiIGxlYXZlcyB0aGUgdGFiYmFyLlxuICogLSBgZHJvcGAgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBkcm9wcyBhIHRhYiBpbiB0aGUgdGFiYmFyLlxuICogLSBOb3RlIHRoYXQgYGRyYWdsZWF2ZWAgZXZlbnQgaXMgbm90IGZpcmVkIG9uIGRyb3AgYWN0aW9uLiBUaGVyZWZvcmUsIGFsd2F5cyBoYW5kbGUgYm90aCBldmVudHMsIGBkcmFnbGVhdmVgIGFuZCBgZHJvcGAgZXZlbnRzLCByZXNwZWN0aXZlbHkuXG4gKlxuICogIyMgVGVybWlub2xvZ3lcbiAqIC0gRHJhZyBzb3VyY2U6IFRhYiB0aGF0IGlzIGJlaW5nIGRyYWdnZWQuXG4gKiAtIERyb3AgdGFyZ2V0OiBUYWIgYmVmb3JlIHdoaWNoIHRvIGluc2VydCB0aGUgZHJhZyBzb3VyY2Ugb24gZHJvcCwgb3IgYGVuZGAgaWYgZHJvcHBpbmcgaXQgYWZ0ZXIgdGhlIGxhc3QgdGFiLlxuICogLSBEcmFnIGltYWdlOiAgSW1hZ2UgZm9yIHRoZSB0YWIgdG8gYmUgZHJhZ2dlZC4gV2UgZG8gbm90IHVzZSB0aGUgbmF0aXZlIGRyYWcgaW1hZ2Ugc3VwcG9ydCB0byBjb250cm9sIGRyYWcgaW1hZ2UgcG9zaXRpb24gYW5kIHNpemUsXG4gKiAgICAgICAgICAgICAgICBlLmcuLCB0byBzbmFwIHRoZSBkcmFnIGltYWdlIHRvIHRoZSB0YWJiYXIgd2hlbiBkcmFnZ2luZyBuZWFyIGl0LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3Yi1wYXJ0LWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYXJ0LWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhcnQtYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0ZvcixcbiAgICBBc3luY1BpcGUsXG4gICAgU2NpVmlld3BvcnRDb21wb25lbnQsXG4gICAgU2NpRGltZW5zaW9uTW9kdWxlLFxuICAgIFZpZXdUYWJDb21wb25lbnQsXG4gICAgUGFydEFjdGlvbkJhckNvbXBvbmVudCxcbiAgICBWaWV3TGlzdEJ1dHRvbkNvbXBvbmVudCxcbiAgICBOZ0lmLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBQYXJ0QmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9ob3N0OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSByZWFkb25seSBfdmlld3BvcnRDaGFuZ2UkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdmlld1RhYnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxWaWV3VGFiQ29tcG9uZW50W10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZHJhZ2VudGVyJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RyYWdsZWF2ZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kcmFnZW5kJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyByZWFkb25seSBkcmFnb3ZlciQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgQFZpZXdDaGlsZChTY2lWaWV3cG9ydENvbXBvbmVudCwge3N0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZn0pXG4gIHByaXZhdGUgX3ZpZXdwb3J0RWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoU2NpVmlld3BvcnRDb21wb25lbnQsIHtzdGF0aWM6IHRydWV9KVxuICBwcml2YXRlIF92aWV3cG9ydENvbXBvbmVudCE6IFNjaVZpZXdwb3J0Q29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoJ3RhYl9jb3JuZXJfcmFkaXVzJywge3N0YXRpYzogdHJ1ZX0pXG4gIHByaXZhdGUgX3RhYkNvcm5lclJhZGl1c0VsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdwYWRkaW5nX2lubGluZScsIHtzdGF0aWM6IHRydWV9KVxuICBwcml2YXRlIF9wYWRkaW5nSW5saW5lRWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGRyZW4oVmlld1RhYkNvbXBvbmVudClcbiAgcHVibGljIHNldCBpbmplY3RWaWV3VGFicyhxdWVyeUxpc3Q6IFF1ZXJ5TGlzdDxWaWV3VGFiQ29tcG9uZW50Pikge1xuICAgIHF1ZXJ5TGlzdC5jaGFuZ2VzXG4gICAgICAucGlwZShzdGFydFdpdGgocXVlcnlMaXN0KSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZShxdWVyeUxpc3QgPT4gdGhpcy5fdmlld1RhYnMkLm5leHQocXVlcnlMaXN0LnRvQXJyYXkoKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSB0byB0aGUgdGFiIGJlZm9yZSB3aGljaCB0byBpbnNlcnQgdGhlIGRyYWcgc291cmNlIG9uIGRyb3AsIG9yIGBlbmRgIGlmIGRyb3BwaW5nIGl0IGFmdGVyIHRoZSBsYXN0IHRhYi5cbiAgICovXG4gIHB1YmxpYyBkcm9wVGFyZ2V0Vmlld1RhYjogVmlld1RhYkNvbXBvbmVudCB8ICdlbmQnIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSB0byB0aGUgdGFiIHdoZXJlIHRoZSBkcmFnIG9wZXJhdGlvbiB3YXMgc3RhcnRlZC5cbiAgICogVGhpcyByZWZlcmVuY2UgaXMgb25seSBzZXQgaWYgdGhlIGRyYWcgb3BlcmF0aW9uIHN0YXJ0ZWQgb24gYSB0YWIgb2YgdGhpcyB0YWJiYXIuXG4gICAqL1xuICBwdWJsaWMgZHJhZ1NvdXJjZVZpZXdUYWI6IFZpZXdUYWJDb21wb25lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogVHJhbnNmZXIgZGF0YSBvZiB0aGUgdGFiIGJlaW5nIGRyYWdnZWQgb3ZlciB0aGlzIHRhYmJhci5cbiAgICovXG4gIHByaXZhdGUgX2RyYWdEYXRhOiBWaWV3RHJhZ0RhdGEgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogRnVuY3Rpb24gZm9yIHNuYXBwaW5nIHRoZSBkcmFnIGltYWdlIHRvIHRoZSB0YWJiYXIgd2hlbiBkcmFnZ2luZyBuZWFyIGl0LlxuICAgKi9cbiAgcHJpdmF0ZSBfY29uc3RyYWluRm46IENvbnN0cmFpbkZuIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFRhYmJhciBpbmRlbnRzIHdoZXJlIHRvIGRpc3BsYXkgdGhlIHJvdW5kZWQgYm90dG9tIGNvcm5lcnMgb2YgdGhlIGZpcnN0IGFuZCBsYXN0IHZpZXcgdGFiLlxuICAgKi9cbiAgcHJpdmF0ZSBfdGFiYmFySW5kZW50ID0ge1xuICAgIGxlZnQ6IDAsXG4gICAgcmlnaHQ6IDAsXG4gIH07XG5cbiAgLyoqXG4gICAqIE5vdGlmaWVzIHdoZW4gdGhlIGRyYWcgYW5pbWF0aW9uIGhhcyBmaW5pc2hlZCwgaS5lLiwgdGFicyBoYXZlIHRyYW5zaXRpb25lZCB0byB0aGVpciBmaW5hbCBwb3NpdGlvbi5cbiAgICovXG4gIHByaXZhdGUgX2RyYWdBbmltYXRpb25TdGFibGUkID0gaW50ZXJ2YWwoMCwgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIpXG4gICAgLnBpcGUoXG4gICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5pc0RyYWdBbmltYXRpb25TdGFibGUoKSksXG4gICAgICBzdWJzY3JpYmVJbnNpZGUoY29udGludWVGbiA9PiB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKGNvbnRpbnVlRm4pKSxcbiAgICAgIG9ic2VydmVJbnNpZGUoY29udGludWVGbiA9PiB0aGlzLl96b25lLnJ1bihjb250aW51ZUZuKSksXG4gICAgICBtYXAoKCkgPT4gdW5kZWZpbmVkIGFzIHZvaWQpLFxuICAgICk7XG5cbiAgY29uc3RydWN0b3IoaG9zdDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgICAgICAgIEBJbmplY3QoV09SS0JFTkNIX0lEKSBwcml2YXRlIF93b3JrYmVuY2hJZDogc3RyaW5nLFxuICAgICAgICAgICAgICBwcml2YXRlIF93b3JrYmVuY2hMYXlvdXRTZXJ2aWNlOiBXb3JrYmVuY2hMYXlvdXRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9yb3V0ZXI6IFdvcmtiZW5jaFJvdXRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfdmlld1RhYkRyYWdJbWFnZVJlbmRlcmVyOiBWaWV3VGFiRHJhZ0ltYWdlUmVuZGVyZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3BhcnQ6IMm1V29ya2JlbmNoUGFydCxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfdmlld0RyYWdTZXJ2aWNlOiBWaWV3RHJhZ1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2Rlc3Ryb3lSZWY6IERlc3Ryb3lSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3pvbmU6IE5nWm9uZSkge1xuICAgIHRoaXMuX2hvc3QgPSBob3N0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy5kcmFnb3ZlciQgPSB0aGlzLl92aWV3RHJhZ1NlcnZpY2UudGFiYmFyRHJhZ092ZXIkLnBpcGUobWFwKHBhcnRJZCA9PiBwYXJ0SWQgPT09IHRoaXMuX3BhcnQuaWQpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluc3RhbGxBY3RpdmVWaWV3U2Nyb2xsZXIoKTtcbiAgICB0aGlzLmluc3RhbGxTY3JvbGxlZEludG9WaWV3VXBkYXRlcigpO1xuICAgIHRoaXMuaW5zdGFsbFZpZXdEcmFnTGlzdGVuZXIoKTtcbiAgICB0aGlzLmluc3RhbGxUYWJiYXJJbmRlbnRTaXplRGV0ZWN0b3IoKTtcbiAgICB0aGlzLmluc3RhbGxWaWV3cG9ydENsaWVudFNpemVEZXRlY3RvcigpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZGJsY2xpY2snLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25Eb3VibGVDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9wYXJ0LmlzSW5NYWluQXJlYSkge1xuICAgICAgdGhpcy5fcm91dGVyLsm1bmF2aWdhdGUobGF5b3V0ID0+IGxheW91dC50b2dnbGVNYXhpbWl6ZWQoKSkudGhlbigpO1xuICAgIH1cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmlld0lkcyQoKTogT2JzZXJ2YWJsZTxzdHJpbmdbXT4ge1xuICAgIHJldHVybiB0aGlzLl9wYXJ0LnZpZXdJZHMkO1xuICB9XG5cbiAgcHVibGljIG9uVGFiYmFyVmlld3BvcnREaW1lbnNpb25DaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5fdmlld3BvcnRDaGFuZ2UkLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNjcm9sbCgpOiB2b2lkIHtcbiAgICB0aGlzLl92aWV3cG9ydENoYW5nZSQubmV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBpbnZva2VkIHdoZW4gdGhlIHVzZXIgc3RhcnRzIGRyYWdnaW5nIGEgdGFiIG9mIHRoaXMgdGFiYmFyLlxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ3N0YXJ0JywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uVmlld0RyYWdTdGFydChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl92aWV3RHJhZ1NlcnZpY2UuaXNWaWV3RHJhZ0V2ZW50KGV2ZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRyYWdEYXRhID0gdGhpcy5fdmlld0RyYWdTZXJ2aWNlLnZpZXdEcmFnRGF0YSE7XG4gICAgY29uc3QgZHJhZ1NvdXJjZUluZGV4ID0gdGhpcy5fdmlld1RhYnMuZmluZEluZGV4KHZpZXdUYWIgPT4gdmlld1RhYi52aWV3SWQgPT09IGRyYWdEYXRhLnZpZXdJZCk7XG4gICAgY29uc3QgZHJhZ1NvdXJjZVZpZXdUYWIgPSB0aGlzLl92aWV3VGFic1tkcmFnU291cmNlSW5kZXhdO1xuICAgIGNvbnN0IGRyb3BUYXJnZXRWaWV3VGFiID0gdGhpcy5fdmlld1RhYnNbZHJhZ1NvdXJjZUluZGV4ICsgMV0gPz8gJ2VuZCc7XG5cbiAgICAvLyBDb25zdHJhaW4gZnVuY3Rpb24gZm9yIHNuYXBwaW5nIHRoZSBkcmFnIGltYWdlIHRvIHRoZSB0YWJiYXIgd2hlbiBkcmFnZ2luZyBuZWFyIGl0LlxuICAgIHRoaXMuX2NvbnN0cmFpbkZuID0gdGhpcy5jcmVhdGVEcmFnSW1hZ2VDb25zdHJhaW5GbigpO1xuICAgIHRoaXMuX3ZpZXdUYWJEcmFnSW1hZ2VSZW5kZXJlci5zZXRDb25zdHJhaW5EcmFnSW1hZ2VSZWN0Rm4odGhpcy5fY29uc3RyYWluRm4pO1xuICAgIHRoaXMuX3ZpZXdEcmFnU2VydmljZS5zZXRUYWJiYXJEcmFnb3Zlcih0aGlzLl9wYXJ0LmlkKTtcblxuICAgIC8vIFdoZW4gc3RhcnQgZHJhZ2dpbmcgYSB2aWV3IHRhYiwgd2UgcmVtb3ZlIGl0IGZyb20gdGhlIHRhYmJhciBieSBzZXR0aW5nIGl0cyBgZGlzcGxheWAgdG8gYG5vbmVgIGFuZCByZW5kZXIgaXRzIGRyYWcgaW1hZ2UgaW4gYFZpZXdUYWJEcmFnSW1hZ2VSZW5kZXJlcmAgaW5zdGVhZC5cbiAgICAvLyBIb3dldmVyLCBkbyBub3QgdW5zZXQgdGhlIGBkaXNwbGF5YCBvZiB0aGUgZHJhZyBzb3VyY2UgZHVyaW5nIGBkcmFnc3RhcnRgLiBPdGhlcndpc2UsIHRoZSBuYXRpdmUgZHJhZyBvcGVyYXRpb24gd291bGQgYmUgY29ycnVwdGVkIGluIENocm9tZSBhbmQgRWRnZSAoYnV0IG5vdCBpbiBGaXJlZm94KS5cbiAgICBhbmltYXRpb25GcmFtZVNjaGVkdWxlci5zY2hlZHVsZSgoKSA9PiB7XG4gICAgICB0aGlzLmRyYWdTb3VyY2VWaWV3VGFiID0gZHJhZ1NvdXJjZVZpZXdUYWI7XG4gICAgICB0aGlzLmRyb3BUYXJnZXRWaWV3VGFiID0gZHJvcFRhcmdldFZpZXdUYWI7IC8vIFNldCBkcm9wIHRhcmdldCB0byBhdm9pZCB0YWIgYW5pbWF0aW9uLlxuICAgICAgc2V0Q3NzVmFyaWFibGUodGhpcy5faG9zdCwge1xuICAgICAgICAnLS3JtXBhcnQtYmFyLWRyYWctc291cmNlLXdpZHRoJzogYCR7ZHJhZ0RhdGEudmlld1RhYldpZHRofXB4YCxcbiAgICAgICAgJy0tybVwYXJ0LWJhci1kcmFnLWltYWdlLXBsYWNlaG9sZGVyLXdpZHRoJzogYCR7ZHJhZ0RhdGEudmlld1RhYldpZHRofXB4YCxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLy8gV2hlbiBkcmFnZ2luZyBhIHRhYiB2ZXJ5IHF1aWNrbHkgb3V0IG9mIHRoaXMgdGFiYmFyLCBvbmx5IHRoZSBgZHJhZ3N0YXJ0YCBldmVudCBnZXRzIGZpcmVkLCBidXQgbm90IHRoZSBgZHJhZ2VudGVyYCBldmVudC5cbiAgICAvLyBUaGVyZWZvcmUsIHdlIHN1YnNjcmliZSB0byBnbG9iYWwgYGRyYWdlbnRlcmAgZXZlbnRzIGFuZCBtYW51YWxseSBpbnZva2UgYG9uVGFiYmFyRHJhZ0xlYXZlYCB0byBjb3JyZWN0bHkgZGlzcGxheSB0aGUgdGFicyBhbmQgdGhlIGFjdGl2ZSB2aWV3LlxuICAgIHRoaXMuX3ZpZXdEcmFnU2VydmljZS52aWV3RHJhZyQod2luZG93LCB7ZXZlbnRUeXBlOiBbJ2RyYWdlbnRlciddfSlcbiAgICAgIC5waXBlKHRha2UoMSksIHRha2VVbnRpbCh0aGlzLl9kcmFnZW5kJCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAvLyBDaGVjayBpZiB0aGUgdXNlciBjb250aW51ZXMgZHJhZ2dpbmcgb3ZlciB0aGlzIHRhYmJhci5cbiAgICAgICAgLy8gSWYgbm90LCB0aGUgdXNlciBoYXMgcXVpY2tseSBkcmFnZ2VkIHRoZSB0YWIgb3V0IG9mIHRoZSB0YWJiYXIgYW5kIHdlICBtYW51YWxseSBjYWxsIGBvblRhYmJhckRyYWdMZWF2ZWAuXG4gICAgICAgIGlmICgodGhpcy5faG9zdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihldmVudC50YXJnZXQgYXMgRWxlbWVudCkgJiBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5FRF9CWSkgPT09IDApIHtcbiAgICAgICAgICB0aGlzLm9uVGFiYmFyRHJhZ0xlYXZlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBpbnZva2VkIHdoZW4gdGhlIHVzZXIgZW5kcyBkcmFnZ2luZyBhIHRhYiBvZiB0aGlzIHRhYmJhci5cbiAgICpcbiAgICogSW52b2tlZCBvbmx5IGluIHRoZSB0YWJiYXIgd2hlcmUgdGhlIGRyYWcgb3BlcmF0aW9uIHN0YXJ0ZWQsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgZHJhZyBvcGVyYXRpb24gd2FzIGNvbXBsZXRlZCBvciBjYW5jZWxlZC5cbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdlbmQnKVxuICBwdWJsaWMgb25WaWV3RHJhZ0VuZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9kcmFnZW5kJC5uZXh0KCk7XG4gICAgdGhpcy51bnNldERyYWdTdGF0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBpbnZva2VkIHdoZW4gdGhlIHVzZXIgZHJhZ3MgYSB0YWIgaW50byB0aGlzIHRhYmJhci5cbiAgICovXG4gIHByaXZhdGUgb25UYWJiYXJEcmFnRW50ZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuX2RyYWdlbnRlciQubmV4dCgpO1xuICAgIHRoaXMuX3ZpZXdEcmFnU2VydmljZS5zZXRUYWJiYXJEcmFnb3Zlcih0aGlzLl9wYXJ0LmlkKTtcbiAgICB0aGlzLl9kcmFnRGF0YSA9IHRoaXMuX3ZpZXdEcmFnU2VydmljZS52aWV3RHJhZ0RhdGEhO1xuXG4gICAgLy8gQ29uc3RyYWluIGZ1bmN0aW9uIGZvciBzbmFwcGluZyB0aGUgZHJhZyBpbWFnZSB0byB0aGUgdGFiYmFyIHdoZW4gZHJhZ2dpbmcgbmVhciBpdC5cbiAgICBpZiAoIXRoaXMuX2NvbnN0cmFpbkZuKSB7XG4gICAgICB0aGlzLl9jb25zdHJhaW5GbiA9IHRoaXMuY3JlYXRlRHJhZ0ltYWdlQ29uc3RyYWluRm4oKTtcbiAgICAgIHRoaXMuX3ZpZXdUYWJEcmFnSW1hZ2VSZW5kZXJlci5zZXRDb25zdHJhaW5EcmFnSW1hZ2VSZWN0Rm4odGhpcy5fY29uc3RyYWluRm4pO1xuICAgIH1cblxuICAgIC8vIExvY2F0ZSBkcm9wIHRhcmdldCB0byBoYXZlIGEgbmljZSBhbmltYXRpb24gZm9yIHRoZSBkcmFnIHNvdXJjZSBwbGFjZWhvbGRlci5cbiAgICB0aGlzLmRyb3BUYXJnZXRWaWV3VGFiID0gdGhpcy5jb21wdXRlRHJvcFRhcmdldChldmVudCk7XG5cbiAgICAvLyBTZXQgdGhlIENTUyBjbGFzcyAnZHJhZy1lbnRlcicgdG8gaW5kaWNhdGUgZW50ZXJpbmcgdGhlIHRhYmJhci5cbiAgICBzZXRDc3NDbGFzcyh0aGlzLl9ob3N0LCAnZHJhZy1lbnRlcicsICdkcmFnLW92ZXInKTtcbiAgICB0aGlzLl9kcmFnQW5pbWF0aW9uU3RhYmxlJFxuICAgICAgLnBpcGUodGFrZSgxKSwgdGFrZVVudGlsKHRoaXMuX2RyYWdlbnRlciQpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAuc3Vic2NyaWJlKHtjb21wbGV0ZTogKCkgPT4gdW5zZXRDc3NDbGFzcyh0aGlzLl9ob3N0LCAnZHJhZy1lbnRlcicpfSk7XG5cbiAgICBzZXRDc3NWYXJpYWJsZSh0aGlzLl9ob3N0LCB7XG4gICAgICAnLS3JtXBhcnQtYmFyLWRyYWctc291cmNlLXdpZHRoJzogYCR7dGhpcy5fZHJhZ0RhdGEudmlld1RhYldpZHRofXB4YCxcbiAgICAgICctLcm1cGFydC1iYXItZHJhZy1pbWFnZS1wbGFjZWhvbGRlci13aWR0aCc6IGAke3RoaXMuX2RyYWdEYXRhLnZpZXdUYWJXaWR0aH1weGAsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIGludm9rZWQgd2hlbiB0aGUgdXNlciBkcmFncyBhIHRhYiBvdXQgb2YgdGhpcyB0YWJiYXIuXG4gICAqL1xuICBwcml2YXRlIG9uVGFiYmFyRHJhZ0xlYXZlKCk6IHZvaWQge1xuICAgIHRoaXMuX2RyYWdsZWF2ZSQubmV4dCgpO1xuXG4gICAgLy8gU2V0IHRoZSBDU1MgY2xhc3MgJ2RyYWctbGVhdmUnIHRvIGluZGljYXRlIGxlYXZpbmcgdGhlIHRhYmJhci5cbiAgICBzZXRDc3NDbGFzcyh0aGlzLl9ob3N0LCAnZHJhZy1sZWF2ZScpO1xuICAgIHRoaXMuX2RyYWdBbmltYXRpb25TdGFibGUkXG4gICAgICAucGlwZSh0YWtlKDEpLCB0YWtlVW50aWwodGhpcy5fZHJhZ2xlYXZlJCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoe2NvbXBsZXRlOiAoKSA9PiB1bnNldENzc0NsYXNzKHRoaXMuX2hvc3QsICdkcmFnLWxlYXZlJyl9KTtcblxuICAgIHRoaXMudW5zZXREcmFnU3RhdGUoe3Vuc2V0RHJhZ1NvdXJjZTogZmFsc2V9KTtcblxuICAgIC8vIEFjdGl2YXRlIHRoZSB2aWV3IG5leHQgdG8gdGhlIHZpZXcgYmVpbmcgZHJhZ2dlZCBvdXQgb2YgdGhpcyB0YWJiYXIuIEJ1dCwgZG8gbm90IHB1c2ggdGhlIG5hdmlnYXRpb24gaW50byBicm93c2luZyBoaXN0b3J5IHN0YWNrLlxuICAgIGlmICh0aGlzLmRyYWdTb3VyY2VWaWV3VGFiICYmIHRoaXMuZHJhZ1NvdXJjZVZpZXdUYWIuYWN0aXZlKSB7XG4gICAgICB0aGlzLl9yb3V0ZXIuybVuYXZpZ2F0ZShsYXlvdXQgPT4gbGF5b3V0LmFjdGl2YXRlQWRqYWNlbnRWaWV3KHRoaXMuZHJhZ1NvdXJjZVZpZXdUYWIhLnZpZXdJZCksIHtza2lwTG9jYXRpb25DaGFuZ2U6IHRydWV9KS50aGVuKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBpbnZva2VkIHdoaWxlIHRoZSB1c2VyIGlzIGRyYWdnaW5nIGEgdGFiIG92ZXIgdGhpcyB0YWJiYXIuXG4gICAqL1xuICBwcml2YXRlIG9uVGFiYmFyRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IC8vIGFsbG93IHZpZXcgZHJvcFxuXG4gICAgLy8gTG9jYXRlIHRoZSB0YWIgb3ZlciB3aGljaCB0aGUgdXNlciBpcyBkcmFnZ2luZyB0aGUgdGFiLCBidXQgb25seSBhZnRlciBwZW5kaW5nIHRyYW5zaXRpb25zIGhhdmUgZW5kZWQgdG8gcHJldmVudCB0YWJzIGZyb20gc2xpZGluZyBiYWNrIGFuZCBmb3J0aC5cbiAgICBpZiAodGhpcy5pc0RyYWdBbmltYXRpb25TdGFibGUoKSkge1xuICAgICAgdGhpcy5kcm9wVGFyZ2V0Vmlld1RhYiA9IHRoaXMuY29tcHV0ZURyb3BUYXJnZXQoZXZlbnQpO1xuICAgICAgLy8gU3luY2hyb25pemUgdGhlIHdpZHRoIG9mIHRoZSBkcmFnIHNvdXJjZSBwbGFjZWhvbGRlciB3aXRoIHRoZSBkcmFnIHBvaW50ZXIgcG9zaXRpb24gdG8gbW92ZSBhY3Rpb25zIGFsb25nIHdpdGggdGhlIHBvaW50ZXIuXG4gICAgICBzZXRDc3NWYXJpYWJsZSh0aGlzLl9ob3N0LCB7Jy0tybVwYXJ0LWJhci1kcmFnLWltYWdlLXBsYWNlaG9sZGVyLXdpZHRoJzogYCR7dGhpcy5jYWxjdWxhdGVEcmFnSW1hZ2VQbGFjZWhvbGRlcldpZHRoKGV2ZW50KX1weGB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIGludm9rZWQgd2hlbiB0aGUgdXNlciBkcm9wcyBhIHRhYiBpbiB0aGlzIHRhYmJhci5cbiAgICovXG4gIHByaXZhdGUgb25UYWJiYXJEcm9wKCk6IHZvaWQge1xuICAgIHRoaXMuX3ZpZXdEcmFnU2VydmljZS5kaXNwYXRjaFZpZXdNb3ZlRXZlbnQoe1xuICAgICAgc291cmNlOiB7XG4gICAgICAgIHdvcmtiZW5jaElkOiB0aGlzLl9kcmFnRGF0YSEud29ya2JlbmNoSWQsXG4gICAgICAgIHBhcnRJZDogdGhpcy5fZHJhZ0RhdGEhLnBhcnRJZCxcbiAgICAgICAgdmlld0lkOiB0aGlzLl9kcmFnRGF0YSEudmlld0lkLFxuICAgICAgICB2aWV3VXJsU2VnbWVudHM6IHRoaXMuX2RyYWdEYXRhIS52aWV3VXJsU2VnbWVudHMsXG4gICAgICAgIGNsYXNzTGlzdDogdGhpcy5fZHJhZ0RhdGEhLmNsYXNzTGlzdCxcbiAgICAgIH0sXG4gICAgICB0YXJnZXQ6IHtcbiAgICAgICAgd29ya2JlbmNoSWQ6IHRoaXMuX3dvcmtiZW5jaElkLFxuICAgICAgICBwb3NpdGlvbjogdGhpcy5kcm9wVGFyZ2V0Vmlld1RhYiA9PT0gJ2VuZCcgPyAnZW5kJyA6IHRoaXMuX3ZpZXdUYWJzLmluZGV4T2YodGhpcy5kcm9wVGFyZ2V0Vmlld1RhYiEpLFxuICAgICAgICBlbGVtZW50SWQ6IHRoaXMuX3BhcnQuaWQsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gV2FpdCB1bmRvaW5nIHRoZSBkcmFnIHN0YXRlIHVudGlsIGZsdXNoZWQgdGFiIGNoYW5nZXMgdG8gdGhlIERPTSwgaS5lLiwgYWZ0ZXIgdGhlIGxheW91dCByb3V0aW5nIGN5Y2xlIGNvbXBsZXRlcy5cbiAgICAvLyBJZiB3ZSB3ZXJlIHRvIHVuZG8gdGhlIGRyYWcgc3RhdGUgaW1tZWRpYXRlbHkgZHVyaW5nIHRoZSBjb3Vyc2Ugb2YgdGhlIGRyb3AgZXZlbnQsIHRoZSB0YWIgbGF5b3V0IHdvdWxkIHRlbXBvcmFyaWx5XG4gICAgLy8gcmV2ZXJ0IHRvIHRoZSBzdGF0ZSBiZWZvcmUgdGhlIGRyYWcgb3BlcmF0aW9uLCByZXN1bHRpbmcgaW4gYW4gdWdseSBmbGlja2VyLlxuICAgIGZpcnN0VmFsdWVGcm9tKHRoaXMuX3dvcmtiZW5jaExheW91dFNlcnZpY2Uub25MYXlvdXRDaGFuZ2UkKS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMudW5zZXREcmFnU3RhdGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2NhdGVzIHRoZSB0YWIgYmVmb3JlIHdoaWNoIHRoZSBkcmFnZ2VkIHRhYiBpcyB0byBiZSBpbnNlcnRlZCB3aGVuIGl0IGlzIGRyb3BwZWQuIERyYWdnaW5nIGJleW9uZCB0aGUgbGFzdCB0YWIgcmV0dXJucyBgZW5kYC5cbiAgICovXG4gIHB1YmxpYyBjb21wdXRlRHJvcFRhcmdldChldmVudDogRHJhZ0V2ZW50KTogVmlld1RhYkNvbXBvbmVudCB8ICdlbmQnIHtcbiAgICBjb25zdCB2aWV3RHJhZ0ltYWdlUmVjdCA9IHRoaXMuX3ZpZXdUYWJEcmFnSW1hZ2VSZW5kZXJlci5jYWxjdWxhdGVEcmFnSW1hZ2VSZWN0KHRoaXMuX2RyYWdEYXRhISwgZXZlbnQpO1xuICAgIGNvbnN0IHZpZXdUYWJzID0gdGhpcy5fdmlld1RhYnMuZmlsdGVyKHZpZXdUYWIgPT4gdmlld1RhYiAhPT0gdGhpcy5kcmFnU291cmNlVmlld1RhYik7XG5cbiAgICBmb3IgKGNvbnN0IHZpZXdUYWIgb2Ygdmlld1RhYnMpIHtcbiAgICAgIGNvbnN0IHZpZXdUYWJSZWN0ID0gdmlld1RhYi5ob3N0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3Qgdmlld1RhYk1pZGRsZSA9IHZpZXdUYWJSZWN0LmxlZnQgKyAodmlld1RhYlJlY3Qud2lkdGggLyAyKTtcbiAgICAgIGlmICh2aWV3RHJhZ0ltYWdlUmVjdC5sZWZ0IDwgdmlld1RhYk1pZGRsZSAmJiAodmlld1RhYiAhPT0gdGhpcy5kcm9wVGFyZ2V0Vmlld1RhYiB8fCB2aWV3RHJhZ0ltYWdlUmVjdC5yaWdodCA8IHZpZXdUYWJNaWRkbGUpKSB7XG4gICAgICAgIHJldHVybiB2aWV3VGFiO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gJ2VuZCc7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgZnVuY3Rpb24gZm9yIHNuYXBwaW5nIHRoZSBkcmFnIGltYWdlIHRvIHRoZSB0YWJiYXIgd2hlbiBkcmFnZ2luZyBuZWFyIGl0LlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVEcmFnSW1hZ2VDb25zdHJhaW5GbigpOiBDb25zdHJhaW5GbiB7XG4gICAgY29uc3QgaG9zdExlZnQgPSB0aGlzLl9ob3N0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ7XG4gICAgY29uc3QgbWF4Vmlld3BvcnRXaWR0aCA9IHRoaXMuY2FsY3VsYXRlTWF4Vmlld3BvcnRXaWR0aCgpO1xuICAgIHJldHVybiAocmVjdDogVmlld0RyYWdJbWFnZVJlY3QpOiBWaWV3RHJhZ0ltYWdlUmVjdCA9PiB7XG4gICAgICBjb25zdCB2aWV3cG9ydEJvdW5kaW5nQm94ID0gdGhpcy5fdmlld3BvcnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICByZXR1cm4gbmV3IFZpZXdEcmFnSW1hZ2VSZWN0KHtcbiAgICAgICAgeDogTWF0aC5taW4oTWF0aC5tYXgoaG9zdExlZnQgKyB0aGlzLl90YWJiYXJJbmRlbnQubGVmdCwgcmVjdC54KSwgaG9zdExlZnQgKyBtYXhWaWV3cG9ydFdpZHRoIC0gcmVjdC53aWR0aCAtIHRoaXMuX3RhYmJhckluZGVudC5yaWdodCksXG4gICAgICAgIHk6IHZpZXdwb3J0Qm91bmRpbmdCb3gudG9wLFxuICAgICAgICB3aWR0aDogcmVjdC53aWR0aCxcbiAgICAgICAgaGVpZ2h0OiB2aWV3cG9ydEJvdW5kaW5nQm94LmhlaWdodCwgLy8gZml0IGludG8gdGFiYmFyLCBlLmcuLCB3aGVuIGRyYWdnaW5nIGEgdGFiIGludG8gYSB0YWJiYXIgb2YgYSBkaWZmZXJlbnQgaGVpZ2h0XG4gICAgICB9KTtcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIG1heGltdW0gd2lkdGggb2YgdGhlIHRhYmJhciB2aWV3cG9ydCBiZWZvcmUgYW4gb3ZlcmZsb3cgd291bGQgb2NjdXIsIHdoaWNoIGNhbiB0aGVuIGJlIHVzZWQgdG8gY29uc3RyYWluIHRoZSBkcmFnIGltYWdlLlxuICAgKlxuICAgKiBUbyBjYWxjdWxhdGUgdGhlIGVmZmVjdGl2ZSB3aWR0aCwgd2UgbmVlZCB0byBzaW11bGF0ZSBhbiBvdmVyZmxvdyBpbiB0aGUgRE9NLiBUaGVyZWZvcmUsIGNhbGwgdGhpcyBtZXRob2Qgb25seSBmcm9tIGBkcmFnc3RhcnRgIGFuZCBub3RcbiAgICogZnJvbSBgZHJhZ292ZXJgIGFuZCBkaXNhYmxlIGFuaW1hdGlvbnMuXG4gICAqL1xuICBwcml2YXRlIGNhbGN1bGF0ZU1heFZpZXdwb3J0V2lkdGgoKTogbnVtYmVyIHtcbiAgICBjb25zdCBjdXJyZW50V2lkdGggPSB0aGlzLl9ob3N0LnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJy0tybVwYXJ0LWJhci1kcmFnLWltYWdlLXBsYWNlaG9sZGVyLXdpZHRoJyk7XG5cbiAgICAvLyBEaXNhYmxlIGFuaW1hdGlvbnMgZHVyaW5nIGNhbGN1bGF0aW9uIGFuZCBmb3JjZSB0aGUgdmlld3BvcnQgdG8gb3ZlcmZsb3cuXG4gICAgc2V0Q3NzQ2xhc3ModGhpcy5faG9zdCwgJ2NhbGN1bGF0aW5nLW1heC12aWV3cG9ydC13aWR0aCcpO1xuICAgIHNldENzc1ZhcmlhYmxlKHRoaXMuX2hvc3QsIHsnLS3JtXBhcnQtYmFyLWRyYWctaW1hZ2UtcGxhY2Vob2xkZXItd2lkdGgnOiBgJHt0aGlzLl9ob3N0LmNsaWVudFdpZHRofXB4YH0pO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpcy5fdmlld3BvcnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgfVxuICAgIGZpbmFsbHkge1xuICAgICAgc2V0Q3NzVmFyaWFibGUodGhpcy5faG9zdCwgeyctLcm1cGFydC1iYXItZHJhZy1pbWFnZS1wbGFjZWhvbGRlci13aWR0aCc6IGN1cnJlbnRXaWR0aCB8fCBudWxsfSk7XG4gICAgICB1bnNldENzc0NsYXNzKHRoaXMuX2hvc3QsICdjYWxjdWxhdGluZy1tYXgtdmlld3BvcnQtd2lkdGgnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgd2lkdGggZm9yIHRoZSBkcmFnIGltYWdlIHBsYWNlaG9sZGVyLlxuICAgKlxuICAgKiAtIFdoZW4gZHJhZ2dpbmcgb3ZlciB0YWJzLCB0aGUgd2lkdGggaXMgZXF1YWwgdG8gdGhlIHdpZHRoIG9mIHRoZSBkcmFnIHNvdXJjZS5cbiAgICogLSBXaGVuIGRyYWdnaW5nIHRvIHRoZSByaWdodCBvZiB0aGUgbGFzdCB0YWIsIHRoZSB3aWR0aCBvZiB0aGUgcGxhY2Vob2xkZXIgaXMgY2FsY3VsYXRlZCBhcyB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGVcbiAgICogICBsYXN0IHRhYiBhbmQgdGhlIHBvc2l0aW9uIG9mIHRoZSBkcmFnb3ZlciBldmVudC4gQXBwbHlpbmcgdGhpcyB3aWR0aCB3aWxsIHJlc2l6ZSB0aGUgdmlld3BvcnQsIG1vdmluZyBwYXJ0IGFjdGlvbnMgYWxvbmdcbiAgICogICB3aXRoIHRoZSBkcmFnb3ZlciBldmVudC5cbiAgICovXG4gIHByaXZhdGUgY2FsY3VsYXRlRHJhZ0ltYWdlUGxhY2Vob2xkZXJXaWR0aChldmVudDogRHJhZ0V2ZW50KTogbnVtYmVyIHtcbiAgICBjb25zdCB2aWV3RHJhZ0ltYWdlUmVjdCA9IHRoaXMuX3ZpZXdUYWJEcmFnSW1hZ2VSZW5kZXJlci5jYWxjdWxhdGVEcmFnSW1hZ2VSZWN0KHRoaXMuX2RyYWdEYXRhISwgZXZlbnQpO1xuICAgIGNvbnN0IGxhc3RWaWV3VGFiID0gdGhpcy5fdmlld1RhYnMuZmlsdGVyKHZpZXdUYWIgPT4gdmlld1RhYiAhPT0gdGhpcy5kcmFnU291cmNlVmlld1RhYikuYXQoLTEpO1xuICAgIGNvbnN0IGxhc3RWaWV3VGFiUmlnaHQgPSBsYXN0Vmlld1RhYj8uaG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCA/PyB0aGlzLl9ob3N0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgKyB0aGlzLl90YWJiYXJJbmRlbnQubGVmdDtcbiAgICByZXR1cm4gTWF0aC5tYXgobGFzdFZpZXdUYWJSaWdodCArIHZpZXdEcmFnSW1hZ2VSZWN0LndpZHRoLCB2aWV3RHJhZ0ltYWdlUmVjdC5yaWdodCkgLSBsYXN0Vmlld1RhYlJpZ2h0O1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIENTUyBhbmltYXRpb25zIGhhdmUgZmluaXNoZWQgd2hlbiBkcmFnZ2luZyBhIHRhYiBvdmVyIHRoZSB0YWJiYXIuXG4gICAqIFRoZSBhbmltYXRpb24gaXMgY29uc2lkZXJlZCBzdGFibGUgd2hlbiBhbGwgdGFicyBoYXZlIG1vdmVkIHRvIHRoZWlyIGZpbmFsIHBvc2l0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBpc0RyYWdBbmltYXRpb25TdGFibGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmRyb3BUYXJnZXRWaWV3VGFiKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdmlld1RhYnMuZXZlcnkodmlld1RhYiA9PiBnZXRDc3NUcmFuc2xhdGlvbih2aWV3VGFiLmhvc3QpLnRyYW5zbGF0ZVggPT09ICdub25lJyk7XG4gICAgfVxuXG4gICAgY29uc3Qgdmlld1RhYnMgPSB0aGlzLl92aWV3VGFicy5maWx0ZXIodmlld1RhYiA9PiB2aWV3VGFiICE9PSB0aGlzLmRyYWdTb3VyY2VWaWV3VGFiKTtcbiAgICBjb25zdCBkcm9wVGFyZ2V0SW5kZXggPSB0aGlzLmRyb3BUYXJnZXRWaWV3VGFiID09PSAnZW5kJyA/IHZpZXdUYWJzLmxlbmd0aCA6IHZpZXdUYWJzLmluZGV4T2YodGhpcy5kcm9wVGFyZ2V0Vmlld1RhYiEpO1xuICAgIGNvbnN0IGRyYWdTb3VyY2VXaWR0aCA9IHRoaXMuX2RyYWdEYXRhIS52aWV3VGFiV2lkdGg7XG5cbiAgICByZXR1cm4gdmlld1RhYnMuZXZlcnkoKHZpZXdUYWIsIGkpID0+IHtcbiAgICAgIGNvbnN0IHZpZXdUYWJUcmFuc2xhdGVYID0gZ2V0Q3NzVHJhbnNsYXRpb24odmlld1RhYi5ob3N0KS50cmFuc2xhdGVYO1xuICAgICAgLy8gRXhwZWN0IHRhYnMgcHJlY2VkaW5nIHRoZSBkcm9wIHRhcmdldCBub3QgdG8gYmUgc2hpZnRlZCB0byB0aGUgcmlnaHQuXG4gICAgICBpZiAoaSA8IGRyb3BUYXJnZXRJbmRleCAmJiB2aWV3VGFiVHJhbnNsYXRlWCAhPT0gJ25vbmUnKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIC8vIEV4cGVjdCBkcm9wIHRhcmdldCBhbmQgdGFicyBmb2xsb3dpbmcgdGhlIGRyb3AgdGFyZ2V0IHRvIGJlIHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0LlxuICAgICAgaWYgKGkgPj0gZHJvcFRhcmdldEluZGV4ICYmIE1hdGguZmxvb3IoTnVtYmVyKHZpZXdUYWJUcmFuc2xhdGVYKSkgIT09IE1hdGguZmxvb3IoZHJhZ1NvdXJjZVdpZHRoKSkgeyAvLyBjb21wYXJlIGZsb29yZWQgbnVtYmVycyBiZWNhdXNlIGB0cmFuc2xhdGVYYCBpcyBub3QgcHJlY2lzZVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdW5zZXREcmFnU3RhdGUob3B0aW9ucz86IHt1bnNldERyYWdTb3VyY2U/OiBib29sZWFufSk6IHZvaWQge1xuICAgIGlmIChvcHRpb25zPy51bnNldERyYWdTb3VyY2UgPz8gdHJ1ZSkge1xuICAgICAgdGhpcy5kcmFnU291cmNlVmlld1RhYiA9IG51bGw7XG4gICAgfVxuXG4gICAgdGhpcy5kcm9wVGFyZ2V0Vmlld1RhYiA9IG51bGw7XG4gICAgdGhpcy5fZHJhZ0RhdGEgPSBudWxsO1xuICAgIHRoaXMuX3ZpZXdUYWJEcmFnSW1hZ2VSZW5kZXJlci51bnNldENvbnN0cmFpbkRyYWdJbWFnZVJlY3RGbih0aGlzLl9jb25zdHJhaW5GbiEpO1xuICAgIHRoaXMuX2NvbnN0cmFpbkZuID0gbnVsbDtcblxuICAgIHVuc2V0Q3NzQ2xhc3ModGhpcy5faG9zdCwgJ2RyYWctb3ZlcicpO1xuICAgIHVuc2V0Q3NzVmFyaWFibGUodGhpcy5faG9zdCwgJy0tybVwYXJ0LWJhci1kcmFnLXNvdXJjZS13aWR0aCcsICctLcm1cGFydC1iYXItZHJhZy1pbWFnZS1wbGFjZWhvbGRlci13aWR0aCcpO1xuICAgIHRoaXMuX3ZpZXdEcmFnU2VydmljZS51bnNldFRhYmJhckRyYWdvdmVyKHRoaXMuX3BhcnQuaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX3ZpZXdUYWJzKCk6IFZpZXdUYWJDb21wb25lbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXdUYWJzJC52YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTY3JvbGxzIHRoZSB0YWIgb2YgdGhlIGFjdGl2ZSB2aWV3IGludG8gdmlldy5cbiAgICovXG4gIHByaXZhdGUgaW5zdGFsbEFjdGl2ZVZpZXdTY3JvbGxlcigpOiB2b2lkIHtcbiAgICB0aGlzLl92aWV3VGFicyRcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAodmlld1RhYnMgPT4gY29tYmluZUxhdGVzdCh2aWV3VGFicy5tYXAodmlld1RhYiA9PiB2aWV3VGFiLnZpZXcuYWN0aXZlJCkpKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIC8vIFRoZXJlIG1heSBiZSBubyBhY3RpdmUgdmlldyBpbiB0aGUgdGFiYmFyLCBlLmcuLCB3aGVuIGRyYWdnaW5nIHRoZSBsYXN0IHZpZXcgb3V0IG9mIHRoZSB0YWJiYXIuXG4gICAgICAgIGNvbnN0IGFjdGl2ZVZpZXdUYWIgPSB0aGlzLl92aWV3VGFicy5maW5kKHZpZXdUYWIgPT4gdmlld1RhYi5hY3RpdmUpO1xuICAgICAgICBpZiAoYWN0aXZlVmlld1RhYiAmJiAhdGhpcy5fdmlld3BvcnRDb21wb25lbnQuaXNFbGVtZW50SW5WaWV3KGFjdGl2ZVZpZXdUYWIuaG9zdCwgJ2Z1bGwnKSkge1xuICAgICAgICAgIHRoaXMuX3ZpZXdwb3J0Q29tcG9uZW50LnNjcm9sbEludG9WaWV3KGFjdGl2ZVZpZXdUYWIuaG9zdCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMge0BsaW5rIMm1V29ya2JlbmNoVmlld30gd2hlbiBpdHMgdGFiIGlzIHNjcm9sbGVkIGludG8gdmlldy5cbiAgICovXG4gIHByaXZhdGUgaW5zdGFsbFNjcm9sbGVkSW50b1ZpZXdVcGRhdGVyKCk6IHZvaWQge1xuICAgIHRoaXMuX3ZpZXdwb3J0Q2hhbmdlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB0aGlzLl92aWV3VGFicyksXG4gICAgICAgIGZpbHRlckFycmF5KHZpZXdUYWIgPT4gdmlld1RhYiAhPT0gdGhpcy5kcmFnU291cmNlVmlld1RhYiksIC8vIHNraXAgZHJhZyBzb3VyY2UgYXMgYWx3YXlzIHNjcm9sbGVkIG91dCBvZiB2aWV3XG4gICAgICAgIG1lcmdlTWFwKHZpZXdUYWJzID0+IGZyb20odmlld1RhYnMpKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh2aWV3VGFiID0+IHtcbiAgICAgICAgdmlld1RhYi52aWV3LnNjcm9sbGVkSW50b1ZpZXcgPSB0aGlzLl92aWV3cG9ydENvbXBvbmVudC5pc0VsZW1lbnRJblZpZXcodmlld1RhYi5ob3N0LCAnZnVsbCcpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluc3RhbGxWaWV3RHJhZ0xpc3RlbmVyKCk6IHZvaWQge1xuICAgIHRoaXMuX3ZpZXdEcmFnU2VydmljZS52aWV3RHJhZyQodGhpcy5faG9zdClcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBEcmFnRXZlbnQpID0+IHtcbiAgICAgICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICAgICAgY2FzZSAnZHJhZ2VudGVyJzpcbiAgICAgICAgICAgIHRoaXMub25UYWJiYXJEcmFnRW50ZXIoZXZlbnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnZHJhZ292ZXInOlxuICAgICAgICAgICAgdGhpcy5vblRhYmJhckRyYWdPdmVyKGV2ZW50KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2RyYWdsZWF2ZSc6XG4gICAgICAgICAgICB0aGlzLm9uVGFiYmFyRHJhZ0xlYXZlKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdkcm9wJzpcbiAgICAgICAgICAgIHRoaXMub25UYWJiYXJEcm9wKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluc3RhbGxWaWV3cG9ydENsaWVudFNpemVEZXRlY3RvcigpOiB2b2lkIHtcbiAgICBmcm9tRGltZW5zaW9uJCh0aGlzLl92aWV3cG9ydENvbXBvbmVudC52aWV3cG9ydENsaWVudEVsZW1lbnQpXG4gICAgICAucGlwZShcbiAgICAgICAgc3Vic2NyaWJlSW5zaWRlKGZuID0+IHRoaXMuX3pvbmUucnVuKGZuKSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fdmlld3BvcnRDaGFuZ2UkLm5leHQoKSk7XG4gIH1cblxuICBwcml2YXRlIGluc3RhbGxUYWJiYXJJbmRlbnRTaXplRGV0ZWN0b3IoKTogdm9pZCB7XG4gICAgY29tYmluZUxhdGVzdChbZnJvbURpbWVuc2lvbiQodGhpcy5fdGFiQ29ybmVyUmFkaXVzRWxlbWVudC5uYXRpdmVFbGVtZW50KSwgZnJvbURpbWVuc2lvbiQodGhpcy5fcGFkZGluZ0lubGluZUVsZW1lbnQubmF0aXZlRWxlbWVudCldKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN1YnNjcmliZUluc2lkZShmbiA9PiB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKGZuKSksXG4gICAgICAgIG1hcEFycmF5KGRpbWVuc2lvbiA9PiBkaW1lbnNpb24uY2xpZW50V2lkdGgpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZiksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChbdGFiQ29ybmVyUmFkaXVzLCBwYWRkaW5nSW5saW5lXSkgPT4ge1xuICAgICAgICB0aGlzLl90YWJiYXJJbmRlbnQgPSB7bGVmdDogdGFiQ29ybmVyUmFkaXVzICsgcGFkZGluZ0lubGluZSwgcmlnaHQ6IHRhYkNvcm5lclJhZGl1cyArIHBhZGRpbmdJbmxpbmV9O1xuICAgICAgICBzZXRDc3NWYXJpYWJsZSh0aGlzLl9ob3N0LCB7Jy0tybVwYXJ0LWJhci1pbmRlbnQtbGVmdCc6IGAke3RoaXMuX3RhYmJhckluZGVudC5sZWZ0fXB4YH0pO1xuICAgICAgICBzZXRDc3NWYXJpYWJsZSh0aGlzLl9ob3N0LCB7Jy0tybVwYXJ0LWJhci1pbmRlbnQtcmlnaHQnOiBgJHt0aGlzLl90YWJiYXJJbmRlbnQucmlnaHR9cHhgfSk7XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPHNjaS12aWV3cG9ydCBjbGFzcz1cInRhYmJhclwiIHNjcm9sbGJhclN0eWxlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmRyYWdvdmVyXT1cImRyYWdvdmVyJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgc2NpRGltZW5zaW9uIChzY2lEaW1lbnNpb25DaGFuZ2UpPVwib25UYWJiYXJWaWV3cG9ydERpbWVuc2lvbkNoYW5nZSgpXCJcbiAgICAgICAgICAgICAgKHNjcm9sbCk9XCJvblNjcm9sbCgpXCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHZpZXdJZCBvZiB2aWV3SWRzJCB8IGFzeW5jO1wiPlxuICAgIDxkaXYgY2xhc3M9XCJkaXZpZGVyXCIgKm5nSWY9XCJ2aWV3dGFiID09PSBkcm9wVGFyZ2V0Vmlld1RhYlwiPjwvZGl2PlxuICAgIDx3Yi12aWV3LXRhYiAjdmlld3RhYlxuICAgICAgICAgICAgICAgICBbdmlld0lkXT1cInZpZXdJZFwiXG4gICAgICAgICAgICAgICAgIFtjbGFzcy5kcmFnLXNvdXJjZV09XCJ2aWV3dGFiID09PSBkcmFnU291cmNlVmlld1RhYlwiXG4gICAgICAgICAgICAgICAgIFtjbGFzcy5kcm9wLXRhcmdldF09XCJ2aWV3dGFiID09PSBkcm9wVGFyZ2V0Vmlld1RhYlwiPlxuICAgIDwvd2Itdmlldy10YWI+XG4gICAgPGRpdiBjbGFzcz1cImRpdmlkZXJcIj48L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBQbGFjZWhvbGRlciBlbGVtZW50IHRvIGdyb3cgdGhlIHZpZXdwb3J0IHRvIGZpdCB0aGUgZHJhZyBpbWFnZS4gLS0+XG4gIDxkaXYgY2xhc3M9XCJkcmFnLWltYWdlLXBsYWNlaG9sZGVyXCI+PC9kaXY+XG48L3NjaS12aWV3cG9ydD5cbjx3Yi1wYXJ0LWFjdGlvbi1iYXIvPlxuPHdiLXZpZXctbGlzdC1idXR0b24vPlxuXG48IS0tIEVsZW1lbnQgZm9yIGluamVjdGluZyB0aGUgY29ybmVyIHJhZGl1cyBpbnRvIHRoZSBjb21wb25lbnQuIC0tPlxuPGRpdiBjbGFzcz1cInRhYi1jb3JuZXItcmFkaXVzXCIgI3RhYl9jb3JuZXJfcmFkaXVzPjwvZGl2PlxuPCEtLSBFbGVtZW50IGZvciBpbmplY3RpbmcgdGhlIHRhYmJhciBwYWRkaW5nIGludG8gdGhlIGNvbXBvbmVudC4gLS0+XG48ZGl2IGNsYXNzPVwicGFkZGluZy1pbmxpbmVcIiAjcGFkZGluZ19pbmxpbmU+PC9kaXY+XG4iXX0=
|
|
459
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydC1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvcGFydC9wYXJ0LWJhci9wYXJ0LWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9wYXJ0L3BhcnQtYmFyL3BhcnQtYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBYyxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBNkIsU0FBUyxFQUFFLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxSSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVoRSxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUYsT0FBTyxFQUFDLHVCQUF1QixFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQWMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2xJLE9BQU8sRUFBYyxpQkFBaUIsRUFBMkIsTUFBTSxxREFBcUQsQ0FBQztBQUU3SCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUV0SCxPQUFPLEVBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDL0YsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFaEUsT0FB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SSxFQUFFLFVBQVUsRUFBQztnQkFJekQsa0JBQWtCO3NCQUR6QixTQUFTO3VCQUFDLG9CQUFvQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJdkMsdUJBQXVCO3NCQUQ5QixTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJdEMscUJBQXFCO3NCQUQ1QixTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJaEMsY0FBYztzQkFEeEIsWUFBWTt1QkFBQyxnQkFBZ0I7Z0JBcUV2QixhQUFhO3NCQURuQixZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkF3QjdCLGVBQWU7c0JBRHJCLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQThDOUIsYUFBYTtzQkFEbkIsWUFBWTt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIzIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgRGVzdHJveVJlZiwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3QsIE5nWm9uZSwgT25Jbml0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Vmlld1RhYkNvbXBvbmVudH0gZnJvbSAnLi4vdmlldy10YWIvdmlldy10YWIuY29tcG9uZW50JztcbmltcG9ydCB7V29ya2JlbmNoTGF5b3V0U2VydmljZX0gZnJvbSAnLi4vLi4vbGF5b3V0L3dvcmtiZW5jaC1sYXlvdXQuc2VydmljZSc7XG5pbXBvcnQge2ZpbHRlciwgbWFwLCBtZXJnZU1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2UsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHthbmltYXRpb25GcmFtZVNjaGVkdWxlciwgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmaXJzdFZhbHVlRnJvbSwgZnJvbSwgaW50ZXJ2YWwsIE9ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb25zdHJhaW5GbiwgVmlld0RyYWdJbWFnZVJlY3QsIFZpZXdUYWJEcmFnSW1hZ2VSZW5kZXJlcn0gZnJvbSAnLi4vLi4vdmlldy1kbmQvdmlldy10YWItZHJhZy1pbWFnZS1yZW5kZXJlci5zZXJ2aWNlJztcbmltcG9ydCB7Vmlld0RyYWdEYXRhLCBWaWV3RHJhZ1NlcnZpY2V9IGZyb20gJy4uLy4uL3ZpZXctZG5kL3ZpZXctZHJhZy5zZXJ2aWNlJztcbmltcG9ydCB7Z2V0Q3NzVHJhbnNsYXRpb24sIHNldENzc0NsYXNzLCBzZXRDc3NWYXJpYWJsZSwgdW5zZXRDc3NDbGFzcywgdW5zZXRDc3NWYXJpYWJsZX0gZnJvbSAnLi4vLi4vY29tbW9uL2RvbS51dGlsJztcbmltcG9ydCB7ybVXb3JrYmVuY2hQYXJ0fSBmcm9tICcuLi/JtXdvcmtiZW5jaC1wYXJ0Lm1vZGVsJztcbmltcG9ydCB7ZmlsdGVyQXJyYXksIG1hcEFycmF5LCBvYnNlcnZlSW5zaWRlLCBzdWJzY3JpYmVJbnNpZGV9IGZyb20gJ0BzY2lvbi90b29sa2l0L29wZXJhdG9ycyc7XG5pbXBvcnQge1NjaVZpZXdwb3J0Q29tcG9uZW50fSBmcm9tICdAc2Npb24vY29tcG9uZW50cy92aWV3cG9ydCc7XG5pbXBvcnQge8m1V29ya2JlbmNoUm91dGVyfSBmcm9tICcuLi8uLi9yb3V0aW5nL8m1d29ya2JlbmNoLXJvdXRlci5zZXJ2aWNlJztcbmltcG9ydCB7U2NpRGltZW5zaW9uTW9kdWxlfSBmcm9tICdAc2Npb24vY29tcG9uZW50cy9kaW1lbnNpb24nO1xuaW1wb3J0IHtBc3luY1BpcGUsIE5nRm9yLCBOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtQYXJ0QWN0aW9uQmFyQ29tcG9uZW50fSBmcm9tICcuLi9wYXJ0LWFjdGlvbi1iYXIvcGFydC1hY3Rpb24tYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQge1ZpZXdMaXN0QnV0dG9uQ29tcG9uZW50fSBmcm9tICcuLi92aWV3LWxpc3QtYnV0dG9uL3ZpZXctbGlzdC1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge2Zyb21EaW1lbnNpb24kfSBmcm9tICdAc2Npb24vdG9vbGtpdC9vYnNlcnZhYmxlJztcbmltcG9ydCB7V09SS0JFTkNIX0lEfSBmcm9tICcuLi8uLi93b3JrYmVuY2gtaWQnO1xuaW1wb3J0IHtWaWV3SWR9IGZyb20gJy4uLy4uL3ZpZXcvd29ya2JlbmNoLXZpZXcubW9kZWwnO1xuXG4vKipcbiAqIFJlbmRlcnMgdmlldyB0YWJzIGFuZCBhY3Rpb25zIG9mIGEge0BsaW5rIFdvcmtiZW5jaFBhcnR9LlxuICpcbiAqIFRhYnMgYXJlIGFkZGVkIHRvIGEgdmlld3BvcnQsIHdoaWNoIHRoZSB1c2VyIGNhbiBzY3JvbGwgaWYgbm90IGVub3VnaCBzcGFjZS4gVGhlIHZpZXdwb3J0IGdyb3dzIHdpdGggaXRzIHRhYnMsXG4gKiBhbGxvd2luZyBhY3Rpb25zIHRvIGJlIHBsYWNlZCBkaXJlY3RseSBhZnRlciB0aGUgbGFzdCB0YWIgb3Igb24gdGhlIHJpZ2h0IHNpZGUuXG4gKlxuICogIyMgRHJhZyBFdmVudHNcbiAqIFdlIHVzZSBuYXRpdmUgZHJhZyBhbmQgZHJvcCB0byBzdXBwb3J0IGRyYWdnaW5nIHZpZXdzIHRvIG90aGVyIHdpbmRvd3MuXG4gKlxuICogQnkgbGlzdGVuaW5nIHRvIGRyYWcgZXZlbnRzLCB0aGUgdGFiYmFyIHZpc3VhbGl6ZXMgdGFicyBkdXJpbmcgYSBkcmFnIG9wZXJhdGlvbi4gVGhlIGRyYWcgb3BlcmF0aW9uIGlzIGluaXRpYXRlZCBpbiB7QGxpbmsgVmlld1RhYkNvbXBvbmVudH0uXG4gKiAtIGBkcmFnc3RhcnRgIGFuZCBgZHJhZ2VuZGAgZXZlbnRzIGFyZSBmaXJlZCBpbiB0aGUgdGFiYmFyIHdoZXJlIHRoZSBkcmFnIG9wZXJhdGlvbiB3YXMgaW5pdGlhdGVkLlxuICogLSBgZHJhZ2VudGVyYCBldmVudCBpcyBmaXJlZCB3aGVuIGEgdGFiIGVudGVycyB0aGUgdGFiYmFyLlxuICogLSBgZHJhZ292ZXJgIGV2ZW50cyBhcmUgZmlyZWQgd2hlbiBkcmFnZ2luZyBhIHRhYiBvdmVyIHRoZSB0YWJiYXIuXG4gKiAtIGBkcmFnbGVhdmVgIGV2ZW50IGlzIGZpcmVkIHdoZW4gYSB0YWIgbGVhdmVzIHRoZSB0YWJiYXIuXG4gKiAtIGBkcm9wYCBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIGRyb3BzIGEgdGFiIGluIHRoZSB0YWJiYXIuXG4gKiAtIE5vdGUgdGhhdCBgZHJhZ2xlYXZlYCBldmVudCBpcyBub3QgZmlyZWQgb24gZHJvcCBhY3Rpb24uIFRoZXJlZm9yZSwgYWx3YXlzIGhhbmRsZSBib3RoIGV2ZW50cywgYGRyYWdsZWF2ZWAgYW5kIGBkcm9wYCBldmVudHMsIHJlc3BlY3RpdmVseS5cbiAqXG4gKiAjIyBUZXJtaW5vbG9neVxuICogLSBEcmFnIHNvdXJjZTogVGFiIHRoYXQgaXMgYmVpbmcgZHJhZ2dlZC5cbiAqIC0gRHJvcCB0YXJnZXQ6IFRhYiBiZWZvcmUgd2hpY2ggdG8gaW5zZXJ0IHRoZSBkcmFnIHNvdXJjZSBvbiBkcm9wLCBvciBgZW5kYCBpZiBkcm9wcGluZyBpdCBhZnRlciB0aGUgbGFzdCB0YWIuXG4gKiAtIERyYWcgaW1hZ2U6ICBJbWFnZSBmb3IgdGhlIHRhYiB0byBiZSBkcmFnZ2VkLiBXZSBkbyBub3QgdXNlIHRoZSBuYXRpdmUgZHJhZyBpbWFnZSBzdXBwb3J0IHRvIGNvbnRyb2wgZHJhZyBpbWFnZSBwb3NpdGlvbiBhbmQgc2l6ZSxcbiAqICAgICAgICAgICAgICAgIGUuZy4sIHRvIHNuYXAgdGhlIGRyYWcgaW1hZ2UgdG8gdGhlIHRhYmJhciB3aGVuIGRyYWdnaW5nIG5lYXIgaXQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3diLXBhcnQtYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhcnQtYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFydC1iYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nRm9yLFxuICAgIEFzeW5jUGlwZSxcbiAgICBTY2lWaWV3cG9ydENvbXBvbmVudCxcbiAgICBTY2lEaW1lbnNpb25Nb2R1bGUsXG4gICAgVmlld1RhYkNvbXBvbmVudCxcbiAgICBQYXJ0QWN0aW9uQmFyQ29tcG9uZW50LFxuICAgIFZpZXdMaXN0QnV0dG9uQ29tcG9uZW50LFxuICAgIE5nSWYsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFBhcnRCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2hvc3Q6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIHJlYWRvbmx5IF92aWV3cG9ydENoYW5nZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF92aWV3VGFicyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFZpZXdUYWJDb21wb25lbnRbXT4oW10pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kcmFnZW50ZXIkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZHJhZ2xlYXZlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RyYWdlbmQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGRyYWdvdmVyJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBAVmlld0NoaWxkKFNjaVZpZXdwb3J0Q29tcG9uZW50LCB7c3RhdGljOiB0cnVlLCByZWFkOiBFbGVtZW50UmVmfSlcbiAgcHJpdmF0ZSBfdmlld3BvcnRFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZChTY2lWaWV3cG9ydENvbXBvbmVudCwge3N0YXRpYzogdHJ1ZX0pXG4gIHByaXZhdGUgX3ZpZXdwb3J0Q29tcG9uZW50ITogU2NpVmlld3BvcnRDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZCgndGFiX2Nvcm5lcl9yYWRpdXMnLCB7c3RhdGljOiB0cnVlfSlcbiAgcHJpdmF0ZSBfdGFiQ29ybmVyUmFkaXVzRWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ3BhZGRpbmdfaW5saW5lJywge3N0YXRpYzogdHJ1ZX0pXG4gIHByaXZhdGUgX3BhZGRpbmdJbmxpbmVFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZHJlbihWaWV3VGFiQ29tcG9uZW50KVxuICBwdWJsaWMgc2V0IGluamVjdFZpZXdUYWJzKHF1ZXJ5TGlzdDogUXVlcnlMaXN0PFZpZXdUYWJDb21wb25lbnQ+KSB7XG4gICAgcXVlcnlMaXN0LmNoYW5nZXNcbiAgICAgIC5waXBlKHN0YXJ0V2l0aChxdWVyeUxpc3QpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAuc3Vic2NyaWJlKHF1ZXJ5TGlzdCA9PiB0aGlzLl92aWV3VGFicyQubmV4dChxdWVyeUxpc3QudG9BcnJheSgpKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHRoZSB0YWIgYmVmb3JlIHdoaWNoIHRvIGluc2VydCB0aGUgZHJhZyBzb3VyY2Ugb24gZHJvcCwgb3IgYGVuZGAgaWYgZHJvcHBpbmcgaXQgYWZ0ZXIgdGhlIGxhc3QgdGFiLlxuICAgKi9cbiAgcHVibGljIGRyb3BUYXJnZXRWaWV3VGFiOiBWaWV3VGFiQ29tcG9uZW50IHwgJ2VuZCcgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHRoZSB0YWIgd2hlcmUgdGhlIGRyYWcgb3BlcmF0aW9uIHdhcyBzdGFydGVkLlxuICAgKiBUaGlzIHJlZmVyZW5jZSBpcyBvbmx5IHNldCBpZiB0aGUgZHJhZyBvcGVyYXRpb24gc3RhcnRlZCBvbiBhIHRhYiBvZiB0aGlzIHRhYmJhci5cbiAgICovXG4gIHB1YmxpYyBkcmFnU291cmNlVmlld1RhYjogVmlld1RhYkNvbXBvbmVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBUcmFuc2ZlciBkYXRhIG9mIHRoZSB0YWIgYmVpbmcgZHJhZ2dlZCBvdmVyIHRoaXMgdGFiYmFyLlxuICAgKi9cbiAgcHJpdmF0ZSBfZHJhZ0RhdGE6IFZpZXdEcmFnRGF0YSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiBmb3Igc25hcHBpbmcgdGhlIGRyYWcgaW1hZ2UgdG8gdGhlIHRhYmJhciB3aGVuIGRyYWdnaW5nIG5lYXIgaXQuXG4gICAqL1xuICBwcml2YXRlIF9jb25zdHJhaW5GbjogQ29uc3RyYWluRm4gfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogVGFiYmFyIGluZGVudHMgd2hlcmUgdG8gZGlzcGxheSB0aGUgcm91bmRlZCBib3R0b20gY29ybmVycyBvZiB0aGUgZmlyc3QgYW5kIGxhc3QgdmlldyB0YWIuXG4gICAqL1xuICBwcml2YXRlIF90YWJiYXJJbmRlbnQgPSB7XG4gICAgbGVmdDogMCxcbiAgICByaWdodDogMCxcbiAgfTtcblxuICAvKipcbiAgICogTm90aWZpZXMgd2hlbiB0aGUgZHJhZyBhbmltYXRpb24gaGFzIGZpbmlzaGVkLCBpLmUuLCB0YWJzIGhhdmUgdHJhbnNpdGlvbmVkIHRvIHRoZWlyIGZpbmFsIHBvc2l0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBfZHJhZ0FuaW1hdGlvblN0YWJsZSQgPSBpbnRlcnZhbCgwLCBhbmltYXRpb25GcmFtZVNjaGVkdWxlcilcbiAgICAucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmlzRHJhZ0FuaW1hdGlvblN0YWJsZSgpKSxcbiAgICAgIHN1YnNjcmliZUluc2lkZShjb250aW51ZUZuID0+IHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoY29udGludWVGbikpLFxuICAgICAgb2JzZXJ2ZUluc2lkZShjb250aW51ZUZuID0+IHRoaXMuX3pvbmUucnVuKGNvbnRpbnVlRm4pKSxcbiAgICAgIG1hcCgoKSA9PiB1bmRlZmluZWQgYXMgdm9pZCksXG4gICAgKTtcblxuICBjb25zdHJ1Y3Rvcihob3N0OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgICAgICAgQEluamVjdChXT1JLQkVOQ0hfSUQpIHByaXZhdGUgX3dvcmtiZW5jaElkOiBzdHJpbmcsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3dvcmtiZW5jaExheW91dFNlcnZpY2U6IFdvcmtiZW5jaExheW91dFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3JvdXRlcjogybVXb3JrYmVuY2hSb3V0ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3ZpZXdUYWJEcmFnSW1hZ2VSZW5kZXJlcjogVmlld1RhYkRyYWdJbWFnZVJlbmRlcmVyLFxuICAgICAgICAgICAgICBwcml2YXRlIF9wYXJ0OiDJtVdvcmtiZW5jaFBhcnQsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3ZpZXdEcmFnU2VydmljZTogVmlld0RyYWdTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9kZXN0cm95UmVmOiBEZXN0cm95UmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIF96b25lOiBOZ1pvbmUpIHtcbiAgICB0aGlzLl9ob3N0ID0gaG9zdC5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMuZHJhZ292ZXIkID0gdGhpcy5fdmlld0RyYWdTZXJ2aWNlLnRhYmJhckRyYWdPdmVyJC5waXBlKG1hcChwYXJ0SWQgPT4gcGFydElkID09PSB0aGlzLl9wYXJ0LmlkKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnN0YWxsQWN0aXZlVmlld1Njcm9sbGVyKCk7XG4gICAgdGhpcy5pbnN0YWxsU2Nyb2xsZWRJbnRvVmlld1VwZGF0ZXIoKTtcbiAgICB0aGlzLmluc3RhbGxWaWV3RHJhZ0xpc3RlbmVyKCk7XG4gICAgdGhpcy5pbnN0YWxsVGFiYmFySW5kZW50U2l6ZURldGVjdG9yKCk7XG4gICAgdGhpcy5pbnN0YWxsVmlld3BvcnRDbGllbnRTaXplRGV0ZWN0b3IoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RibGNsaWNrJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRG91YmxlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fcGFydC5pc0luTWFpbkFyZWEpIHtcbiAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShsYXlvdXQgPT4gbGF5b3V0LnRvZ2dsZU1heGltaXplZCgpKS50aGVuKCk7XG4gICAgfVxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgcHVibGljIGdldCB2aWV3SWRzJCgpOiBPYnNlcnZhYmxlPFZpZXdJZFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnQudmlld0lkcyQ7XG4gIH1cblxuICBwdWJsaWMgb25UYWJiYXJWaWV3cG9ydERpbWVuc2lvbkNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLl92aWV3cG9ydENoYW5nZSQubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIG9uU2Nyb2xsKCk6IHZvaWQge1xuICAgIHRoaXMuX3ZpZXdwb3J0Q2hhbmdlJC5uZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIGludm9rZWQgd2hlbiB0aGUgdXNlciBzdGFydHMgZHJhZ2dpbmcgYSB0YWIgb2YgdGhpcyB0YWJiYXIuXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdkcmFnc3RhcnQnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25WaWV3RHJhZ1N0YXJ0KGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3ZpZXdEcmFnU2VydmljZS5pc1ZpZXdEcmFnRXZlbnQoZXZlbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZHJhZ0RhdGEgPSB0aGlzLl92aWV3RHJhZ1NlcnZpY2Uudmlld0RyYWdEYXRhITtcbiAgICBjb25zdCBkcmFnU291cmNlSW5kZXggPSB0aGlzLl92aWV3VGFicy5maW5kSW5kZXgodmlld1RhYiA9PiB2aWV3VGFiLnZpZXdJZCA9PT0gZHJhZ0RhdGEudmlld0lkKTtcbiAgICBjb25zdCBkcmFnU291cmNlVmlld1RhYiA9IHRoaXMuX3ZpZXdUYWJzW2RyYWdTb3VyY2VJbmRleF07XG4gICAgY29uc3QgZHJvcFRhcmdldFZpZXdUYWIgPSB0aGlzLl92aWV3VGFic1tkcmFnU291cmNlSW5kZXggKyAxXSA/PyAnZW5kJztcblxuICAgIC8vIENvbnN0cmFpbiBmdW5jdGlvbiBmb3Igc25hcHBpbmcgdGhlIGRyYWcgaW1hZ2UgdG8gdGhlIHRhYmJhciB3aGVuIGRyYWdnaW5nIG5lYXIgaXQuXG4gICAgdGhpcy5fY29uc3RyYWluRm4gPSB0aGlzLmNyZWF0ZURyYWdJbWFnZUNvbnN0cmFpbkZuKCk7XG4gICAgdGhpcy5fdmlld1RhYkRyYWdJbWFnZVJlbmRlcmVyLnNldENvbnN0cmFpbkRyYWdJbWFnZVJlY3RGbih0aGlzLl9jb25zdHJhaW5Gbik7XG4gICAgdGhpcy5fdmlld0RyYWdTZXJ2aWNlLnNldFRhYmJhckRyYWdvdmVyKHRoaXMuX3BhcnQuaWQpO1xuXG4gICAgLy8gV2hlbiBzdGFydCBkcmFnZ2luZyBhIHZpZXcgdGFiLCB3ZSByZW1vdmUgaXQgZnJvbSB0aGUgdGFiYmFyIGJ5IHNldHRpbmcgaXRzIGBkaXNwbGF5YCB0byBgbm9uZWAgYW5kIHJlbmRlciBpdHMgZHJhZyBpbWFnZSBpbiBgVmlld1RhYkRyYWdJbWFnZVJlbmRlcmVyYCBpbnN0ZWFkLlxuICAgIC8vIEhvd2V2ZXIsIGRvIG5vdCB1bnNldCB0aGUgYGRpc3BsYXlgIG9mIHRoZSBkcmFnIHNvdXJjZSBkdXJpbmcgYGRyYWdzdGFydGAuIE90aGVyd2lzZSwgdGhlIG5hdGl2ZSBkcmFnIG9wZXJhdGlvbiB3b3VsZCBiZSBjb3JydXB0ZWQgaW4gQ2hyb21lIGFuZCBFZGdlIChidXQgbm90IGluIEZpcmVmb3gpLlxuICAgIGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyLnNjaGVkdWxlKCgpID0+IHtcbiAgICAgIHRoaXMuZHJhZ1NvdXJjZVZpZXdUYWIgPSBkcmFnU291cmNlVmlld1RhYjtcbiAgICAgIHRoaXMuZHJvcFRhcmdldFZpZXdUYWIgPSBkcm9wVGFyZ2V0Vmlld1RhYjsgLy8gU2V0IGRyb3AgdGFyZ2V0IHRvIGF2b2lkIHRhYiBhbmltYXRpb24uXG4gICAgICBzZXRDc3NWYXJpYWJsZSh0aGlzLl9ob3N0LCB7XG4gICAgICAgICctLcm1cGFydC1iYXItZHJhZy1zb3VyY2Utd2lkdGgnOiBgJHtkcmFnRGF0YS52aWV3VGFiV2lkdGh9cHhgLFxuICAgICAgICAnLS3JtXBhcnQtYmFyLWRyYWctaW1hZ2UtcGxhY2Vob2xkZXItd2lkdGgnOiBgJHtkcmFnRGF0YS52aWV3VGFiV2lkdGh9cHhgLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvLyBXaGVuIGRyYWdnaW5nIGEgdGFiIHZlcnkgcXVpY2tseSBvdXQgb2YgdGhpcyB0YWJiYXIsIG9ubHkgdGhlIGBkcmFnc3RhcnRgIGV2ZW50IGdldHMgZmlyZWQsIGJ1dCBub3QgdGhlIGBkcmFnZW50ZXJgIGV2ZW50LlxuICAgIC8vIFRoZXJlZm9yZSwgd2Ugc3Vic2NyaWJlIHRvIGdsb2JhbCBgZHJhZ2VudGVyYCBldmVudHMgYW5kIG1hbnVhbGx5IGludm9rZSBgb25UYWJiYXJEcmFnTGVhdmVgIHRvIGNvcnJlY3RseSBkaXNwbGF5IHRoZSB0YWJzIGFuZCB0aGUgYWN0aXZlIHZpZXcuXG4gICAgdGhpcy5fdmlld0RyYWdTZXJ2aWNlLnZpZXdEcmFnJCh3aW5kb3csIHtldmVudFR5cGU6IFsnZHJhZ2VudGVyJ119KVxuICAgICAgLnBpcGUodGFrZSgxKSwgdGFrZVVudGlsKHRoaXMuX2RyYWdlbmQkKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSB1c2VyIGNvbnRpbnVlcyBkcmFnZ2luZyBvdmVyIHRoaXMgdGFiYmFyLlxuICAgICAgICAvLyBJZiBub3QsIHRoZSB1c2VyIGhhcyBxdWlja2x5IGRyYWdnZWQgdGhlIHRhYiBvdXQgb2YgdGhlIHRhYmJhciBhbmQgd2UgIG1hbnVhbGx5IGNhbGwgYG9uVGFiYmFyRHJhZ0xlYXZlYC5cbiAgICAgICAgaWYgKCh0aGlzLl9ob3N0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KSAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZKSA9PT0gMCkge1xuICAgICAgICAgIHRoaXMub25UYWJiYXJEcmFnTGVhdmUoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIGludm9rZWQgd2hlbiB0aGUgdXNlciBlbmRzIGRyYWdnaW5nIGEgdGFiIG9mIHRoaXMgdGFiYmFyLlxuICAgKlxuICAgKiBJbnZva2VkIG9ubHkgaW4gdGhlIHRhYmJhciB3aGVyZSB0aGUgZHJhZyBvcGVyYXRpb24gc3RhcnRlZCwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBkcmFnIG9wZXJhdGlvbiB3YXMgY29tcGxldGVkIG9yIGNhbmNlbGVkLlxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2VuZCcpXG4gIHB1YmxpYyBvblZpZXdEcmFnRW5kKCk6IHZvaWQge1xuICAgIHRoaXMuX2RyYWdlbmQkLm5leHQoKTtcbiAgICB0aGlzLnVuc2V0RHJhZ1N0YXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIGludm9rZWQgd2hlbiB0aGUgdXNlciBkcmFncyBhIHRhYiBpbnRvIHRoaXMgdGFiYmFyLlxuICAgKi9cbiAgcHJpdmF0ZSBvblRhYmJhckRyYWdFbnRlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fZHJhZ2VudGVyJC5uZXh0KCk7XG4gICAgdGhpcy5fdmlld0RyYWdTZXJ2aWNlLnNldFRhYmJhckRyYWdvdmVyKHRoaXMuX3BhcnQuaWQpO1xuICAgIHRoaXMuX2RyYWdEYXRhID0gdGhpcy5fdmlld0RyYWdTZXJ2aWNlLnZpZXdEcmFnRGF0YSE7XG5cbiAgICAvLyBDb25zdHJhaW4gZnVuY3Rpb24gZm9yIHNuYXBwaW5nIHRoZSBkcmFnIGltYWdlIHRvIHRoZSB0YWJiYXIgd2hlbiBkcmFnZ2luZyBuZWFyIGl0LlxuICAgIGlmICghdGhpcy5fY29uc3RyYWluRm4pIHtcbiAgICAgIHRoaXMuX2NvbnN0cmFpbkZuID0gdGhpcy5jcmVhdGVEcmFnSW1hZ2VDb25zdHJhaW5GbigpO1xuICAgICAgdGhpcy5fdmlld1RhYkRyYWdJbWFnZVJlbmRlcmVyLnNldENvbnN0cmFpbkRyYWdJbWFnZVJlY3RGbih0aGlzLl9jb25zdHJhaW5Gbik7XG4gICAgfVxuXG4gICAgLy8gTG9jYXRlIGRyb3AgdGFyZ2V0IHRvIGhhdmUgYSBuaWNlIGFuaW1hdGlvbiBmb3IgdGhlIGRyYWcgc291cmNlIHBsYWNlaG9sZGVyLlxuICAgIHRoaXMuZHJvcFRhcmdldFZpZXdUYWIgPSB0aGlzLmNvbXB1dGVEcm9wVGFyZ2V0KGV2ZW50KTtcblxuICAgIC8vIFNldCB0aGUgQ1NTIGNsYXNzICdkcmFnLWVudGVyJyB0byBpbmRpY2F0ZSBlbnRlcmluZyB0aGUgdGFiYmFyLlxuICAgIHNldENzc0NsYXNzKHRoaXMuX2hvc3QsICdkcmFnLWVudGVyJywgJ2RyYWctb3ZlcicpO1xuICAgIHRoaXMuX2RyYWdBbmltYXRpb25TdGFibGUkXG4gICAgICAucGlwZSh0YWtlKDEpLCB0YWtlVW50aWwodGhpcy5fZHJhZ2VudGVyJCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoe2NvbXBsZXRlOiAoKSA9PiB1bnNldENzc0NsYXNzKHRoaXMuX2hvc3QsICdkcmFnLWVudGVyJyl9KTtcblxuICAgIHNldENzc1ZhcmlhYmxlKHRoaXMuX2hvc3QsIHtcbiAgICAgICctLcm1cGFydC1iYXItZHJhZy1zb3VyY2Utd2lkdGgnOiBgJHt0aGlzLl9kcmFnRGF0YS52aWV3VGFiV2lkdGh9cHhgLFxuICAgICAgJy0tybVwYXJ0LWJhci1kcmFnLWltYWdlLXBsYWNlaG9sZGVyLXdpZHRoJzogYCR7dGhpcy5fZHJhZ0RhdGEudmlld1RhYldpZHRofXB4YCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgaW52b2tlZCB3aGVuIHRoZSB1c2VyIGRyYWdzIGEgdGFiIG91dCBvZiB0aGlzIHRhYmJhci5cbiAgICovXG4gIHByaXZhdGUgb25UYWJiYXJEcmFnTGVhdmUoKTogdm9pZCB7XG4gICAgdGhpcy5fZHJhZ2xlYXZlJC5uZXh0KCk7XG5cbiAgICAvLyBTZXQgdGhlIENTUyBjbGFzcyAnZHJhZy1sZWF2ZScgdG8gaW5kaWNhdGUgbGVhdmluZyB0aGUgdGFiYmFyLlxuICAgIHNldENzc0NsYXNzKHRoaXMuX2hvc3QsICdkcmFnLWxlYXZlJyk7XG4gICAgdGhpcy5fZHJhZ0FuaW1hdGlvblN0YWJsZSRcbiAgICAgIC5waXBlKHRha2UoMSksIHRha2VVbnRpbCh0aGlzLl9kcmFnbGVhdmUkKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZSh7Y29tcGxldGU6ICgpID0+IHVuc2V0Q3NzQ2xhc3ModGhpcy5faG9zdCwgJ2RyYWctbGVhdmUnKX0pO1xuXG4gICAgdGhpcy51bnNldERyYWdTdGF0ZSh7dW5zZXREcmFnU291cmNlOiBmYWxzZX0pO1xuXG4gICAgLy8gQWN0aXZhdGUgdGhlIHZpZXcgbmV4dCB0byB0aGUgdmlldyBiZWluZyBkcmFnZ2VkIG91dCBvZiB0aGlzIHRhYmJhci4gQnV0LCBkbyBub3QgcHVzaCB0aGUgbmF2aWdhdGlvbiBpbnRvIGJyb3dzaW5nIGhpc3Rvcnkgc3RhY2suXG4gICAgaWYgKHRoaXMuZHJhZ1NvdXJjZVZpZXdUYWIgJiYgdGhpcy5kcmFnU291cmNlVmlld1RhYi5hY3RpdmUpIHtcbiAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShsYXlvdXQgPT4gbGF5b3V0LmFjdGl2YXRlQWRqYWNlbnRWaWV3KHRoaXMuZHJhZ1NvdXJjZVZpZXdUYWIhLnZpZXdJZCksIHtza2lwTG9jYXRpb25DaGFuZ2U6IHRydWV9KS50aGVuKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBpbnZva2VkIHdoaWxlIHRoZSB1c2VyIGlzIGRyYWdnaW5nIGEgdGFiIG92ZXIgdGhpcyB0YWJiYXIuXG4gICAqL1xuICBwcml2YXRlIG9uVGFiYmFyRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IC8vIGFsbG93IHZpZXcgZHJvcFxuXG4gICAgLy8gTG9jYXRlIHRoZSB0YWIgb3ZlciB3aGljaCB0aGUgdXNlciBpcyBkcmFnZ2luZyB0aGUgdGFiLCBidXQgb25seSBhZnRlciBwZW5kaW5nIHRyYW5zaXRpb25zIGhhdmUgZW5kZWQgdG8gcHJldmVudCB0YWJzIGZyb20gc2xpZGluZyBiYWNrIGFuZCBmb3J0aC5cbiAgICBpZiAodGhpcy5pc0RyYWdBbmltYXRpb25TdGFibGUoKSkge1xuICAgICAgdGhpcy5kcm9wVGFyZ2V0Vmlld1RhYiA9IHRoaXMuY29tcHV0ZURyb3BUYXJnZXQoZXZlbnQpO1xuICAgICAgLy8gU3luY2hyb25pemUgdGhlIHdpZHRoIG9mIHRoZSBkcmFnIHNvdXJjZSBwbGFjZWhvbGRlciB3aXRoIHRoZSBkcmFnIHBvaW50ZXIgcG9zaXRpb24gdG8gbW92ZSBhY3Rpb25zIGFsb25nIHdpdGggdGhlIHBvaW50ZXIuXG4gICAgICBzZXRDc3NWYXJpYWJsZSh0aGlzLl9ob3N0LCB7Jy0tybVwYXJ0LWJhci1kcmFnLWltYWdlLXBsYWNlaG9sZGVyLXdpZHRoJzogYCR7dGhpcy5jYWxjdWxhdGVEcmFnSW1hZ2VQbGFjZWhvbGRlcldpZHRoKGV2ZW50KX1weGB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIGludm9rZWQgd2hlbiB0aGUgdXNlciBkcm9wcyBhIHRhYiBpbiB0aGlzIHRhYmJhci5cbiAgICovXG4gIHByaXZhdGUgb25UYWJiYXJEcm9wKCk6IHZvaWQge1xuICAgIHRoaXMuX3ZpZXdEcmFnU2VydmljZS5kaXNwYXRjaFZpZXdNb3ZlRXZlbnQoe1xuICAgICAgc291cmNlOiB7XG4gICAgICAgIHdvcmtiZW5jaElkOiB0aGlzLl9kcmFnRGF0YSEud29ya2JlbmNoSWQsXG4gICAgICAgIHBhcnRJZDogdGhpcy5fZHJhZ0RhdGEhLnBhcnRJZCxcbiAgICAgICAgdmlld0lkOiB0aGlzLl9kcmFnRGF0YSEudmlld0lkLFxuICAgICAgICBhbHRlcm5hdGl2ZVZpZXdJZDogdGhpcy5fZHJhZ0RhdGEhLmFsdGVybmF0aXZlVmlld0lkLFxuICAgICAgICB2aWV3VXJsU2VnbWVudHM6IHRoaXMuX2RyYWdEYXRhIS52aWV3VXJsU2VnbWVudHMsXG4gICAgICAgIG5hdmlnYXRpb25IaW50OiB0aGlzLl9kcmFnRGF0YSEubmF2aWdhdGlvbkhpbnQsXG4gICAgICAgIGNsYXNzTGlzdDogdGhpcy5fZHJhZ0RhdGEhLmNsYXNzTGlzdCxcbiAgICAgIH0sXG4gICAgICB0YXJnZXQ6IHtcbiAgICAgICAgd29ya2JlbmNoSWQ6IHRoaXMuX3dvcmtiZW5jaElkLFxuICAgICAgICBwb3NpdGlvbjogdGhpcy5kcm9wVGFyZ2V0Vmlld1RhYiA9PT0gJ2VuZCcgPyAnZW5kJyA6IHRoaXMuX3ZpZXdUYWJzLmluZGV4T2YodGhpcy5kcm9wVGFyZ2V0Vmlld1RhYiEpLFxuICAgICAgICBlbGVtZW50SWQ6IHRoaXMuX3BhcnQuaWQsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gV2FpdCB1bmRvaW5nIHRoZSBkcmFnIHN0YXRlIHVudGlsIGZsdXNoZWQgdGFiIGNoYW5nZXMgdG8gdGhlIERPTSwgaS5lLiwgYWZ0ZXIgdGhlIGxheW91dCByb3V0aW5nIGN5Y2xlIGNvbXBsZXRlcy5cbiAgICAvLyBJZiB3ZSB3ZXJlIHRvIHVuZG8gdGhlIGRyYWcgc3RhdGUgaW1tZWRpYXRlbHkgZHVyaW5nIHRoZSBjb3Vyc2Ugb2YgdGhlIGRyb3AgZXZlbnQsIHRoZSB0YWIgbGF5b3V0IHdvdWxkIHRlbXBvcmFyaWx5XG4gICAgLy8gcmV2ZXJ0IHRvIHRoZSBzdGF0ZSBiZWZvcmUgdGhlIGRyYWcgb3BlcmF0aW9uLCByZXN1bHRpbmcgaW4gYW4gdWdseSBmbGlja2VyLlxuICAgIGZpcnN0VmFsdWVGcm9tKHRoaXMuX3dvcmtiZW5jaExheW91dFNlcnZpY2Uub25MYXlvdXRDaGFuZ2UkKS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMudW5zZXREcmFnU3RhdGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2NhdGVzIHRoZSB0YWIgYmVmb3JlIHdoaWNoIHRoZSBkcmFnZ2VkIHRhYiBpcyB0byBiZSBpbnNlcnRlZCB3aGVuIGl0IGlzIGRyb3BwZWQuIERyYWdnaW5nIGJleW9uZCB0aGUgbGFzdCB0YWIgcmV0dXJucyBgZW5kYC5cbiAgICovXG4gIHB1YmxpYyBjb21wdXRlRHJvcFRhcmdldChldmVudDogRHJhZ0V2ZW50KTogVmlld1RhYkNvbXBvbmVudCB8ICdlbmQnIHtcbiAgICBjb25zdCB2aWV3RHJhZ0ltYWdlUmVjdCA9IHRoaXMuX3ZpZXdUYWJEcmFnSW1hZ2VSZW5kZXJlci5jYWxjdWxhdGVEcmFnSW1hZ2VSZWN0KHRoaXMuX2RyYWdEYXRhISwgZXZlbnQpO1xuICAgIGNvbnN0IHZpZXdUYWJzID0gdGhpcy5fdmlld1RhYnMuZmlsdGVyKHZpZXdUYWIgPT4gdmlld1RhYiAhPT0gdGhpcy5kcmFnU291cmNlVmlld1RhYik7XG5cbiAgICBmb3IgKGNvbnN0IHZpZXdUYWIgb2Ygdmlld1RhYnMpIHtcbiAgICAgIGNvbnN0IHZpZXdUYWJSZWN0ID0gdmlld1RhYi5ob3N0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3Qgdmlld1RhYk1pZGRsZSA9IHZpZXdUYWJSZWN0LmxlZnQgKyAodmlld1RhYlJlY3Qud2lkdGggLyAyKTtcbiAgICAgIGlmICh2aWV3RHJhZ0ltYWdlUmVjdC5sZWZ0IDwgdmlld1RhYk1pZGRsZSAmJiAodmlld1RhYiAhPT0gdGhpcy5kcm9wVGFyZ2V0Vmlld1RhYiB8fCB2aWV3RHJhZ0ltYWdlUmVjdC5yaWdodCA8IHZpZXdUYWJNaWRkbGUpKSB7XG4gICAgICAgIHJldHVybiB2aWV3VGFiO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gJ2VuZCc7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgZnVuY3Rpb24gZm9yIHNuYXBwaW5nIHRoZSBkcmFnIGltYWdlIHRvIHRoZSB0YWJiYXIgd2hlbiBkcmFnZ2luZyBuZWFyIGl0LlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVEcmFnSW1hZ2VDb25zdHJhaW5GbigpOiBDb25zdHJhaW5GbiB7XG4gICAgY29uc3QgaG9zdExlZnQgPSB0aGlzLl9ob3N0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ7XG4gICAgY29uc3QgbWF4Vmlld3BvcnRXaWR0aCA9IHRoaXMuY2FsY3VsYXRlTWF4Vmlld3BvcnRXaWR0aCgpO1xuICAgIHJldHVybiAocmVjdDogVmlld0RyYWdJbWFnZVJlY3QpOiBWaWV3RHJhZ0ltYWdlUmVjdCA9PiB7XG4gICAgICBjb25zdCB2aWV3cG9ydEJvdW5kaW5nQm94ID0gdGhpcy5fdmlld3BvcnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICByZXR1cm4gbmV3IFZpZXdEcmFnSW1hZ2VSZWN0KHtcbiAgICAgICAgeDogTWF0aC5taW4oTWF0aC5tYXgoaG9zdExlZnQgKyB0aGlzLl90YWJiYXJJbmRlbnQubGVmdCwgcmVjdC54KSwgaG9zdExlZnQgKyBtYXhWaWV3cG9ydFdpZHRoIC0gcmVjdC53aWR0aCAtIHRoaXMuX3RhYmJhckluZGVudC5yaWdodCksXG4gICAgICAgIHk6IHZpZXdwb3J0Qm91bmRpbmdCb3gudG9wLFxuICAgICAgICB3aWR0aDogcmVjdC53aWR0aCxcbiAgICAgICAgaGVpZ2h0OiB2aWV3cG9ydEJvdW5kaW5nQm94LmhlaWdodCwgLy8gZml0IGludG8gdGFiYmFyLCBlLmcuLCB3aGVuIGRyYWdnaW5nIGEgdGFiIGludG8gYSB0YWJiYXIgb2YgYSBkaWZmZXJlbnQgaGVpZ2h0XG4gICAgICB9KTtcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIG1heGltdW0gd2lkdGggb2YgdGhlIHRhYmJhciB2aWV3cG9ydCBiZWZvcmUgYW4gb3ZlcmZsb3cgd291bGQgb2NjdXIsIHdoaWNoIGNhbiB0aGVuIGJlIHVzZWQgdG8gY29uc3RyYWluIHRoZSBkcmFnIGltYWdlLlxuICAgKlxuICAgKiBUbyBjYWxjdWxhdGUgdGhlIGVmZmVjdGl2ZSB3aWR0aCwgd2UgbmVlZCB0byBzaW11bGF0ZSBhbiBvdmVyZmxvdyBpbiB0aGUgRE9NLiBUaGVyZWZvcmUsIGNhbGwgdGhpcyBtZXRob2Qgb25seSBmcm9tIGBkcmFnc3RhcnRgIGFuZCBub3RcbiAgICogZnJvbSBgZHJhZ292ZXJgIGFuZCBkaXNhYmxlIGFuaW1hdGlvbnMuXG4gICAqL1xuICBwcml2YXRlIGNhbGN1bGF0ZU1heFZpZXdwb3J0V2lkdGgoKTogbnVtYmVyIHtcbiAgICBjb25zdCBjdXJyZW50V2lkdGggPSB0aGlzLl9ob3N0LnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJy0tybVwYXJ0LWJhci1kcmFnLWltYWdlLXBsYWNlaG9sZGVyLXdpZHRoJyk7XG5cbiAgICAvLyBEaXNhYmxlIGFuaW1hdGlvbnMgZHVyaW5nIGNhbGN1bGF0aW9uIGFuZCBmb3JjZSB0aGUgdmlld3BvcnQgdG8gb3ZlcmZsb3cuXG4gICAgc2V0Q3NzQ2xhc3ModGhpcy5faG9zdCwgJ2NhbGN1bGF0aW5nLW1heC12aWV3cG9ydC13aWR0aCcpO1xuICAgIHNldENzc1ZhcmlhYmxlKHRoaXMuX2hvc3QsIHsnLS3JtXBhcnQtYmFyLWRyYWctaW1hZ2UtcGxhY2Vob2xkZXItd2lkdGgnOiBgJHt0aGlzLl9ob3N0LmNsaWVudFdpZHRofXB4YH0pO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpcy5fdmlld3BvcnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgfVxuICAgIGZpbmFsbHkge1xuICAgICAgc2V0Q3NzVmFyaWFibGUodGhpcy5faG9zdCwgeyctLcm1cGFydC1iYXItZHJhZy1pbWFnZS1wbGFjZWhvbGRlci13aWR0aCc6IGN1cnJlbnRXaWR0aCB8fCBudWxsfSk7XG4gICAgICB1bnNldENzc0NsYXNzKHRoaXMuX2hvc3QsICdjYWxjdWxhdGluZy1tYXgtdmlld3BvcnQtd2lkdGgnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgd2lkdGggZm9yIHRoZSBkcmFnIGltYWdlIHBsYWNlaG9sZGVyLlxuICAgKlxuICAgKiAtIFdoZW4gZHJhZ2dpbmcgb3ZlciB0YWJzLCB0aGUgd2lkdGggaXMgZXF1YWwgdG8gdGhlIHdpZHRoIG9mIHRoZSBkcmFnIHNvdXJjZS5cbiAgICogLSBXaGVuIGRyYWdnaW5nIHRvIHRoZSByaWdodCBvZiB0aGUgbGFzdCB0YWIsIHRoZSB3aWR0aCBvZiB0aGUgcGxhY2Vob2xkZXIgaXMgY2FsY3VsYXRlZCBhcyB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGVcbiAgICogICBsYXN0IHRhYiBhbmQgdGhlIHBvc2l0aW9uIG9mIHRoZSBkcmFnb3ZlciBldmVudC4gQXBwbHlpbmcgdGhpcyB3aWR0aCB3aWxsIHJlc2l6ZSB0aGUgdmlld3BvcnQsIG1vdmluZyBwYXJ0IGFjdGlvbnMgYWxvbmdcbiAgICogICB3aXRoIHRoZSBkcmFnb3ZlciBldmVudC5cbiAgICovXG4gIHByaXZhdGUgY2FsY3VsYXRlRHJhZ0ltYWdlUGxhY2Vob2xkZXJXaWR0aChldmVudDogRHJhZ0V2ZW50KTogbnVtYmVyIHtcbiAgICBjb25zdCB2aWV3RHJhZ0ltYWdlUmVjdCA9IHRoaXMuX3ZpZXdUYWJEcmFnSW1hZ2VSZW5kZXJlci5jYWxjdWxhdGVEcmFnSW1hZ2VSZWN0KHRoaXMuX2RyYWdEYXRhISwgZXZlbnQpO1xuICAgIGNvbnN0IGxhc3RWaWV3VGFiID0gdGhpcy5fdmlld1RhYnMuZmlsdGVyKHZpZXdUYWIgPT4gdmlld1RhYiAhPT0gdGhpcy5kcmFnU291cmNlVmlld1RhYikuYXQoLTEpO1xuICAgIGNvbnN0IGxhc3RWaWV3VGFiUmlnaHQgPSBsYXN0Vmlld1RhYj8uaG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCA/PyB0aGlzLl9ob3N0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgKyB0aGlzLl90YWJiYXJJbmRlbnQubGVmdDtcbiAgICByZXR1cm4gTWF0aC5tYXgobGFzdFZpZXdUYWJSaWdodCArIHZpZXdEcmFnSW1hZ2VSZWN0LndpZHRoLCB2aWV3RHJhZ0ltYWdlUmVjdC5yaWdodCkgLSBsYXN0Vmlld1RhYlJpZ2h0O1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIENTUyBhbmltYXRpb25zIGhhdmUgZmluaXNoZWQgd2hlbiBkcmFnZ2luZyBhIHRhYiBvdmVyIHRoZSB0YWJiYXIuXG4gICAqIFRoZSBhbmltYXRpb24gaXMgY29uc2lkZXJlZCBzdGFibGUgd2hlbiBhbGwgdGFicyBoYXZlIG1vdmVkIHRvIHRoZWlyIGZpbmFsIHBvc2l0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBpc0RyYWdBbmltYXRpb25TdGFibGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmRyb3BUYXJnZXRWaWV3VGFiKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdmlld1RhYnMuZXZlcnkodmlld1RhYiA9PiBnZXRDc3NUcmFuc2xhdGlvbih2aWV3VGFiLmhvc3QpLnRyYW5zbGF0ZVggPT09ICdub25lJyk7XG4gICAgfVxuXG4gICAgY29uc3Qgdmlld1RhYnMgPSB0aGlzLl92aWV3VGFicy5maWx0ZXIodmlld1RhYiA9PiB2aWV3VGFiICE9PSB0aGlzLmRyYWdTb3VyY2VWaWV3VGFiKTtcbiAgICBjb25zdCBkcm9wVGFyZ2V0SW5kZXggPSB0aGlzLmRyb3BUYXJnZXRWaWV3VGFiID09PSAnZW5kJyA/IHZpZXdUYWJzLmxlbmd0aCA6IHZpZXdUYWJzLmluZGV4T2YodGhpcy5kcm9wVGFyZ2V0Vmlld1RhYiEpO1xuICAgIGNvbnN0IGRyYWdTb3VyY2VXaWR0aCA9IHRoaXMuX2RyYWdEYXRhIS52aWV3VGFiV2lkdGg7XG5cbiAgICByZXR1cm4gdmlld1RhYnMuZXZlcnkoKHZpZXdUYWIsIGkpID0+IHtcbiAgICAgIGNvbnN0IHZpZXdUYWJUcmFuc2xhdGVYID0gZ2V0Q3NzVHJhbnNsYXRpb24odmlld1RhYi5ob3N0KS50cmFuc2xhdGVYO1xuICAgICAgLy8gRXhwZWN0IHRhYnMgcHJlY2VkaW5nIHRoZSBkcm9wIHRhcmdldCBub3QgdG8gYmUgc2hpZnRlZCB0byB0aGUgcmlnaHQuXG4gICAgICBpZiAoaSA8IGRyb3BUYXJnZXRJbmRleCAmJiB2aWV3VGFiVHJhbnNsYXRlWCAhPT0gJ25vbmUnKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIC8vIEV4cGVjdCBkcm9wIHRhcmdldCBhbmQgdGFicyBmb2xsb3dpbmcgdGhlIGRyb3AgdGFyZ2V0IHRvIGJlIHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0LlxuICAgICAgaWYgKGkgPj0gZHJvcFRhcmdldEluZGV4ICYmIE1hdGguZmxvb3IoTnVtYmVyKHZpZXdUYWJUcmFuc2xhdGVYKSkgIT09IE1hdGguZmxvb3IoZHJhZ1NvdXJjZVdpZHRoKSkgeyAvLyBjb21wYXJlIGZsb29yZWQgbnVtYmVycyBiZWNhdXNlIGB0cmFuc2xhdGVYYCBpcyBub3QgcHJlY2lzZVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdW5zZXREcmFnU3RhdGUob3B0aW9ucz86IHt1bnNldERyYWdTb3VyY2U/OiBib29sZWFufSk6IHZvaWQge1xuICAgIGlmIChvcHRpb25zPy51bnNldERyYWdTb3VyY2UgPz8gdHJ1ZSkge1xuICAgICAgdGhpcy5kcmFnU291cmNlVmlld1RhYiA9IG51bGw7XG4gICAgfVxuXG4gICAgdGhpcy5kcm9wVGFyZ2V0Vmlld1RhYiA9IG51bGw7XG4gICAgdGhpcy5fZHJhZ0RhdGEgPSBudWxsO1xuICAgIHRoaXMuX3ZpZXdUYWJEcmFnSW1hZ2VSZW5kZXJlci51bnNldENvbnN0cmFpbkRyYWdJbWFnZVJlY3RGbih0aGlzLl9jb25zdHJhaW5GbiEpO1xuICAgIHRoaXMuX2NvbnN0cmFpbkZuID0gbnVsbDtcblxuICAgIHVuc2V0Q3NzQ2xhc3ModGhpcy5faG9zdCwgJ2RyYWctb3ZlcicpO1xuICAgIHVuc2V0Q3NzVmFyaWFibGUodGhpcy5faG9zdCwgJy0tybVwYXJ0LWJhci1kcmFnLXNvdXJjZS13aWR0aCcsICctLcm1cGFydC1iYXItZHJhZy1pbWFnZS1wbGFjZWhvbGRlci13aWR0aCcpO1xuICAgIHRoaXMuX3ZpZXdEcmFnU2VydmljZS51bnNldFRhYmJhckRyYWdvdmVyKHRoaXMuX3BhcnQuaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX3ZpZXdUYWJzKCk6IFZpZXdUYWJDb21wb25lbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXdUYWJzJC52YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTY3JvbGxzIHRoZSB0YWIgb2YgdGhlIGFjdGl2ZSB2aWV3IGludG8gdmlldy5cbiAgICovXG4gIHByaXZhdGUgaW5zdGFsbEFjdGl2ZVZpZXdTY3JvbGxlcigpOiB2b2lkIHtcbiAgICB0aGlzLl92aWV3VGFicyRcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAodmlld1RhYnMgPT4gY29tYmluZUxhdGVzdCh2aWV3VGFicy5tYXAodmlld1RhYiA9PiB2aWV3VGFiLnZpZXcuYWN0aXZlJCkpKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIC8vIFRoZXJlIG1heSBiZSBubyBhY3RpdmUgdmlldyBpbiB0aGUgdGFiYmFyLCBlLmcuLCB3aGVuIGRyYWdnaW5nIHRoZSBsYXN0IHZpZXcgb3V0IG9mIHRoZSB0YWJiYXIuXG4gICAgICAgIGNvbnN0IGFjdGl2ZVZpZXdUYWIgPSB0aGlzLl92aWV3VGFicy5maW5kKHZpZXdUYWIgPT4gdmlld1RhYi5hY3RpdmUpO1xuICAgICAgICBpZiAoYWN0aXZlVmlld1RhYiAmJiAhdGhpcy5fdmlld3BvcnRDb21wb25lbnQuaXNFbGVtZW50SW5WaWV3KGFjdGl2ZVZpZXdUYWIuaG9zdCwgJ2Z1bGwnKSkge1xuICAgICAgICAgIHRoaXMuX3ZpZXdwb3J0Q29tcG9uZW50LnNjcm9sbEludG9WaWV3KGFjdGl2ZVZpZXdUYWIuaG9zdCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMge0BsaW5rIMm1V29ya2JlbmNoVmlld30gd2hlbiBpdHMgdGFiIGlzIHNjcm9sbGVkIGludG8gdmlldy5cbiAgICovXG4gIHByaXZhdGUgaW5zdGFsbFNjcm9sbGVkSW50b1ZpZXdVcGRhdGVyKCk6IHZvaWQge1xuICAgIHRoaXMuX3ZpZXdwb3J0Q2hhbmdlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB0aGlzLl92aWV3VGFicyksXG4gICAgICAgIGZpbHRlckFycmF5KHZpZXdUYWIgPT4gdmlld1RhYiAhPT0gdGhpcy5kcmFnU291cmNlVmlld1RhYiksIC8vIHNraXAgZHJhZyBzb3VyY2UgYXMgYWx3YXlzIHNjcm9sbGVkIG91dCBvZiB2aWV3XG4gICAgICAgIG1lcmdlTWFwKHZpZXdUYWJzID0+IGZyb20odmlld1RhYnMpKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh2aWV3VGFiID0+IHtcbiAgICAgICAgdmlld1RhYi52aWV3LnNjcm9sbGVkSW50b1ZpZXcgPSB0aGlzLl92aWV3cG9ydENvbXBvbmVudC5pc0VsZW1lbnRJblZpZXcodmlld1RhYi5ob3N0LCAnZnVsbCcpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluc3RhbGxWaWV3RHJhZ0xpc3RlbmVyKCk6IHZvaWQge1xuICAgIHRoaXMuX3ZpZXdEcmFnU2VydmljZS52aWV3RHJhZyQodGhpcy5faG9zdClcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBEcmFnRXZlbnQpID0+IHtcbiAgICAgICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICAgICAgY2FzZSAnZHJhZ2VudGVyJzpcbiAgICAgICAgICAgIHRoaXMub25UYWJiYXJEcmFnRW50ZXIoZXZlbnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnZHJhZ292ZXInOlxuICAgICAgICAgICAgdGhpcy5vblRhYmJhckRyYWdPdmVyKGV2ZW50KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2RyYWdsZWF2ZSc6XG4gICAgICAgICAgICB0aGlzLm9uVGFiYmFyRHJhZ0xlYXZlKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdkcm9wJzpcbiAgICAgICAgICAgIHRoaXMub25UYWJiYXJEcm9wKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluc3RhbGxWaWV3cG9ydENsaWVudFNpemVEZXRlY3RvcigpOiB2b2lkIHtcbiAgICBmcm9tRGltZW5zaW9uJCh0aGlzLl92aWV3cG9ydENvbXBvbmVudC52aWV3cG9ydENsaWVudEVsZW1lbnQpXG4gICAgICAucGlwZShcbiAgICAgICAgc3Vic2NyaWJlSW5zaWRlKGZuID0+IHRoaXMuX3pvbmUucnVuKGZuKSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fdmlld3BvcnRDaGFuZ2UkLm5leHQoKSk7XG4gIH1cblxuICBwcml2YXRlIGluc3RhbGxUYWJiYXJJbmRlbnRTaXplRGV0ZWN0b3IoKTogdm9pZCB7XG4gICAgY29tYmluZUxhdGVzdChbZnJvbURpbWVuc2lvbiQodGhpcy5fdGFiQ29ybmVyUmFkaXVzRWxlbWVudC5uYXRpdmVFbGVtZW50KSwgZnJvbURpbWVuc2lvbiQodGhpcy5fcGFkZGluZ0lubGluZUVsZW1lbnQubmF0aXZlRWxlbWVudCldKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN1YnNjcmliZUluc2lkZShmbiA9PiB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKGZuKSksXG4gICAgICAgIG1hcEFycmF5KGRpbWVuc2lvbiA9PiBkaW1lbnNpb24uY2xpZW50V2lkdGgpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZiksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChbdGFiQ29ybmVyUmFkaXVzLCBwYWRkaW5nSW5saW5lXSkgPT4ge1xuICAgICAgICB0aGlzLl90YWJiYXJJbmRlbnQgPSB7bGVmdDogdGFiQ29ybmVyUmFkaXVzICsgcGFkZGluZ0lubGluZSwgcmlnaHQ6IHRhYkNvcm5lclJhZGl1cyArIHBhZGRpbmdJbmxpbmV9O1xuICAgICAgICBzZXRDc3NWYXJpYWJsZSh0aGlzLl9ob3N0LCB7Jy0tybVwYXJ0LWJhci1pbmRlbnQtbGVmdCc6IGAke3RoaXMuX3RhYmJhckluZGVudC5sZWZ0fXB4YH0pO1xuICAgICAgICBzZXRDc3NWYXJpYWJsZSh0aGlzLl9ob3N0LCB7Jy0tybVwYXJ0LWJhci1pbmRlbnQtcmlnaHQnOiBgJHt0aGlzLl90YWJiYXJJbmRlbnQucmlnaHR9cHhgfSk7XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPHNjaS12aWV3cG9ydCBjbGFzcz1cInRhYmJhclwiIHNjcm9sbGJhclN0eWxlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmRyYWdvdmVyXT1cImRyYWdvdmVyJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgc2NpRGltZW5zaW9uIChzY2lEaW1lbnNpb25DaGFuZ2UpPVwib25UYWJiYXJWaWV3cG9ydERpbWVuc2lvbkNoYW5nZSgpXCJcbiAgICAgICAgICAgICAgKHNjcm9sbCk9XCJvblNjcm9sbCgpXCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHZpZXdJZCBvZiB2aWV3SWRzJCB8IGFzeW5jO1wiPlxuICAgIDxkaXYgY2xhc3M9XCJkaXZpZGVyXCIgKm5nSWY9XCJ2aWV3dGFiID09PSBkcm9wVGFyZ2V0Vmlld1RhYlwiPjwvZGl2PlxuICAgIDx3Yi12aWV3LXRhYiAjdmlld3RhYlxuICAgICAgICAgICAgICAgICBbdmlld0lkXT1cInZpZXdJZFwiXG4gICAgICAgICAgICAgICAgIFtjbGFzcy5kcmFnLXNvdXJjZV09XCJ2aWV3dGFiID09PSBkcmFnU291cmNlVmlld1RhYlwiXG4gICAgICAgICAgICAgICAgIFtjbGFzcy5kcm9wLXRhcmdldF09XCJ2aWV3dGFiID09PSBkcm9wVGFyZ2V0Vmlld1RhYlwiPlxuICAgIDwvd2Itdmlldy10YWI+XG4gICAgPGRpdiBjbGFzcz1cImRpdmlkZXJcIj48L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBQbGFjZWhvbGRlciBlbGVtZW50IHRvIGdyb3cgdGhlIHZpZXdwb3J0IHRvIGZpdCB0aGUgZHJhZyBpbWFnZS4gLS0+XG4gIDxkaXYgY2xhc3M9XCJkcmFnLWltYWdlLXBsYWNlaG9sZGVyXCI+PC9kaXY+XG48L3NjaS12aWV3cG9ydD5cbjx3Yi1wYXJ0LWFjdGlvbi1iYXIvPlxuPHdiLXZpZXctbGlzdC1idXR0b24vPlxuXG48IS0tIEVsZW1lbnQgZm9yIGluamVjdGluZyB0aGUgY29ybmVyIHJhZGl1cyBpbnRvIHRoZSBjb21wb25lbnQuIC0tPlxuPGRpdiBjbGFzcz1cInRhYi1jb3JuZXItcmFkaXVzXCIgI3RhYl9jb3JuZXJfcmFkaXVzPjwvZGl2PlxuPCEtLSBFbGVtZW50IGZvciBpbmplY3RpbmcgdGhlIHRhYmJhciBwYWRkaW5nIGludG8gdGhlIGNvbXBvbmVudC4gLS0+XG48ZGl2IGNsYXNzPVwicGFkZGluZy1pbmxpbmVcIiAjcGFkZGluZ19pbmxpbmU+PC9kaXY+XG4iXX0=
|
|
@@ -25,10 +25,10 @@ export class PartPortalPipe {
|
|
|
25
25
|
}
|
|
26
26
|
return this._partRegistry.get(partId).createPortalFromInjectionContext(this._injector);
|
|
27
27
|
}
|
|
28
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
29
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: PartPortalPipe, deps: [{ token: i1.WorkbenchPartRegistry }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
29
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: PartPortalPipe, isStandalone: true, name: "wbPartPortal" }); }
|
|
30
30
|
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: PartPortalPipe, decorators: [{
|
|
32
32
|
type: Pipe,
|
|
33
33
|
args: [{ name: 'wbPartPortal', standalone: true }]
|
|
34
34
|
}], ctorParameters: () => [{ type: i1.WorkbenchPartRegistry }, { type: i0.Injector }] });
|
|
@@ -67,7 +67,9 @@ export class PartComponent {
|
|
|
67
67
|
workbenchId: event.dragData.workbenchId,
|
|
68
68
|
partId: event.dragData.partId,
|
|
69
69
|
viewId: event.dragData.viewId,
|
|
70
|
+
alternativeViewId: event.dragData.alternativeViewId,
|
|
70
71
|
viewUrlSegments: event.dragData.viewUrlSegments,
|
|
72
|
+
navigationHint: event.dragData.navigationHint,
|
|
71
73
|
classList: event.dragData.classList,
|
|
72
74
|
},
|
|
73
75
|
target: {
|
|
@@ -108,10 +110,10 @@ export class PartComponent {
|
|
|
108
110
|
ngOnDestroy() {
|
|
109
111
|
this._logger.debug(() => `Destroying PartComponent [partId=${this.partId}]'`, LoggerNames.LIFECYCLE);
|
|
110
112
|
}
|
|
111
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
112
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
113
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: PartComponent, deps: [{ token: WORKBENCH_ID }, { token: i1.WorkbenchViewRegistry }, { token: i2.ViewDragService }, { token: i0.Injector }, { token: i3.Logger }, { token: i0.ChangeDetectorRef }, { token: i4.ɵWorkbenchPart }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
114
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: PartComponent, isStandalone: true, selector: "wb-part", host: { properties: { "attr.tabindex": "this.tabIndex", "attr.data-partid": "this.partId", "class.e2e-main-area": "this.isInMainArea", "class.main-area": "this.isMainArea", "class.active": "this.isActive" } }, ngImport: i0, template: "<wb-part-bar></wb-part-bar>\n\n<div wbViewDropZone\n [wbViewDropZoneSize]=\".3\"\n [wbViewDropZonePlaceholderSize]=\".5\"\n [wbViewDropZoneCssClass]=\"'e2e-part'\"\n (wbViewDropZoneDrop)=\"onViewDrop($event)\"\n class=\"active-view e2e-active-view\">\n <ng-container *wbPortalOutlet=\"part.activeViewId$ | async | wbViewPortal\"></ng-container>\n</div>\n", styles: [":host{display:flex;flex-direction:column;outline:none}:host>wb-part-bar{flex:none}:host>div.active-view{flex:auto;display:grid;position:relative}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: PartBarComponent, selector: "wb-part-bar" }, { kind: "directive", type: ViewDropZoneDirective, selector: "[wbViewDropZone]", inputs: ["wbViewDropZoneRegions", "wbViewDropZoneCssClass", "wbViewDropZoneSize", "wbViewDropZonePlaceholderSize"], outputs: ["wbViewDropZoneDrop"] }, { kind: "directive", type: WorkbenchPortalOutletDirective, selector: "ng-template[wbPortalOutlet]", inputs: ["wbPortalOutlet"] }, { kind: "pipe", type: ViewPortalPipe, name: "wbViewPortal" }] }); }
|
|
113
115
|
}
|
|
114
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
116
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: PartComponent, decorators: [{
|
|
115
117
|
type: Component,
|
|
116
118
|
args: [{ selector: 'wb-part', standalone: true, imports: [
|
|
117
119
|
AsyncPipe,
|
|
@@ -140,4 +142,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
|
|
|
140
142
|
type: HostBinding,
|
|
141
143
|
args: ['class.active']
|
|
142
144
|
}] } });
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9wYXJ0L3BhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvcGFydC9wYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFvQixTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFZLE1BQU0sRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDekksT0FBTyxFQUFDLGlCQUFpQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzNGLE9BQU8sRUFBQyxxQkFBcUIsRUFBa0IsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEMsT0FBTyxFQUFTLFdBQVcsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUMvQyxPQUFPLEVBQUMsV0FBVyxFQUFFLFFBQVEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRS9ELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDM0YsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixD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U0FBUyxDQUFDLENBQUM7SUFDdkcsQ0FBQzs4R0F4R1UsYUFBYSxrQkF5QkosWUFBWTtrR0F6QnJCLGFBQWEscVJDekMxQix5WEFVQSx3TUR1QkksU0FBUyw4Q0FFVCxnQkFBZ0Isd0RBQ2hCLHFCQUFxQixrTkFDckIsOEJBQThCLCtGQUM5QixjQUFjOzsyRkFHTCxhQUFhO2tCQWR6QixTQUFTOytCQUNFLFNBQVMsY0FHUCxJQUFJLFdBQ1A7d0JBQ1AsU0FBUzt3QkFDVCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIscUJBQXFCO3dCQUNyQiw4QkFBOEI7d0JBQzlCLGNBQWM7cUJBQ2Y7OzBCQTJCWSxNQUFNOzJCQUFDLFlBQVk7b05BdEJ6QixRQUFRO3NCQURkLFdBQVc7dUJBQUMsZUFBZTtnQkFJakIsTUFBTTtzQkFEaEIsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBTXBCLFlBQVk7c0JBRHRCLFdBQVc7dUJBQUMscUJBQXFCO2dCQU12QixVQUFVO3NCQURwQixXQUFXO3VCQUFDLGlCQUFpQjtnQkFNbkIsUUFBUTtzQkFEbEIsV0FBVzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIzIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbmplY3QsIGluamVjdCwgSW5qZWN0b3IsIE5nWm9uZSwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0V2l0aCwgRU1QVFksIGZyb20sIGZyb21FdmVudCwgbWVyZ2UsIG1lcmdlTWFwLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtWaWV3RHJvcFpvbmVEaXJlY3RpdmUsIFdiVmlld0Ryb3BFdmVudH0gZnJvbSAnLi4vdmlldy1kbmQvdmlldy1kcm9wLXpvbmUuZGlyZWN0aXZlJztcbmltcG9ydCB7dGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtWaWV3RHJhZ1NlcnZpY2V9IGZyb20gJy4uL3ZpZXctZG5kL3ZpZXctZHJhZy5zZXJ2aWNlJztcbmltcG9ydCB7ybVXb3JrYmVuY2hQYXJ0fSBmcm9tICcuL8m1d29ya2JlbmNoLXBhcnQubW9kZWwnO1xuaW1wb3J0IHtMb2dnZXIsIExvZ2dlck5hbWVzfSBmcm9tICcuLi9sb2dnaW5nJztcbmltcG9ydCB7ZmlsdGVyQXJyYXksIG1hcEFycmF5fSBmcm9tICdAc2Npb24vdG9vbGtpdC9vcGVyYXRvcnMnO1xuaW1wb3J0IHtXb3JrYmVuY2hWaWV3UmVnaXN0cnl9IGZyb20gJy4uL3ZpZXcvd29ya2JlbmNoLXZpZXcucmVnaXN0cnknO1xuaW1wb3J0IHtBc3luY1BpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1JvdXRlck91dGxldH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7UGFydEJhckNvbXBvbmVudH0gZnJvbSAnLi9wYXJ0LWJhci9wYXJ0LWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHtXb3JrYmVuY2hQb3J0YWxPdXRsZXREaXJlY3RpdmV9IGZyb20gJy4uL3BvcnRhbC93b3JrYmVuY2gtcG9ydGFsLW91dGxldC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtWaWV3UG9ydGFsUGlwZX0gZnJvbSAnLi4vdmlldy92aWV3LXBvcnRhbC5waXBlJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1dPUktCRU5DSF9JRH0gZnJvbSAnLi4vd29ya2JlbmNoLWlkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2ItcGFydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFydC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQXN5bmNQaXBlLFxuICAgIFJvdXRlck91dGxldCxcbiAgICBQYXJ0QmFyQ29tcG9uZW50LFxuICAgIFZpZXdEcm9wWm9uZURpcmVjdGl2ZSxcbiAgICBXb3JrYmVuY2hQb3J0YWxPdXRsZXREaXJlY3RpdmUsXG4gICAgVmlld1BvcnRhbFBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFBhcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JylcbiAgcHVibGljIHRhYkluZGV4ID0gLTE7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtcGFydGlkJylcbiAgcHVibGljIGdldCBwYXJ0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wYXJ0LmlkO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5lMmUtbWFpbi1hcmVhJylcbiAgcHVibGljIGdldCBpc0luTWFpbkFyZWEoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGFydC5pc0luTWFpbkFyZWE7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1haW4tYXJlYScpXG4gIHB1YmxpYyBnZXQgaXNNYWluQXJlYSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wYXJ0LmlzSW5NYWluQXJlYTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYWN0aXZlJylcbiAgcHVibGljIGdldCBpc0FjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wYXJ0LmFjdGl2ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoV09SS0JFTkNIX0lEKSBwcml2YXRlIF93b3JrYmVuY2hJZDogc3RyaW5nLFxuICAgICAgICAgICAgICBwcml2YXRlIF92aWV3UmVnaXN0cnk6IFdvcmtiZW5jaFZpZXdSZWdpc3RyeSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfdmlld0RyYWdTZXJ2aWNlOiBWaWV3RHJhZ1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbG9nZ2VyOiBMb2dnZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgICAgICAgcHVibGljIHBhcnQ6IMm1V29ya2JlbmNoUGFydCkge1xuICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZygoKSA9PiBgQ29uc3RydWN0aW5nIFBhcnRDb21wb25lbnQgW3BhcnRJZD0ke3RoaXMucGFydElkfV1gLCBMb2dnZXJOYW1lcy5MSUZFQ1lDTEUpO1xuICAgIHRoaXMuYWN0aXZhdGVQYXJ0T25Gb2N1c0luKCk7XG4gICAgdGhpcy5jb25zdHJ1Y3RJbmFjdGl2ZVZpZXdDb21wb25lbnRzKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gUGVyZm9ybSBhIG1hbnVhbCBjaGFuZ2UgZGV0ZWN0aW9uIHJ1biB0byBhdm9pZCBgRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvcmAgdGhhdCB3b3VsZCBvY2N1clxuICAgIC8vIHdoZW4gdGhlIHZpZXcgc2V0cyB2aWV3IHByb3BlcnRpZXMgaW4gaXRzIGNvbnN0cnVjdG9yLiBCZWNhdXNlIHRoZSB2aWV3IHRhYiBpcyBsb2NhdGVkIGJlZm9yZSB0aGUgdmlldyBpbiB0aGVcbiAgICAvLyBBbmd1bGFyIGNvbXBvbmVudCB0cmVlLCBBbmd1bGFyIGNoZWNrcyB0aGUgdmlldyB0YWIgZm9yIGNoYW5nZXMgYmVmb3JlIHRoZSB2aWV3LiBUaGVyZWZvcmUsIGlmIHRoZSB2aWV3IHNldHNcbiAgICAvLyBpdHMgdGl0bGUgZHVyaW5nIGNvbnN0cnVjdGlvbiwgdGhlbiB0aGUgdmlldyB0YWIgbGFiZWwgd2lsbCBhbHNvIGNoYW5nZSwgY2F1c2luZyB0aGUgZXJyb3IuXG4gICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBpbnZva2VkIHRvIG1vdmUgYSB2aWV3IGludG8gdGhpcyBwYXJ0LlxuICAgKi9cbiAgcHVibGljIG9uVmlld0Ryb3AoZXZlbnQ6IFdiVmlld0Ryb3BFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuX3ZpZXdEcmFnU2VydmljZS5kaXNwYXRjaFZpZXdNb3ZlRXZlbnQoe1xuICAgICAgc291cmNlOiB7XG4gICAgICAgIHdvcmtiZW5jaElkOiBldmVudC5kcmFnRGF0YS53b3JrYmVuY2hJZCxcbiAgICAgICAgcGFydElkOiBldmVudC5kcmFnRGF0YS5wYXJ0SWQsXG4gICAgICAgIHZpZXdJZDogZXZlbnQuZHJhZ0RhdGEudmlld0lkLFxuICAgICAgICB2aWV3VXJsU2VnbWVudHM6IGV2ZW50LmRyYWdEYXRhLnZpZXdVcmxTZWdtZW50cyxcbiAgICAgICAgY2xhc3NMaXN0OiBldmVudC5kcmFnRGF0YS5jbGFzc0xpc3QsXG4gICAgICB9LFxuICAgICAgdGFyZ2V0OiB7XG4gICAgICAgIHdvcmtiZW5jaElkOiB0aGlzLl93b3JrYmVuY2hJZCxcbiAgICAgICAgZWxlbWVudElkOiB0aGlzLnBhcnQuaWQsXG4gICAgICAgIHJlZ2lvbjogZXZlbnQuZHJvcFJlZ2lvbiA9PT0gJ2NlbnRlcicgPyB1bmRlZmluZWQgOiBldmVudC5kcm9wUmVnaW9uLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIHZpZXcgY29tcG9uZW50cyBvZiBpbmFjdGl2ZSB2aWV3cywgc28gdGhleSBjYW4gaW5pdGlhbGl6ZSwgZS5nLiwgdG8gc2V0IHRoZSB2aWV3IHRhYiB0aXRsZS5cbiAgICovXG4gIHByaXZhdGUgY29uc3RydWN0SW5hY3RpdmVWaWV3Q29tcG9uZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLnBhcnQudmlld0lkcyRcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXBBcnJheSh2aWV3SWQgPT4gdGhpcy5fdmlld1JlZ2lzdHJ5LmdldCh2aWV3SWQpKSxcbiAgICAgICAgZmlsdGVyQXJyYXkodmlldyA9PiAhdmlldy5hY3RpdmUgJiYgIXZpZXcucG9ydGFsLmlzQ29uc3RydWN0ZWQpLFxuICAgICAgICBtZXJnZU1hcCh2aWV3cyA9PiBmcm9tKHZpZXdzKSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGluYWN0aXZlVmlldyA9PiB7XG4gICAgICAgIGluYWN0aXZlVmlldy5wb3J0YWwuY3JlYXRlQ29tcG9uZW50RnJvbUluamVjdGlvbkNvbnRleHQodGhpcy5faW5qZWN0b3IpO1xuICAgICAgICAvLyBUcmlnZ2VyIG1hbnVhbCBjaGFuZ2UgZGV0ZWN0aW9uIGN5Y2xlIGJlY2F1c2UgdGhlIHZpZXcgaXMgbm90IHlldCBhZGRlZCB0byB0aGUgQW5ndWxhciBjb21wb25lbnQgdHJlZS4gT3RoZXJ3aXNlLCByb3V0ZWQgY29udGVudCB3b3VsZCBub3QgYmUgYXR0YWNoZWQuXG4gICAgICAgIGluYWN0aXZlVmlldy5wb3J0YWwuY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdGl2YXRlcyB0aGlzIHBhcnQgd2hlbiBpdCBnYWlucyBmb2N1cy5cbiAgICovXG4gIHByaXZhdGUgYWN0aXZhdGVQYXJ0T25Gb2N1c0luKCk6IHZvaWQge1xuICAgIGNvbnN0IGhvc3QgPSBpbmplY3QoRWxlbWVudFJlZikubmF0aXZlRWxlbWVudDtcblxuICAgIHRoaXMucGFydC5hY3RpdmUkXG4gICAgICAucGlwZShcbiAgICAgICAgLy8gV2FpdCB1bnRpbCB0aGUgem9uZSBoYXMgc3RhYmlsaXplZCB0byBub3QgYWN0aXZhdGUgdGhlIHBhcnQgb24gY3JlYXRpb24sIGJ1dCBvbmx5IG9uIHVzZXIgaW50ZXJhY3Rpb24uXG4gICAgICAgIC8vIEZvciBleGFtcGxlLCBpZiB0aGUgdmlldyBzZXRzIHRoZSBpbml0aWFsIGZvY3VzLCB0aGUgcmVsYXRlZCBgZm9jdXNpbmAgZXZlbnQgc2hvdWxkIG5vdCBhY3RpdmF0ZSB0aGUgcGFydC5cbiAgICAgICAgY29tYmluZUxhdGVzdFdpdGgoaW5qZWN0KE5nWm9uZSkub25TdGFibGUucGlwZSh0YWtlKDEpKSksXG4gICAgICAgIC8vIFN1c3BlbmQgbGlzdGVuaW5nIGZvciBgZm9jdXNpbmAgb3IgYHNjaS1taWNyb2Zyb250ZW5kLWZvY3VzaW5gIGV2ZW50cyB3aGlsZSB0aGlzIHBhcnQgaXMgYWN0aXZlLlxuICAgICAgICBzd2l0Y2hNYXAoKFthY3RpdmVdKSA9PiBhY3RpdmUgPyBFTVBUWSA6IG1lcmdlKGZyb21FdmVudDxGb2N1c0V2ZW50Pihob3N0LCAnZm9jdXNpbicsIHtvbmNlOiB0cnVlfSksIGZyb21FdmVudChob3N0LCAnc2NpLW1pY3JvZnJvbnRlbmQtZm9jdXNpbicsIHtvbmNlOiB0cnVlfSkpKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5wYXJ0LmFjdGl2YXRlKCkudGhlbigpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fbG9nZ2VyLmRlYnVnKCgpID0+IGBEZXN0cm95aW5nIFBhcnRDb21wb25lbnQgW3BhcnRJZD0ke3RoaXMucGFydElkfV0nYCwgTG9nZ2VyTmFtZXMuTElGRUNZQ0xFKTtcbiAgfVxufVxuIiwiPHdiLXBhcnQtYmFyPjwvd2ItcGFydC1iYXI+XG5cbjxkaXYgd2JWaWV3RHJvcFpvbmVcbiAgICAgW3diVmlld0Ryb3Bab25lU2l6ZV09XCIuM1wiXG4gICAgIFt3YlZpZXdEcm9wWm9uZVBsYWNlaG9sZGVyU2l6ZV09XCIuNVwiXG4gICAgIFt3YlZpZXdEcm9wWm9uZUNzc0NsYXNzXT1cIidlMmUtcGFydCdcIlxuICAgICAod2JWaWV3RHJvcFpvbmVEcm9wKT1cIm9uVmlld0Ryb3AoJGV2ZW50KVwiXG4gICAgIGNsYXNzPVwiYWN0aXZlLXZpZXcgZTJlLWFjdGl2ZS12aWV3XCI+XG4gIDxuZy1jb250YWluZXIgKndiUG9ydGFsT3V0bGV0PVwicGFydC5hY3RpdmVWaWV3SWQkIHwgYXN5bmMgfCB3YlZpZXdQb3J0YWxcIj48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9wYXJ0L3BhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvcGFydC9wYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFvQixTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFZLE1BQU0sRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDekksT0FBTyxFQUFDLGlCQUFpQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzNGLE9BQU8sRUFBQyxxQkFBcUIsRUFBa0IsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEMsT0FBTyxFQUFTLFdBQVcsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUMvQyxPQUFPLEVBQUMsV0FBVyxFQUFFLFFBQVEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRS9ELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDM0YsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixD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LElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLG9DQUFvQyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7OEdBMUdVLGFBQWEsa0JBeUJKLFlBQVk7a0dBekJyQixhQUFhLHFSQ3pDMUIseVhBVUEsd01EdUJJLFNBQVMsOENBRVQsZ0JBQWdCLHdEQUNoQixxQkFBcUIsa05BQ3JCLDhCQUE4QiwrRkFDOUIsY0FBYzs7MkZBR0wsYUFBYTtrQkFkekIsU0FBUzsrQkFDRSxTQUFTLGNBR1AsSUFBSSxXQUNQO3dCQUNQLFNBQVM7d0JBQ1QsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLHFCQUFxQjt3QkFDckIsOEJBQThCO3dCQUM5QixjQUFjO3FCQUNmOzswQkEyQlksTUFBTTsyQkFBQyxZQUFZO29OQXRCekIsUUFBUTtzQkFEZCxXQUFXO3VCQUFDLGVBQWU7Z0JBSWpCLE1BQU07c0JBRGhCLFdBQVc7dUJBQUMsa0JBQWtCO2dCQU1wQixZQUFZO3NCQUR0QixXQUFXO3VCQUFDLHFCQUFxQjtnQkFNdkIsVUFBVTtzQkFEcEIsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBTW5CLFFBQVE7c0JBRGxCLFdBQVc7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMyBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5qZWN0LCBpbmplY3QsIEluamVjdG9yLCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdFdpdGgsIEVNUFRZLCBmcm9tLCBmcm9tRXZlbnQsIG1lcmdlLCBtZXJnZU1hcCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Vmlld0Ryb3Bab25lRGlyZWN0aXZlLCBXYlZpZXdEcm9wRXZlbnR9IGZyb20gJy4uL3ZpZXctZG5kL3ZpZXctZHJvcC16b25lLmRpcmVjdGl2ZSc7XG5pbXBvcnQge3Rha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Vmlld0RyYWdTZXJ2aWNlfSBmcm9tICcuLi92aWV3LWRuZC92aWV3LWRyYWcuc2VydmljZSc7XG5pbXBvcnQge8m1V29ya2JlbmNoUGFydH0gZnJvbSAnLi/JtXdvcmtiZW5jaC1wYXJ0Lm1vZGVsJztcbmltcG9ydCB7TG9nZ2VyLCBMb2dnZXJOYW1lc30gZnJvbSAnLi4vbG9nZ2luZyc7XG5pbXBvcnQge2ZpbHRlckFycmF5LCBtYXBBcnJheX0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvb3BlcmF0b3JzJztcbmltcG9ydCB7V29ya2JlbmNoVmlld1JlZ2lzdHJ5fSBmcm9tICcuLi92aWV3L3dvcmtiZW5jaC12aWV3LnJlZ2lzdHJ5JztcbmltcG9ydCB7QXN5bmNQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtSb3V0ZXJPdXRsZXR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1BhcnRCYXJDb21wb25lbnR9IGZyb20gJy4vcGFydC1iYXIvcGFydC1iYXIuY29tcG9uZW50JztcbmltcG9ydCB7V29ya2JlbmNoUG9ydGFsT3V0bGV0RGlyZWN0aXZlfSBmcm9tICcuLi9wb3J0YWwvd29ya2JlbmNoLXBvcnRhbC1vdXRsZXQuZGlyZWN0aXZlJztcbmltcG9ydCB7Vmlld1BvcnRhbFBpcGV9IGZyb20gJy4uL3ZpZXcvdmlldy1wb3J0YWwucGlwZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtXT1JLQkVOQ0hfSUR9IGZyb20gJy4uL3dvcmtiZW5jaC1pZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3diLXBhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhcnQuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEFzeW5jUGlwZSxcbiAgICBSb3V0ZXJPdXRsZXQsXG4gICAgUGFydEJhckNvbXBvbmVudCxcbiAgICBWaWV3RHJvcFpvbmVEaXJlY3RpdmUsXG4gICAgV29ya2JlbmNoUG9ydGFsT3V0bGV0RGlyZWN0aXZlLFxuICAgIFZpZXdQb3J0YWxQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBQYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gIHB1YmxpYyB0YWJJbmRleCA9IC0xO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXBhcnRpZCcpXG4gIHB1YmxpYyBnZXQgcGFydElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucGFydC5pZDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZTJlLW1haW4tYXJlYScpXG4gIHB1YmxpYyBnZXQgaXNJbk1haW5BcmVhKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBhcnQuaXNJbk1haW5BcmVhO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tYWluLWFyZWEnKVxuICBwdWJsaWMgZ2V0IGlzTWFpbkFyZWEoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGFydC5pc0luTWFpbkFyZWE7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFjdGl2ZScpXG4gIHB1YmxpYyBnZXQgaXNBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGFydC5hY3RpdmU7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFdPUktCRU5DSF9JRCkgcHJpdmF0ZSBfd29ya2JlbmNoSWQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfdmlld1JlZ2lzdHJ5OiBXb3JrYmVuY2hWaWV3UmVnaXN0cnksXG4gICAgICAgICAgICAgIHByaXZhdGUgX3ZpZXdEcmFnU2VydmljZTogVmlld0RyYWdTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2xvZ2dlcjogTG9nZ2VyLFxuICAgICAgICAgICAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgICAgICAgIHB1YmxpYyBwYXJ0OiDJtVdvcmtiZW5jaFBhcnQpIHtcbiAgICB0aGlzLl9sb2dnZXIuZGVidWcoKCkgPT4gYENvbnN0cnVjdGluZyBQYXJ0Q29tcG9uZW50IFtwYXJ0SWQ9JHt0aGlzLnBhcnRJZH1dYCwgTG9nZ2VyTmFtZXMuTElGRUNZQ0xFKTtcbiAgICB0aGlzLmFjdGl2YXRlUGFydE9uRm9jdXNJbigpO1xuICAgIHRoaXMuY29uc3RydWN0SW5hY3RpdmVWaWV3Q29tcG9uZW50cygpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFBlcmZvcm0gYSBtYW51YWwgY2hhbmdlIGRldGVjdGlvbiBydW4gdG8gYXZvaWQgYEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3JgIHRoYXQgd291bGQgb2NjdXJcbiAgICAvLyB3aGVuIHRoZSB2aWV3IHNldHMgdmlldyBwcm9wZXJ0aWVzIGluIGl0cyBjb25zdHJ1Y3Rvci4gQmVjYXVzZSB0aGUgdmlldyB0YWIgaXMgbG9jYXRlZCBiZWZvcmUgdGhlIHZpZXcgaW4gdGhlXG4gICAgLy8gQW5ndWxhciBjb21wb25lbnQgdHJlZSwgQW5ndWxhciBjaGVja3MgdGhlIHZpZXcgdGFiIGZvciBjaGFuZ2VzIGJlZm9yZSB0aGUgdmlldy4gVGhlcmVmb3JlLCBpZiB0aGUgdmlldyBzZXRzXG4gICAgLy8gaXRzIHRpdGxlIGR1cmluZyBjb25zdHJ1Y3Rpb24sIHRoZW4gdGhlIHZpZXcgdGFiIGxhYmVsIHdpbGwgYWxzbyBjaGFuZ2UsIGNhdXNpbmcgdGhlIGVycm9yLlxuICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgaW52b2tlZCB0byBtb3ZlIGEgdmlldyBpbnRvIHRoaXMgcGFydC5cbiAgICovXG4gIHB1YmxpYyBvblZpZXdEcm9wKGV2ZW50OiBXYlZpZXdEcm9wRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl92aWV3RHJhZ1NlcnZpY2UuZGlzcGF0Y2hWaWV3TW92ZUV2ZW50KHtcbiAgICAgIHNvdXJjZToge1xuICAgICAgICB3b3JrYmVuY2hJZDogZXZlbnQuZHJhZ0RhdGEud29ya2JlbmNoSWQsXG4gICAgICAgIHBhcnRJZDogZXZlbnQuZHJhZ0RhdGEucGFydElkLFxuICAgICAgICB2aWV3SWQ6IGV2ZW50LmRyYWdEYXRhLnZpZXdJZCxcbiAgICAgICAgYWx0ZXJuYXRpdmVWaWV3SWQ6IGV2ZW50LmRyYWdEYXRhLmFsdGVybmF0aXZlVmlld0lkLFxuICAgICAgICB2aWV3VXJsU2VnbWVudHM6IGV2ZW50LmRyYWdEYXRhLnZpZXdVcmxTZWdtZW50cyxcbiAgICAgICAgbmF2aWdhdGlvbkhpbnQ6IGV2ZW50LmRyYWdEYXRhLm5hdmlnYXRpb25IaW50LFxuICAgICAgICBjbGFzc0xpc3Q6IGV2ZW50LmRyYWdEYXRhLmNsYXNzTGlzdCxcbiAgICAgIH0sXG4gICAgICB0YXJnZXQ6IHtcbiAgICAgICAgd29ya2JlbmNoSWQ6IHRoaXMuX3dvcmtiZW5jaElkLFxuICAgICAgICBlbGVtZW50SWQ6IHRoaXMucGFydC5pZCxcbiAgICAgICAgcmVnaW9uOiBldmVudC5kcm9wUmVnaW9uID09PSAnY2VudGVyJyA/IHVuZGVmaW5lZCA6IGV2ZW50LmRyb3BSZWdpb24sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgdmlldyBjb21wb25lbnRzIG9mIGluYWN0aXZlIHZpZXdzLCBzbyB0aGV5IGNhbiBpbml0aWFsaXplLCBlLmcuLCB0byBzZXQgdGhlIHZpZXcgdGFiIHRpdGxlLlxuICAgKi9cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RJbmFjdGl2ZVZpZXdDb21wb25lbnRzKCk6IHZvaWQge1xuICAgIHRoaXMucGFydC52aWV3SWRzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcEFycmF5KHZpZXdJZCA9PiB0aGlzLl92aWV3UmVnaXN0cnkuZ2V0KHZpZXdJZCkpLFxuICAgICAgICBmaWx0ZXJBcnJheSh2aWV3ID0+ICF2aWV3LmFjdGl2ZSAmJiAhdmlldy5wb3J0YWwuaXNDb25zdHJ1Y3RlZCksXG4gICAgICAgIG1lcmdlTWFwKHZpZXdzID0+IGZyb20odmlld3MpKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoaW5hY3RpdmVWaWV3ID0+IHtcbiAgICAgICAgaW5hY3RpdmVWaWV3LnBvcnRhbC5jcmVhdGVDb21wb25lbnRGcm9tSW5qZWN0aW9uQ29udGV4dCh0aGlzLl9pbmplY3Rvcik7XG4gICAgICAgIC8vIFRyaWdnZXIgbWFudWFsIGNoYW5nZSBkZXRlY3Rpb24gY3ljbGUgYmVjYXVzZSB0aGUgdmlldyBpcyBub3QgeWV0IGFkZGVkIHRvIHRoZSBBbmd1bGFyIGNvbXBvbmVudCB0cmVlLiBPdGhlcndpc2UsIHJvdXRlZCBjb250ZW50IHdvdWxkIG5vdCBiZSBhdHRhY2hlZC5cbiAgICAgICAgaW5hY3RpdmVWaWV3LnBvcnRhbC5jb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGVzIHRoaXMgcGFydCB3aGVuIGl0IGdhaW5zIGZvY3VzLlxuICAgKi9cbiAgcHJpdmF0ZSBhY3RpdmF0ZVBhcnRPbkZvY3VzSW4oKTogdm9pZCB7XG4gICAgY29uc3QgaG9zdCA9IGluamVjdChFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50O1xuXG4gICAgdGhpcy5wYXJ0LmFjdGl2ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICAvLyBXYWl0IHVudGlsIHRoZSB6b25lIGhhcyBzdGFiaWxpemVkIHRvIG5vdCBhY3RpdmF0ZSB0aGUgcGFydCBvbiBjcmVhdGlvbiwgYnV0IG9ubHkgb24gdXNlciBpbnRlcmFjdGlvbi5cbiAgICAgICAgLy8gRm9yIGV4YW1wbGUsIGlmIHRoZSB2aWV3IHNldHMgdGhlIGluaXRpYWwgZm9jdXMsIHRoZSByZWxhdGVkIGBmb2N1c2luYCBldmVudCBzaG91bGQgbm90IGFjdGl2YXRlIHRoZSBwYXJ0LlxuICAgICAgICBjb21iaW5lTGF0ZXN0V2l0aChpbmplY3QoTmdab25lKS5vblN0YWJsZS5waXBlKHRha2UoMSkpKSxcbiAgICAgICAgLy8gU3VzcGVuZCBsaXN0ZW5pbmcgZm9yIGBmb2N1c2luYCBvciBgc2NpLW1pY3JvZnJvbnRlbmQtZm9jdXNpbmAgZXZlbnRzIHdoaWxlIHRoaXMgcGFydCBpcyBhY3RpdmUuXG4gICAgICAgIHN3aXRjaE1hcCgoW2FjdGl2ZV0pID0+IGFjdGl2ZSA/IEVNUFRZIDogbWVyZ2UoZnJvbUV2ZW50PEZvY3VzRXZlbnQ+KGhvc3QsICdmb2N1c2luJywge29uY2U6IHRydWV9KSwgZnJvbUV2ZW50KGhvc3QsICdzY2ktbWljcm9mcm9udGVuZC1mb2N1c2luJywge29uY2U6IHRydWV9KSkpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnBhcnQuYWN0aXZhdGUoKS50aGVuKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9sb2dnZXIuZGVidWcoKCkgPT4gYERlc3Ryb3lpbmcgUGFydENvbXBvbmVudCBbcGFydElkPSR7dGhpcy5wYXJ0SWR9XSdgLCBMb2dnZXJOYW1lcy5MSUZFQ1lDTEUpO1xuICB9XG59XG4iLCI8d2ItcGFydC1iYXI+PC93Yi1wYXJ0LWJhcj5cblxuPGRpdiB3YlZpZXdEcm9wWm9uZVxuICAgICBbd2JWaWV3RHJvcFpvbmVTaXplXT1cIi4zXCJcbiAgICAgW3diVmlld0Ryb3Bab25lUGxhY2Vob2xkZXJTaXplXT1cIi41XCJcbiAgICAgW3diVmlld0Ryb3Bab25lQ3NzQ2xhc3NdPVwiJ2UyZS1wYXJ0J1wiXG4gICAgICh3YlZpZXdEcm9wWm9uZURyb3ApPVwib25WaWV3RHJvcCgkZXZlbnQpXCJcbiAgICAgY2xhc3M9XCJhY3RpdmUtdmlldyBlMmUtYWN0aXZlLXZpZXdcIj5cbiAgPG5nLWNvbnRhaW5lciAqd2JQb3J0YWxPdXRsZXQ9XCJwYXJ0LmFjdGl2ZVZpZXdJZCQgfCBhc3luYyB8IHdiVmlld1BvcnRhbFwiPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
|
|
@@ -21,10 +21,10 @@ export class WbFormatAcceleratorPipe {
|
|
|
21
21
|
.map(key => key[0].toUpperCase() + key.substring(1).toLowerCase())
|
|
22
22
|
.join('+');
|
|
23
23
|
}
|
|
24
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
25
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.
|
|
24
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WbFormatAcceleratorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
25
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: WbFormatAcceleratorPipe, isStandalone: true, name: "wbFormatAccelerator" }); }
|
|
26
26
|
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WbFormatAcceleratorPipe, decorators: [{
|
|
28
28
|
type: Pipe,
|
|
29
29
|
args: [{ name: 'wbFormatAccelerator', standalone: true }]
|
|
30
30
|
}] });
|
|
@@ -17,10 +17,10 @@ export class TextComponent {
|
|
|
17
17
|
constructor(text) {
|
|
18
18
|
this.text = text;
|
|
19
19
|
}
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
21
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: TextComponent, deps: [{ token: TEXT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: TextComponent, isStandalone: true, selector: "wb-text", ngImport: i0, template: '{{text}}', isInline: true }); }
|
|
22
22
|
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: TextComponent, decorators: [{
|
|
24
24
|
type: Component,
|
|
25
25
|
args: [{
|
|
26
26
|
selector: 'wb-text',
|