@scion/workbench 17.0.0-beta.5 → 17.0.0-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/esm2022/lib/common/class-list.mjs +61 -0
  2. package/esm2022/lib/common/grid-element-if-visible.pipe.mjs +32 -0
  3. package/esm2022/lib/dialog/workbench-dialog.mjs +1 -1
  4. package/esm2022/lib/dialog/workbench-dialog.options.mjs +1 -1
  5. package/esm2022/lib/dialog//311/265workbench-dialog.mjs +2 -20
  6. package/esm2022/lib/layout/main-area-layout/main-area-layout.component.mjs +13 -16
  7. package/esm2022/lib/layout/workbench-layout.component.mjs +12 -12
  8. package/esm2022/lib/layout/workbench-layouts.util.mjs +30 -0
  9. package/esm2022/lib/logging/logger-names.mjs +8 -9
  10. package/esm2022/lib/logging/logger.mjs +1 -1
  11. package/esm2022/lib/logging//311/265logger.mjs +3 -3
  12. package/esm2022/lib/microfrontend-platform/common/microfrontend.util.mjs +55 -0
  13. package/esm2022/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.mjs +32 -20
  14. package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-capability-validator.interceptor.mjs +53 -0
  15. package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-intent-handler.interceptor.mjs +85 -0
  16. package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.mjs +140 -0
  17. package/esm2022/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.mjs +122 -0
  18. package/esm2022/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.mjs +3 -3
  19. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-capability-validator.interceptor.mjs +30 -0
  20. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.mjs +130 -0
  21. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.mjs +16 -28
  22. package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.mjs +7 -29
  23. package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.mjs +70 -124
  24. package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-workbench-view.model.mjs +23 -0
  25. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.mjs +41 -0
  26. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-validator.interceptor.mjs +30 -0
  27. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.mjs +123 -0
  28. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-routes.mjs +98 -0
  29. package/esm2022/lib/microfrontend-platform/workbench-microfrontend-support.mjs +31 -35
  30. package/esm2022/lib/part/part-bar/part-bar.component.mjs +2 -1
  31. package/esm2022/lib/part/part.component.mjs +2 -1
  32. package/esm2022/lib/part/view-context-menu/view-menu.service.mjs +37 -25
  33. package/esm2022/lib/part/view-tab/view-tab.component.mjs +4 -3
  34. package/esm2022/lib/perspective/workbench-perspective-storage.service.mjs +1 -1
  35. package/esm2022/lib/perspective/workbench-perspective-view-conflict-resolver.service.mjs +1 -1
  36. package/esm2022/lib/perspective//311/265workbench-perspective.model.mjs +1 -1
  37. package/esm2022/lib/routing/public_api.mjs +1 -1
  38. package/esm2022/lib/routing/router.util.mjs +20 -43
  39. package/esm2022/lib/routing/routing.model.mjs +11 -0
  40. package/esm2022/lib/routing/workbench-auxiliary-routes-registrator.service.mjs +1 -2
  41. package/esm2022/lib/routing/workbench-dialog-differ.mjs +51 -0
  42. package/esm2022/lib/routing/workbench-navigational-states.mjs +28 -18
  43. package/esm2022/lib/routing/workbench-route-data.mjs +6 -15
  44. package/esm2022/lib/routing/workbench-router-link.directive.mjs +2 -3
  45. package/esm2022/lib/routing/workbench-router.service.mjs +5 -5
  46. package/esm2022/lib/routing/workbench-url-observer.service.mjs +37 -12
  47. package/esm2022/lib/view/view.component.mjs +6 -9
  48. package/esm2022/lib/view/workbench-view.model.mjs +1 -1
  49. package/esm2022/lib/view//311/265workbench-view.model.mjs +34 -6
  50. package/esm2022/lib/view-dnd/grid-drop-targets.util.mjs +49 -0
  51. package/esm2022/lib/view-dnd/view-drag.service.mjs +1 -1
  52. package/esm2022/lib/view-dnd/view-tab-drag-image-renderer.service.mjs +6 -6
  53. package/esm2022/lib/workbench.constants.mjs +6 -2
  54. package/fesm2022/scion-workbench.mjs +1065 -544
  55. package/fesm2022/scion-workbench.mjs.map +1 -1
  56. package/lib/common/class-list.d.ts +51 -0
  57. package/lib/common/grid-element-if-visible.pipe.d.ts +13 -0
  58. package/lib/dialog/workbench-dialog.d.ts +2 -6
  59. package/lib/dialog/workbench-dialog.options.d.ts +1 -1
  60. package/lib/dialog//311/265workbench-dialog.d.ts +2 -4
  61. package/lib/layout/main-area-layout/main-area-layout.component.d.ts +4 -7
  62. package/lib/layout/workbench-layout.component.d.ts +3 -3
  63. package/lib/layout/workbench-layouts.util.d.ts +10 -0
  64. package/lib/logging/logger-names.d.ts +7 -7
  65. package/lib/logging/logger.d.ts +5 -1
  66. package/lib/logging//311/265logger.d.ts +1 -1
  67. package/lib/microfrontend-platform/common/microfrontend.util.d.ts +22 -0
  68. package/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.d.ts +15 -9
  69. package/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-capability-validator.interceptor.d.ts +11 -0
  70. package/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-intent-handler.interceptor.d.ts +28 -0
  71. package/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.d.ts +52 -0
  72. package/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.d.ts +37 -0
  73. package/lib/microfrontend-platform/microfrontend-popup/{microfrontend-popup-capability-interceptor.service.d.ts → microfrontend-popup-capability-validator.interceptor.d.ts} +3 -3
  74. package/lib/microfrontend-platform/microfrontend-popup/{microfrontend-popup-intent-interceptor.service.d.ts → microfrontend-popup-intent-handler.interceptor.d.ts} +9 -6
  75. package/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.d.ts +7 -10
  76. package/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.d.ts +2 -9
  77. package/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.d.ts +8 -14
  78. package/lib/microfrontend-platform/microfrontend-view/microfrontend-workbench-view.model.d.ts +14 -0
  79. package/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.d.ts +10 -0
  80. package/lib/microfrontend-platform/routing/{microfrontend-view-capability-interceptor.service.d.ts → microfrontend-view-capability-validator.interceptor.d.ts} +3 -3
  81. package/lib/microfrontend-platform/routing/{microfrontend-view-intent-interceptor.service.d.ts → microfrontend-view-intent-handler.interceptor.d.ts} +6 -5
  82. package/lib/microfrontend-platform/routing/microfrontend-view-routes.d.ts +49 -0
  83. package/lib/microfrontend-platform/workbench-microfrontend-support.d.ts +1 -0
  84. package/lib/part/view-context-menu/view-menu.service.d.ts +3 -2
  85. package/lib/perspective/workbench-perspective-storage.service.d.ts +1 -1
  86. package/lib/perspective/workbench-perspective-view-conflict-resolver.service.d.ts +1 -1
  87. package/lib/routing/public_api.d.ts +2 -1
  88. package/lib/routing/router.util.d.ts +12 -20
  89. package/lib/routing/routing.model.d.ts +30 -0
  90. package/lib/routing/workbench-auxiliary-routes-registrator.service.d.ts +2 -3
  91. package/lib/routing/workbench-dialog-differ.d.ts +25 -0
  92. package/lib/routing/workbench-navigational-states.d.ts +16 -13
  93. package/lib/routing/workbench-route-data.d.ts +5 -13
  94. package/lib/routing/workbench-router.service.d.ts +7 -22
  95. package/lib/routing/workbench-url-observer.service.d.ts +13 -1
  96. package/lib/view/workbench-view.model.d.ts +9 -8
  97. package/lib/view//311/265workbench-view.model.d.ts +21 -2
  98. package/lib/view-dnd/grid-drop-targets.util.d.ts +22 -0
  99. package/lib/view-dnd/view-drag.service.d.ts +58 -47
  100. package/lib/workbench.constants.d.ts +4 -0
  101. package/package.json +2 -2
  102. package/esm2022/lib/common/grid-element-visible.pipe.mjs +0 -29
  103. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-capability-interceptor.service.mjs +0 -30
  104. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-interceptor.service.mjs +0 -130
  105. package/esm2022/lib/microfrontend-platform/routing/microfrontend-navigational-states.mjs +0 -22
  106. package/esm2022/lib/microfrontend-platform/routing/microfrontend-routes.mjs +0 -71
  107. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-interceptor.service.mjs +0 -54
  108. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-interceptor.service.mjs +0 -123
  109. package/esm2022/lib/routing/navigation-state.resolver.mjs +0 -54
  110. package/lib/common/grid-element-visible.pipe.d.ts +0 -13
  111. package/lib/microfrontend-platform/routing/microfrontend-navigational-states.d.ts +0 -11
  112. package/lib/microfrontend-platform/routing/microfrontend-routes.d.ts +0 -38
  113. package/lib/routing/navigation-state.resolver.d.ts +0 -12
@@ -0,0 +1,61 @@
1
+ /*
2
+ * Copyright (c) 2018-2024 Swiss Federal Railways
3
+ *
4
+ * This program and the accompanying materials are made
5
+ * available under the terms of the Eclipse Public License 2.0
6
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
7
+ *
8
+ * SPDX-License-Identifier: EPL-2.0
9
+ */
10
+ import { Subject } from 'rxjs';
11
+ import { map, startWith } from 'rxjs/operators';
12
+ import { Arrays } from '@scion/toolkit/util';
13
+ /**
14
+ * Container for managing CSS classes set in different scopes.
15
+ */
16
+ export class ClassList {
17
+ constructor() {
18
+ this._cssClasses = new Map();
19
+ this._change$ = new Subject();
20
+ this.value = new Array();
21
+ this.value$ = this._change$
22
+ .pipe(startWith(undefined), map(() => [...this.value]));
23
+ }
24
+ /**
25
+ * Sets CSS classes for a specific scope.
26
+ */
27
+ set(cssClasses, options) {
28
+ this._cssClasses.set(options.scope, Arrays.coerce(cssClasses));
29
+ this.computeValue();
30
+ }
31
+ /**
32
+ * Retuns CSS classes of a specific scope.
33
+ */
34
+ get(options) {
35
+ return this._cssClasses.get(options.scope) ?? [];
36
+ }
37
+ /**
38
+ * Removes CSS classes of a specific scope.
39
+ */
40
+ remove(options) {
41
+ this._cssClasses.delete(options.scope);
42
+ this.computeValue();
43
+ }
44
+ /**
45
+ * Returns the CSS classes as readonly {@link Map} grouped by scope,
46
+ * useful to transfer the class list to a different browsing context.
47
+ */
48
+ toMap() {
49
+ return new Map(this._cssClasses.entries());
50
+ }
51
+ /**
52
+ * Computes the aggregated list of CSS classes.
53
+ */
54
+ computeValue() {
55
+ this.value.length = 0;
56
+ const classes = new Set(Array.from(this._cssClasses.values()).flat());
57
+ classes.forEach(clazz => this.value.push(clazz));
58
+ this._change$.next();
59
+ }
60
+ }
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MtbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL2NvbW1vbi9jbGFzcy1saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFhLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN6QyxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUzQzs7R0FFRztBQUNILE1BQU0sT0FBTyxTQUFTO0lBUXBCO1FBTmlCLGdCQUFXLEdBQUcsSUFBSSxHQUFHLEVBQTZCLENBQUM7UUFDbkQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFaEMsVUFBSyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFJMUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUTthQUN4QixJQUFJLENBQ0gsU0FBUyxDQUFDLFNBQWlCLENBQUMsRUFDNUIsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDM0IsQ0FBQztJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNJLEdBQUcsQ0FBQyxVQUFnRCxFQUFFLE9BQWlDO1FBQzVGLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxHQUFHLENBQUMsT0FBaUM7UUFDMUMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxPQUFpQztRQUM3QyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLO1FBQ1YsT0FBTyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOztPQUVHO0lBQ0ssWUFBWTtRQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDdEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN0RSxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyNCBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBzdGFydFdpdGh9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7QXJyYXlzfSBmcm9tICdAc2Npb24vdG9vbGtpdC91dGlsJztcblxuLyoqXG4gKiBDb250YWluZXIgZm9yIG1hbmFnaW5nIENTUyBjbGFzc2VzIHNldCBpbiBkaWZmZXJlbnQgc2NvcGVzLlxuICovXG5leHBvcnQgY2xhc3MgQ2xhc3NMaXN0IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9jc3NDbGFzc2VzID0gbmV3IE1hcDxDbGFzc0xpc3RTY29wZXMsIHN0cmluZ1tdPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2UkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWUgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWUkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnZhbHVlJCA9IHRoaXMuX2NoYW5nZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBzdGFydFdpdGgodW5kZWZpbmVkIGFzIHZvaWQpLFxuICAgICAgICBtYXAoKCkgPT4gWy4uLnRoaXMudmFsdWVdKSxcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBDU1MgY2xhc3NlcyBmb3IgYSBzcGVjaWZpYyBzY29wZS5cbiAgICovXG4gIHB1YmxpYyBzZXQoY3NzQ2xhc3Nlczogc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsIHwgdW5kZWZpbmVkLCBvcHRpb25zOiB7c2NvcGU6IENsYXNzTGlzdFNjb3Blc30pOiB2b2lkIHtcbiAgICB0aGlzLl9jc3NDbGFzc2VzLnNldChvcHRpb25zLnNjb3BlLCBBcnJheXMuY29lcmNlKGNzc0NsYXNzZXMpKTtcbiAgICB0aGlzLmNvbXB1dGVWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVucyBDU1MgY2xhc3NlcyBvZiBhIHNwZWNpZmljIHNjb3BlLlxuICAgKi9cbiAgcHVibGljIGdldChvcHRpb25zOiB7c2NvcGU6IENsYXNzTGlzdFNjb3Blc30pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2Nzc0NsYXNzZXMuZ2V0KG9wdGlvbnMuc2NvcGUpID8/IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgQ1NTIGNsYXNzZXMgb2YgYSBzcGVjaWZpYyBzY29wZS5cbiAgICovXG4gIHB1YmxpYyByZW1vdmUob3B0aW9uczoge3Njb3BlOiBDbGFzc0xpc3RTY29wZXN9KTogdm9pZCB7XG4gICAgdGhpcy5fY3NzQ2xhc3Nlcy5kZWxldGUob3B0aW9ucy5zY29wZSk7XG4gICAgdGhpcy5jb21wdXRlVmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBDU1MgY2xhc3NlcyBhcyByZWFkb25seSB7QGxpbmsgTWFwfSBncm91cGVkIGJ5IHNjb3BlLFxuICAgKiB1c2VmdWwgdG8gdHJhbnNmZXIgdGhlIGNsYXNzIGxpc3QgdG8gYSBkaWZmZXJlbnQgYnJvd3NpbmcgY29udGV4dC5cbiAgICovXG4gIHB1YmxpYyB0b01hcCgpOiBSZWFkb25seU1hcDxDbGFzc0xpc3RTY29wZXMsIHN0cmluZ1tdPiB7XG4gICAgcmV0dXJuIG5ldyBNYXAodGhpcy5fY3NzQ2xhc3Nlcy5lbnRyaWVzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGVzIHRoZSBhZ2dyZWdhdGVkIGxpc3Qgb2YgQ1NTIGNsYXNzZXMuXG4gICAqL1xuICBwcml2YXRlIGNvbXB1dGVWYWx1ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlLmxlbmd0aCA9IDA7XG4gICAgY29uc3QgY2xhc3NlcyA9IG5ldyBTZXQoQXJyYXkuZnJvbSh0aGlzLl9jc3NDbGFzc2VzLnZhbHVlcygpKS5mbGF0KCkpO1xuICAgIGNsYXNzZXMuZm9yRWFjaChjbGF6eiA9PiB0aGlzLnZhbHVlLnB1c2goY2xhenopKTtcbiAgICB0aGlzLl9jaGFuZ2UkLm5leHQoKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgc2NvcGVzIHVzZWQgaW4ge0BsaW5rIENsYXNzTGlzdH0uXG4gKlxuICogYGxheW91dGA6IFVzZSBmb3IgQ1NTIGNsYXNzZXMgZGVmaW5lZCBvbiB0aGUgbGF5b3V0LlxuICogYG5hdmlnYXRpb25gOiBVc2UgZm9yIENTUyBjbGFzc2VzIGFzc29jaWF0ZWQgd2l0aCB0aGUgbmF2aWdhdGlvbi5cbiAqIGByb3V0ZWA6IFVzZSBmb3IgQ1NTIGNsYXNzZXMgZGVmaW5lZCBvbiB0aGUgcm91dGUuXG4gKiBgYXBwbGljYXRpb25gOiBVc2UgZm9yIENTUyBjbGFzc2VzIHNldCBieSB0aGUgYXBwbGljYXRpb24uXG4gKi9cbmV4cG9ydCB0eXBlIENsYXNzTGlzdFNjb3BlcyA9ICdsYXlvdXQnIHwgJ25hdmlnYXRpb24nIHwgJ3JvdXRlJyB8ICdhcHBsaWNhdGlvbic7XG5cbi8qKlxuICogQ1NTIGNsYXNzZXMgZ3JvdXBlZCBieSBzY29wZS5cbiAqL1xuZXhwb3J0IHR5cGUgQ2xhc3NMaXN0TWFwID0gUmVhZG9ubHlNYXA8Q2xhc3NMaXN0U2NvcGVzLCBzdHJpbmdbXT47XG4iXX0=
@@ -0,0 +1,32 @@
1
+ /*
2
+ * Copyright (c) 2018-2023 Swiss Federal Railways
3
+ *
4
+ * This program and the accompanying materials are made
5
+ * available under the terms of the Eclipse Public License 2.0
6
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
7
+ *
8
+ * SPDX-License-Identifier: EPL-2.0
9
+ */
10
+ import { Pipe } from '@angular/core';
11
+ import { isGridElementVisible } from '../layout/ɵworkbench-layout';
12
+ import * as i0 from "@angular/core";
13
+ /**
14
+ * Returns given grid element, but only if visible.
15
+ *
16
+ * @see isGridElementVisible
17
+ */
18
+ export class GridElementIfVisiblePipe {
19
+ transform(gridElement) {
20
+ if (gridElement && isGridElementVisible(gridElement)) {
21
+ return gridElement;
22
+ }
23
+ return null;
24
+ }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: GridElementIfVisiblePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
26
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: GridElementIfVisiblePipe, isStandalone: true, name: "wbGridElementIfVisible" }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: GridElementIfVisiblePipe, decorators: [{
29
+ type: Pipe,
30
+ args: [{ name: 'wbGridElementIfVisible', standalone: true }]
31
+ }] });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1lbGVtZW50LWlmLXZpc2libGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL2NvbW1vbi9ncmlkLWVsZW1lbnQtaWYtdmlzaWJsZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7O0FBRWpFOzs7O0dBSUc7QUFFSCxNQUFNLE9BQU8sd0JBQXdCO0lBRTVCLFNBQVMsQ0FBQyxXQUFpRDtRQUNoRSxJQUFJLFdBQVcsSUFBSSxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNwRCxPQUFPLFdBQVcsQ0FBQztTQUNwQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs4R0FQVSx3QkFBd0I7NEdBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFEcEMsSUFBSTttQkFBQyxFQUFDLElBQUksRUFBRSx3QkFBd0IsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIzIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge1BpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNUGFydCwgTVRyZWVOb2RlfSBmcm9tICcuLi9sYXlvdXQvd29ya2JlbmNoLWxheW91dC5tb2RlbCc7XG5pbXBvcnQge2lzR3JpZEVsZW1lbnRWaXNpYmxlfSBmcm9tICcuLi9sYXlvdXQvybV3b3JrYmVuY2gtbGF5b3V0JztcblxuLyoqXG4gKiBSZXR1cm5zIGdpdmVuIGdyaWQgZWxlbWVudCwgYnV0IG9ubHkgaWYgdmlzaWJsZS5cbiAqXG4gKiBAc2VlIGlzR3JpZEVsZW1lbnRWaXNpYmxlXG4gKi9cbkBQaXBlKHtuYW1lOiAnd2JHcmlkRWxlbWVudElmVmlzaWJsZScsIHN0YW5kYWxvbmU6IHRydWV9KVxuZXhwb3J0IGNsYXNzIEdyaWRFbGVtZW50SWZWaXNpYmxlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIHB1YmxpYyB0cmFuc2Zvcm0oZ3JpZEVsZW1lbnQ6IE1UcmVlTm9kZSB8IE1QYXJ0IHwgbnVsbCB8IHVuZGVmaW5lZCk6IE1UcmVlTm9kZSB8IE1QYXJ0IHwgbnVsbCB7XG4gICAgaWYgKGdyaWRFbGVtZW50ICYmIGlzR3JpZEVsZW1lbnRWaXNpYmxlKGdyaWRFbGVtZW50KSkge1xuICAgICAgcmV0dXJuIGdyaWRFbGVtZW50O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl19
@@ -16,4 +16,4 @@
16
16
  */
17
17
  export class WorkbenchDialog {
18
18
  }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLWRpYWxvZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL2RpYWxvZy93b3JrYmVuY2gtZGlhbG9nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBSUg7Ozs7OztHQU1HO0FBQ0gsTUFBTSxPQUFnQixlQUFlO0NBNkNwQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMyBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBIYW5kbGUgdG8gaW50ZXJhY3Qgd2l0aCBhIGRpYWxvZyBvcGVuZWQgdmlhIHtAbGluayBXb3JrYmVuY2hEaWFsb2dTZXJ2aWNlfS5cbiAqXG4gKiBUaGUgZGlhbG9nIGNvbXBvbmVudCBjYW4gaW5qZWN0IHRoaXMgaGFuZGxlIHRvIGludGVyYWN0IHdpdGggdGhlIGRpYWxvZywgc3VjaCBhcyBzZXR0aW5nIHRoZSB0aXRsZSBvciBjbG9zaW5nIHRoZSBkaWFsb2cuXG4gKlxuICogRGlhbG9nIGlucHV0cyBhcmUgYXZhaWxhYmxlIGFzIGlucHV0IHByb3BlcnRpZXMgaW4gdGhlIGRpYWxvZyBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBXb3JrYmVuY2hEaWFsb2c8UiA9IHVua25vd24+IHtcblxuICAvKipcbiAgICogU2V0cyB0aGUgdGl0bGUgb2YgdGhlIGRpYWxvZzsgY2FuIGJlIGEgc3RyaW5nIGxpdGVyYWwgb3IgYW4gT2JzZXJ2YWJsZS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCB0aXRsZTogc3RyaW5nIHwgT2JzZXJ2YWJsZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHByZWZlcnJlZCBkaWFsb2cgc2l6ZS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBzaXplOiBXb3JrYmVuY2hEaWFsb2dTaXplO1xuXG4gIC8qKlxuICAgKiBDb250cm9scyBpZiB0byBhcHBseSBhIHBhZGRpbmcgdG8gdGhlIGNvbnRlbnQgb2YgdGhlIGRpYWxvZy4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqXG4gICAqIFRoaXMgc2V0dGluZyBkb2VzIG5vdCBhZmZlY3QgdGhlIHBhZGRpbmcgb2YgdGhlIGRpYWxvZyBoZWFkZXIgYW5kIGZvb3Rlci5cbiAgICpcbiAgICogVGhlIGRlZmF1bHQgcGFkZGluZyBjYW4gYmUgY2hhbmdlZCB2aWEgdGhlIENTUyB2YXJpYWJsZSBgLS1zY2ktd29ya2JlbmNoLWRpYWxvZy1wYWRkaW5nYC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBwYWRkaW5nOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgaWYgdG8gZGlzcGxheSBhIGNsb3NlIGJ1dHRvbiBpbiB0aGUgZGlhbG9nIGhlYWRlci4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY2xvc2FibGU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBpZiB0aGUgdXNlciBjYW4gcmVzaXplIHRoZSBkaWFsb2cuIERlZmF1bHQgaXMgYHRydWVgLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlc2l6YWJsZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIENTUyBjbGFzcyhlcykgdG8gYmUgYWRkZWQgdG8gdGhlIGRpYWxvZywgdXNlZnVsIGluIGVuZC10by1lbmQgdGVzdHMgZm9yIGxvY2F0aW5nIHRoZSBkaWFsb2cuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY3NzQ2xhc3M6IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIGRpYWxvZy4gT3B0aW9uYWxseSwgcGFzcyBhIHJlc3VsdCB0byB0aGUgZGlhbG9nIG9wZW5lci5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBjbG9zZShyZXN1bHQ/OiBSKTogdm9pZDtcblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBkaWFsb2cgcmV0dXJuaW5nIHRoZSBnaXZlbiBlcnJvciB0byB0aGUgZGlhbG9nIG9wZW5lci5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBjbG9zZVdpdGhFcnJvcihlcnJvcjogRXJyb3IgfCBzdHJpbmcpOiB2b2lkO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHByZWZlcnJlZCBkaWFsb2cgc2l6ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXb3JrYmVuY2hEaWFsb2dTaXplIHtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWluaW11bSBoZWlnaHQgb2YgdGhlIGRpYWxvZy5cbiAgICovXG4gIG1pbkhlaWdodD86IHN0cmluZztcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgaGVpZ2h0IG9mIHRoZSBkaWFsb2csIGRpc3BsYXlpbmcgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgaWYgaXRzIGNvbnRlbnQgb3ZlcmZsb3dzLlxuICAgKiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgZGlhbG9nIGFkYXB0cyBpdHMgaGVpZ2h0IHRvIGl0cyBjb250ZXh0IGhlaWdodCwgcmVzcGVjdGluZyBhbnkgYG1pbkhlaWdodCcgb3IgYG1heEhlaWdodCcgY29uc3RyYWludC5cbiAgICovXG4gIGhlaWdodD86IHN0cmluZztcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWF4aW11bSBoZWlnaHQgb2YgdGhlIGRpYWxvZy5cbiAgICovXG4gIG1heEhlaWdodD86IHN0cmluZztcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWluaW11bSB3aWR0aCBvZiB0aGUgZGlhbG9nLlxuICAgKi9cbiAgbWluV2lkdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHdpZHRoIG9mIHRoZSBkaWFsb2csIGRpc3BsYXlpbmcgYSBob3Jpem9udGFsIHNjcm9sbGJhciBpZiBpdHMgY29udGVudCBvdmVyZmxvd3MuXG4gICAqIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBkaWFsb2cgYWRhcHRzIGl0cyB3aWR0aCB0byBpdHMgY29udGV4dCB3aWR0aCwgcmVzcGVjdGluZyBhbnkgYG1pbldpZHRoJyBvciBgbWF4V2lkdGgnIGNvbnN0cmFpbnQuXG4gICAqL1xuICB3aWR0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWF4aW11bSB3aWR0aCBvZiB0aGUgZGlhbG9nLlxuICAgKi9cbiAgbWF4V2lkdGg/OiBzdHJpbmc7XG59XG4iXX0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLWRpYWxvZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL2RpYWxvZy93b3JrYmVuY2gtZGlhbG9nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBSUg7Ozs7OztHQU1HO0FBQ0gsTUFBTSxPQUFnQixlQUFlO0NBd0NwQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMyBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBIYW5kbGUgdG8gaW50ZXJhY3Qgd2l0aCBhIGRpYWxvZyBvcGVuZWQgdmlhIHtAbGluayBXb3JrYmVuY2hEaWFsb2dTZXJ2aWNlfS5cbiAqXG4gKiBUaGUgZGlhbG9nIGNvbXBvbmVudCBjYW4gaW5qZWN0IHRoaXMgaGFuZGxlIHRvIGludGVyYWN0IHdpdGggdGhlIGRpYWxvZywgc3VjaCBhcyBzZXR0aW5nIHRoZSB0aXRsZSBvciBjbG9zaW5nIHRoZSBkaWFsb2cuXG4gKlxuICogRGlhbG9nIGlucHV0cyBhcmUgYXZhaWxhYmxlIGFzIGlucHV0IHByb3BlcnRpZXMgaW4gdGhlIGRpYWxvZyBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBXb3JrYmVuY2hEaWFsb2c8UiA9IHVua25vd24+IHtcblxuICAvKipcbiAgICogU2V0cyB0aGUgdGl0bGUgb2YgdGhlIGRpYWxvZzsgY2FuIGJlIGEgc3RyaW5nIGxpdGVyYWwgb3IgYW4gT2JzZXJ2YWJsZS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCB0aXRsZTogc3RyaW5nIHwgT2JzZXJ2YWJsZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHByZWZlcnJlZCBkaWFsb2cgc2l6ZS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBzaXplOiBXb3JrYmVuY2hEaWFsb2dTaXplO1xuXG4gIC8qKlxuICAgKiBDb250cm9scyBpZiB0byBhcHBseSBhIHBhZGRpbmcgdG8gdGhlIGNvbnRlbnQgb2YgdGhlIGRpYWxvZy4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqXG4gICAqIFRoaXMgc2V0dGluZyBkb2VzIG5vdCBhZmZlY3QgdGhlIHBhZGRpbmcgb2YgdGhlIGRpYWxvZyBoZWFkZXIgYW5kIGZvb3Rlci5cbiAgICpcbiAgICogVGhlIGRlZmF1bHQgcGFkZGluZyBjYW4gYmUgY2hhbmdlZCB2aWEgdGhlIENTUyB2YXJpYWJsZSBgLS1zY2ktd29ya2JlbmNoLWRpYWxvZy1wYWRkaW5nYC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBwYWRkaW5nOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgaWYgdG8gZGlzcGxheSBhIGNsb3NlIGJ1dHRvbiBpbiB0aGUgZGlhbG9nIGhlYWRlci4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY2xvc2FibGU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBpZiB0aGUgdXNlciBjYW4gcmVzaXplIHRoZSBkaWFsb2cuIERlZmF1bHQgaXMgYHRydWVgLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlc2l6YWJsZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIENTUyBjbGFzcyhlcykgdG8gYmUgYWRkZWQgdG8gdGhlIGRpYWxvZywgdXNlZnVsIGluIGVuZC10by1lbmQgdGVzdHMgZm9yIGxvY2F0aW5nIHRoZSBkaWFsb2cuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY3NzQ2xhc3M6IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIGRpYWxvZy4gT3B0aW9uYWxseSwgcGFzcyBhIHJlc3VsdCBvciBhbiBlcnJvciB0byB0aGUgZGlhbG9nIG9wZW5lci5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBjbG9zZShyZXN1bHQ/OiBSIHwgRXJyb3IpOiB2b2lkO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHByZWZlcnJlZCBkaWFsb2cgc2l6ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXb3JrYmVuY2hEaWFsb2dTaXplIHtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWluaW11bSBoZWlnaHQgb2YgdGhlIGRpYWxvZy5cbiAgICovXG4gIG1pbkhlaWdodD86IHN0cmluZztcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgaGVpZ2h0IG9mIHRoZSBkaWFsb2csIGRpc3BsYXlpbmcgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgaWYgaXRzIGNvbnRlbnQgb3ZlcmZsb3dzLlxuICAgKiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgZGlhbG9nIGFkYXB0cyBpdHMgaGVpZ2h0IHRvIGl0cyBjb250ZXh0IGhlaWdodCwgcmVzcGVjdGluZyBhbnkgYG1pbkhlaWdodCcgb3IgYG1heEhlaWdodCcgY29uc3RyYWludC5cbiAgICovXG4gIGhlaWdodD86IHN0cmluZztcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWF4aW11bSBoZWlnaHQgb2YgdGhlIGRpYWxvZy5cbiAgICovXG4gIG1heEhlaWdodD86IHN0cmluZztcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWluaW11bSB3aWR0aCBvZiB0aGUgZGlhbG9nLlxuICAgKi9cbiAgbWluV2lkdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHdpZHRoIG9mIHRoZSBkaWFsb2csIGRpc3BsYXlpbmcgYSBob3Jpem9udGFsIHNjcm9sbGJhciBpZiBpdHMgY29udGVudCBvdmVyZmxvd3MuXG4gICAqIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBkaWFsb2cgYWRhcHRzIGl0cyB3aWR0aCB0byBpdHMgY29udGV4dCB3aWR0aCwgcmVzcGVjdGluZyBhbnkgYG1pbldpZHRoJyBvciBgbWF4V2lkdGgnIGNvbnN0cmFpbnQuXG4gICAqL1xuICB3aWR0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWF4aW11bSB3aWR0aCBvZiB0aGUgZGlhbG9nLlxuICAgKi9cbiAgbWF4V2lkdGg/OiBzdHJpbmc7XG59XG4iXX0=
@@ -8,4 +8,4 @@
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  */
10
10
  export {};
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLWRpYWxvZy5vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvZGlhbG9nL3dvcmtiZW5jaC1kaWFsb2cub3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMyBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtJbmplY3Rvcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQ29udHJvbHMgaG93IHRvIG9wZW4gYSBkaWFsb2cuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2JlbmNoRGlhbG9nT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRhdGEgdG8gcGFzcyB0byB0aGUgZGlhbG9nIGNvbXBvbmVudC4gSW5wdXRzIGFyZSBhdmFpbGFibGUgYXMgaW5wdXQgcHJvcGVydGllcyBpbiB0aGUgZGlhbG9nIGNvbXBvbmVudC5cbiAgICpcbiAgICogKipFeGFtcGxlOioqXG4gICAqIGBgYHRzXG4gICAqIEBJbnB1dCgpXG4gICAqIHB1YmxpYyBzb21lSW5wdXQ6IHN0cmluZztcbiAgICogYGBgXG4gICAqL1xuICBpbnB1dHM/OiB7W25hbWU6IHN0cmluZ106IHVua25vd259O1xuXG4gIC8qKlxuICAgKiBDb250cm9scyB3aGljaCBhcmVhIG9mIHRoZSBhcHBsaWNhdGlvbiB0byBibG9jayBieSB0aGUgZGlhbG9nLlxuICAgKlxuICAgKiAtICoqQXBwbGljYXRpb24tbW9kYWw6KipcbiAgICogICBVc2UgdG8gYmxvY2sgdGhlIHdvcmtiZW5jaCwgb3IgdGhlIGJyb3dzZXIncyB2aWV3cG9ydCBpZiBjb25maWd1cmVkIGluIHtAbGluayBXb3JrYmVuY2hNb2R1bGVDb25maWcuZGlhbG9nLm1vZGFsaXR5U2NvcGV9LlxuICAgKlxuICAgKiAtICoqVmlldy1tb2RhbDoqKlxuICAgKiAgIFVzZSB0byBibG9jayBvbmx5IHRoZSBjb250ZXh0dWFsIHZpZXcgb2YgdGhlIGRpYWxvZywgYWxsb3dpbmcgdGhlIHVzZXIgdG8gaW50ZXJhY3Qgd2l0aCBvdGhlciB2aWV3cy5cbiAgICogICBUaGlzIGlzIHRoZSBkZWZhdWx0IGlmIG9wZW5pbmcgdGhlIGRpYWxvZyBpbiB0aGUgY29udGV4dCBvZiBhIHZpZXcuXG4gICAqL1xuICBtb2RhbGl0eT86ICdhcHBsaWNhdGlvbicgfCAndmlldyc7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGluamVjdG9yIGZvciB0aGUgaW5zdGFudGlhdGlvbiBvZiB0aGUgZGlhbG9nIGNvbXBvbmVudCwgZ2l2aW5nIGNvbnRyb2wgb3ZlciB0aGUgb2JqZWN0cyBhdmFpbGFibGVcbiAgICogZm9yIGluamVjdGlvbiBpbnRvIHRoZSBkaWFsb2cgY29tcG9uZW50LiBJZiBub3Qgc3BlY2lmaWVkLCB1c2VzIHRoZSBhcHBsaWNhdGlvbidzIHJvb3QgaW5qZWN0b3IsIG9yIHRoZSB2aWV3J3NcbiAgICogaW5qZWN0b3IgaWYgb3BlbmVkIGluIHRoZSBjb250ZXh0IG9mIGEgdmlldy5cbiAgICpcbiAgICogKipFeGFtcGxlOioqXG4gICAqIGBgYHRzXG4gICAqIEluamVjdG9yLmNyZWF0ZSh7XG4gICAqICAgcGFyZW50OiAuLi4sXG4gICAqICAgcHJvdmlkZXJzOiBbXG4gICAqICAgIHtwcm92aWRlOiA8VE9LRU4+LCB1c2VWYWx1ZTogPFZBTFVFPn1cbiAgICogICBdLFxuICAgKiB9KVxuICAgKiBgYGBcbiAgICovXG4gIGluamVjdG9yPzogSW5qZWN0b3I7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBDU1MgY2xhc3MoZXMpIHRvIGJlIGFkZGVkIHRvIHRoZSBkaWFsb2csIHVzZWZ1bCBpbiBlbmQtdG8tZW5kIHRlc3RzIGZvciBsb2NhdGluZyB0aGUgZGlhbG9nLlxuICAgKi9cbiAgY3NzQ2xhc3M/OiBzdHJpbmcgfCBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQ29udHJvbHMgd2hldGhlciB0byBhbmltYXRlIHRoZSBvcGVuaW5nIG9mIHRoZSBkaWFsb2cuIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gICAqL1xuICBhbmltYXRlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBjb250ZXh0IGluIHdoaWNoIHRvIG9wZW4gdGhlIGRpYWxvZy5cbiAgICovXG4gIGNvbnRleHQ/OiB7XG4gICAgLyoqXG4gICAgICogQWxsb3dzIGNvbnRyb2xsaW5nIHdoaWNoIHZpZXcgdG8gYmxvY2sgd2hlbiBvcGVuaW5nIGEgdmlldy1tb2RhbCBkaWFsb2cuXG4gICAgICpcbiAgICAgKiBCeSBkZWZhdWx0LCBpZiBvcGVuaW5nIHRoZSBkaWFsb2cgaW4gdGhlIGNvbnRleHQgb2YgYSB2aWV3LCB0aGF0IHZpZXcgaXMgdXNlZCBhcyB0aGUgY29udGV4dHVhbCB2aWV3LlxuICAgICAqL1xuICAgIHZpZXdJZD86IHN0cmluZztcbiAgfTtcbn1cbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLWRpYWxvZy5vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvZGlhbG9nL3dvcmtiZW5jaC1kaWFsb2cub3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMyBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtJbmplY3Rvcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQ29udHJvbHMgaG93IHRvIG9wZW4gYSBkaWFsb2cuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2JlbmNoRGlhbG9nT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRhdGEgdG8gcGFzcyB0byB0aGUgZGlhbG9nIGNvbXBvbmVudC4gSW5wdXRzIGFyZSBhdmFpbGFibGUgYXMgaW5wdXQgcHJvcGVydGllcyBpbiB0aGUgZGlhbG9nIGNvbXBvbmVudC5cbiAgICpcbiAgICogKipFeGFtcGxlOioqXG4gICAqIGBgYHRzXG4gICAqIEBJbnB1dCgpXG4gICAqIHB1YmxpYyBzb21lSW5wdXQ6IHN0cmluZztcbiAgICogYGBgXG4gICAqL1xuICBpbnB1dHM/OiB7W25hbWU6IHN0cmluZ106IHVua25vd259O1xuXG4gIC8qKlxuICAgKiBDb250cm9scyB3aGljaCBhcmVhIG9mIHRoZSBhcHBsaWNhdGlvbiB0byBibG9jayBieSB0aGUgZGlhbG9nLlxuICAgKlxuICAgKiAtICoqQXBwbGljYXRpb24tbW9kYWw6KipcbiAgICogICBVc2UgdG8gYmxvY2sgdGhlIHdvcmtiZW5jaCwgb3IgdGhlIGJyb3dzZXIncyB2aWV3cG9ydCBpZiBjb25maWd1cmVkIGluIHtAbGluayBXb3JrYmVuY2hNb2R1bGVDb25maWcuZGlhbG9nLm1vZGFsaXR5U2NvcGV9LlxuICAgKlxuICAgKiAtICoqVmlldy1tb2RhbDoqKlxuICAgKiAgIFVzZSB0byBibG9jayBvbmx5IHRoZSBjb250ZXh0dWFsIHZpZXcgb2YgdGhlIGRpYWxvZywgYWxsb3dpbmcgdGhlIHVzZXIgdG8gaW50ZXJhY3Qgd2l0aCBvdGhlciB2aWV3cy5cbiAgICogICBUaGlzIGlzIHRoZSBkZWZhdWx0IGlmIG9wZW5pbmcgdGhlIGRpYWxvZyBpbiB0aGUgY29udGV4dCBvZiBhIHZpZXcuXG4gICAqL1xuICBtb2RhbGl0eT86ICdhcHBsaWNhdGlvbicgfCAndmlldyc7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGluamVjdG9yIGZvciB0aGUgaW5zdGFudGlhdGlvbiBvZiB0aGUgZGlhbG9nIGNvbXBvbmVudCwgZ2l2aW5nIGNvbnRyb2wgb3ZlciB0aGUgb2JqZWN0cyBhdmFpbGFibGVcbiAgICogZm9yIGluamVjdGlvbiBpbnRvIHRoZSBkaWFsb2cgY29tcG9uZW50LiBJZiBub3Qgc3BlY2lmaWVkLCB1c2VzIHRoZSBhcHBsaWNhdGlvbidzIHJvb3QgaW5qZWN0b3IsIG9yIHRoZSB2aWV3J3NcbiAgICogaW5qZWN0b3IgaWYgb3BlbmVkIGluIHRoZSBjb250ZXh0IG9mIGEgdmlldy5cbiAgICpcbiAgICogKipFeGFtcGxlOioqXG4gICAqIGBgYHRzXG4gICAqIEluamVjdG9yLmNyZWF0ZSh7XG4gICAqICAgcGFyZW50OiAuLi4sXG4gICAqICAgcHJvdmlkZXJzOiBbXG4gICAqICAgIHtwcm92aWRlOiA8VE9LRU4+LCB1c2VWYWx1ZTogPFZBTFVFPn1cbiAgICogICBdLFxuICAgKiB9KVxuICAgKiBgYGBcbiAgICovXG4gIGluamVjdG9yPzogSW5qZWN0b3I7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBDU1MgY2xhc3MoZXMpIHRvIGJlIGFkZGVkIHRvIHRoZSBkaWFsb2csIHVzZWZ1bCBpbiBlbmQtdG8tZW5kIHRlc3RzIGZvciBsb2NhdGluZyB0aGUgZGlhbG9nLlxuICAgKi9cbiAgY3NzQ2xhc3M/OiBzdHJpbmcgfCBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQ29udHJvbHMgd2hldGhlciB0byBhbmltYXRlIHRoZSBvcGVuaW5nIG9mIHRoZSBkaWFsb2cuIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gICAqL1xuICBhbmltYXRlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBjb250ZXh0IGluIHdoaWNoIHRvIG9wZW4gdGhlIGRpYWxvZy5cbiAgICovXG4gIGNvbnRleHQ/OiB7XG4gICAgLyoqXG4gICAgICogQ29udHJvbHMgd2hpY2ggdmlldyB0byBibG9jayB3aGVuIG9wZW5pbmcgYSBkaWFsb2cgdmlldy1tb2RhbC5cbiAgICAgKlxuICAgICAqIEJ5IGRlZmF1bHQsIGlmIG9wZW5pbmcgdGhlIGRpYWxvZyBpbiB0aGUgY29udGV4dCBvZiBhIHZpZXcsIHRoYXQgdmlldyBpcyB1c2VkIGFzIHRoZSBjb250ZXh0dWFsIHZpZXcuXG4gICAgICovXG4gICAgdmlld0lkPzogc3RyaW5nO1xuICB9O1xufVxuIl19
@@ -79,12 +79,7 @@ export class ɵWorkbenchDialog {
79
79
  // Wait for the dialog to close, resolving to its result or rejecting if closed with an error.
80
80
  return new Promise((resolve, reject) => {
81
81
  this._destroyRef.onDestroy(() => {
82
- if (this._result instanceof ɵDialogErrorResult) {
83
- reject(this._result.error);
84
- }
85
- else {
86
- resolve(this._result);
87
- }
82
+ this._result instanceof Error ? reject(this._result) : resolve(this._result);
88
83
  });
89
84
  });
90
85
  }
@@ -93,11 +88,6 @@ export class ɵWorkbenchDialog {
93
88
  this._result = result;
94
89
  this.destroy();
95
90
  }
96
- /** @inheritDoc */
97
- closeWithError(error) {
98
- this._result = new ɵDialogErrorResult(error);
99
- this.destroy();
100
- }
101
91
  /**
102
92
  * Inputs passed to the dialog.
103
93
  */
@@ -279,12 +269,4 @@ export class ɵWorkbenchDialog {
279
269
  }
280
270
  }
281
271
  }
282
- /**
283
- * Wrapper to identify an erroneous result.
284
- */
285
- class ɵDialogErrorResult {
286
- constructor(error) {
287
- this.error = error;
288
- }
289
- }
290
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiybV3b3JrYmVuY2gtZGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvZGlhbG9nL8m1d29ya2JlbmNoLWRpYWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzlJLE9BQU8sRUFBZSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUMsZUFBZSxFQUFzQixNQUFNLG9CQUFvQixDQUFDO0FBRXhFLE9BQU8sRUFBQyxlQUFlLEVBQWdCLE1BQU0scUJBQXFCLENBQUM7QUFDbkUsT0FBTyxFQUFDLE9BQU8sRUFBYSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFDLGVBQWUsRUFB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dEIsWUFBbUIsS0FBcUI7UUFBckIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7SUFDeEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIzIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgY29uY2F0V2l0aCwgZGVsYXksIEVNUFRZLCBmaXJzdFZhbHVlRnJvbSwgbWFwLCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QsIHN3aXRjaE1hcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NvbXBvbmVudFJlZiwgaW5qZWN0LCBJbmplY3RvciwgTmdab25lfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7V29ya2JlbmNoRGlhbG9nLCBXb3JrYmVuY2hEaWFsb2dTaXplfSBmcm9tICcuL3dvcmtiZW5jaC1kaWFsb2cnO1xuaW1wb3J0IHtXb3JrYmVuY2hEaWFsb2dPcHRpb25zfSBmcm9tICcuL3dvcmtiZW5jaC1kaWFsb2cub3B0aW9ucyc7XG5pbXBvcnQge0NvbXBvbmVudFBvcnRhbCwgQ29tcG9uZW50VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge092ZXJsYXksIE92ZXJsYXlSZWZ9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7V29ya2JlbmNoRGlhbG9nQ29tcG9uZW50fSBmcm9tICcuL3dvcmtiZW5jaC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7ybVXb3JrYmVuY2hWaWV3fSBmcm9tICcuLi92aWV3L8m1d29ya2JlbmNoLXZpZXcubW9kZWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hEaWFsb2dSZWdpc3RyeX0gZnJvbSAnLi93b3JrYmVuY2gtZGlhbG9nLnJlZ2lzdHJ5JztcbmltcG9ydCB7ybVEZXN0cm95UmVmfSBmcm9tICcuLi9jb21tb24vybVkZXN0cm95LXJlZic7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtzZXRTdHlsZX0gZnJvbSAnLi4vY29tbW9uL2RvbS51dGlsJztcbmltcG9ydCB7ZnJvbURpbWVuc2lvbiR9IGZyb20gJ0BzY2lvbi90b29sa2l0L29ic2VydmFibGUnO1xuaW1wb3J0IHtzdWJzY3JpYmVJbnNpZGV9IGZyb20gJ0BzY2lvbi90b29sa2l0L29wZXJhdG9ycyc7XG5pbXBvcnQge1ZpZXdEcmFnU2VydmljZX0gZnJvbSAnLi4vdmlldy1kbmQvdmlldy1kcmFnLnNlcnZpY2UnO1xuaW1wb3J0IHtXT1JLQkVOQ0hfRUxFTUVOVF9SRUZ9IGZyb20gJy4uL2NvbnRlbnQtcHJvamVjdGlvbi92aWV3LWNvbnRhaW5lci5yZWZlcmVuY2UnO1xuaW1wb3J0IHtBcnJheXN9IGZyb20gJ0BzY2lvbi90b29sa2l0L3V0aWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hNb2R1bGVDb25maWd9IGZyb20gJy4uL3dvcmtiZW5jaC1tb2R1bGUtY29uZmlnJztcbmltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtXb3JrYmVuY2hEaWFsb2dBY3Rpb25EaXJlY3RpdmV9IGZyb20gJy4vZGlhbG9nLWZvb3Rlci93b3JrYmVuY2gtZGlhbG9nLWFjdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hEaWFsb2dGb290ZXJEaXJlY3RpdmV9IGZyb20gJy4vZGlhbG9nLWZvb3Rlci93b3JrYmVuY2gtZGlhbG9nLWZvb3Rlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hEaWFsb2dIZWFkZXJEaXJlY3RpdmV9IGZyb20gJy4vZGlhbG9nLWhlYWRlci93b3JrYmVuY2gtZGlhbG9nLWhlYWRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtEaXNwb3NhYmxlfSBmcm9tICcuLi9jb21tb24vZGlzcG9zYWJsZSc7XG5pbXBvcnQge0Jsb2NrYWJsZX0gZnJvbSAnLi4vZ2xhc3MtcGFuZS9ibG9ja2FibGUnO1xuaW1wb3J0IHtCbG9ja2luZ30gZnJvbSAnLi4vZ2xhc3MtcGFuZS9ibG9ja2luZyc7XG5pbXBvcnQge1VVSUR9IGZyb20gJ0BzY2lvbi90b29sa2l0L3V1aWQnO1xuXG4vKiogQGluaGVyaXREb2MgKi9cbmV4cG9ydCBjbGFzcyDJtVdvcmtiZW5jaERpYWxvZzxSID0gdW5rbm93bj4gaW1wbGVtZW50cyBXb3JrYmVuY2hEaWFsb2c8Uj4sIEJsb2NrYWJsZSwgQmxvY2tpbmcge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3BvcnRhbDogQ29tcG9uZW50UG9ydGFsPFdvcmtiZW5jaERpYWxvZ0NvbXBvbmVudD47XG4gIHByaXZhdGUgcmVhZG9ubHkgX3dvcmtiZW5jaERpYWxvZ1JlZ2lzdHJ5ID0gaW5qZWN0KFdvcmtiZW5jaERpYWxvZ1JlZ2lzdHJ5KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfem9uZSA9IGluamVjdChOZ1pvbmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF93b3JrYmVuY2hNb2R1bGVDb25maWcgPSBpbmplY3QoV29ya2JlbmNoTW9kdWxlQ29uZmlnKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IG5ldyDJtURlc3Ryb3lSZWYoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYXR0YWNoZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwcml2YXRlIF9ibGluayQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qKlxuICAgKiBDb250YWlucyB0aGUgcmVzdWx0IHRvIGJlIHBhc3NlZCB0byB0aGUgZGlhbG9nIG9wZW5lci5cbiAgICovXG4gIHByaXZhdGUgX3Jlc3VsdDogUiB8IMm1RGlhbG9nRXJyb3JSZXN1bHQgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX2NvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFdvcmtiZW5jaERpYWxvZ0NvbXBvbmVudD4gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX2Nzc0NsYXNzOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFVuaXF1ZSBpZGVudGl0eSBvZiB0aGlzIGRpYWxvZy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpZCA9IFVVSUQucmFuZG9tVVVJRCgpO1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhpcyBkaWFsb2cgaXMgYmxvY2tlZCBieSBvdGhlciBkaWFsb2cocykgdGhhdCBvdmVybGF5IHRoaXMgZGlhbG9nLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGJsb2NrZWRCeSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PMm1V29ya2JlbmNoRGlhbG9nIHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBzaXplOiBXb3JrYmVuY2hEaWFsb2dTaXplID0ge307XG4gIHB1YmxpYyB0aXRsZTogc3RyaW5nIHwgT2JzZXJ2YWJsZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgY2xvc2FibGUgPSB0cnVlO1xuICBwdWJsaWMgcmVzaXphYmxlID0gdHJ1ZTtcbiAgcHVibGljIHBhZGRpbmcgPSB0cnVlO1xuICBwdWJsaWMgaGVhZGVyOiBXb3JrYmVuY2hEaWFsb2dIZWFkZXJEaXJlY3RpdmUgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBmb290ZXI6IFdvcmtiZW5jaERpYWxvZ0Zvb3RlckRpcmVjdGl2ZSB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGFjdGlvbnMgPSBuZXcgQXJyYXk8V29ya2JlbmNoRGlhbG9nQWN0aW9uRGlyZWN0aXZlPigpO1xuICBwdWJsaWMgYmxpbmtpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHB1YmxpYyBjb250ZXh0ID0ge1xuICAgIHZpZXc6IGluamVjdCjJtVdvcmtiZW5jaFZpZXcsIHtvcHRpb25hbDogdHJ1ZX0pLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8dW5rbm93bj4sIHB1YmxpYyBfb3B0aW9uczogV29ya2JlbmNoRGlhbG9nT3B0aW9ucykge1xuICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLmNyZWF0ZU92ZXJsYXkoKTtcbiAgICB0aGlzLl9wb3J0YWwgPSB0aGlzLmNyZWF0ZVBvcnRhbCgpO1xuICAgIHRoaXMuX2Nzc0NsYXNzID0gQXJyYXlzLmNvZXJjZSh0aGlzLl9vcHRpb25zLmNzc0NsYXNzKS5qb2luKCcgJyk7XG4gICAgdGhpcy5fYXR0YWNoZWQkID0gdGhpcy5tb25pdG9ySG9zdEVsZW1lbnRBdHRhY2hlZCQoKTtcblxuICAgIHRoaXMuaGlkZU9uSG9zdEVsZW1lbnREZXRhY2hPclZpZXdEcmFnKCk7XG4gICAgdGhpcy5zdGlja1RvSG9zdEVsZW1lbnQoKTtcbiAgICB0aGlzLmJsb2NrV2hlbk5vdE9uVG9wKCk7XG4gICAgdGhpcy5yZXN0b3JlRm9jdXNPbkF0dGFjaCgpO1xuICAgIHRoaXMucmVzdG9yZUZvY3VzT25VbmJsb2NrKCk7XG4gICAgdGhpcy5ibGlua09uUmVxdWVzdCgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIG9wZW4oKTogUHJvbWlzZTxSIHwgdW5kZWZpbmVkPiB7XG4gICAgLy8gV2FpdCBmb3IgdGhlIG92ZXJsYXkgdG8gYmUgaW5pdGlhbGx5IHBvc2l0aW9uZWQgdG8gaGF2ZSBhIHNtb290aCBzbGlkZS1pbiBhbmltYXRpb24uXG4gICAgaWYgKHRoaXMuYW5pbWF0ZSkge1xuICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20oZnJvbURpbWVuc2lvbiQodGhpcy5fb3ZlcmxheVJlZi5ob3N0RWxlbWVudCkpO1xuICAgIH1cblxuICAgIC8vIEF0dGFjaCB0aGUgZGlhbG9nIHBvcnRhbCB0byB0aGUgb3ZlcmxheS5cbiAgICB0aGlzLl9jb21wb25lbnRSZWYgPSB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaCh0aGlzLl9wb3J0YWwpO1xuXG4gICAgLy8gRW5zdXJlIHRvIGRlc3Ryb3kgdGhpcyBoYW5kbGUgb24gYnJvd3NlciBiYWNrL2ZvcndhcmQgbmF2aWdhdGlvbi5cbiAgICB0aGlzLl9jb21wb25lbnRSZWYub25EZXN0cm95KCgpID0+IHRoaXMuZGVzdHJveSgpKTtcblxuICAgIC8vIFRyaWdnZXIgYSBtYW51YWwgY2hhbmdlIGRldGVjdGlvbiBjeWNsZSB0byBhdm9pZCAnRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvcidcbiAgICAvLyB3aGVuIHRoZSBkaWFsb2cgc2V0cyBkaWFsb2ctc3BlY2lmaWMgcHJvcGVydGllcyBzdWNoIGFzIHRpdGxlIG9yIHNpemUgZHVyaW5nIGNvbnN0cnVjdGlvbi5cbiAgICB0aGlzLl9jb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgLy8gV2FpdCBmb3IgdGhlIGRpYWxvZyB0byBjbG9zZSwgcmVzb2x2aW5nIHRvIGl0cyByZXN1bHQgb3IgcmVqZWN0aW5nIGlmIGNsb3NlZCB3aXRoIGFuIGVycm9yLlxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxSIHwgdW5kZWZpbmVkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLl9kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9yZXN1bHQgaW5zdGFuY2VvZiDJtURpYWxvZ0Vycm9yUmVzdWx0KSB7XG4gICAgICAgICAgcmVqZWN0KHRoaXMuX3Jlc3VsdC5lcnJvcik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9yZXN1bHQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgY2xvc2UocmVzdWx0PzogUik6IHZvaWQge1xuICAgIHRoaXMuX3Jlc3VsdCA9IHJlc3VsdDtcbiAgICB0aGlzLmRlc3Ryb3koKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgY2xvc2VXaXRoRXJyb3IoZXJyb3I6IEVycm9yIHwgc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzdWx0ID0gbmV3IMm1RGlhbG9nRXJyb3JSZXN1bHQoZXJyb3IpO1xuICAgIHRoaXMuZGVzdHJveSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIElucHV0cyBwYXNzZWQgdG8gdGhlIGRpYWxvZy5cbiAgICovXG4gIHB1YmxpYyBnZXQgaW5wdXRzKCk6IHtbbmFtZTogc3RyaW5nXTogdW5rbm93bn0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zLmlucHV0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdG8gYW5pbWF0ZSB0aGUgZGlhbG9nLlxuICAgKi9cbiAgcHVibGljIGdldCBhbmltYXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zLmFuaW1hdGUgPz8gZmFsc2U7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5ibG9ja2VkQnkkLnZhbHVlKSB7XG4gICAgICB0aGlzLl9jb21wb25lbnRSZWY/Lmluc3RhbmNlLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVySGVhZGVyKGhlYWRlcjogV29ya2JlbmNoRGlhbG9nSGVhZGVyRGlyZWN0aXZlKTogRGlzcG9zYWJsZSB7XG4gICAgdGhpcy5oZWFkZXIgPSBoZWFkZXI7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3Bvc2U6ICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaGVhZGVyID09PSBoZWFkZXIpIHtcbiAgICAgICAgICB0aGlzLmhlYWRlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyRm9vdGVyKGZvb3RlcjogV29ya2JlbmNoRGlhbG9nRm9vdGVyRGlyZWN0aXZlKTogRGlzcG9zYWJsZSB7XG4gICAgaWYgKHRoaXMuYWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHRocm93IEVycm9yKCdbRGlhbG9nSW5pdEVycm9yXSBDdXN0b20gZGlhbG9nIGZvb3RlciBub3Qgc3VwcG9ydGVkIGlmIHVzaW5nIGRpYWxvZyBhY3Rpb25zLicpO1xuICAgIH1cbiAgICB0aGlzLmZvb3RlciA9IGZvb3RlcjtcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcG9zZTogKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5mb290ZXIgPT09IGZvb3Rlcikge1xuICAgICAgICAgIHRoaXMuZm9vdGVyID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJBY3Rpb24oYWN0aW9uOiBXb3JrYmVuY2hEaWFsb2dBY3Rpb25EaXJlY3RpdmUpOiBEaXNwb3NhYmxlIHtcbiAgICBpZiAodGhpcy5mb290ZXIpIHtcbiAgICAgIHRocm93IEVycm9yKCdbRGlhbG9nSW5pdEVycm9yXSBEaWFsb2cgYWN0aW9ucyBub3Qgc3VwcG9ydGVkIGlmIHVzaW5nIGEgY3VzdG9tIGRpYWxvZyBmb290ZXIuJyk7XG4gICAgfVxuICAgIHRoaXMuYWN0aW9ucyA9IHRoaXMuYWN0aW9ucy5jb25jYXQoYWN0aW9uKTtcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcG9zZTogKCkgPT4gdGhpcy5hY3Rpb25zID0gdGhpcy5hY3Rpb25zLmZpbHRlcihjYW5kaWRhdGUgPT4gY2FuZGlkYXRlICE9PSBhY3Rpb24pLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcG9zaXRpb24gb2YgdGhlIGRpYWxvZyBpbiB0aGUgZGlhbG9nIHN0YWNrLlxuICAgKi9cbiAgcHVibGljIGdldFBvc2l0aW9uSW5EaWFsb2dTdGFjaygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl93b3JrYmVuY2hEaWFsb2dSZWdpc3RyeS5pbmRleE9mKHRoaXMpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBzZXQgY3NzQ2xhc3MoY3NzQ2xhc3M6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5fY3NzQ2xhc3MgPSBuZXcgQXJyYXk8c3RyaW5nPigpLmNvbmNhdCh0aGlzLl9vcHRpb25zLmNzc0NsYXNzID8/IFtdKS5jb25jYXQoY3NzQ2xhc3MpLmpvaW4oJyAnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgZ2V0IGNzc0NsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2Nzc0NsYXNzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBibGluaygpOiB2b2lkIHtcbiAgICB0aGlzLl9ibGluayQubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQb3J0YWwoKTogQ29tcG9uZW50UG9ydGFsPFdvcmtiZW5jaERpYWxvZ0NvbXBvbmVudD4ge1xuICAgIHJldHVybiBuZXcgQ29tcG9uZW50UG9ydGFsKFdvcmtiZW5jaERpYWxvZ0NvbXBvbmVudCwgbnVsbCwgSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgIHBhcmVudDogaW5qZWN0KEluamVjdG9yKSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7cHJvdmlkZTogybVXb3JrYmVuY2hEaWFsb2csIHVzZVZhbHVlOiB0aGlzfSxcbiAgICAgICAge3Byb3ZpZGU6IFdvcmtiZW5jaERpYWxvZywgdXNlRXhpc3Rpbmc6IMm1V29ya2JlbmNoRGlhbG9nfSxcbiAgICAgIF0sXG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBkZWRpY2F0ZWQgb3ZlcmxheSBwZXIgZGlhbG9nIHRvIHBsYWNlIGl0IG9uIHRvcCBvZiBwcmV2aW91c2x5IGNyZWF0ZWQgb3ZlcmxheXMsIHN1Y2ggYXMgZGlhbG9ncywgcG9wdXBzLCBkcm9wZG93bnMsIGV0Yy5cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlT3ZlcmxheSgpOiBPdmVybGF5UmVmIHtcbiAgICBjb25zdCBvdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xuICAgIHJldHVybiBvdmVybGF5LmNyZWF0ZSh7XG4gICAgICBkaXNwb3NlT25OYXZpZ2F0aW9uOiB0cnVlLCAvLyBkaXNwb3NlIGRpYWxvZyBvbiBicm93c2VyIGJhY2svZm9yd2FyZCBuYXZpZ2F0aW9uXG4gICAgICBwYW5lbENsYXNzOiBbJ3diLWRpYWxvZy1tb2RhbGl0eS1jb250ZXh0J10sXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiBvdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCksXG4gICAgICBzY3JvbGxTdHJhdGVneTogb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLm5vb3AoKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXN0b3JlcyBmb2N1cyB3aGVuIHJlLWF0dGFjaGluZyB0aGlzIGRpYWxvZy5cbiAgICovXG4gIHByaXZhdGUgcmVzdG9yZUZvY3VzT25BdHRhY2goKTogdm9pZCB7XG4gICAgdGhpcy5fYXR0YWNoZWQkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXN0b3JlcyBmb2N1cyB3aGVuIHVuYmxvY2tpbmcgdGhpcyBkaWFsb2cuXG4gICAqL1xuICBwcml2YXRlIHJlc3RvcmVGb2N1c09uVW5ibG9jaygpOiB2b2lkIHtcbiAgICB0aGlzLmJsb2NrZWRCeSRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoYmxvY2tlZEJ5ID0+ICFibG9ja2VkQnkpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb25pdG9ycyBhdHRhY2htZW50IG9mIHRoZSBob3N0IGVsZW1lbnQuXG4gICAqL1xuICBwcml2YXRlIG1vbml0b3JIb3N0RWxlbWVudEF0dGFjaGVkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBpZiAodGhpcy5jb250ZXh0LnZpZXcpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbnRleHQudmlldy5wb3J0YWwuYXR0YWNoZWQkO1xuICAgIH1cbiAgICBpZiAodGhpcy5fd29ya2JlbmNoTW9kdWxlQ29uZmlnLmRpYWxvZz8ubW9kYWxpdHlTY29wZSA9PT0gJ3ZpZXdwb3J0Jykge1xuICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgIH1cbiAgICByZXR1cm4gaW5qZWN0KFdPUktCRU5DSF9FTEVNRU5UX1JFRikucmVmJC5waXBlKG1hcChyZWYgPT4gISFyZWYpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIaWRlcyB0aGlzIGRpYWxvZyB3aGVuIGVpdGhlciBpdHMgaG9zdCBlbGVtZW50IGlzIGRldGFjaGVkIG9yIGR1cmluZyB2aWV3IGRyYWcgYW5kIGRyb3Agb3BlcmF0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBoaWRlT25Ib3N0RWxlbWVudERldGFjaE9yVmlld0RyYWcoKTogdm9pZCB7XG4gICAgY29uc3Qgdmlld0RyYWdTZXJ2aWNlID0gaW5qZWN0KFZpZXdEcmFnU2VydmljZSk7XG4gICAgY29uc3Qgdmlld0RyYWckID0gbWVyZ2UoXG4gICAgICB2aWV3RHJhZ1NlcnZpY2Uudmlld0RyYWdTdGFydCQucGlwZShtYXAoKCkgPT4gdHJ1ZSkpLFxuICAgICAgdmlld0RyYWdTZXJ2aWNlLnZpZXdEcmFnRW5kJC5waXBlKG1hcCgoKSA9PiBmYWxzZSkpLFxuICAgICAgb2YoZmFsc2UpLCAvLyB0byBpbml0aWFsaXplIGBjb21iaW5lTGF0ZXN0YFxuICAgICk7XG5cbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLl9hdHRhY2hlZCQsIHZpZXdEcmFnJF0pXG4gICAgICAucGlwZShcbiAgICAgICAgc3Vic2NyaWJlSW5zaWRlKGZuID0+IHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoZm4pKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoW2F0dGFjaGVkLCBkcmFnZ2luZ10pID0+IHtcbiAgICAgICAgY29uc3QgaGlkZURpYWxvZyA9ICFhdHRhY2hlZCB8fCBkcmFnZ2luZztcblxuICAgICAgICAvLyBIaWRlIHZpYSBgdmlzaWJpbGl0eTogaGlkZGVuYCBpbnN0ZWFkIG9mIGBkaXNwbGF5OiBub25lYCBpbiBvcmRlciB0byBwcmVzZXJ2ZSB0aGUgZGltZW5zaW9uIG9mIHRoZSBkaWFsb2cuXG4gICAgICAgIHNldFN0eWxlKHRoaXMuX292ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQsIHt2aXNpYmlsaXR5OiBoaWRlRGlhbG9nID8gJ2hpZGRlbicgOiBudWxsfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGlnbnMgdGhpcyBkaWFsb2cgd2l0aCB0aGUgYm91bmRhcmllcyBvZiB0aGUgaG9zdCBlbGVtZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBzdGlja1RvSG9zdEVsZW1lbnQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX29wdGlvbnMubW9kYWxpdHkgPT09ICdhcHBsaWNhdGlvbicgJiYgdGhpcy5fd29ya2JlbmNoTW9kdWxlQ29uZmlnLmRpYWxvZz8ubW9kYWxpdHlTY29wZSA9PT0gJ3ZpZXdwb3J0Jykge1xuICAgICAgc2V0U3R5bGUodGhpcy5fb3ZlcmxheVJlZi5ob3N0RWxlbWVudCwge2luc2V0OiAnMCd9KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBjb25zdCB3b3JrYmVuY2hWaWV3RWxlbWVudCQgPSAodmlldzogybVXb3JrYmVuY2hWaWV3KTogT2JzZXJ2YWJsZTxIVE1MRWxlbWVudD4gPT4gb2Yodmlldy5wb3J0YWwuY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgY29uc3Qgd29ya2JlbmNoUm9vdEVsZW1lbnQkID0gKCk6IE9ic2VydmFibGU8SFRNTEVsZW1lbnQ+ID0+IGluamVjdChXT1JLQkVOQ0hfRUxFTUVOVF9SRUYpLnJlZiQucGlwZShtYXAocmVmID0+IHJlZj8uZWxlbWVudC5uYXRpdmVFbGVtZW50KSk7XG4gICAgICBjb25zdCBob3N0RWxlbWVudCQgPSB0aGlzLmNvbnRleHQudmlldyA/IHdvcmtiZW5jaFZpZXdFbGVtZW50JCh0aGlzLmNvbnRleHQudmlldykgOiB3b3JrYmVuY2hSb290RWxlbWVudCQoKTtcblxuICAgICAgaG9zdEVsZW1lbnQkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHN3aXRjaE1hcChob3N0RWxlbWVudCA9PiBob3N0RWxlbWVudCA/IGZyb21EaW1lbnNpb24kKGhvc3RFbGVtZW50KSA6IEVNUFRZKSxcbiAgICAgICAgICBtYXAoKHtlbGVtZW50OiBob3N0RWxlbWVudH0pID0+IGhvc3RFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSxcbiAgICAgICAgICBzdWJzY3JpYmVJbnNpZGUoZm4gPT4gdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcihmbikpLFxuICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCh7dG9wLCBsZWZ0LCB3aWR0aCwgaGVpZ2h0fSkgPT4ge1xuICAgICAgICAgIHNldFN0eWxlKHRoaXMuX292ZXJsYXlSZWYuaG9zdEVsZW1lbnQsIHtcbiAgICAgICAgICAgIHRvcDogYCR7dG9wfXB4YCxcbiAgICAgICAgICAgIGxlZnQ6IGAke2xlZnR9cHhgLFxuICAgICAgICAgICAgd2lkdGg6IGAke3dpZHRofXB4YCxcbiAgICAgICAgICAgIGhlaWdodDogYCR7aGVpZ2h0fXB4YCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEJsb2NrcyB0aGlzIGRpYWxvZyBpZiBub3QgdGhlIHRvcG1vc3QgZGlhbG9nIGluIGl0cyBjb250ZXh0LlxuICAgKi9cbiAgcHJpdmF0ZSBibG9ja1doZW5Ob3RPblRvcCgpOiB2b2lkIHtcbiAgICB0aGlzLl93b3JrYmVuY2hEaWFsb2dSZWdpc3RyeS50b3AkKHt2aWV3SWQ6IHRoaXMuY29udGV4dC52aWV3Py5pZH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHRvcCA9PiB0b3AgPT09IHRoaXMgPyBudWxsIDogdG9wKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLmJsb2NrZWRCeSQpO1xuICB9XG5cbiAgcHJpdmF0ZSBibGlua09uUmVxdWVzdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9ibGluayRcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gb2YodHJ1ZSkucGlwZShjb25jYXRXaXRoKG9mKGZhbHNlKS5waXBlKGRlbGF5KDMwMCkpKSkpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZiksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHRoaXMuYmxpbmtpbmckKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXN0cm95cyB0aGlzIGRpYWxvZyBhbmQgYXNzb2NpYXRlZCByZXNvdXJjZXMuXG4gICAqL1xuICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2Rlc3Ryb3lSZWYuZGVzdHJveWVkKSB7XG4gICAgICB0aGlzLl9kZXN0cm95UmVmLmRlc3Ryb3koKTtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFdyYXBwZXIgdG8gaWRlbnRpZnkgYW4gZXJyb25lb3VzIHJlc3VsdC5cbiAqL1xuY2xhc3MgybVEaWFsb2dFcnJvclJlc3VsdCB7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGVycm9yOiBzdHJpbmcgfCBFcnJvcikge1xuICB9XG59XG4iXX0=
272
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiybV3b3JrYmVuY2gtZGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvZGlhbG9nL8m1d29ya2JlbmNoLWRpYWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzlJLE9BQU8sRUFBZSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUMsZUFBZSxFQUFzQixNQUFNLG9CQUFvQixDQUFDO0FBRXhFLE9BQU8sRUFBQyxlQUFlLEVBQWdCLE1BQU0scUJBQXFCLENBQUM7QUFDbkUsT0FBTyxFQUFDLE9BQU8sRUFBYSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFDLGVBQWUsRUFB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QUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBQyxDQUFDO2FBQ2hFLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUNyQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQ3JDO2FBQ0EsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLENBQUMsT0FBTzthQUNULElBQUksQ0FDSCxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDdEUsb0JBQW9CLEVBQUUsRUFDdEIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUNyQzthQUNBLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTztRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRTtZQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjMgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBjb25jYXRXaXRoLCBkZWxheSwgRU1QVFksIGZpcnN0VmFsdWVGcm9tLCBtYXAsIG1lcmdlLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q29tcG9uZW50UmVmLCBpbmplY3QsIEluamVjdG9yLCBOZ1pvbmV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hEaWFsb2csIFdvcmtiZW5jaERpYWxvZ1NpemV9IGZyb20gJy4vd29ya2JlbmNoLWRpYWxvZyc7XG5pbXBvcnQge1dvcmtiZW5jaERpYWxvZ09wdGlvbnN9IGZyb20gJy4vd29ya2JlbmNoLWRpYWxvZy5vcHRpb25zJztcbmltcG9ydCB7Q29tcG9uZW50UG9ydGFsLCBDb21wb25lbnRUeXBlfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7T3ZlcmxheSwgT3ZlcmxheVJlZn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtXb3JrYmVuY2hEaWFsb2dDb21wb25lbnR9IGZyb20gJy4vd29ya2JlbmNoLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHvJtVdvcmtiZW5jaFZpZXd9IGZyb20gJy4uL3ZpZXcvybV3b3JrYmVuY2gtdmlldy5tb2RlbCc7XG5pbXBvcnQge1dvcmtiZW5jaERpYWxvZ1JlZ2lzdHJ5fSBmcm9tICcuL3dvcmtiZW5jaC1kaWFsb2cucmVnaXN0cnknO1xuaW1wb3J0IHvJtURlc3Ryb3lSZWZ9IGZyb20gJy4uL2NvbW1vbi/JtWRlc3Ryb3ktcmVmJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge3NldFN0eWxlfSBmcm9tICcuLi9jb21tb24vZG9tLnV0aWwnO1xuaW1wb3J0IHtmcm9tRGltZW5zaW9uJH0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvb2JzZXJ2YWJsZSc7XG5pbXBvcnQge3N1YnNjcmliZUluc2lkZX0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvb3BlcmF0b3JzJztcbmltcG9ydCB7Vmlld0RyYWdTZXJ2aWNlfSBmcm9tICcuLi92aWV3LWRuZC92aWV3LWRyYWcuc2VydmljZSc7XG5pbXBvcnQge1dPUktCRU5DSF9FTEVNRU5UX1JFRn0gZnJvbSAnLi4vY29udGVudC1wcm9qZWN0aW9uL3ZpZXctY29udGFpbmVyLnJlZmVyZW5jZSc7XG5pbXBvcnQge0FycmF5c30gZnJvbSAnQHNjaW9uL3Rvb2xraXQvdXRpbCc7XG5pbXBvcnQge1dvcmtiZW5jaE1vZHVsZUNvbmZpZ30gZnJvbSAnLi4vd29ya2JlbmNoLW1vZHVsZS1jb25maWcnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1dvcmtiZW5jaERpYWxvZ0FjdGlvbkRpcmVjdGl2ZX0gZnJvbSAnLi9kaWFsb2ctZm9vdGVyL3dvcmtiZW5jaC1kaWFsb2ctYWN0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1dvcmtiZW5jaERpYWxvZ0Zvb3RlckRpcmVjdGl2ZX0gZnJvbSAnLi9kaWFsb2ctZm9vdGVyL3dvcmtiZW5jaC1kaWFsb2ctZm9vdGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1dvcmtiZW5jaERpYWxvZ0hlYWRlckRpcmVjdGl2ZX0gZnJvbSAnLi9kaWFsb2ctaGVhZGVyL3dvcmtiZW5jaC1kaWFsb2ctaGVhZGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0Rpc3Bvc2FibGV9IGZyb20gJy4uL2NvbW1vbi9kaXNwb3NhYmxlJztcbmltcG9ydCB7QmxvY2thYmxlfSBmcm9tICcuLi9nbGFzcy1wYW5lL2Jsb2NrYWJsZSc7XG5pbXBvcnQge0Jsb2NraW5nfSBmcm9tICcuLi9nbGFzcy1wYW5lL2Jsb2NraW5nJztcbmltcG9ydCB7VVVJRH0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvdXVpZCc7XG5cbi8qKiBAaW5oZXJpdERvYyAqL1xuZXhwb3J0IGNsYXNzIMm1V29ya2JlbmNoRGlhbG9nPFIgPSB1bmtub3duPiBpbXBsZW1lbnRzIFdvcmtiZW5jaERpYWxvZzxSPiwgQmxvY2thYmxlLCBCbG9ja2luZyB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcbiAgcHJpdmF0ZSByZWFkb25seSBfcG9ydGFsOiBDb21wb25lbnRQb3J0YWw8V29ya2JlbmNoRGlhbG9nQ29tcG9uZW50PjtcbiAgcHJpdmF0ZSByZWFkb25seSBfd29ya2JlbmNoRGlhbG9nUmVnaXN0cnkgPSBpbmplY3QoV29ya2JlbmNoRGlhbG9nUmVnaXN0cnkpO1xuICBwcml2YXRlIHJlYWRvbmx5IF96b25lID0gaW5qZWN0KE5nWm9uZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3dvcmtiZW5jaE1vZHVsZUNvbmZpZyA9IGluamVjdChXb3JrYmVuY2hNb2R1bGVDb25maWcpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gbmV3IMm1RGVzdHJveVJlZigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hdHRhY2hlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHByaXZhdGUgX2JsaW5rJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIFJlc3VsdCAob3IgZXJyb3IpIHRvIGJlIHBhc3NlZCB0byB0aGUgZGlhbG9nIG9wZW5lci5cbiAgICovXG4gIHByaXZhdGUgX3Jlc3VsdDogUiB8IEVycm9yIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9jb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxXb3JrYmVuY2hEaWFsb2dDb21wb25lbnQ+IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9jc3NDbGFzczogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVbmlxdWUgaWRlbnRpdHkgb2YgdGhpcyBkaWFsb2cuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaWQgPSBVVUlELnJhbmRvbVVVSUQoKTtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoaXMgZGlhbG9nIGlzIGJsb2NrZWQgYnkgb3RoZXIgZGlhbG9nKHMpIHRoYXQgb3ZlcmxheSB0aGlzIGRpYWxvZy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBibG9ja2VkQnkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDzJtVdvcmtiZW5jaERpYWxvZyB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2l6ZTogV29ya2JlbmNoRGlhbG9nU2l6ZSA9IHt9O1xuICBwdWJsaWMgdGl0bGU6IHN0cmluZyB8IE9ic2VydmFibGU8c3RyaW5nIHwgdW5kZWZpbmVkPiB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGNsb3NhYmxlID0gdHJ1ZTtcbiAgcHVibGljIHJlc2l6YWJsZSA9IHRydWU7XG4gIHB1YmxpYyBwYWRkaW5nID0gdHJ1ZTtcbiAgcHVibGljIGhlYWRlcjogV29ya2JlbmNoRGlhbG9nSGVhZGVyRGlyZWN0aXZlIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgZm9vdGVyOiBXb3JrYmVuY2hEaWFsb2dGb290ZXJEaXJlY3RpdmUgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBhY3Rpb25zID0gbmV3IEFycmF5PFdvcmtiZW5jaERpYWxvZ0FjdGlvbkRpcmVjdGl2ZT4oKTtcbiAgcHVibGljIGJsaW5raW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwdWJsaWMgY29udGV4dCA9IHtcbiAgICB2aWV3OiBpbmplY3QoybVXb3JrYmVuY2hWaWV3LCB7b3B0aW9uYWw6IHRydWV9KSxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPHVua25vd24+LCBwdWJsaWMgX29wdGlvbnM6IFdvcmtiZW5jaERpYWxvZ09wdGlvbnMpIHtcbiAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5jcmVhdGVPdmVybGF5KCk7XG4gICAgdGhpcy5fcG9ydGFsID0gdGhpcy5jcmVhdGVQb3J0YWwoKTtcbiAgICB0aGlzLl9jc3NDbGFzcyA9IEFycmF5cy5jb2VyY2UodGhpcy5fb3B0aW9ucy5jc3NDbGFzcykuam9pbignICcpO1xuICAgIHRoaXMuX2F0dGFjaGVkJCA9IHRoaXMubW9uaXRvckhvc3RFbGVtZW50QXR0YWNoZWQkKCk7XG5cbiAgICB0aGlzLmhpZGVPbkhvc3RFbGVtZW50RGV0YWNoT3JWaWV3RHJhZygpO1xuICAgIHRoaXMuc3RpY2tUb0hvc3RFbGVtZW50KCk7XG4gICAgdGhpcy5ibG9ja1doZW5Ob3RPblRvcCgpO1xuICAgIHRoaXMucmVzdG9yZUZvY3VzT25BdHRhY2goKTtcbiAgICB0aGlzLnJlc3RvcmVGb2N1c09uVW5ibG9jaygpO1xuICAgIHRoaXMuYmxpbmtPblJlcXVlc3QoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBvcGVuKCk6IFByb21pc2U8UiB8IHVuZGVmaW5lZD4ge1xuICAgIC8vIFdhaXQgZm9yIHRoZSBvdmVybGF5IHRvIGJlIGluaXRpYWxseSBwb3NpdGlvbmVkIHRvIGhhdmUgYSBzbW9vdGggc2xpZGUtaW4gYW5pbWF0aW9uLlxuICAgIGlmICh0aGlzLmFuaW1hdGUpIHtcbiAgICAgIGF3YWl0IGZpcnN0VmFsdWVGcm9tKGZyb21EaW1lbnNpb24kKHRoaXMuX292ZXJsYXlSZWYuaG9zdEVsZW1lbnQpKTtcbiAgICB9XG5cbiAgICAvLyBBdHRhY2ggdGhlIGRpYWxvZyBwb3J0YWwgdG8gdGhlIG92ZXJsYXkuXG4gICAgdGhpcy5fY29tcG9uZW50UmVmID0gdGhpcy5fb3ZlcmxheVJlZi5hdHRhY2godGhpcy5fcG9ydGFsKTtcblxuICAgIC8vIEVuc3VyZSB0byBkZXN0cm95IHRoaXMgaGFuZGxlIG9uIGJyb3dzZXIgYmFjay9mb3J3YXJkIG5hdmlnYXRpb24uXG4gICAgdGhpcy5fY29tcG9uZW50UmVmLm9uRGVzdHJveSgoKSA9PiB0aGlzLmRlc3Ryb3koKSk7XG5cbiAgICAvLyBUcmlnZ2VyIGEgbWFudWFsIGNoYW5nZSBkZXRlY3Rpb24gY3ljbGUgdG8gYXZvaWQgJ0V4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3InXG4gICAgLy8gd2hlbiB0aGUgZGlhbG9nIHNldHMgZGlhbG9nLXNwZWNpZmljIHByb3BlcnRpZXMgc3VjaCBhcyB0aXRsZSBvciBzaXplIGR1cmluZyBjb25zdHJ1Y3Rpb24uXG4gICAgdGhpcy5fY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgIC8vIFdhaXQgZm9yIHRoZSBkaWFsb2cgdG8gY2xvc2UsIHJlc29sdmluZyB0byBpdHMgcmVzdWx0IG9yIHJlamVjdGluZyBpZiBjbG9zZWQgd2l0aCBhbiBlcnJvci5cbiAgICByZXR1cm4gbmV3IFByb21pc2U8UiB8IHVuZGVmaW5lZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5fZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgICB0aGlzLl9yZXN1bHQgaW5zdGFuY2VvZiBFcnJvciA/IHJlamVjdCh0aGlzLl9yZXN1bHQpIDogcmVzb2x2ZSh0aGlzLl9yZXN1bHQpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGNsb3NlKHJlc3VsdD86IFIgfCBFcnJvcik6IHZvaWQge1xuICAgIHRoaXMuX3Jlc3VsdCA9IHJlc3VsdDtcbiAgICB0aGlzLmRlc3Ryb3koKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnB1dHMgcGFzc2VkIHRvIHRoZSBkaWFsb2cuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlucHV0cygpOiB7W25hbWU6IHN0cmluZ106IHVua25vd259IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9ucy5pbnB1dHM7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRvIGFuaW1hdGUgdGhlIGRpYWxvZy5cbiAgICovXG4gIHB1YmxpYyBnZXQgYW5pbWF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9ucy5hbmltYXRlID8/IGZhbHNlO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBmb2N1cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYmxvY2tlZEJ5JC52YWx1ZSkge1xuICAgICAgdGhpcy5fY29tcG9uZW50UmVmPy5pbnN0YW5jZS5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlckhlYWRlcihoZWFkZXI6IFdvcmtiZW5jaERpYWxvZ0hlYWRlckRpcmVjdGl2ZSk6IERpc3Bvc2FibGUge1xuICAgIHRoaXMuaGVhZGVyID0gaGVhZGVyO1xuICAgIHJldHVybiB7XG4gICAgICBkaXNwb3NlOiAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmhlYWRlciA9PT0gaGVhZGVyKSB7XG4gICAgICAgICAgdGhpcy5oZWFkZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlckZvb3Rlcihmb290ZXI6IFdvcmtiZW5jaERpYWxvZ0Zvb3RlckRpcmVjdGl2ZSk6IERpc3Bvc2FibGUge1xuICAgIGlmICh0aGlzLmFjdGlvbnMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBFcnJvcignW0RpYWxvZ0luaXRFcnJvcl0gQ3VzdG9tIGRpYWxvZyBmb290ZXIgbm90IHN1cHBvcnRlZCBpZiB1c2luZyBkaWFsb2cgYWN0aW9ucy4nKTtcbiAgICB9XG4gICAgdGhpcy5mb290ZXIgPSBmb290ZXI7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3Bvc2U6ICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZm9vdGVyID09PSBmb290ZXIpIHtcbiAgICAgICAgICB0aGlzLmZvb3RlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyQWN0aW9uKGFjdGlvbjogV29ya2JlbmNoRGlhbG9nQWN0aW9uRGlyZWN0aXZlKTogRGlzcG9zYWJsZSB7XG4gICAgaWYgKHRoaXMuZm9vdGVyKSB7XG4gICAgICB0aHJvdyBFcnJvcignW0RpYWxvZ0luaXRFcnJvcl0gRGlhbG9nIGFjdGlvbnMgbm90IHN1cHBvcnRlZCBpZiB1c2luZyBhIGN1c3RvbSBkaWFsb2cgZm9vdGVyLicpO1xuICAgIH1cbiAgICB0aGlzLmFjdGlvbnMgPSB0aGlzLmFjdGlvbnMuY29uY2F0KGFjdGlvbik7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3Bvc2U6ICgpID0+IHRoaXMuYWN0aW9ucyA9IHRoaXMuYWN0aW9ucy5maWx0ZXIoY2FuZGlkYXRlID0+IGNhbmRpZGF0ZSAhPT0gYWN0aW9uKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSBkaWFsb2cgaW4gdGhlIGRpYWxvZyBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBnZXRQb3NpdGlvbkluRGlhbG9nU3RhY2soKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fd29ya2JlbmNoRGlhbG9nUmVnaXN0cnkuaW5kZXhPZih0aGlzKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgc2V0IGNzc0NsYXNzKGNzc0NsYXNzOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICAgIHRoaXMuX2Nzc0NsYXNzID0gbmV3IEFycmF5PHN0cmluZz4oKS5jb25jYXQodGhpcy5fb3B0aW9ucy5jc3NDbGFzcyA/PyBbXSkuY29uY2F0KGNzc0NsYXNzKS5qb2luKCcgJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGdldCBjc3NDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9jc3NDbGFzcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgYmxpbmsoKTogdm9pZCB7XG4gICAgdGhpcy5fYmxpbmskLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUG9ydGFsKCk6IENvbXBvbmVudFBvcnRhbDxXb3JrYmVuY2hEaWFsb2dDb21wb25lbnQ+IHtcbiAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChXb3JrYmVuY2hEaWFsb2dDb21wb25lbnQsIG51bGwsIEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwYXJlbnQ6IGluamVjdChJbmplY3RvciksXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge3Byb3ZpZGU6IMm1V29ya2JlbmNoRGlhbG9nLCB1c2VWYWx1ZTogdGhpc30sXG4gICAgICAgIHtwcm92aWRlOiBXb3JrYmVuY2hEaWFsb2csIHVzZUV4aXN0aW5nOiDJtVdvcmtiZW5jaERpYWxvZ30sXG4gICAgICBdLFxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgZGVkaWNhdGVkIG92ZXJsYXkgcGVyIGRpYWxvZyB0byBwbGFjZSBpdCBvbiB0b3Agb2YgcHJldmlvdXNseSBjcmVhdGVkIG92ZXJsYXlzLCBzdWNoIGFzIGRpYWxvZ3MsIHBvcHVwcywgZHJvcGRvd25zLCBldGMuXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZU92ZXJsYXkoKTogT3ZlcmxheVJlZiB7XG4gICAgY29uc3Qgb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcbiAgICByZXR1cm4gb3ZlcmxheS5jcmVhdGUoe1xuICAgICAgZGlzcG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSwgLy8gZGlzcG9zZSBkaWFsb2cgb24gYnJvd3NlciBiYWNrL2ZvcndhcmQgbmF2aWdhdGlvblxuICAgICAgcGFuZWxDbGFzczogWyd3Yi1kaWFsb2ctbW9kYWxpdHktY29udGV4dCddLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogb3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IG92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ub29wKCksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzdG9yZXMgZm9jdXMgd2hlbiByZS1hdHRhY2hpbmcgdGhpcyBkaWFsb2cuXG4gICAqL1xuICBwcml2YXRlIHJlc3RvcmVGb2N1c09uQXR0YWNoKCk6IHZvaWQge1xuICAgIHRoaXMuX2F0dGFjaGVkJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcihCb29sZWFuKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5mb2N1cygpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzdG9yZXMgZm9jdXMgd2hlbiB1bmJsb2NraW5nIHRoaXMgZGlhbG9nLlxuICAgKi9cbiAgcHJpdmF0ZSByZXN0b3JlRm9jdXNPblVuYmxvY2soKTogdm9pZCB7XG4gICAgdGhpcy5ibG9ja2VkQnkkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKGJsb2NrZWRCeSA9PiAhYmxvY2tlZEJ5KSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5mb2N1cygpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTW9uaXRvcnMgYXR0YWNobWVudCBvZiB0aGUgaG9zdCBlbGVtZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBtb25pdG9ySG9zdEVsZW1lbnRBdHRhY2hlZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgaWYgKHRoaXMuY29udGV4dC52aWV3KSB7XG4gICAgICByZXR1cm4gdGhpcy5jb250ZXh0LnZpZXcucG9ydGFsLmF0dGFjaGVkJDtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3dvcmtiZW5jaE1vZHVsZUNvbmZpZy5kaWFsb2c/Lm1vZGFsaXR5U2NvcGUgPT09ICd2aWV3cG9ydCcpIHtcbiAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICB9XG4gICAgcmV0dXJuIGluamVjdChXT1JLQkVOQ0hfRUxFTUVOVF9SRUYpLnJlZiQucGlwZShtYXAocmVmID0+ICEhcmVmKSk7XG4gIH1cblxuICAvKipcbiAgICogSGlkZXMgdGhpcyBkaWFsb2cgd2hlbiBlaXRoZXIgaXRzIGhvc3QgZWxlbWVudCBpcyBkZXRhY2hlZCBvciBkdXJpbmcgdmlldyBkcmFnIGFuZCBkcm9wIG9wZXJhdGlvbi5cbiAgICovXG4gIHByaXZhdGUgaGlkZU9uSG9zdEVsZW1lbnREZXRhY2hPclZpZXdEcmFnKCk6IHZvaWQge1xuICAgIGNvbnN0IHZpZXdEcmFnU2VydmljZSA9IGluamVjdChWaWV3RHJhZ1NlcnZpY2UpO1xuICAgIGNvbnN0IHZpZXdEcmFnJCA9IG1lcmdlKFxuICAgICAgdmlld0RyYWdTZXJ2aWNlLnZpZXdEcmFnU3RhcnQkLnBpcGUobWFwKCgpID0+IHRydWUpKSxcbiAgICAgIHZpZXdEcmFnU2VydmljZS52aWV3RHJhZ0VuZCQucGlwZShtYXAoKCkgPT4gZmFsc2UpKSxcbiAgICAgIG9mKGZhbHNlKSwgLy8gdG8gaW5pdGlhbGl6ZSBgY29tYmluZUxhdGVzdGBcbiAgICApO1xuXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5fYXR0YWNoZWQkLCB2aWV3RHJhZyRdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN1YnNjcmliZUluc2lkZShmbiA9PiB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKGZuKSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKFthdHRhY2hlZCwgZHJhZ2dpbmddKSA9PiB7XG4gICAgICAgIGNvbnN0IGhpZGVEaWFsb2cgPSAhYXR0YWNoZWQgfHwgZHJhZ2dpbmc7XG5cbiAgICAgICAgLy8gSGlkZSB2aWEgYHZpc2liaWxpdHk6IGhpZGRlbmAgaW5zdGVhZCBvZiBgZGlzcGxheTogbm9uZWAgaW4gb3JkZXIgdG8gcHJlc2VydmUgdGhlIGRpbWVuc2lvbiBvZiB0aGUgZGlhbG9nLlxuICAgICAgICBzZXRTdHlsZSh0aGlzLl9vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50LCB7dmlzaWJpbGl0eTogaGlkZURpYWxvZyA/ICdoaWRkZW4nIDogbnVsbH0pO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWxpZ25zIHRoaXMgZGlhbG9nIHdpdGggdGhlIGJvdW5kYXJpZXMgb2YgdGhlIGhvc3QgZWxlbWVudC5cbiAgICovXG4gIHByaXZhdGUgc3RpY2tUb0hvc3RFbGVtZW50KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9vcHRpb25zLm1vZGFsaXR5ID09PSAnYXBwbGljYXRpb24nICYmIHRoaXMuX3dvcmtiZW5jaE1vZHVsZUNvbmZpZy5kaWFsb2c/Lm1vZGFsaXR5U2NvcGUgPT09ICd2aWV3cG9ydCcpIHtcbiAgICAgIHNldFN0eWxlKHRoaXMuX292ZXJsYXlSZWYuaG9zdEVsZW1lbnQsIHtpbnNldDogJzAnfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY29uc3Qgd29ya2JlbmNoVmlld0VsZW1lbnQkID0gKHZpZXc6IMm1V29ya2JlbmNoVmlldyk6IE9ic2VydmFibGU8SFRNTEVsZW1lbnQ+ID0+IG9mKHZpZXcucG9ydGFsLmNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50KTtcbiAgICAgIGNvbnN0IHdvcmtiZW5jaFJvb3RFbGVtZW50JCA9ICgpOiBPYnNlcnZhYmxlPEhUTUxFbGVtZW50PiA9PiBpbmplY3QoV09SS0JFTkNIX0VMRU1FTlRfUkVGKS5yZWYkLnBpcGUobWFwKHJlZiA9PiByZWY/LmVsZW1lbnQubmF0aXZlRWxlbWVudCkpO1xuICAgICAgY29uc3QgaG9zdEVsZW1lbnQkID0gdGhpcy5jb250ZXh0LnZpZXcgPyB3b3JrYmVuY2hWaWV3RWxlbWVudCQodGhpcy5jb250ZXh0LnZpZXcpIDogd29ya2JlbmNoUm9vdEVsZW1lbnQkKCk7XG5cbiAgICAgIGhvc3RFbGVtZW50JFxuICAgICAgICAucGlwZShcbiAgICAgICAgICBzd2l0Y2hNYXAoaG9zdEVsZW1lbnQgPT4gaG9zdEVsZW1lbnQgPyBmcm9tRGltZW5zaW9uJChob3N0RWxlbWVudCkgOiBFTVBUWSksXG4gICAgICAgICAgbWFwKCh7ZWxlbWVudDogaG9zdEVsZW1lbnR9KSA9PiBob3N0RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSksXG4gICAgICAgICAgc3Vic2NyaWJlSW5zaWRlKGZuID0+IHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoZm4pKSxcbiAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZiksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoe3RvcCwgbGVmdCwgd2lkdGgsIGhlaWdodH0pID0+IHtcbiAgICAgICAgICBzZXRTdHlsZSh0aGlzLl9vdmVybGF5UmVmLmhvc3RFbGVtZW50LCB7XG4gICAgICAgICAgICB0b3A6IGAke3RvcH1weGAsXG4gICAgICAgICAgICBsZWZ0OiBgJHtsZWZ0fXB4YCxcbiAgICAgICAgICAgIHdpZHRoOiBgJHt3aWR0aH1weGAsXG4gICAgICAgICAgICBoZWlnaHQ6IGAke2hlaWdodH1weGAsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBCbG9ja3MgdGhpcyBkaWFsb2cgaWYgbm90IHRoZSB0b3Btb3N0IGRpYWxvZyBpbiBpdHMgY29udGV4dC5cbiAgICovXG4gIHByaXZhdGUgYmxvY2tXaGVuTm90T25Ub3AoKTogdm9pZCB7XG4gICAgdGhpcy5fd29ya2JlbmNoRGlhbG9nUmVnaXN0cnkudG9wJCh7dmlld0lkOiB0aGlzLmNvbnRleHQudmlldz8uaWR9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh0b3AgPT4gdG9wID09PSB0aGlzID8gbnVsbCA6IHRvcCksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5ibG9ja2VkQnkkKTtcbiAgfVxuXG4gIHByaXZhdGUgYmxpbmtPblJlcXVlc3QoKTogdm9pZCB7XG4gICAgdGhpcy5fYmxpbmskXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IG9mKHRydWUpLnBpcGUoY29uY2F0V2l0aChvZihmYWxzZSkucGlwZShkZWxheSgzMDApKSkpKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLmJsaW5raW5nJCk7XG4gIH1cblxuICAvKipcbiAgICogRGVzdHJveXMgdGhpcyBkaWFsb2cgYW5kIGFzc29jaWF0ZWQgcmVzb3VyY2VzLlxuICAgKi9cbiAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9kZXN0cm95UmVmLmRlc3Ryb3llZCkge1xuICAgICAgdGhpcy5fZGVzdHJveVJlZi5kZXN0cm95KCk7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -8,15 +8,15 @@
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  */
10
10
  import { Component, HostBinding, Inject } from '@angular/core';
11
- import { MPart } from '../workbench-layout.model';
12
11
  import { GridElementComponent } from '../grid-element/grid-element.component';
13
12
  import { ViewDropZoneDirective } from '../../view-dnd/view-drop-zone.directive';
14
13
  import { RequiresDropZonePipe } from '../../view-dnd/requires-drop-zone.pipe';
15
14
  import { RouterOutlet } from '@angular/router';
16
15
  import { SciViewportComponent } from '@scion/components/viewport';
17
- import { GridElementVisiblePipe } from '../../common/grid-element-visible.pipe';
16
+ import { GridElementIfVisiblePipe } from '../../common/grid-element-if-visible.pipe';
18
17
  import { NgIf } from '@angular/common';
19
18
  import { WORKBENCH_ID } from '../../workbench-id';
19
+ import { GridDropTargets } from '../../view-dnd/grid-drop-targets.util';
20
20
  import * as i0 from "@angular/core";
21
21
  import * as i1 from "../../part/\u0275workbench-part.model";
22
22
  import * as i2 from "../workbench-layout.service";
@@ -54,13 +54,10 @@ export class MainAreaLayoutComponent {
54
54
  this._workbenchLayoutService = _workbenchLayoutService;
55
55
  this._viewDragService = _viewDragService;
56
56
  }
57
- /**
58
- * Root element of the main area layout.
59
- */
60
- get root() {
57
+ get mainAreaGrid() {
61
58
  // It is critical that both `WorkbenchLayoutComponent` and `MainAreaLayoutComponent` operate on the same layout,
62
59
  // so we do not subscribe to the layout but reference it directly.
63
- return this._workbenchLayoutService.layout.mainAreaGrid.root;
60
+ return this._workbenchLayoutService.layout.mainAreaGrid;
64
61
  }
65
62
  onViewDrop(event) {
66
63
  this._viewDragService.dispatchViewMoveEvent({
@@ -69,17 +66,17 @@ export class MainAreaLayoutComponent {
69
66
  partId: event.dragData.partId,
70
67
  viewId: event.dragData.viewId,
71
68
  viewUrlSegments: event.dragData.viewUrlSegments,
69
+ classList: event.dragData.classList,
72
70
  },
73
- target: {
71
+ target: GridDropTargets.resolve({
72
+ grid: this.mainAreaGrid,
74
73
  workbenchId: this._workbenchId,
75
- elementId: this.root instanceof MPart ? this.root.id : this.root.nodeId,
76
- region: event.dropRegion,
77
- newPart: { ratio: .2 },
78
- },
74
+ dropRegion: event.dropRegion,
75
+ }),
79
76
  });
80
77
  }
81
78
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: MainAreaLayoutComponent, deps: [{ token: WORKBENCH_ID }, { token: i1.ɵWorkbenchPart }, { token: i2.WorkbenchLayoutService }, { token: i3.ViewDragService }], target: i0.ɵɵFactoryTarget.Component }); }
82
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: MainAreaLayoutComponent, isStandalone: true, selector: "wb-main-area-layout", host: { properties: { "attr.data-partid": "this.partId" } }, ngImport: i0, template: "<ng-container *ngIf=\"root | wbGridElementVisible; else start_page_template\">\n <wb-grid-element [element]=\"root\"\n wbViewDropZone\n [wbViewDropZoneSize]=\"100\"\n [wbViewDropZonePlaceholderSize]=\"100\"\n [wbViewDropZoneRegions]=\"{\n north: false,\n south: root | wbRequiresDropZone:'south',\n west: root | wbRequiresDropZone:'west',\n east: root | wbRequiresDropZone:'east',\n center: false,\n }\"\n [wbViewDropZoneCssClass]=\"'e2e-main-area-grid'\"\n (wbViewDropZoneDrop)=\"onViewDrop($event)\">\n </wb-grid-element>\n</ng-container>\n\n<ng-template #start_page_template>\n <sci-viewport class=\"start-page\"\n wbViewDropZone\n [wbViewDropZoneSize]=\"1\"\n [wbViewDropZoneRegions]=\"{center: true, north: false, south: false, west: false, east: false}\"\n [wbViewDropZoneCssClass]=\"'e2e-main-area-grid'\"\n (wbViewDropZoneDrop)=\"onViewDrop($event)\">\n <router-outlet></router-outlet>\n </sci-viewport>\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column}:host>wb-grid-element,:host>sci-viewport.start-page{flex:1 1 0}:host>sci-viewport.start-page>router-outlet{position:absolute}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: GridElementComponent, selector: "wb-grid-element", inputs: ["element"] }, { kind: "directive", type: ViewDropZoneDirective, selector: "[wbViewDropZone]", inputs: ["wbViewDropZoneRegions", "wbViewDropZoneCssClass", "wbViewDropZoneSize", "wbViewDropZonePlaceholderSize"], outputs: ["wbViewDropZoneDrop"] }, { kind: "pipe", type: RequiresDropZonePipe, name: "wbRequiresDropZone" }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: SciViewportComponent, selector: "sci-viewport", inputs: ["scrollbarStyle"], outputs: ["scroll"] }, { kind: "pipe", type: GridElementVisiblePipe, name: "wbGridElementVisible" }] }); }
79
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.3", type: MainAreaLayoutComponent, isStandalone: true, selector: "wb-main-area-layout", host: { properties: { "attr.data-partid": "this.partId" } }, ngImport: i0, template: "@if (mainAreaGrid.root | wbGridElementIfVisible; as root) {\n <wb-grid-element [element]=\"root\"\n wbViewDropZone\n [wbViewDropZoneSize]=\"100\"\n [wbViewDropZonePlaceholderSize]=\"100\"\n [wbViewDropZoneRegions]=\"{\n north: false,\n south: root | wbRequiresDropZone:'south',\n west: root | wbRequiresDropZone:'west',\n east: root | wbRequiresDropZone:'east',\n center: false,\n }\"\n [wbViewDropZoneCssClass]=\"'e2e-main-area-grid'\"\n (wbViewDropZoneDrop)=\"onViewDrop($event)\">\n </wb-grid-element>\n}\n@else {\n <sci-viewport class=\"start-page\"\n wbViewDropZone\n [wbViewDropZoneSize]=\"1\"\n [wbViewDropZoneRegions]=\"{center: true, north: false, south: false, west: false, east: false}\"\n [wbViewDropZoneCssClass]=\"'e2e-main-area-grid'\"\n (wbViewDropZoneDrop)=\"onViewDrop($event)\">\n <router-outlet/>\n </sci-viewport>\n}\n", styles: [":host{display:flex;flex-direction:column}:host>wb-grid-element,:host>sci-viewport.start-page{flex:1 1 0}:host>sci-viewport.start-page>router-outlet{position:absolute}\n"], dependencies: [{ kind: "component", type: GridElementComponent, selector: "wb-grid-element", inputs: ["element"] }, { kind: "directive", type: ViewDropZoneDirective, selector: "[wbViewDropZone]", inputs: ["wbViewDropZoneRegions", "wbViewDropZoneCssClass", "wbViewDropZoneSize", "wbViewDropZonePlaceholderSize"], outputs: ["wbViewDropZoneDrop"] }, { kind: "pipe", type: RequiresDropZonePipe, name: "wbRequiresDropZone" }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: SciViewportComponent, selector: "sci-viewport", inputs: ["scrollbarStyle"], outputs: ["scroll"] }, { kind: "pipe", type: GridElementIfVisiblePipe, name: "wbGridElementIfVisible" }] }); }
83
80
  }
84
81
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: MainAreaLayoutComponent, decorators: [{
85
82
  type: Component,
@@ -90,8 +87,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
90
87
  RequiresDropZonePipe,
91
88
  RouterOutlet,
92
89
  SciViewportComponent,
93
- GridElementVisiblePipe,
94
- ], template: "<ng-container *ngIf=\"root | wbGridElementVisible; else start_page_template\">\n <wb-grid-element [element]=\"root\"\n wbViewDropZone\n [wbViewDropZoneSize]=\"100\"\n [wbViewDropZonePlaceholderSize]=\"100\"\n [wbViewDropZoneRegions]=\"{\n north: false,\n south: root | wbRequiresDropZone:'south',\n west: root | wbRequiresDropZone:'west',\n east: root | wbRequiresDropZone:'east',\n center: false,\n }\"\n [wbViewDropZoneCssClass]=\"'e2e-main-area-grid'\"\n (wbViewDropZoneDrop)=\"onViewDrop($event)\">\n </wb-grid-element>\n</ng-container>\n\n<ng-template #start_page_template>\n <sci-viewport class=\"start-page\"\n wbViewDropZone\n [wbViewDropZoneSize]=\"1\"\n [wbViewDropZoneRegions]=\"{center: true, north: false, south: false, west: false, east: false}\"\n [wbViewDropZoneCssClass]=\"'e2e-main-area-grid'\"\n (wbViewDropZoneDrop)=\"onViewDrop($event)\">\n <router-outlet></router-outlet>\n </sci-viewport>\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column}:host>wb-grid-element,:host>sci-viewport.start-page{flex:1 1 0}:host>sci-viewport.start-page>router-outlet{position:absolute}\n"] }]
90
+ GridElementIfVisiblePipe,
91
+ ], template: "@if (mainAreaGrid.root | wbGridElementIfVisible; as root) {\n <wb-grid-element [element]=\"root\"\n wbViewDropZone\n [wbViewDropZoneSize]=\"100\"\n [wbViewDropZonePlaceholderSize]=\"100\"\n [wbViewDropZoneRegions]=\"{\n north: false,\n south: root | wbRequiresDropZone:'south',\n west: root | wbRequiresDropZone:'west',\n east: root | wbRequiresDropZone:'east',\n center: false,\n }\"\n [wbViewDropZoneCssClass]=\"'e2e-main-area-grid'\"\n (wbViewDropZoneDrop)=\"onViewDrop($event)\">\n </wb-grid-element>\n}\n@else {\n <sci-viewport class=\"start-page\"\n wbViewDropZone\n [wbViewDropZoneSize]=\"1\"\n [wbViewDropZoneRegions]=\"{center: true, north: false, south: false, west: false, east: false}\"\n [wbViewDropZoneCssClass]=\"'e2e-main-area-grid'\"\n (wbViewDropZoneDrop)=\"onViewDrop($event)\">\n <router-outlet/>\n </sci-viewport>\n}\n", styles: [":host{display:flex;flex-direction:column}:host>wb-grid-element,:host>sci-viewport.start-page{flex:1 1 0}:host>sci-viewport.start-page>router-outlet{position:absolute}\n"] }]
95
92
  }], ctorParameters: () => [{ type: undefined, decorators: [{
96
93
  type: Inject,
97
94
  args: [WORKBENCH_ID]
@@ -99,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
99
96
  type: HostBinding,
100
97
  args: ['attr.data-partid']
101
98
  }] } });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1hcmVhLWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9sYXlvdXQvbWFpbi1hcmVhLWxheW91dC9tYWluLWFyZWEtbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL2xheW91dC9tYWluLWFyZWEtbGF5b3V0L21haW4tYXJlYS1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFN0QsT0FBTyxFQUFDLEtBQUssRUFBWSxNQUFNLDJCQUEyQixDQUFDO0FBRTNELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBRTVFLE9BQU8sRUFBQyxxQkFBcUIsRUFBa0IsTUFBTSx5Q0FBeUMsQ0FBQztBQUMvRixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7QUFFaEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFnQkgsTUFBTSxPQUFPLHVCQUF1QjtJQUVsQyxJQUNXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxZQUEwQyxZQUFvQixFQUMxQyxLQUFxQixFQUNyQix1QkFBK0MsRUFDL0MsZ0JBQWlDO1FBSFgsaUJBQVksR0FBWixZQUFZLENBQVE7UUFDMUMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF3QjtRQUMvQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO0lBQ3JELENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsSUFBSTtRQUNiLGdIQUFnSDtRQUNoSCxrRUFBa0U7UUFDbEUsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTyxDQUFDLFlBQWEsQ0FBQyxJQUFJLENBQUM7SUFDakUsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFzQjtRQUN0QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLENBQUM7WUFDMUMsTUFBTSxFQUFFO2dCQUNOLFdBQVcsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVc7Z0JBQ3ZDLE1BQU0sRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU07Z0JBQzdCLE1BQU0sRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU07Z0JBQzdCLGVBQWUsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLGVBQWU7YUFDaEQ7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUM5QixTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07Z0JBQ3ZFLE1BQU0sRUFBRSxLQUFLLENBQUMsVUFBdUM7Z0JBQ3JELE9BQU8sRUFBRSxFQUFDLEtBQUssRUFBRSxFQUFFLEVBQUM7YUFDckI7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXJDVSx1QkFBdUIsa0JBT2QsWUFBWTtrR0FQckIsdUJBQXVCLDRJQzlEcEMsdXRDQTJCQSxrT0QwQkksSUFBSSw2RkFDSixvQkFBb0IsaUZBQ3BCLHFCQUFxQiw2TUFDckIsb0JBQW9CLDJEQUNwQixZQUFZLDJKQUNaLG9CQUFvQixxR0FDcEIsc0JBQXNCOzsyRkFHYix1QkFBdUI7a0JBZm5DLFNBQVM7K0JBQ0UscUJBQXFCLGNBR25CLElBQUksV0FDUDt3QkFDUCxJQUFJO3dCQUNKLG9CQUFvQjt3QkFDcEIscUJBQXFCO3dCQUNyQixvQkFBb0I7d0JBQ3BCLFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQixzQkFBc0I7cUJBQ3ZCOzswQkFTWSxNQUFNOzJCQUFDLFlBQVk7eUlBSnJCLE1BQU07c0JBRGhCLFdBQVc7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIzIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgSG9zdEJpbmRpbmcsIEluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge8m1V29ya2JlbmNoUGFydH0gZnJvbSAnLi4vLi4vcGFydC/JtXdvcmtiZW5jaC1wYXJ0Lm1vZGVsJztcbmltcG9ydCB7TVBhcnQsIE1UcmVlTm9kZX0gZnJvbSAnLi4vd29ya2JlbmNoLWxheW91dC5tb2RlbCc7XG5pbXBvcnQge1dvcmtiZW5jaExheW91dFNlcnZpY2V9IGZyb20gJy4uL3dvcmtiZW5jaC1sYXlvdXQuc2VydmljZSc7XG5pbXBvcnQge0dyaWRFbGVtZW50Q29tcG9uZW50fSBmcm9tICcuLi9ncmlkLWVsZW1lbnQvZ3JpZC1lbGVtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQge1ZpZXdEcmFnU2VydmljZX0gZnJvbSAnLi4vLi4vdmlldy1kbmQvdmlldy1kcmFnLnNlcnZpY2UnO1xuaW1wb3J0IHtWaWV3RHJvcFpvbmVEaXJlY3RpdmUsIFdiVmlld0Ryb3BFdmVudH0gZnJvbSAnLi4vLi4vdmlldy1kbmQvdmlldy1kcm9wLXpvbmUuZGlyZWN0aXZlJztcbmltcG9ydCB7UmVxdWlyZXNEcm9wWm9uZVBpcGV9IGZyb20gJy4uLy4uL3ZpZXctZG5kL3JlcXVpcmVzLWRyb3Atem9uZS5waXBlJztcbmltcG9ydCB7Um91dGVyT3V0bGV0fSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtTY2lWaWV3cG9ydENvbXBvbmVudH0gZnJvbSAnQHNjaW9uL2NvbXBvbmVudHMvdmlld3BvcnQnO1xuaW1wb3J0IHtHcmlkRWxlbWVudFZpc2libGVQaXBlfSBmcm9tICcuLi8uLi9jb21tb24vZ3JpZC1lbGVtZW50LXZpc2libGUucGlwZSc7XG5pbXBvcnQge05nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1dPUktCRU5DSF9JRH0gZnJvbSAnLi4vLi4vd29ya2JlbmNoLWlkJztcblxuLyoqXG4gKiBSZW5kZXJzIHRoZSBsYXlvdXQgb2YgdGhlIHtAbGluayBNQUlOX0FSRUF9IHBhcnQuXG4gKlxuICogVGhlIG1haW4gYXJlYSBpcyBhIHNwZWNpYWwgcGFydCB0aGF0IGlzIGEgc3ViZ3JpZCwgbm90IGEgc3RhY2sgb2Ygdmlld3MuXG4gKlxuICogVGhlIG1haW4gYXJlYSBoYXMgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJpc3RpY3M6XG4gKiAtIGlzIG9wdGlvbmFsO1xuICogLSBpcyB0aGUgcHJpbWFyeSBwbGFjZSB0byBvcGVuIHZpZXdzO1xuICogLSBpcyBzaGFyZWQgYnkgcGVyc3BlY3RpdmVzIGhhdmluZyBhIG1haW4gYXJlYTtcbiAqIC0gY2FuIGJlIG1heGltaXplZDtcbiAqXG4gKiBUaGUgbGF5b3V0IGlzIG1vZGVsZWQgYXMgYSB0cmVlIG9mIG5vZGVzIGB7QGxpbmsgTVRyZWVOb2RlfWAgYW5kIHBhcnRzIGB7QGxpbmsgTVBhcnR9YC4gRWFjaCBub2RlIGhhcyB0d28gY2hpbGRyZW4sIHdoaWNoIGNhbiBiZSBlaXRoZXJcbiAqIGFub3RoZXIgbm9kZSBvciBhIHBhcnQgKGxlYWYpLiBBIG5vZGUgZGVmaW5lcyBhIHNwbGl0IGxheW91dCBpbiB3aGljaCB0aGUgdHdvIGNoaWxkcmVuIGFyZSBhcnJhbmdlZCB2ZXJ0aWNhbGx5IG9yIGhvcml6b250YWxseS5cbiAqXG4gKiAgICAgICAgIE1UcmVlTm9kZVxuICogICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0rLS0tLS0tLStcbiAqICAgICArLS0tLS0tKy0tLS0tLSsgICAgICAgID09PT09PT4gICB8IGxlZnQgfCByaWdodCB8XG4gKiAgICAgfCAgICAgICAgICAgICB8ICAgICAgICByZW5kZXJzICAgKy0tLS0tLSstLS0tLS0tK1xuICogICBNUGFydCAgICAgICAgIE1QYXJ0XG4gKiAgKGxlZnQpICAgICAgICAocmlnaHQpXG4gKlxuICogQHNlZSBXb3JrYmVuY2hMYXlvdXRDb21wb25lbnRcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2ItbWFpbi1hcmVhLWxheW91dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYWluLWFyZWEtbGF5b3V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFpbi1hcmVhLWxheW91dC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBHcmlkRWxlbWVudENvbXBvbmVudCxcbiAgICBWaWV3RHJvcFpvbmVEaXJlY3RpdmUsXG4gICAgUmVxdWlyZXNEcm9wWm9uZVBpcGUsXG4gICAgUm91dGVyT3V0bGV0LFxuICAgIFNjaVZpZXdwb3J0Q29tcG9uZW50LFxuICAgIEdyaWRFbGVtZW50VmlzaWJsZVBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE1haW5BcmVhTGF5b3V0Q29tcG9uZW50IHtcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1wYXJ0aWQnKVxuICBwdWJsaWMgZ2V0IHBhcnRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9wYXJ0LmlkO1xuICB9XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChXT1JLQkVOQ0hfSUQpIHByaXZhdGUgX3dvcmtiZW5jaElkOiBzdHJpbmcsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3BhcnQ6IMm1V29ya2JlbmNoUGFydCxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfd29ya2JlbmNoTGF5b3V0U2VydmljZTogV29ya2JlbmNoTGF5b3V0U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfdmlld0RyYWdTZXJ2aWNlOiBWaWV3RHJhZ1NlcnZpY2UpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBSb290IGVsZW1lbnQgb2YgdGhlIG1haW4gYXJlYSBsYXlvdXQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHJvb3QoKTogTVRyZWVOb2RlIHwgTVBhcnQge1xuICAgIC8vIEl0IGlzIGNyaXRpY2FsIHRoYXQgYm90aCBgV29ya2JlbmNoTGF5b3V0Q29tcG9uZW50YCBhbmQgYE1haW5BcmVhTGF5b3V0Q29tcG9uZW50YCBvcGVyYXRlIG9uIHRoZSBzYW1lIGxheW91dCxcbiAgICAvLyBzbyB3ZSBkbyBub3Qgc3Vic2NyaWJlIHRvIHRoZSBsYXlvdXQgYnV0IHJlZmVyZW5jZSBpdCBkaXJlY3RseS5cbiAgICByZXR1cm4gdGhpcy5fd29ya2JlbmNoTGF5b3V0U2VydmljZS5sYXlvdXQhLm1haW5BcmVhR3JpZCEucm9vdDtcbiAgfVxuXG4gIHB1YmxpYyBvblZpZXdEcm9wKGV2ZW50OiBXYlZpZXdEcm9wRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl92aWV3RHJhZ1NlcnZpY2UuZGlzcGF0Y2hWaWV3TW92ZUV2ZW50KHtcbiAgICAgIHNvdXJjZToge1xuICAgICAgICB3b3JrYmVuY2hJZDogZXZlbnQuZHJhZ0RhdGEud29ya2JlbmNoSWQsXG4gICAgICAgIHBhcnRJZDogZXZlbnQuZHJhZ0RhdGEucGFydElkLFxuICAgICAgICB2aWV3SWQ6IGV2ZW50LmRyYWdEYXRhLnZpZXdJZCxcbiAgICAgICAgdmlld1VybFNlZ21lbnRzOiBldmVudC5kcmFnRGF0YS52aWV3VXJsU2VnbWVudHMsXG4gICAgICB9LFxuICAgICAgdGFyZ2V0OiB7XG4gICAgICAgIHdvcmtiZW5jaElkOiB0aGlzLl93b3JrYmVuY2hJZCxcbiAgICAgICAgZWxlbWVudElkOiB0aGlzLnJvb3QgaW5zdGFuY2VvZiBNUGFydCA/IHRoaXMucm9vdC5pZCA6IHRoaXMucm9vdC5ub2RlSWQsXG4gICAgICAgIHJlZ2lvbjogZXZlbnQuZHJvcFJlZ2lvbiBhcyAnd2VzdCcgfCAnZWFzdCcgfCAnc291dGgnLCAvLyBub3J0aCBhbmQgY2VudGVyIGRyb3Agem9uZXMgbm90IGluc3RhbGxlZFxuICAgICAgICBuZXdQYXJ0OiB7cmF0aW86IC4yfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJyb290IHwgd2JHcmlkRWxlbWVudFZpc2libGU7IGVsc2Ugc3RhcnRfcGFnZV90ZW1wbGF0ZVwiPlxuICA8d2ItZ3JpZC1lbGVtZW50IFtlbGVtZW50XT1cInJvb3RcIlxuICAgICAgICAgICAgICAgICAgIHdiVmlld0Ryb3Bab25lXG4gICAgICAgICAgICAgICAgICAgW3diVmlld0Ryb3Bab25lU2l6ZV09XCIxMDBcIlxuICAgICAgICAgICAgICAgICAgIFt3YlZpZXdEcm9wWm9uZVBsYWNlaG9sZGVyU2l6ZV09XCIxMDBcIlxuICAgICAgICAgICAgICAgICAgIFt3YlZpZXdEcm9wWm9uZVJlZ2lvbnNdPVwie1xuICAgICAgICAgICAgICAgICAgICAgbm9ydGg6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgc291dGg6IHJvb3QgfCB3YlJlcXVpcmVzRHJvcFpvbmU6J3NvdXRoJyxcbiAgICAgICAgICAgICAgICAgICAgIHdlc3Q6IHJvb3QgfCB3YlJlcXVpcmVzRHJvcFpvbmU6J3dlc3QnLFxuICAgICAgICAgICAgICAgICAgICAgZWFzdDogcm9vdCB8IHdiUmVxdWlyZXNEcm9wWm9uZTonZWFzdCcsXG4gICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgIFt3YlZpZXdEcm9wWm9uZUNzc0NsYXNzXT1cIidlMmUtbWFpbi1hcmVhLWdyaWQnXCJcbiAgICAgICAgICAgICAgICAgICAod2JWaWV3RHJvcFpvbmVEcm9wKT1cIm9uVmlld0Ryb3AoJGV2ZW50KVwiPlxuICA8L3diLWdyaWQtZWxlbWVudD5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3N0YXJ0X3BhZ2VfdGVtcGxhdGU+XG4gIDxzY2ktdmlld3BvcnQgY2xhc3M9XCJzdGFydC1wYWdlXCJcbiAgICAgICAgICAgICAgICB3YlZpZXdEcm9wWm9uZVxuICAgICAgICAgICAgICAgIFt3YlZpZXdEcm9wWm9uZVNpemVdPVwiMVwiXG4gICAgICAgICAgICAgICAgW3diVmlld0Ryb3Bab25lUmVnaW9uc109XCJ7Y2VudGVyOiB0cnVlLCBub3J0aDogZmFsc2UsIHNvdXRoOiBmYWxzZSwgd2VzdDogZmFsc2UsIGVhc3Q6IGZhbHNlfVwiXG4gICAgICAgICAgICAgICAgW3diVmlld0Ryb3Bab25lQ3NzQ2xhc3NdPVwiJ2UyZS1tYWluLWFyZWEtZ3JpZCdcIlxuICAgICAgICAgICAgICAgICh3YlZpZXdEcm9wWm9uZURyb3ApPVwib25WaWV3RHJvcCgkZXZlbnQpXCI+XG4gICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuICA8L3NjaS12aWV3cG9ydD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1hcmVhLWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9sYXlvdXQvbWFpbi1hcmVhLWxheW91dC9tYWluLWFyZWEtbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL2xheW91dC9tYWluLWFyZWEtbGF5b3V0L21haW4tYXJlYS1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJN0QsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFFNUUsT0FBTyxFQUFDLHFCQUFxQixFQUFrQixNQUFNLHlDQUF5QyxDQUFDO0FBQy9GLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDckMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7QUFFdEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFnQkgsTUFBTSxPQUFPLHVCQUF1QjtJQUVsQyxJQUNjLE1BQU07UUFDbEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsWUFBMEMsWUFBb0IsRUFDMUMsS0FBcUIsRUFDckIsdUJBQStDLEVBQy9DLGdCQUFpQztRQUhYLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQzFDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBd0I7UUFDL0MscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtJQUNyRCxDQUFDO0lBRUQsSUFBYyxZQUFZO1FBQ3hCLGdIQUFnSDtRQUNoSCxrRUFBa0U7UUFDbEUsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTyxDQUFDLFlBQWEsQ0FBQztJQUM1RCxDQUFDO0lBRVMsVUFBVSxDQUFDLEtBQXNCO1FBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQztZQUMxQyxNQUFNLEVBQUU7Z0JBQ04sV0FBVyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVztnQkFDdkMsTUFBTSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTTtnQkFDN0IsTUFBTSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTTtnQkFDN0IsZUFBZSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsZUFBZTtnQkFDL0MsU0FBUyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUzthQUNwQztZQUNELE1BQU0sRUFBRSxlQUFlLENBQUMsT0FBTyxDQUFDO2dCQUM5QixJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQ3ZCLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWTtnQkFDOUIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO2FBQzdCLENBQUM7U0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQWxDVSx1QkFBdUIsa0JBT2QsWUFBWTtrR0FQckIsdUJBQXVCLDRJQy9EcEMsNm5DQTBCQSxrT0Q2Qkksb0JBQW9CLGlGQUNwQixxQkFBcUIsNk1BQ3JCLG9CQUFvQiwyREFDcEIsWUFBWSwySkFDWixvQkFBb0IscUdBQ3BCLHdCQUF3Qjs7MkZBR2YsdUJBQXVCO2tCQWZuQyxTQUFTOytCQUNFLHFCQUFxQixjQUduQixJQUFJLFdBQ1A7d0JBQ1AsSUFBSTt3QkFDSixvQkFBb0I7d0JBQ3BCLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQixZQUFZO3dCQUNaLG9CQUFvQjt3QkFDcEIsd0JBQXdCO3FCQUN6Qjs7MEJBU1ksTUFBTTsyQkFBQyxZQUFZO3lJQUpsQixNQUFNO3NCQURuQixXQUFXO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMyBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHvJtVdvcmtiZW5jaFBhcnR9IGZyb20gJy4uLy4uL3BhcnQvybV3b3JrYmVuY2gtcGFydC5tb2RlbCc7XG5pbXBvcnQge01QYXJ0R3JpZH0gZnJvbSAnLi4vd29ya2JlbmNoLWxheW91dC5tb2RlbCc7XG5pbXBvcnQge1dvcmtiZW5jaExheW91dFNlcnZpY2V9IGZyb20gJy4uL3dvcmtiZW5jaC1sYXlvdXQuc2VydmljZSc7XG5pbXBvcnQge0dyaWRFbGVtZW50Q29tcG9uZW50fSBmcm9tICcuLi9ncmlkLWVsZW1lbnQvZ3JpZC1lbGVtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQge1ZpZXdEcmFnU2VydmljZX0gZnJvbSAnLi4vLi4vdmlldy1kbmQvdmlldy1kcmFnLnNlcnZpY2UnO1xuaW1wb3J0IHtWaWV3RHJvcFpvbmVEaXJlY3RpdmUsIFdiVmlld0Ryb3BFdmVudH0gZnJvbSAnLi4vLi4vdmlldy1kbmQvdmlldy1kcm9wLXpvbmUuZGlyZWN0aXZlJztcbmltcG9ydCB7UmVxdWlyZXNEcm9wWm9uZVBpcGV9IGZyb20gJy4uLy4uL3ZpZXctZG5kL3JlcXVpcmVzLWRyb3Atem9uZS5waXBlJztcbmltcG9ydCB7Um91dGVyT3V0bGV0fSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtTY2lWaWV3cG9ydENvbXBvbmVudH0gZnJvbSAnQHNjaW9uL2NvbXBvbmVudHMvdmlld3BvcnQnO1xuaW1wb3J0IHtHcmlkRWxlbWVudElmVmlzaWJsZVBpcGV9IGZyb20gJy4uLy4uL2NvbW1vbi9ncmlkLWVsZW1lbnQtaWYtdmlzaWJsZS5waXBlJztcbmltcG9ydCB7TmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7V09SS0JFTkNIX0lEfSBmcm9tICcuLi8uLi93b3JrYmVuY2gtaWQnO1xuaW1wb3J0IHtHcmlkRHJvcFRhcmdldHN9IGZyb20gJy4uLy4uL3ZpZXctZG5kL2dyaWQtZHJvcC10YXJnZXRzLnV0aWwnO1xuXG4vKipcbiAqIFJlbmRlcnMgdGhlIGxheW91dCBvZiB0aGUge0BsaW5rIE1BSU5fQVJFQX0gcGFydC5cbiAqXG4gKiBUaGUgbWFpbiBhcmVhIGlzIGEgc3BlY2lhbCBwYXJ0IHRoYXQgaXMgYSBzdWJncmlkLCBub3QgYSBzdGFjayBvZiB2aWV3cy5cbiAqXG4gKiBUaGUgbWFpbiBhcmVhIGhhcyB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcmlzdGljczpcbiAqIC0gaXMgb3B0aW9uYWw7XG4gKiAtIGlzIHRoZSBwcmltYXJ5IHBsYWNlIHRvIG9wZW4gdmlld3M7XG4gKiAtIGlzIHNoYXJlZCBieSBwZXJzcGVjdGl2ZXMgaGF2aW5nIGEgbWFpbiBhcmVhO1xuICogLSBjYW4gYmUgbWF4aW1pemVkO1xuICpcbiAqIFRoZSBsYXlvdXQgaXMgbW9kZWxlZCBhcyBhIHRyZWUgb2Ygbm9kZXMgYHtAbGluayBNVHJlZU5vZGV9YCBhbmQgcGFydHMgYHtAbGluayBNUGFydH1gLiBFYWNoIG5vZGUgaGFzIHR3byBjaGlsZHJlbiwgd2hpY2ggY2FuIGJlIGVpdGhlclxuICogYW5vdGhlciBub2RlIG9yIGEgcGFydCAobGVhZikuIEEgbm9kZSBkZWZpbmVzIGEgc3BsaXQgbGF5b3V0IGluIHdoaWNoIHRoZSB0d28gY2hpbGRyZW4gYXJlIGFycmFuZ2VkIHZlcnRpY2FsbHkgb3IgaG9yaXpvbnRhbGx5LlxuICpcbiAqICAgICAgICAgTVRyZWVOb2RlXG4gKiAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0tLSstLS0tLS0tK1xuICogICAgICstLS0tLS0rLS0tLS0tKyAgICAgICAgPT09PT09PiAgIHwgbGVmdCB8IHJpZ2h0IHxcbiAqICAgICB8ICAgICAgICAgICAgIHwgICAgICAgIHJlbmRlcnMgICArLS0tLS0tKy0tLS0tLS0rXG4gKiAgIE1QYXJ0ICAgICAgICAgTVBhcnRcbiAqICAobGVmdCkgICAgICAgIChyaWdodClcbiAqXG4gKiBAc2VlIFdvcmtiZW5jaExheW91dENvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3Yi1tYWluLWFyZWEtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21haW4tYXJlYS1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYWluLWFyZWEtbGF5b3V0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICAgIEdyaWRFbGVtZW50Q29tcG9uZW50LFxuICAgIFZpZXdEcm9wWm9uZURpcmVjdGl2ZSxcbiAgICBSZXF1aXJlc0Ryb3Bab25lUGlwZSxcbiAgICBSb3V0ZXJPdXRsZXQsXG4gICAgU2NpVmlld3BvcnRDb21wb25lbnQsXG4gICAgR3JpZEVsZW1lbnRJZlZpc2libGVQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBNYWluQXJlYUxheW91dENvbXBvbmVudCB7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtcGFydGlkJylcbiAgcHJvdGVjdGVkIGdldCBwYXJ0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcGFydC5pZDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoV09SS0JFTkNIX0lEKSBwcml2YXRlIF93b3JrYmVuY2hJZDogc3RyaW5nLFxuICAgICAgICAgICAgICBwcml2YXRlIF9wYXJ0OiDJtVdvcmtiZW5jaFBhcnQsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3dvcmtiZW5jaExheW91dFNlcnZpY2U6IFdvcmtiZW5jaExheW91dFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3ZpZXdEcmFnU2VydmljZTogVmlld0RyYWdTZXJ2aWNlKSB7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IG1haW5BcmVhR3JpZCgpOiBNUGFydEdyaWQge1xuICAgIC8vIEl0IGlzIGNyaXRpY2FsIHRoYXQgYm90aCBgV29ya2JlbmNoTGF5b3V0Q29tcG9uZW50YCBhbmQgYE1haW5BcmVhTGF5b3V0Q29tcG9uZW50YCBvcGVyYXRlIG9uIHRoZSBzYW1lIGxheW91dCxcbiAgICAvLyBzbyB3ZSBkbyBub3Qgc3Vic2NyaWJlIHRvIHRoZSBsYXlvdXQgYnV0IHJlZmVyZW5jZSBpdCBkaXJlY3RseS5cbiAgICByZXR1cm4gdGhpcy5fd29ya2JlbmNoTGF5b3V0U2VydmljZS5sYXlvdXQhLm1haW5BcmVhR3JpZCE7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25WaWV3RHJvcChldmVudDogV2JWaWV3RHJvcEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fdmlld0RyYWdTZXJ2aWNlLmRpc3BhdGNoVmlld01vdmVFdmVudCh7XG4gICAgICBzb3VyY2U6IHtcbiAgICAgICAgd29ya2JlbmNoSWQ6IGV2ZW50LmRyYWdEYXRhLndvcmtiZW5jaElkLFxuICAgICAgICBwYXJ0SWQ6IGV2ZW50LmRyYWdEYXRhLnBhcnRJZCxcbiAgICAgICAgdmlld0lkOiBldmVudC5kcmFnRGF0YS52aWV3SWQsXG4gICAgICAgIHZpZXdVcmxTZWdtZW50czogZXZlbnQuZHJhZ0RhdGEudmlld1VybFNlZ21lbnRzLFxuICAgICAgICBjbGFzc0xpc3Q6IGV2ZW50LmRyYWdEYXRhLmNsYXNzTGlzdCxcbiAgICAgIH0sXG4gICAgICB0YXJnZXQ6IEdyaWREcm9wVGFyZ2V0cy5yZXNvbHZlKHtcbiAgICAgICAgZ3JpZDogdGhpcy5tYWluQXJlYUdyaWQsXG4gICAgICAgIHdvcmtiZW5jaElkOiB0aGlzLl93b3JrYmVuY2hJZCxcbiAgICAgICAgZHJvcFJlZ2lvbjogZXZlbnQuZHJvcFJlZ2lvbixcbiAgICAgIH0pLFxuICAgIH0pO1xuICB9XG59XG4iLCJAaWYgKG1haW5BcmVhR3JpZC5yb290IHwgd2JHcmlkRWxlbWVudElmVmlzaWJsZTsgYXMgcm9vdCkge1xuICA8d2ItZ3JpZC1lbGVtZW50IFtlbGVtZW50XT1cInJvb3RcIlxuICAgICAgICAgICAgICAgICAgIHdiVmlld0Ryb3Bab25lXG4gICAgICAgICAgICAgICAgICAgW3diVmlld0Ryb3Bab25lU2l6ZV09XCIxMDBcIlxuICAgICAgICAgICAgICAgICAgIFt3YlZpZXdEcm9wWm9uZVBsYWNlaG9sZGVyU2l6ZV09XCIxMDBcIlxuICAgICAgICAgICAgICAgICAgIFt3YlZpZXdEcm9wWm9uZVJlZ2lvbnNdPVwie1xuICAgICAgICAgICAgICAgICAgICAgbm9ydGg6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgc291dGg6IHJvb3QgfCB3YlJlcXVpcmVzRHJvcFpvbmU6J3NvdXRoJyxcbiAgICAgICAgICAgICAgICAgICAgIHdlc3Q6IHJvb3QgfCB3YlJlcXVpcmVzRHJvcFpvbmU6J3dlc3QnLFxuICAgICAgICAgICAgICAgICAgICAgZWFzdDogcm9vdCB8IHdiUmVxdWlyZXNEcm9wWm9uZTonZWFzdCcsXG4gICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgIFt3YlZpZXdEcm9wWm9uZUNzc0NsYXNzXT1cIidlMmUtbWFpbi1hcmVhLWdyaWQnXCJcbiAgICAgICAgICAgICAgICAgICAod2JWaWV3RHJvcFpvbmVEcm9wKT1cIm9uVmlld0Ryb3AoJGV2ZW50KVwiPlxuICA8L3diLWdyaWQtZWxlbWVudD5cbn1cbkBlbHNlIHtcbiAgPHNjaS12aWV3cG9ydCBjbGFzcz1cInN0YXJ0LXBhZ2VcIlxuICAgICAgICAgICAgICAgIHdiVmlld0Ryb3Bab25lXG4gICAgICAgICAgICAgICAgW3diVmlld0Ryb3Bab25lU2l6ZV09XCIxXCJcbiAgICAgICAgICAgICAgICBbd2JWaWV3RHJvcFpvbmVSZWdpb25zXT1cIntjZW50ZXI6IHRydWUsIG5vcnRoOiBmYWxzZSwgc291dGg6IGZhbHNlLCB3ZXN0OiBmYWxzZSwgZWFzdDogZmFsc2V9XCJcbiAgICAgICAgICAgICAgICBbd2JWaWV3RHJvcFpvbmVDc3NDbGFzc109XCInZTJlLW1haW4tYXJlYS1ncmlkJ1wiXG4gICAgICAgICAgICAgICAgKHdiVmlld0Ryb3Bab25lRHJvcCk9XCJvblZpZXdEcm9wKCRldmVudClcIj5cbiAgICA8cm91dGVyLW91dGxldC8+XG4gIDwvc2NpLXZpZXdwb3J0PlxufVxuIl19
@@ -11,13 +11,13 @@ import { Component, Inject } from '@angular/core';
11
11
  import { GridElementComponent } from './grid-element/grid-element.component';
12
12
  import { NgIf } from '@angular/common';
13
13
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
14
- import { MPart } from './workbench-layout.model';
15
14
  import { RequiresDropZonePipe } from '../view-dnd/requires-drop-zone.pipe';
16
15
  import { ViewDropZoneDirective } from '../view-dnd/view-drop-zone.directive';
17
16
  import { RouterOutlet } from '@angular/router';
18
17
  import { SciViewportComponent } from '@scion/components/viewport';
19
- import { GridElementVisiblePipe } from '../common/grid-element-visible.pipe';
18
+ import { GridElementIfVisiblePipe } from '../common/grid-element-if-visible.pipe';
20
19
  import { WORKBENCH_ID } from '../workbench-id';
20
+ import { GridDropTargets } from '../view-dnd/grid-drop-targets.util';
21
21
  import * as i0 from "@angular/core";
22
22
  import * as i1 from "../view-dnd/view-drag.service";
23
23
  import * as i2 from "./workbench-layout.service";
@@ -53,7 +53,7 @@ export class WorkbenchLayoutComponent {
53
53
  .pipe(takeUntilDestroyed())
54
54
  .subscribe(layout => {
55
55
  this.layout = layout;
56
- this.root = layout.maximized && layout.mainAreaGrid ? layout.mainAreaGrid.root : layout.workbenchGrid.root;
56
+ this.grid = layout.maximized && layout.mainAreaGrid ? layout.mainAreaGrid : layout.workbenchGrid;
57
57
  });
58
58
  }
59
59
  onViewDrop(event) {
@@ -63,17 +63,17 @@ export class WorkbenchLayoutComponent {
63
63
  partId: event.dragData.partId,
64
64
  viewId: event.dragData.viewId,
65
65
  viewUrlSegments: event.dragData.viewUrlSegments,
66
+ classList: event.dragData.classList,
66
67
  },
67
- target: {
68
+ target: GridDropTargets.resolve({
69
+ grid: this.grid,
68
70
  workbenchId: this._workbenchId,
69
- elementId: this.root instanceof MPart ? this.root.id : this.root.nodeId,
70
- region: event.dropRegion,
71
- newPart: { ratio: .2 },
72
- },
71
+ dropRegion: event.dropRegion,
72
+ }),
73
73
  });
74
74
  }
75
75
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: WorkbenchLayoutComponent, deps: [{ token: WORKBENCH_ID }, { token: i1.ViewDragService }, { token: i2.WorkbenchLayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
76
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: WorkbenchLayoutComponent, isStandalone: true, selector: "wb-workbench-layout", ngImport: i0, template: "<ng-container *ngIf=\"root | wbGridElementVisible; else start_page_template\">\n <wb-grid-element [element]=\"root\"\n wbViewDropZone\n [wbViewDropZoneSize]=\"50\"\n [wbViewDropZonePlaceholderSize]=\"50\"\n [wbViewDropZoneRegions]=\"{\n north: false,\n south: root | wbRequiresDropZone:'south',\n west: root | wbRequiresDropZone:'west',\n east: root | wbRequiresDropZone:'east',\n center: false,\n }\"\n [wbViewDropZoneCssClass]=\"'e2e-workbench-grid'\"\n (wbViewDropZoneDrop)=\"onViewDrop($event)\">\n </wb-grid-element>\n</ng-container>\n\n<ng-template #start_page_template>\n <sci-viewport class=\"start-page\"\n wbViewDropZone\n [wbViewDropZoneSize]=\"1\"\n [wbViewDropZoneRegions]=\"{center: true, north: false, south: false, west: false, east: false}\"\n [wbViewDropZoneCssClass]=\"'e2e-workbench-grid'\"\n (wbViewDropZoneDrop)=\"onViewDrop($event)\">\n <router-outlet></router-outlet>\n </sci-viewport>\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column}:host>wb-grid-element,:host>sci-viewport.start-page{flex:1 1 0}:host>sci-viewport.start-page>router-outlet{position:absolute}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: GridElementComponent, selector: "wb-grid-element", inputs: ["element"] }, { kind: "pipe", type: GridElementVisiblePipe, name: "wbGridElementVisible" }, { kind: "directive", type: ViewDropZoneDirective, selector: "[wbViewDropZone]", inputs: ["wbViewDropZoneRegions", "wbViewDropZoneCssClass", "wbViewDropZoneSize", "wbViewDropZonePlaceholderSize"], outputs: ["wbViewDropZoneDrop"] }, { kind: "pipe", type: RequiresDropZonePipe, name: "wbRequiresDropZone" }, { kind: "component", type: SciViewportComponent, selector: "sci-viewport", inputs: ["scrollbarStyle"], outputs: ["scroll"] }] }); }
76
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.3", type: WorkbenchLayoutComponent, isStandalone: true, selector: "wb-workbench-layout", ngImport: i0, template: "@if (grid?.root | wbGridElementIfVisible; as root) {\n <wb-grid-element [element]=\"root\"\n wbViewDropZone\n [wbViewDropZoneSize]=\"50\"\n [wbViewDropZonePlaceholderSize]=\"50\"\n [wbViewDropZoneRegions]=\"{\n north: false,\n south: root | wbRequiresDropZone:'south',\n west: root | wbRequiresDropZone:'west',\n east: root | wbRequiresDropZone:'east',\n center: false,\n }\"\n [wbViewDropZoneCssClass]=\"'e2e-workbench-grid'\"\n (wbViewDropZoneDrop)=\"onViewDrop($event)\">\n </wb-grid-element>\n}\n@else {\n <sci-viewport class=\"start-page\"\n wbViewDropZone\n [wbViewDropZoneSize]=\"1\"\n [wbViewDropZoneRegions]=\"{center: true, north: false, south: false, west: false, east: false}\"\n [wbViewDropZoneCssClass]=\"'e2e-workbench-grid'\"\n (wbViewDropZoneDrop)=\"onViewDrop($event)\">\n <router-outlet/>\n </sci-viewport>\n}\n", styles: [":host{display:flex;flex-direction:column}:host>wb-grid-element,:host>sci-viewport.start-page{flex:1 1 0}:host>sci-viewport.start-page>router-outlet{position:absolute}\n"], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: GridElementComponent, selector: "wb-grid-element", inputs: ["element"] }, { kind: "pipe", type: GridElementIfVisiblePipe, name: "wbGridElementIfVisible" }, { kind: "directive", type: ViewDropZoneDirective, selector: "[wbViewDropZone]", inputs: ["wbViewDropZoneRegions", "wbViewDropZoneCssClass", "wbViewDropZoneSize", "wbViewDropZonePlaceholderSize"], outputs: ["wbViewDropZoneDrop"] }, { kind: "pipe", type: RequiresDropZonePipe, name: "wbRequiresDropZone" }, { kind: "component", type: SciViewportComponent, selector: "sci-viewport", inputs: ["scrollbarStyle"], outputs: ["scroll"] }] }); }
77
77
  }
78
78
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: WorkbenchLayoutComponent, decorators: [{
79
79
  type: Component,
@@ -81,13 +81,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
81
81
  NgIf,
82
82
  RouterOutlet,
83
83
  GridElementComponent,
84
- GridElementVisiblePipe,
84
+ GridElementIfVisiblePipe,
85
85
  ViewDropZoneDirective,
86
86
  RequiresDropZonePipe,
87
87
  SciViewportComponent,
88
- ], template: "<ng-container *ngIf=\"root | wbGridElementVisible; else start_page_template\">\n <wb-grid-element [element]=\"root\"\n wbViewDropZone\n [wbViewDropZoneSize]=\"50\"\n [wbViewDropZonePlaceholderSize]=\"50\"\n [wbViewDropZoneRegions]=\"{\n north: false,\n south: root | wbRequiresDropZone:'south',\n west: root | wbRequiresDropZone:'west',\n east: root | wbRequiresDropZone:'east',\n center: false,\n }\"\n [wbViewDropZoneCssClass]=\"'e2e-workbench-grid'\"\n (wbViewDropZoneDrop)=\"onViewDrop($event)\">\n </wb-grid-element>\n</ng-container>\n\n<ng-template #start_page_template>\n <sci-viewport class=\"start-page\"\n wbViewDropZone\n [wbViewDropZoneSize]=\"1\"\n [wbViewDropZoneRegions]=\"{center: true, north: false, south: false, west: false, east: false}\"\n [wbViewDropZoneCssClass]=\"'e2e-workbench-grid'\"\n (wbViewDropZoneDrop)=\"onViewDrop($event)\">\n <router-outlet></router-outlet>\n </sci-viewport>\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column}:host>wb-grid-element,:host>sci-viewport.start-page{flex:1 1 0}:host>sci-viewport.start-page>router-outlet{position:absolute}\n"] }]
88
+ ], template: "@if (grid?.root | wbGridElementIfVisible; as root) {\n <wb-grid-element [element]=\"root\"\n wbViewDropZone\n [wbViewDropZoneSize]=\"50\"\n [wbViewDropZonePlaceholderSize]=\"50\"\n [wbViewDropZoneRegions]=\"{\n north: false,\n south: root | wbRequiresDropZone:'south',\n west: root | wbRequiresDropZone:'west',\n east: root | wbRequiresDropZone:'east',\n center: false,\n }\"\n [wbViewDropZoneCssClass]=\"'e2e-workbench-grid'\"\n (wbViewDropZoneDrop)=\"onViewDrop($event)\">\n </wb-grid-element>\n}\n@else {\n <sci-viewport class=\"start-page\"\n wbViewDropZone\n [wbViewDropZoneSize]=\"1\"\n [wbViewDropZoneRegions]=\"{center: true, north: false, south: false, west: false, east: false}\"\n [wbViewDropZoneCssClass]=\"'e2e-workbench-grid'\"\n (wbViewDropZoneDrop)=\"onViewDrop($event)\">\n <router-outlet/>\n </sci-viewport>\n}\n", styles: [":host{display:flex;flex-direction:column}:host>wb-grid-element,:host>sci-viewport.start-page{flex:1 1 0}:host>sci-viewport.start-page>router-outlet{position:absolute}\n"] }]
89
89
  }], ctorParameters: () => [{ type: undefined, decorators: [{
90
90
  type: Inject,
91
91
  args: [WORKBENCH_ID]
92
92
  }] }, { type: i1.ViewDragService }, { type: i2.WorkbenchLayoutService }] });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9sYXlvdXQvd29ya2JlbmNoLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9sYXlvdXQvd29ya2JlbmNoLWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR2hELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RCxPQUFPLEVBQUMsS0FBSyxFQUFZLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUFDLHFCQUFxQixFQUFrQixNQUFNLHNDQUFzQyxDQUFDO0FBQzVGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFFN0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBZ0JILE1BQU0sT0FBTyx3QkFBd0I7SUFLbkMsWUFBMEMsWUFBb0IsRUFDMUMsZ0JBQWlDLEVBQ3pDLHNCQUE4QztRQUZoQixpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUMxQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBRW5ELHNCQUFzQixDQUFDLE9BQU87YUFDM0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7YUFDMUIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7UUFDN0csQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQXNCO1FBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQztZQUMxQyxNQUFNLEVBQUU7Z0JBQ04sV0FBVyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVztnQkFDdkMsTUFBTSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTTtnQkFDN0IsTUFBTSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTTtnQkFDN0IsZUFBZSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsZUFBZTthQUNoRDtZQUNELE1BQU0sRUFBRTtnQkFDTixXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQzlCLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFLLENBQUMsTUFBTTtnQkFDeEUsTUFBTSxFQUFFLEtBQUssQ0FBQyxVQUF1QztnQkFDckQsT0FBTyxFQUFFLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBQzthQUNyQjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBL0JVLHdCQUF3QixrQkFLZixZQUFZO2tHQUxyQix3QkFBd0IsK0VDaEVyQyxxdENBMkJBLGtPRDRCSSxJQUFJLDZGQUNKLFlBQVksMkpBQ1osb0JBQW9CLDRFQUNwQixzQkFBc0IsNkRBQ3RCLHFCQUFxQiw2TUFDckIsb0JBQW9CLDJEQUNwQixvQkFBb0I7OzJGQUdYLHdCQUF3QjtrQkFmcEMsU0FBUzsrQkFDRSxxQkFBcUIsY0FHbkIsSUFBSSxXQUNQO3dCQUNQLElBQUk7d0JBQ0osWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIscUJBQXFCO3dCQUNyQixvQkFBb0I7d0JBQ3BCLG9CQUFvQjtxQkFDckI7OzBCQU9ZLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMyBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIEluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1dvcmtiZW5jaExheW91dFNlcnZpY2V9IGZyb20gJy4vd29ya2JlbmNoLWxheW91dC5zZXJ2aWNlJztcbmltcG9ydCB7ybVXb3JrYmVuY2hMYXlvdXR9IGZyb20gJy4vybV3b3JrYmVuY2gtbGF5b3V0JztcbmltcG9ydCB7R3JpZEVsZW1lbnRDb21wb25lbnR9IGZyb20gJy4vZ3JpZC1lbGVtZW50L2dyaWQtZWxlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHtOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7Vmlld0RyYWdTZXJ2aWNlfSBmcm9tICcuLi92aWV3LWRuZC92aWV3LWRyYWcuc2VydmljZSc7XG5pbXBvcnQge01QYXJ0LCBNVHJlZU5vZGV9IGZyb20gJy4vd29ya2JlbmNoLWxheW91dC5tb2RlbCc7XG5pbXBvcnQge1JlcXVpcmVzRHJvcFpvbmVQaXBlfSBmcm9tICcuLi92aWV3LWRuZC9yZXF1aXJlcy1kcm9wLXpvbmUucGlwZSc7XG5pbXBvcnQge1ZpZXdEcm9wWm9uZURpcmVjdGl2ZSwgV2JWaWV3RHJvcEV2ZW50fSBmcm9tICcuLi92aWV3LWRuZC92aWV3LWRyb3Atem9uZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtSb3V0ZXJPdXRsZXR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1NjaVZpZXdwb3J0Q29tcG9uZW50fSBmcm9tICdAc2Npb24vY29tcG9uZW50cy92aWV3cG9ydCc7XG5pbXBvcnQge0dyaWRFbGVtZW50VmlzaWJsZVBpcGV9IGZyb20gJy4uL2NvbW1vbi9ncmlkLWVsZW1lbnQtdmlzaWJsZS5waXBlJztcbmltcG9ydCB7V09SS0JFTkNIX0lEfSBmcm9tICcuLi93b3JrYmVuY2gtaWQnO1xuXG4vKipcbiAqIFJlbmRlcnMgdGhlIGxheW91dCBvZiB0aGUgd29ya2JlbmNoLlxuICpcbiAqIFRoZSB3b3JrYmVuY2ggbGF5b3V0IGlzIGEgZ3JpZCBvZiBwYXJ0cy4gSXQgY29udGFpbnMgYXQgbGVhc3Qgb25lIHBhcnQuIEEgc3BlY2lhbCBwYXJ0LCB0aGUgbWFpbiBhcmVhIHBhcnQsIGlzIG5vdCBhIHN0YWNrIG9mIHZpZXdzXG4gKiBidXQgZW1iZWRzIGEgc3ViLWdyaWQsIHRoZSBtYWluIGFyZWEgZ3JpZC4gSXQgZGVmaW5lcyB0aGUgYXJyYW5nZW1lbnQgb2YgcGFydHMgaW4gdGhlIG1haW4gYXJlYS4gVGhlIG1haW4gYXJlYSBpcyBvcHRpb25hbC5cbiAqXG4gKiBUaGUgbGF5b3V0IGlzIG1vZGVsZWQgYXMgYSB0cmVlIG9mIG5vZGVzIGB7QGxpbmsgTVRyZWVOb2RlfWAgYW5kIHBhcnRzIGB7QGxpbmsgTVBhcnR9YC4gRWFjaCBub2RlIGhhcyB0d28gY2hpbGRyZW4sIHdoaWNoIGNhbiBiZSBlaXRoZXJcbiAqIGFub3RoZXIgbm9kZSBvciBhIHBhcnQgKGxlYWYpLiBBIG5vZGUgZGVmaW5lcyBhIHNwbGl0IGxheW91dCBpbiB3aGljaCB0aGUgdHdvIGNoaWxkcmVuIGFyZSBhcnJhbmdlZCB2ZXJ0aWNhbGx5IG9yIGhvcml6b250YWxseS5cbiAqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgTVRyZWVOb2RlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tK1xuICogICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuICogICAgICAgIE1UcmVlTm9kZSAgICAgICAgICAgICAgICAgICAgICAgTVBhcnQgICAgICAgICAgICAgICAgICAgICAgfCAgbGVmdCAgfCArLS0tLS0tLS0tKy0tLS0tLS0tLSsgfFxuICogICAgICstLS0tLS0rLS0tLS0tKyAgICAgICAgICAgICAgICAgKE1BSU5fQVJFQSkgICAgICAgICAgICAgICAgICAgfCAgdG9wICAgfCB8ICAgICAgICAgfCAgICAgICAgIHwgfFxuICogICAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICA9PT09PT0+ICAgfC0tLS0tLS0tKyB8IGxlZnQgICAgfCByaWdodCAgIHwgfFxuICogICBNUGFydCAgICAgICAgIE1QYXJ0ICAgICAgICAgICAgICAgICBNVHJlZU5vZGUgICAgICAgICByZW5kZXJzICAgfCAgbGVmdCAgfCB8ICAgICAgICAgfCAgICAgICAgIHwgfFxuICogKGxlZnQtdG9wKSAgKGxlZnQtYm90dG9tKSAgICAgICAgICstLS0tLS0rLS0tLS0tKyAgICAgICAgICAgICAgICAgfCBib3R0b20gfCArLS0tLS0tLS0tKy0tLS0tLS0tLSsgfFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNUGFydCAgICAgICAgIE1QYXJ0XG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxlZnQpICAgICAgICAocmlnaHQpXG4gKlxuICogQHNlZSBNYWluQXJlYUxheW91dENvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3Yi13b3JrYmVuY2gtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmtiZW5jaC1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93b3JrYmVuY2gtbGF5b3V0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICAgIFJvdXRlck91dGxldCxcbiAgICBHcmlkRWxlbWVudENvbXBvbmVudCxcbiAgICBHcmlkRWxlbWVudFZpc2libGVQaXBlLFxuICAgIFZpZXdEcm9wWm9uZURpcmVjdGl2ZSxcbiAgICBSZXF1aXJlc0Ryb3Bab25lUGlwZSxcbiAgICBTY2lWaWV3cG9ydENvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV29ya2JlbmNoTGF5b3V0Q29tcG9uZW50IHtcblxuICBwdWJsaWMgbGF5b3V0OiDJtVdvcmtiZW5jaExheW91dCB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHJvb3Q6IE1UcmVlTm9kZSB8IE1QYXJ0IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoV09SS0JFTkNIX0lEKSBwcml2YXRlIF93b3JrYmVuY2hJZDogc3RyaW5nLFxuICAgICAgICAgICAgICBwcml2YXRlIF92aWV3RHJhZ1NlcnZpY2U6IFZpZXdEcmFnU2VydmljZSxcbiAgICAgICAgICAgICAgd29ya2JlbmNoTGF5b3V0U2VydmljZTogV29ya2JlbmNoTGF5b3V0U2VydmljZSkge1xuICAgIHdvcmtiZW5jaExheW91dFNlcnZpY2UubGF5b3V0JFxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKGxheW91dCA9PiB7XG4gICAgICAgIHRoaXMubGF5b3V0ID0gbGF5b3V0O1xuICAgICAgICB0aGlzLnJvb3QgPSBsYXlvdXQubWF4aW1pemVkICYmIGxheW91dC5tYWluQXJlYUdyaWQgPyBsYXlvdXQubWFpbkFyZWFHcmlkLnJvb3QgOiBsYXlvdXQud29ya2JlbmNoR3JpZC5yb290O1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25WaWV3RHJvcChldmVudDogV2JWaWV3RHJvcEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fdmlld0RyYWdTZXJ2aWNlLmRpc3BhdGNoVmlld01vdmVFdmVudCh7XG4gICAgICBzb3VyY2U6IHtcbiAgICAgICAgd29ya2JlbmNoSWQ6IGV2ZW50LmRyYWdEYXRhLndvcmtiZW5jaElkLFxuICAgICAgICBwYXJ0SWQ6IGV2ZW50LmRyYWdEYXRhLnBhcnRJZCxcbiAgICAgICAgdmlld0lkOiBldmVudC5kcmFnRGF0YS52aWV3SWQsXG4gICAgICAgIHZpZXdVcmxTZWdtZW50czogZXZlbnQuZHJhZ0RhdGEudmlld1VybFNlZ21lbnRzLFxuICAgICAgfSxcbiAgICAgIHRhcmdldDoge1xuICAgICAgICB3b3JrYmVuY2hJZDogdGhpcy5fd29ya2JlbmNoSWQsXG4gICAgICAgIGVsZW1lbnRJZDogdGhpcy5yb290IGluc3RhbmNlb2YgTVBhcnQgPyB0aGlzLnJvb3QuaWQgOiB0aGlzLnJvb3QhLm5vZGVJZCxcbiAgICAgICAgcmVnaW9uOiBldmVudC5kcm9wUmVnaW9uIGFzICd3ZXN0JyB8ICdlYXN0JyB8ICdzb3V0aCcsIC8vIG5vcnRoIGFuZCBjZW50ZXIgZHJvcCB6b25lcyBub3QgaW5zdGFsbGVkXG4gICAgICAgIG5ld1BhcnQ6IHtyYXRpbzogLjJ9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInJvb3QgfCB3YkdyaWRFbGVtZW50VmlzaWJsZTsgZWxzZSBzdGFydF9wYWdlX3RlbXBsYXRlXCI+XG4gIDx3Yi1ncmlkLWVsZW1lbnQgW2VsZW1lbnRdPVwicm9vdFwiXG4gICAgICAgICAgICAgICAgICAgd2JWaWV3RHJvcFpvbmVcbiAgICAgICAgICAgICAgICAgICBbd2JWaWV3RHJvcFpvbmVTaXplXT1cIjUwXCJcbiAgICAgICAgICAgICAgICAgICBbd2JWaWV3RHJvcFpvbmVQbGFjZWhvbGRlclNpemVdPVwiNTBcIlxuICAgICAgICAgICAgICAgICAgIFt3YlZpZXdEcm9wWm9uZVJlZ2lvbnNdPVwie1xuICAgICAgICAgICAgICAgICAgICAgbm9ydGg6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgc291dGg6IHJvb3QgfCB3YlJlcXVpcmVzRHJvcFpvbmU6J3NvdXRoJyxcbiAgICAgICAgICAgICAgICAgICAgIHdlc3Q6IHJvb3QgfCB3YlJlcXVpcmVzRHJvcFpvbmU6J3dlc3QnLFxuICAgICAgICAgICAgICAgICAgICAgZWFzdDogcm9vdCB8IHdiUmVxdWlyZXNEcm9wWm9uZTonZWFzdCcsXG4gICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgIFt3YlZpZXdEcm9wWm9uZUNzc0NsYXNzXT1cIidlMmUtd29ya2JlbmNoLWdyaWQnXCJcbiAgICAgICAgICAgICAgICAgICAod2JWaWV3RHJvcFpvbmVEcm9wKT1cIm9uVmlld0Ryb3AoJGV2ZW50KVwiPlxuICA8L3diLWdyaWQtZWxlbWVudD5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3N0YXJ0X3BhZ2VfdGVtcGxhdGU+XG4gIDxzY2ktdmlld3BvcnQgY2xhc3M9XCJzdGFydC1wYWdlXCJcbiAgICAgICAgICAgICAgICB3YlZpZXdEcm9wWm9uZVxuICAgICAgICAgICAgICAgIFt3YlZpZXdEcm9wWm9uZVNpemVdPVwiMVwiXG4gICAgICAgICAgICAgICAgW3diVmlld0Ryb3Bab25lUmVnaW9uc109XCJ7Y2VudGVyOiB0cnVlLCBub3J0aDogZmFsc2UsIHNvdXRoOiBmYWxzZSwgd2VzdDogZmFsc2UsIGVhc3Q6IGZhbHNlfVwiXG4gICAgICAgICAgICAgICAgW3diVmlld0Ryb3Bab25lQ3NzQ2xhc3NdPVwiJ2UyZS13b3JrYmVuY2gtZ3JpZCdcIlxuICAgICAgICAgICAgICAgICh3YlZpZXdEcm9wWm9uZURyb3ApPVwib25WaWV3RHJvcCgkZXZlbnQpXCI+XG4gICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuICA8L3NjaS12aWV3cG9ydD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9sYXlvdXQvd29ya2JlbmNoLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9sYXlvdXQvd29ya2JlbmNoLWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR2hELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUc5RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUMscUJBQXFCLEVBQWtCLE1BQU0sc0NBQXNDLENBQUM7QUFDNUYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7Ozs7QUFFbkU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBZ0JILE1BQU0sT0FBTyx3QkFBd0I7SUFLbkMsWUFBMEMsWUFBb0IsRUFDMUMsZ0JBQWlDLEVBQ3pDLHNCQUE4QztRQUZoQixpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUMxQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBRW5ELHNCQUFzQixDQUFDLE9BQU87YUFDM0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7YUFDMUIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO1FBQ25HLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVTLFVBQVUsQ0FBQyxLQUFzQjtRQUN6QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLENBQUM7WUFDMUMsTUFBTSxFQUFFO2dCQUNOLFdBQVcsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVc7Z0JBQ3ZDLE1BQU0sRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU07Z0JBQzdCLE1BQU0sRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU07Z0JBQzdCLGVBQWUsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLGVBQWU7Z0JBQy9DLFNBQVMsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVM7YUFDcEM7WUFDRCxNQUFNLEVBQUUsZUFBZSxDQUFDLE9BQU8sQ0FBQztnQkFDOUIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFLO2dCQUNoQixXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQzlCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTthQUM3QixDQUFDO1NBQ0gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0EvQlUsd0JBQXdCLGtCQUtmLFlBQVk7a0dBTHJCLHdCQUF3QiwrRUNqRXJDLG9uQ0EwQkEsa09EK0JJLFlBQVksMkpBQ1osb0JBQW9CLDRFQUNwQix3QkFBd0IsK0RBQ3hCLHFCQUFxQiw2TUFDckIsb0JBQW9CLDJEQUNwQixvQkFBb0I7OzJGQUdYLHdCQUF3QjtrQkFmcEMsU0FBUzsrQkFDRSxxQkFBcUIsY0FHbkIsSUFBSSxXQUNQO3dCQUNQLElBQUk7d0JBQ0osWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3dCQUNyQixvQkFBb0I7d0JBQ3BCLG9CQUFvQjtxQkFDckI7OzBCQU9ZLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMyBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIEluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1dvcmtiZW5jaExheW91dFNlcnZpY2V9IGZyb20gJy4vd29ya2JlbmNoLWxheW91dC5zZXJ2aWNlJztcbmltcG9ydCB7ybVXb3JrYmVuY2hMYXlvdXR9IGZyb20gJy4vybV3b3JrYmVuY2gtbGF5b3V0JztcbmltcG9ydCB7R3JpZEVsZW1lbnRDb21wb25lbnR9IGZyb20gJy4vZ3JpZC1lbGVtZW50L2dyaWQtZWxlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHtOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7Vmlld0RyYWdTZXJ2aWNlfSBmcm9tICcuLi92aWV3LWRuZC92aWV3LWRyYWcuc2VydmljZSc7XG5pbXBvcnQge01QYXJ0R3JpZH0gZnJvbSAnLi93b3JrYmVuY2gtbGF5b3V0Lm1vZGVsJztcbmltcG9ydCB7UmVxdWlyZXNEcm9wWm9uZVBpcGV9IGZyb20gJy4uL3ZpZXctZG5kL3JlcXVpcmVzLWRyb3Atem9uZS5waXBlJztcbmltcG9ydCB7Vmlld0Ryb3Bab25lRGlyZWN0aXZlLCBXYlZpZXdEcm9wRXZlbnR9IGZyb20gJy4uL3ZpZXctZG5kL3ZpZXctZHJvcC16b25lLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1JvdXRlck91dGxldH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7U2NpVmlld3BvcnRDb21wb25lbnR9IGZyb20gJ0BzY2lvbi9jb21wb25lbnRzL3ZpZXdwb3J0JztcbmltcG9ydCB7R3JpZEVsZW1lbnRJZlZpc2libGVQaXBlfSBmcm9tICcuLi9jb21tb24vZ3JpZC1lbGVtZW50LWlmLXZpc2libGUucGlwZSc7XG5pbXBvcnQge1dPUktCRU5DSF9JRH0gZnJvbSAnLi4vd29ya2JlbmNoLWlkJztcbmltcG9ydCB7R3JpZERyb3BUYXJnZXRzfSBmcm9tICcuLi92aWV3LWRuZC9ncmlkLWRyb3AtdGFyZ2V0cy51dGlsJztcblxuLyoqXG4gKiBSZW5kZXJzIHRoZSBsYXlvdXQgb2YgdGhlIHdvcmtiZW5jaC5cbiAqXG4gKiBUaGUgd29ya2JlbmNoIGxheW91dCBpcyBhIGdyaWQgb2YgcGFydHMuIEl0IGNvbnRhaW5zIGF0IGxlYXN0IG9uZSBwYXJ0LiBBIHNwZWNpYWwgcGFydCwgdGhlIG1haW4gYXJlYSBwYXJ0LCBpcyBub3QgYSBzdGFjayBvZiB2aWV3c1xuICogYnV0IGVtYmVkcyBhIHN1Yi1ncmlkLCB0aGUgbWFpbiBhcmVhIGdyaWQuIEl0IGRlZmluZXMgdGhlIGFycmFuZ2VtZW50IG9mIHBhcnRzIGluIHRoZSBtYWluIGFyZWEuIFRoZSBtYWluIGFyZWEgaXMgb3B0aW9uYWwuXG4gKlxuICogVGhlIGxheW91dCBpcyBtb2RlbGVkIGFzIGEgdHJlZSBvZiBub2RlcyBge0BsaW5rIE1UcmVlTm9kZX1gIGFuZCBwYXJ0cyBge0BsaW5rIE1QYXJ0fWAuIEVhY2ggbm9kZSBoYXMgdHdvIGNoaWxkcmVuLCB3aGljaCBjYW4gYmUgZWl0aGVyXG4gKiBhbm90aGVyIG5vZGUgb3IgYSBwYXJ0IChsZWFmKS4gQSBub2RlIGRlZmluZXMgYSBzcGxpdCBsYXlvdXQgaW4gd2hpY2ggdGhlIHR3byBjaGlsZHJlbiBhcmUgYXJyYW5nZWQgdmVydGljYWxseSBvciBob3Jpem9udGFsbHkuXG4gKlxuICogICAgICAgICAgICAgICAgICAgICAgIE1UcmVlTm9kZVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLStcbiAqICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAqICAgICAgICBNVHJlZU5vZGUgICAgICAgICAgICAgICAgICAgICAgIE1QYXJ0ICAgICAgICAgICAgICAgICAgICAgIHwgIGxlZnQgIHwgKy0tLS0tLS0tLSstLS0tLS0tLS0rIHxcbiAqICAgICArLS0tLS0tKy0tLS0tLSsgICAgICAgICAgICAgICAgIChNQUlOX0FSRUEpICAgICAgICAgICAgICAgICAgIHwgIHRvcCAgIHwgfCAgICAgICAgIHwgICAgICAgICB8IHxcbiAqICAgICB8ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgPT09PT09PiAgIHwtLS0tLS0tLSsgfCBsZWZ0ICAgIHwgcmlnaHQgICB8IHxcbiAqICAgTVBhcnQgICAgICAgICBNUGFydCAgICAgICAgICAgICAgICAgTVRyZWVOb2RlICAgICAgICAgcmVuZGVycyAgIHwgIGxlZnQgIHwgfCAgICAgICAgIHwgICAgICAgICB8IHxcbiAqIChsZWZ0LXRvcCkgIChsZWZ0LWJvdHRvbSkgICAgICAgICArLS0tLS0tKy0tLS0tLSsgICAgICAgICAgICAgICAgIHwgYm90dG9tIHwgKy0tLS0tLS0tLSstLS0tLS0tLS0rIHxcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVBhcnQgICAgICAgICBNUGFydFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZWZ0KSAgICAgICAgKHJpZ2h0KVxuICpcbiAqIEBzZWUgTWFpbkFyZWFMYXlvdXRDb21wb25lbnRcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2Itd29ya2JlbmNoLWxheW91dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93b3JrYmVuY2gtbGF5b3V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd29ya2JlbmNoLWxheW91dC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBSb3V0ZXJPdXRsZXQsXG4gICAgR3JpZEVsZW1lbnRDb21wb25lbnQsXG4gICAgR3JpZEVsZW1lbnRJZlZpc2libGVQaXBlLFxuICAgIFZpZXdEcm9wWm9uZURpcmVjdGl2ZSxcbiAgICBSZXF1aXJlc0Ryb3Bab25lUGlwZSxcbiAgICBTY2lWaWV3cG9ydENvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV29ya2JlbmNoTGF5b3V0Q29tcG9uZW50IHtcblxuICBwdWJsaWMgbGF5b3V0OiDJtVdvcmtiZW5jaExheW91dCB8IHVuZGVmaW5lZDtcbiAgcHJvdGVjdGVkIGdyaWQ6IE1QYXJ0R3JpZCB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFdPUktCRU5DSF9JRCkgcHJpdmF0ZSBfd29ya2JlbmNoSWQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfdmlld0RyYWdTZXJ2aWNlOiBWaWV3RHJhZ1NlcnZpY2UsXG4gICAgICAgICAgICAgIHdvcmtiZW5jaExheW91dFNlcnZpY2U6IFdvcmtiZW5jaExheW91dFNlcnZpY2UpIHtcbiAgICB3b3JrYmVuY2hMYXlvdXRTZXJ2aWNlLmxheW91dCRcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZShsYXlvdXQgPT4ge1xuICAgICAgICB0aGlzLmxheW91dCA9IGxheW91dDtcbiAgICAgICAgdGhpcy5ncmlkID0gbGF5b3V0Lm1heGltaXplZCAmJiBsYXlvdXQubWFpbkFyZWFHcmlkID8gbGF5b3V0Lm1haW5BcmVhR3JpZCA6IGxheW91dC53b3JrYmVuY2hHcmlkO1xuICAgICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25WaWV3RHJvcChldmVudDogV2JWaWV3RHJvcEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fdmlld0RyYWdTZXJ2aWNlLmRpc3BhdGNoVmlld01vdmVFdmVudCh7XG4gICAgICBzb3VyY2U6IHtcbiAgICAgICAgd29ya2JlbmNoSWQ6IGV2ZW50LmRyYWdEYXRhLndvcmtiZW5jaElkLFxuICAgICAgICBwYXJ0SWQ6IGV2ZW50LmRyYWdEYXRhLnBhcnRJZCxcbiAgICAgICAgdmlld0lkOiBldmVudC5kcmFnRGF0YS52aWV3SWQsXG4gICAgICAgIHZpZXdVcmxTZWdtZW50czogZXZlbnQuZHJhZ0RhdGEudmlld1VybFNlZ21lbnRzLFxuICAgICAgICBjbGFzc0xpc3Q6IGV2ZW50LmRyYWdEYXRhLmNsYXNzTGlzdCxcbiAgICAgIH0sXG4gICAgICB0YXJnZXQ6IEdyaWREcm9wVGFyZ2V0cy5yZXNvbHZlKHtcbiAgICAgICAgZ3JpZDogdGhpcy5ncmlkISxcbiAgICAgICAgd29ya2JlbmNoSWQ6IHRoaXMuX3dvcmtiZW5jaElkLFxuICAgICAgICBkcm9wUmVnaW9uOiBldmVudC5kcm9wUmVnaW9uLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cbn1cbiIsIkBpZiAoZ3JpZD8ucm9vdCB8IHdiR3JpZEVsZW1lbnRJZlZpc2libGU7IGFzIHJvb3QpIHtcbiAgPHdiLWdyaWQtZWxlbWVudCBbZWxlbWVudF09XCJyb290XCJcbiAgICAgICAgICAgICAgICAgICB3YlZpZXdEcm9wWm9uZVxuICAgICAgICAgICAgICAgICAgIFt3YlZpZXdEcm9wWm9uZVNpemVdPVwiNTBcIlxuICAgICAgICAgICAgICAgICAgIFt3YlZpZXdEcm9wWm9uZVBsYWNlaG9sZGVyU2l6ZV09XCI1MFwiXG4gICAgICAgICAgICAgICAgICAgW3diVmlld0Ryb3Bab25lUmVnaW9uc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICBub3J0aDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICBzb3V0aDogcm9vdCB8IHdiUmVxdWlyZXNEcm9wWm9uZTonc291dGgnLFxuICAgICAgICAgICAgICAgICAgICAgd2VzdDogcm9vdCB8IHdiUmVxdWlyZXNEcm9wWm9uZTond2VzdCcsXG4gICAgICAgICAgICAgICAgICAgICBlYXN0OiByb290IHwgd2JSZXF1aXJlc0Ryb3Bab25lOidlYXN0JyxcbiAgICAgICAgICAgICAgICAgICAgIGNlbnRlcjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgW3diVmlld0Ryb3Bab25lQ3NzQ2xhc3NdPVwiJ2UyZS13b3JrYmVuY2gtZ3JpZCdcIlxuICAgICAgICAgICAgICAgICAgICh3YlZpZXdEcm9wWm9uZURyb3ApPVwib25WaWV3RHJvcCgkZXZlbnQpXCI+XG4gIDwvd2ItZ3JpZC1lbGVtZW50PlxufVxuQGVsc2Uge1xuICA8c2NpLXZpZXdwb3J0IGNsYXNzPVwic3RhcnQtcGFnZVwiXG4gICAgICAgICAgICAgICAgd2JWaWV3RHJvcFpvbmVcbiAgICAgICAgICAgICAgICBbd2JWaWV3RHJvcFpvbmVTaXplXT1cIjFcIlxuICAgICAgICAgICAgICAgIFt3YlZpZXdEcm9wWm9uZVJlZ2lvbnNdPVwie2NlbnRlcjogdHJ1ZSwgbm9ydGg6IGZhbHNlLCBzb3V0aDogZmFsc2UsIHdlc3Q6IGZhbHNlLCBlYXN0OiBmYWxzZX1cIlxuICAgICAgICAgICAgICAgIFt3YlZpZXdEcm9wWm9uZUNzc0NsYXNzXT1cIidlMmUtd29ya2JlbmNoLWdyaWQnXCJcbiAgICAgICAgICAgICAgICAod2JWaWV3RHJvcFpvbmVEcm9wKT1cIm9uVmlld0Ryb3AoJGV2ZW50KVwiPlxuICAgIDxyb3V0ZXItb3V0bGV0Lz5cbiAgPC9zY2ktdmlld3BvcnQ+XG59XG4iXX0=