@datarailsshared/datarailsshared 1.5.520 → 1.5.524

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 (44) hide show
  1. package/datarailsshared-datarailsshared-1.5.524.tgz +0 -0
  2. package/esm2022/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.mjs +2 -2
  3. package/esm2022/lib/drawer/drawer-animation.mjs +18 -0
  4. package/esm2022/lib/drawer/drawer-config.mjs +35 -0
  5. package/esm2022/lib/drawer/drawer-container.component.mjs +177 -0
  6. package/esm2022/lib/drawer/drawer-position-strategy.mjs +14 -0
  7. package/esm2022/lib/drawer/drawer-ref.mjs +98 -0
  8. package/esm2022/lib/drawer/drawer.module.mjs +19 -0
  9. package/esm2022/lib/drawer/drawer.service.mjs +140 -0
  10. package/esm2022/lib/drawer/public-api.mjs +6 -0
  11. package/esm2022/public-api.mjs +3 -1
  12. package/esm2022/src/lib/drawer/drDrawer.mjs +5 -0
  13. package/esm2022/src/lib/drawer/drawer-animation.mjs +18 -0
  14. package/esm2022/src/lib/drawer/drawer-config.mjs +35 -0
  15. package/esm2022/src/lib/drawer/drawer-container.component.mjs +177 -0
  16. package/esm2022/src/lib/drawer/drawer-position-strategy.mjs +14 -0
  17. package/esm2022/src/lib/drawer/drawer-ref.mjs +98 -0
  18. package/esm2022/src/lib/drawer/drawer.module.mjs +19 -0
  19. package/esm2022/src/lib/drawer/drawer.service.mjs +140 -0
  20. package/esm2022/src/lib/drawer/public-api.mjs +6 -0
  21. package/fesm2022/datarailsshared-datarailsshared.mjs +559 -90
  22. package/fesm2022/datarailsshared-datarailsshared.mjs.map +1 -1
  23. package/fesm2022/drDrawer.mjs +486 -0
  24. package/fesm2022/drDrawer.mjs.map +1 -0
  25. package/lib/drawer/drawer-animation.d.ts +5 -0
  26. package/lib/drawer/drawer-config.d.ts +63 -0
  27. package/lib/drawer/drawer-container.component.d.ts +45 -0
  28. package/lib/drawer/drawer-position-strategy.d.ts +10 -0
  29. package/lib/drawer/drawer-ref.d.ts +53 -0
  30. package/lib/drawer/drawer.module.d.ts +7 -0
  31. package/lib/drawer/drawer.service.d.ts +62 -0
  32. package/lib/drawer/public-api.d.ts +5 -0
  33. package/package.json +7 -1
  34. package/public-api.d.ts +2 -0
  35. package/src/lib/drawer/drawer-animation.d.ts +5 -0
  36. package/src/lib/drawer/drawer-config.d.ts +63 -0
  37. package/src/lib/drawer/drawer-container.component.d.ts +45 -0
  38. package/src/lib/drawer/drawer-position-strategy.d.ts +10 -0
  39. package/src/lib/drawer/drawer-ref.d.ts +53 -0
  40. package/src/lib/drawer/drawer.module.d.ts +7 -0
  41. package/src/lib/drawer/drawer.service.d.ts +62 -0
  42. package/src/lib/drawer/index.d.ts +5 -0
  43. package/src/lib/drawer/public-api.d.ts +5 -0
  44. package/datarailsshared-datarailsshared-1.5.520.tgz +0 -0
@@ -0,0 +1,98 @@
1
+ import { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';
2
+ import { merge, Subject } from 'rxjs';
3
+ import { filter, take } from 'rxjs/operators';
4
+ /**
5
+ * Reference to a drawer dispatched from the drawer service.
6
+ */
7
+ export class DrawerRef {
8
+ /** Instance of the component making up the content of the drawer. */
9
+ get instance() {
10
+ return this._ref.componentInstance;
11
+ }
12
+ /**
13
+ * `ComponentRef` of the component opened into the drawer. Will be
14
+ * null when the drawer is opened using a `TemplateRef`.
15
+ */
16
+ get componentRef() {
17
+ return this._ref.componentRef;
18
+ }
19
+ constructor(_ref, config, containerInstance) {
20
+ this._ref = _ref;
21
+ /** Subject for notifying the user that the drawer has been dismissed. */
22
+ this._afterDismissed = new Subject();
23
+ /** Subject for notifying the user that the drawer has opened and appeared. */
24
+ this._afterOpened = new Subject();
25
+ this.containerInstance = containerInstance;
26
+ this.disableClose = config.disableClose;
27
+ this.id = _ref.id;
28
+ // Emit when opening animation completes
29
+ containerInstance._animationStateChanged
30
+ .pipe(filter((event) => event.phaseName === 'done' && event.toState === 'visible'), take(1))
31
+ .subscribe(() => {
32
+ this._afterOpened.next();
33
+ this._afterOpened.complete();
34
+ });
35
+ // Dispose overlay when closing animation is complete
36
+ containerInstance._animationStateChanged
37
+ .pipe(filter((event) => event.phaseName === 'done' && event.toState === 'hidden'), take(1))
38
+ .subscribe(() => {
39
+ clearTimeout(this._closeFallbackTimeout);
40
+ this._ref.close(this._result);
41
+ });
42
+ _ref.overlayRef.detachments().subscribe(() => {
43
+ this._ref.close(this._result);
44
+ });
45
+ merge(this.backdropClick(), this.keydownEvents().pipe(filter((event) => event.keyCode === ESCAPE))).subscribe((event) => {
46
+ if (!this.disableClose && (event.type !== 'keydown' || !hasModifierKey(event))) {
47
+ event.preventDefault();
48
+ this.dismiss();
49
+ }
50
+ });
51
+ }
52
+ /**
53
+ * Dismisses the drawer.
54
+ * @param result Data to be passed back to the drawer opener.
55
+ */
56
+ dismiss(result) {
57
+ if (this.containerInstance && !this._afterDismissed.closed) {
58
+ // Transition the backdrop in parallel to the drawer.
59
+ this.containerInstance._animationStateChanged
60
+ .pipe(filter((event) => event.phaseName === 'start'), take(1))
61
+ .subscribe((event) => {
62
+ // The logic that disposes of the overlay depends on the exit animation completing, however
63
+ // it isn't guaranteed if the parent view is destroyed while it's running. Add a fallback
64
+ // timeout which will clean everything up if the animation hasn't fired within the specified
65
+ // amount of time plus 100ms. We don't need to run this outside the NgZone, because for the
66
+ // vast majority of cases the timeout will have been cleared before it has fired.
67
+ this._closeFallbackTimeout = setTimeout(() => {
68
+ this._ref.close(this._result);
69
+ }, event.totalTime + 100);
70
+ this._ref.overlayRef.detachBackdrop();
71
+ });
72
+ this._result = result;
73
+ this.containerInstance.exit();
74
+ this.containerInstance = null;
75
+ }
76
+ }
77
+ /** Gets an observable that is notified when the drawer is finished closing. */
78
+ afterDismissed() {
79
+ return this._ref.closed;
80
+ }
81
+ /** Gets an observable that is notified when the drawer has opened and appeared. */
82
+ afterOpened() {
83
+ return this._afterOpened;
84
+ }
85
+ /**
86
+ * Gets an observable that emits when the overlay's backdrop has been clicked.
87
+ */
88
+ backdropClick() {
89
+ return this._ref.backdropClick;
90
+ }
91
+ /**
92
+ * Gets an observable that emits when keydown events are targeted on the overlay.
93
+ */
94
+ keydownEvents() {
95
+ return this._ref.keydownEvents;
96
+ }
97
+ }
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyYXdlci9kcmF3ZXItcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0QsT0FBTyxFQUFFLEtBQUssRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUs5Qzs7R0FFRztBQUNILE1BQU0sT0FBTyxTQUFTO0lBQ2xCLHFFQUFxRTtJQUNyRSxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWtCLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDbEMsQ0FBQztJQTBCRCxZQUNZLElBQXFCLEVBQzdCLE1BQW9CLEVBQ3BCLGlCQUFrQztRQUYxQixTQUFJLEdBQUosSUFBSSxDQUFpQjtRQWJqQyx5RUFBeUU7UUFDeEQsb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBaUIsQ0FBQztRQUVoRSw4RUFBOEU7UUFDN0QsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBYWhELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDeEMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBRWxCLHdDQUF3QztRQUN4QyxpQkFBaUIsQ0FBQyxzQkFBc0I7YUFDbkMsSUFBSSxDQUNELE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMs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Q2xDO0lBQ0wsQ0FBQztJQUVELCtFQUErRTtJQUMvRSxjQUFjO1FBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUM1QixDQUFDO0lBRUQsbUZBQW1GO0lBQ25GLFdBQVc7UUFDUCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYTtRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDbkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYTtRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDbkMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RpYWxvZyc7XG5pbXBvcnQgeyBFU0NBUEUsIGhhc01vZGlmaWVyS2V5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IG1lcmdlLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEcmF3ZXJDb25maWcgfSBmcm9tICcuL2RyYXdlci1jb25maWcnO1xuaW1wb3J0IHsgRHJhd2VyQ29udGFpbmVyIH0gZnJvbSAnLi9kcmF3ZXItY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBSZWZlcmVuY2UgdG8gYSBkcmF3ZXIgZGlzcGF0Y2hlZCBmcm9tIHRoZSBkcmF3ZXIgc2VydmljZS5cbiAqL1xuZXhwb3J0IGNsYXNzIERyYXdlclJlZjxUID0gYW55LCBSID0gYW55PiB7XG4gICAgLyoqIEluc3RhbmNlIG9mIHRoZSBjb21wb25lbnQgbWFraW5nIHVwIHRoZSBjb250ZW50IG9mIHRoZSBkcmF3ZXIuICovXG4gICAgZ2V0IGluc3RhbmNlKCk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVmLmNvbXBvbmVudEluc3RhbmNlITtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBgQ29tcG9uZW50UmVmYCBvZiB0aGUgY29tcG9uZW50IG9wZW5lZCBpbnRvIHRoZSBkcmF3ZXIuIFdpbGwgYmVcbiAgICAgKiBudWxsIHdoZW4gdGhlIGRyYXdlciBpcyBvcGVuZWQgdXNpbmcgYSBgVGVtcGxhdGVSZWZgLlxuICAgICAqL1xuICAgIGdldCBjb21wb25lbnRSZWYoKTogQ29tcG9uZW50UmVmPFQ+IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZWYuY29tcG9uZW50UmVmO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluc3RhbmNlIG9mIHRoZSBjb21wb25lbnQgaW50byB3aGljaCB0aGUgZHJhd2VyIGNvbnRlbnQgaXMgcHJvamVjdGVkLlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBjb250YWluZXJJbnN0YW5jZTogRHJhd2VyQ29udGFpbmVyO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBjbG9zZSB0aGUgZHJhd2VyLiAqL1xuICAgIGRpc2FibGVDbG9zZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAgIC8qKiBVbmlxdWUgSUQgZm9yIHRoZSBkcmF3ZXIuICovXG4gICAgaWQ6IHN0cmluZztcblxuICAgIC8qKiBTdWJqZWN0IGZvciBub3RpZnlpbmcgdGhlIHVzZXIgdGhhdCB0aGUgZHJhd2VyIGhhcyBiZWVuIGRpc21pc3NlZC4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9hZnRlckRpc21pc3NlZCA9IG5ldyBTdWJqZWN0PFIgfCB1bmRlZmluZWQ+KCk7XG5cbiAgICAvKiogU3ViamVjdCBmb3Igbm90aWZ5aW5nIHRoZSB1c2VyIHRoYXQgdGhlIGRyYXdlciBoYXMgb3BlbmVkIGFuZCBhcHBlYXJlZC4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9hZnRlck9wZW5lZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogUmVzdWx0IHRvIGJlIHBhc3NlZCBkb3duIHRvIHRoZSBgYWZ0ZXJEaXNtaXNzZWRgIHN0cmVhbS4gKi9cbiAgICBwcml2YXRlIF9yZXN1bHQ6IFIgfCB1bmRlZmluZWQ7XG5cbiAgICAvKiogSGFuZGxlIHRvIHRoZSB0aW1lb3V0IHRoYXQncyBydW5uaW5nIGFzIGEgZmFsbGJhY2sgaW4gY2FzZSB0aGUgZXhpdCBhbmltYXRpb24gZG9lc24ndCBmaXJlLiAqL1xuICAgIHByaXZhdGUgX2Nsb3NlRmFsbGJhY2tUaW1lb3V0OiBhbnk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfcmVmOiBEaWFsb2dSZWY8UiwgVD4sXG4gICAgICAgIGNvbmZpZzogRHJhd2VyQ29uZmlnLFxuICAgICAgICBjb250YWluZXJJbnN0YW5jZTogRHJhd2VyQ29udGFpbmVyLFxuICAgICkge1xuICAgICAgICB0aGlzLmNvbnRhaW5lckluc3RhbmNlID0gY29udGFpbmVySW5zdGFuY2U7XG4gICAgICAgIHRoaXMuZGlzYWJsZUNsb3NlID0gY29uZmlnLmRpc2FibGVDbG9zZTtcbiAgICAgICAgdGhpcy5pZCA9IF9yZWYuaWQ7XG5cbiAgICAgICAgLy8gRW1pdCB3aGVuIG9wZW5pbmcgYW5pbWF0aW9uIGNvbXBsZXRlc1xuICAgICAgICBjb250YWluZXJJbnN0YW5jZS5fYW5pbWF0aW9uU3RhdGVDaGFuZ2VkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudC5waGFzZU5hbWUgPT09ICdkb25lJyAmJiBldmVudC50b1N0YXRlID09PSAndmlzaWJsZScpLFxuICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZnRlck9wZW5lZC5uZXh0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWZ0ZXJPcGVuZWQuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIC8vIERpc3Bvc2Ugb3ZlcmxheSB3aGVuIGNsb3NpbmcgYW5pbWF0aW9uIGlzIGNvbXBsZXRlXG4gICAgICAgIGNvbnRhaW5lckluc3RhbmNlLl9hbmltYXRpb25TdGF0ZUNoYW5nZWRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50LnBoYXNlTmFtZSA9PT0gJ2RvbmUnICYmIGV2ZW50LnRvU3RhdGUgPT09ICdoaWRkZW4nKSxcbiAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2Nsb3NlRmFsbGJhY2tUaW1lb3V0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZWYuY2xvc2UodGhpcy5fcmVzdWx0KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIF9yZWYub3ZlcmxheVJlZi5kZXRhY2htZW50cygpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9yZWYuY2xvc2UodGhpcy5fcmVzdWx0KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbWVyZ2UodGhpcy5iYWNrZHJvcENsaWNrKCksIHRoaXMua2V5ZG93bkV2ZW50cygpLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQua2V5Q29kZSA9PT0gRVNDQVBFKSkpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5kaXNhYmxlQ2xvc2UgJiYgKGV2ZW50LnR5cGUgIT09ICdrZXlkb3duJyB8fCAhaGFzTW9kaWZpZXJLZXkoZXZlbnQgYXMgS2V5Ym9hcmRFdmVudCkpKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc21pc3MoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGlzbWlzc2VzIHRoZSBkcmF3ZXIuXG4gICAgICogQHBhcmFtIHJlc3VsdCBEYXRhIHRvIGJlIHBhc3NlZCBiYWNrIHRvIHRoZSBkcmF3ZXIgb3BlbmVyLlxuICAgICAqL1xuICAgIGRpc21pc3MocmVzdWx0PzogUik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250YWluZXJJbnN0YW5jZSAmJiAhdGhpcy5fYWZ0ZXJEaXNtaXNzZWQuY2xvc2VkKSB7XG4gICAgICAgICAgICAvLyBUcmFuc2l0aW9uIHRoZSBiYWNrZHJvcCBpbiBwYXJhbGxlbCB0byB0aGUgZHJhd2VyLlxuICAgICAgICAgICAgdGhpcy5jb250YWluZXJJbnN0YW5jZS5fYW5pbWF0aW9uU3RhdGVDaGFuZ2VkXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50LnBoYXNlTmFtZSA9PT0gJ3N0YXJ0JyksXG4gICAgICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRoZSBsb2dpYyB0aGF0IGRpc3Bvc2VzIG9mIHRoZSBvdmVybGF5IGRlcGVuZHMgb24gdGhlIGV4aXQgYW5pbWF0aW9uIGNvbXBsZXRpbmcsIGhvd2V2ZXJcbiAgICAgICAgICAgICAgICAgICAgLy8gaXQgaXNuJ3QgZ3VhcmFudGVlZCBpZiB0aGUgcGFyZW50IHZpZXcgaXMgZGVzdHJveWVkIHdoaWxlIGl0J3MgcnVubmluZy4gQWRkIGEgZmFsbGJhY2tcbiAgICAgICAgICAgICAgICAgICAgLy8gdGltZW91dCB3aGljaCB3aWxsIGNsZWFuIGV2ZXJ5dGhpbmcgdXAgaWYgdGhlIGFuaW1hdGlvbiBoYXNuJ3QgZmlyZWQgd2l0aGluIHRoZSBzcGVjaWZpZWRcbiAgICAgICAgICAgICAgICAgICAgLy8gYW1vdW50IG9mIHRpbWUgcGx1cyAxMDBtcy4gV2UgZG9uJ3QgbmVlZCB0byBydW4gdGhpcyBvdXRzaWRlIHRoZSBOZ1pvbmUsIGJlY2F1c2UgZm9yIHRoZVxuICAgICAgICAgICAgICAgICAgICAvLyB2YXN0IG1ham9yaXR5IG9mIGNhc2VzIHRoZSB0aW1lb3V0IHdpbGwgaGF2ZSBiZWVuIGNsZWFyZWQgYmVmb3JlIGl0IGhhcyBmaXJlZC5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2xvc2VGYWxsYmFja1RpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlZi5jbG9zZSh0aGlzLl9yZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB9LCBldmVudC50b3RhbFRpbWUgKyAxMDApO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlZi5vdmVybGF5UmVmLmRldGFjaEJhY2tkcm9wKCk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuX3Jlc3VsdCA9IHJlc3VsdDtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVySW5zdGFuY2UuZXhpdCgpO1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXJJbnN0YW5jZSA9IG51bGwhO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEdldHMgYW4gb2JzZXJ2YWJsZSB0aGF0IGlzIG5vdGlmaWVkIHdoZW4gdGhlIGRyYXdlciBpcyBmaW5pc2hlZCBjbG9zaW5nLiAqL1xuICAgIGFmdGVyRGlzbWlzc2VkKCk6IE9ic2VydmFibGU8UiB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVmLmNsb3NlZDtcbiAgICB9XG5cbiAgICAvKiogR2V0cyBhbiBvYnNlcnZhYmxlIHRoYXQgaXMgbm90aWZpZWQgd2hlbiB0aGUgZHJhd2VyIGhhcyBvcGVuZWQgYW5kIGFwcGVhcmVkLiAqL1xuICAgIGFmdGVyT3BlbmVkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWZ0ZXJPcGVuZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgd2hlbiB0aGUgb3ZlcmxheSdzIGJhY2tkcm9wIGhhcyBiZWVuIGNsaWNrZWQuXG4gICAgICovXG4gICAgYmFja2Ryb3BDbGljaygpOiBPYnNlcnZhYmxlPE1vdXNlRXZlbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlZi5iYWNrZHJvcENsaWNrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHdoZW4ga2V5ZG93biBldmVudHMgYXJlIHRhcmdldGVkIG9uIHRoZSBvdmVybGF5LlxuICAgICAqL1xuICAgIGtleWRvd25FdmVudHMoKTogT2JzZXJ2YWJsZTxLZXlib2FyZEV2ZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZWYua2V5ZG93bkV2ZW50cztcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { DrawerContainer } from './drawer-container.component';
3
+ import { Drawer } from './drawer.service';
4
+ import * as i0 from "@angular/core";
5
+ export class DrawerModule {
6
+ /** @nocollapse */ static { this.ɵfac = function DrawerModule_Factory(t) { return new (t || DrawerModule)(); }; }
7
+ /** @nocollapse */ static { this.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DrawerModule }); }
8
+ /** @nocollapse */ static { this.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ providers: [Drawer], imports: [DrawerContainer] }); }
9
+ }
10
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrawerModule, [{
11
+ type: NgModule,
12
+ args: [{
13
+ imports: [DrawerContainer],
14
+ exports: [DrawerContainer],
15
+ providers: [Drawer],
16
+ }]
17
+ }], null, null); })();
18
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(DrawerModule, { imports: [DrawerContainer], exports: [DrawerContainer] }); })();
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyYXdlci9kcmF3ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFPMUMsTUFBTSxPQUFPLFlBQVk7Z0dBQVosWUFBWTtrR0FBWixZQUFZO3VHQUZWLENBQUMsTUFBTSxDQUFDLFlBRlQsZUFBZTs7dUZBSWhCLFlBQVk7Y0FMeEIsUUFBUTtlQUFDO2dCQUNOLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDMUIsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO2dCQUMxQixTQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUM7YUFDdEI7O3dGQUNZLFlBQVksY0FKWCxlQUFlLGFBQ2YsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEcmF3ZXJDb250YWluZXIgfSBmcm9tICcuL2RyYXdlci1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERyYXdlciB9IGZyb20gJy4vZHJhd2VyLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtEcmF3ZXJDb250YWluZXJdLFxuICAgIGV4cG9ydHM6IFtEcmF3ZXJDb250YWluZXJdLFxuICAgIHByb3ZpZGVyczogW0RyYXdlcl0sXG59KVxuZXhwb3J0IGNsYXNzIERyYXdlck1vZHVsZSB7fVxuIl19
@@ -0,0 +1,140 @@
1
+ import { coerceCssPixelValue } from '@angular/cdk/coercion';
2
+ import { Dialog, DialogConfig } from '@angular/cdk/dialog';
3
+ import { Overlay } from '@angular/cdk/overlay';
4
+ import { Inject, Injectable, InjectionToken, Injector, Optional, SkipSelf } from '@angular/core';
5
+ import { defer, Subject } from 'rxjs';
6
+ import { startWith } from 'rxjs/operators';
7
+ import { DrawerConfig } from './drawer-config';
8
+ import { DrawerContainer } from './drawer-container.component';
9
+ import { DrawerRef } from './drawer-ref';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@angular/cdk/overlay";
12
+ import * as i2 from "./drawer-config";
13
+ /** Injection token that can be used to access the data that was passed in to a drawer. */
14
+ export const DR_DRAWER_DATA = new InjectionToken('DrDrawerData');
15
+ /** Injection token that can be used to specify default drawer options. */
16
+ export const DR_DRAWER_DEFAULT_OPTIONS = new InjectionToken('dr-drawer-default-options');
17
+ // Counter for unique drawer ids.
18
+ let uniqueId = 0;
19
+ /**
20
+ * Service to trigger Material Design bottom sheets.
21
+ */
22
+ export class Drawer {
23
+ /** Keeps track of the currently-open dialogs. */
24
+ get openDrawers() {
25
+ return this._parentDrawer ? this._parentDrawer.openDrawers : this._openDrawersAtThisLevel;
26
+ }
27
+ /** Stream that emits when a drawer has been opened. */
28
+ get afterOpened() {
29
+ return this._parentDrawer ? this._parentDrawer.afterOpened : this._afterOpenedAtThisLevel;
30
+ }
31
+ _getAfterAllDismissed() {
32
+ const parent = this._parentDrawer;
33
+ return parent ? parent._getAfterAllDismissed() : this._afterAllDismissedAtThisLevel;
34
+ }
35
+ constructor(_overlay, _injector, _parentDrawer, _defaultOptions) {
36
+ this._overlay = _overlay;
37
+ this._injector = _injector;
38
+ this._parentDrawer = _parentDrawer;
39
+ this._defaultOptions = _defaultOptions;
40
+ this._openDrawersAtThisLevel = [];
41
+ this._afterAllDismissedAtThisLevel = new Subject();
42
+ this._afterOpenedAtThisLevel = new Subject();
43
+ /**
44
+ * Stream that emits when all open drawer have finished closing.
45
+ * Will emit on subscribe if there are no open drawers to begin with.
46
+ */
47
+ this.afterAllDismissed = defer(() => this.openDrawers.length ? this._getAfterAllDismissed() : this._getAfterAllDismissed().pipe(startWith(undefined)));
48
+ this._dialog = _injector.get(Dialog);
49
+ }
50
+ open(componentOrTemplateRef, config) {
51
+ let drawerRef;
52
+ const _config = { ...(this._defaultOptions || new DrawerConfig()), ...config };
53
+ _config.id = _config.id || `dr-drawer-${uniqueId++}`;
54
+ _config.width =
55
+ _config.position === 'left' || _config.position === 'right' ? coerceCssPixelValue(_config.width) : '100vw';
56
+ _config.height =
57
+ _config.position === 'top' || _config.position === 'bottom' ? coerceCssPixelValue(_config.height) : '100vh';
58
+ this._dialog.open(componentOrTemplateRef, {
59
+ ..._config,
60
+ // Disable closing since we need to sync it up to the animation ourselves.
61
+ disableClose: true,
62
+ // Disable closing on detachments so that we can sync up the animation.
63
+ closeOnOverlayDetachments: false,
64
+ container: {
65
+ type: DrawerContainer,
66
+ providers: () => [
67
+ // Provide our config as the CDK config as well since it has the same interface as the
68
+ // CDK one, but it contains the actual values passed in by the user for things like
69
+ // `disableClose` which we disable for the CDK dialog since we handle it ourselves.
70
+ { provide: DrawerConfig, useValue: _config },
71
+ { provide: DialogConfig, useValue: _config },
72
+ ],
73
+ },
74
+ scrollStrategy: _config.scrollStrategy || this._overlay.scrollStrategies.block(),
75
+ positionStrategy: this._overlay.position().global()[_config.position]('0'),
76
+ templateContext: () => ({ drawerRef }),
77
+ providers: (cdkRef, _cdkConfig, container) => {
78
+ drawerRef = new DrawerRef(cdkRef, _config, container);
79
+ return [
80
+ { provide: DrawerRef, useValue: drawerRef },
81
+ { provide: DR_DRAWER_DATA, useValue: _config.data },
82
+ ];
83
+ },
84
+ });
85
+ this.openDrawers.push(drawerRef);
86
+ this.afterOpened.next(drawerRef);
87
+ drawerRef.afterDismissed().subscribe(() => {
88
+ const index = this.openDrawers.indexOf(drawerRef);
89
+ if (index > -1) {
90
+ this.openDrawers.splice(index, 1);
91
+ if (!this.openDrawers.length) {
92
+ this._getAfterAllDismissed().next();
93
+ }
94
+ }
95
+ });
96
+ return drawerRef;
97
+ }
98
+ /**
99
+ * Dismisses all of the currently-open drawers.
100
+ */
101
+ dismissAll() {
102
+ this._dismissDrawers(this.openDrawers);
103
+ }
104
+ /**
105
+ * Finds an open drawer by its id.
106
+ * @param id ID to use when looking up the drawer.
107
+ */
108
+ getDrawerById(id) {
109
+ return this.openDrawers.find((drawer) => drawer.id === id);
110
+ }
111
+ ngOnDestroy() {
112
+ // Only dismiss the drawers at this level on destroy
113
+ // since the parent service may still be active.
114
+ this._dismissDrawers(this._openDrawersAtThisLevel);
115
+ this._afterAllDismissedAtThisLevel.complete();
116
+ this._afterOpenedAtThisLevel.complete();
117
+ }
118
+ _dismissDrawers(drawers) {
119
+ let i = drawers.length;
120
+ while (i--) {
121
+ drawers[i].dismiss();
122
+ }
123
+ }
124
+ /** @nocollapse */ static { this.ɵfac = function Drawer_Factory(t) { return new (t || Drawer)(i0.ɵɵinject(i1.Overlay), i0.ɵɵinject(i0.Injector), i0.ɵɵinject(Drawer, 12), i0.ɵɵinject(DR_DRAWER_DEFAULT_OPTIONS, 8)); }; }
125
+ /** @nocollapse */ static { this.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: Drawer, factory: Drawer.ɵfac, providedIn: 'root' }); }
126
+ }
127
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Drawer, [{
128
+ type: Injectable,
129
+ args: [{ providedIn: 'root' }]
130
+ }], function () { return [{ type: i1.Overlay }, { type: i0.Injector }, { type: Drawer, decorators: [{
131
+ type: Optional
132
+ }, {
133
+ type: SkipSelf
134
+ }] }, { type: i2.DrawerConfig, decorators: [{
135
+ type: Optional
136
+ }, {
137
+ type: Inject,
138
+ args: [DR_DRAWER_DEFAULT_OPTIONS]
139
+ }] }]; }, null); })();
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kcmF3ZXIvZHJhd2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBYSxRQUFRLEVBQUUsUUFBUSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ3pILE9BQU8sRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFFekMsMEZBQTBGO0FBQzFGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBTSxjQUFjLENBQUMsQ0FBQztBQUV0RSwwRUFBMEU7QUFDMUUsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxjQUFjLENBQWUsMkJBQTJCLENBQUMsQ0FBQztBQUV2RyxpQ0FBaUM7QUFDakMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBRWpCOztHQUVHO0FBRUgsTUFBTSxPQUFPLE1BQU07SUFNZixpREFBaUQ7SUFDakQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDO0lBQzlGLENBQUM7SUFFRCx1REFBdUQ7SUFDdkQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDO0lBQzlGLENBQUM7SUFFTyxxQkFBcUI7UUFDekIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUNsQyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQztJQUN4RixDQUFDO0lBVUQsWUFDWSxRQUFpQixFQUNqQixTQUFtQixFQUNLLGFBQXFCLEVBRzdDLGVBQThCO1FBTDlCLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNLLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBRzdDLG9CQUFlLEdBQWYsZUFBZSxDQUFlO1FBbEN6Qiw0QkFBdUIsR0FBcUIsRUFBRSxDQUFDO1FBQy9DLGtDQUE2QixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDcEQsNEJBQXVCLEdBQUcsSUFBSSxPQUFPLEVBQWtCLENBQUM7UUFrQnpFOzs7V0FHRztRQUNNLHNCQUFpQixHQUFxQixLQUFLLENBQUMsR0FBRyxFQUFFLENBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUNuSCxDQUFDO1FBVUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFrQkQsSUFBSSxDQUNBLHNCQUF5RCxFQUN6RCxNQUF3QjtRQUV4QixJQUFJLFNBQTJCLENBQUM7UUFFaEMsTUFBTSxPQUFPLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLFlBQVksRUFBRSxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUMvRSxPQUFPLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLElBQUksYUFBYSxRQUFRLEVBQUUsRUFBRSxDQUFDO1FBRXJELE9BQU8sQ0FBQyxLQUFLO1lBQ1QsT0FBTyxDQUFDLFFBQVEsS0FBSyxNQUFNLElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBRS9HLE9BQU8sQ0FBQyxNQUFNO1lBQ1YsT0FBTyxDQUFDLFFBQVEsS0FBSyxLQUFLLElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBRWhILElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFVLHNCQUFzQixFQUFFO1lBQy9DLEdBQUcsT0FBTztZQUNWLDBFQUEwRTtZQUMxRSxZQUFZLEVBQUUsSUFBSTtZQUNsQix1RUFBdUU7WUFDdkUseUJBQXlCLEVBQUUsS0FBSztZQUNoQyxTQUFTLEVBQUU7Z0JBQ1AsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQztvQkFDYixzRkFBc0Y7b0JBQ3RGLG1GQUFtRjtvQkFDbkYsbUZBQW1GO29CQUNuRixFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtvQkFDNUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7aUJBQy9DO2FBQ0o7WUFDRCxjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRTtZQUNoRixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFTLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDM0UsZUFBZSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUN0QyxTQUFTLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxFQUFFO2dCQUN6QyxTQUFTLEdBQUcsSUFBSSxTQUFTLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUE0QixDQUFDLENBQUM7Z0JBQ3pFLE9BQU87b0JBQ0gsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUU7b0JBQzNDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRTtpQkFDdEQsQ0FBQztZQUNOLENBQUM7U0FDSixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVqQyxTQUFTLENBQUMsY0FBYyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN0QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUVsRCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDWixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBRWxDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtvQkFDMUIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7aUJBQ3ZDO2FBQ0o7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVU7UUFDTixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsYUFBYSxDQUFDLEVBQVU7UUFDcEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsV0FBVztRQUNQLG9EQUFvRDtRQUNwRCxnREFBZ0Q7UUFDaEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsNkJBQTZCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFTyxlQUFlLENBQUMsT0FBeUI7UUFDN0MsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUV2QixPQUFPLENBQUMsRUFBRSxFQUFFO1lBQ1IsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQzswRkFsSlEsTUFBTSwwRkFrQ0gseUJBQXlCO3NHQWxDNUIsTUFBTSxXQUFOLE1BQU0sbUJBRE8sTUFBTTs7dUZBQ25CLE1BQU07Y0FEbEIsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7c0JBaUN6QixRQUFROztzQkFBSSxRQUFROztzQkFDcEIsUUFBUTs7c0JBQ1IsTUFBTTt1QkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VDc3NQaXhlbFZhbHVlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IERpYWxvZywgRGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RpYWxvZyc7XG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IsIE9uRGVzdHJveSwgT3B0aW9uYWwsIFNraXBTZWxmLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVmZXIsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERyYXdlckNvbmZpZyB9IGZyb20gJy4vZHJhd2VyLWNvbmZpZyc7XG5pbXBvcnQgeyBEcmF3ZXJDb250YWluZXIgfSBmcm9tICcuL2RyYXdlci1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERyYXdlclJlZiB9IGZyb20gJy4vZHJhd2VyLXJlZic7XG5cbi8qKiBJbmplY3Rpb24gdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byBhY2Nlc3MgdGhlIGRhdGEgdGhhdCB3YXMgcGFzc2VkIGluIHRvIGEgZHJhd2VyLiAqL1xuZXhwb3J0IGNvbnN0IERSX0RSQVdFUl9EQVRBID0gbmV3IEluamVjdGlvblRva2VuPGFueT4oJ0RyRHJhd2VyRGF0YScpO1xuXG4vKiogSW5qZWN0aW9uIHRva2VuIHRoYXQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBkZWZhdWx0IGRyYXdlciBvcHRpb25zLiAqL1xuZXhwb3J0IGNvbnN0IERSX0RSQVdFUl9ERUZBVUxUX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48RHJhd2VyQ29uZmlnPignZHItZHJhd2VyLWRlZmF1bHQtb3B0aW9ucycpO1xuXG4vLyBDb3VudGVyIGZvciB1bmlxdWUgZHJhd2VyIGlkcy5cbmxldCB1bmlxdWVJZCA9IDA7XG5cbi8qKlxuICogU2VydmljZSB0byB0cmlnZ2VyIE1hdGVyaWFsIERlc2lnbiBib3R0b20gc2hlZXRzLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIERyYXdlciBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfb3BlbkRyYXdlcnNBdFRoaXNMZXZlbDogRHJhd2VyUmVmPGFueT5bXSA9IFtdO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2FmdGVyQWxsRGlzbWlzc2VkQXRUaGlzTGV2ZWwgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2FmdGVyT3BlbmVkQXRUaGlzTGV2ZWwgPSBuZXcgU3ViamVjdDxEcmF3ZXJSZWY8YW55Pj4oKTtcbiAgICBwcml2YXRlIF9kaWFsb2c6IERpYWxvZztcblxuICAgIC8qKiBLZWVwcyB0cmFjayBvZiB0aGUgY3VycmVudGx5LW9wZW4gZGlhbG9ncy4gKi9cbiAgICBnZXQgb3BlbkRyYXdlcnMoKTogRHJhd2VyUmVmW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFyZW50RHJhd2VyID8gdGhpcy5fcGFyZW50RHJhd2VyLm9wZW5EcmF3ZXJzIDogdGhpcy5fb3BlbkRyYXdlcnNBdFRoaXNMZXZlbDtcbiAgICB9XG5cbiAgICAvKiogU3RyZWFtIHRoYXQgZW1pdHMgd2hlbiBhIGRyYXdlciBoYXMgYmVlbiBvcGVuZWQuICovXG4gICAgZ2V0IGFmdGVyT3BlbmVkKCk6IFN1YmplY3Q8RHJhd2VyUmVmPGFueT4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmVudERyYXdlciA/IHRoaXMuX3BhcmVudERyYXdlci5hZnRlck9wZW5lZCA6IHRoaXMuX2FmdGVyT3BlbmVkQXRUaGlzTGV2ZWw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0QWZ0ZXJBbGxEaXNtaXNzZWQoKTogU3ViamVjdDx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuX3BhcmVudERyYXdlcjtcbiAgICAgICAgcmV0dXJuIHBhcmVudCA/IHBhcmVudC5fZ2V0QWZ0ZXJBbGxEaXNtaXNzZWQoKSA6IHRoaXMuX2FmdGVyQWxsRGlzbWlzc2VkQXRUaGlzTGV2ZWw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU3RyZWFtIHRoYXQgZW1pdHMgd2hlbiBhbGwgb3BlbiBkcmF3ZXIgaGF2ZSBmaW5pc2hlZCBjbG9zaW5nLlxuICAgICAqIFdpbGwgZW1pdCBvbiBzdWJzY3JpYmUgaWYgdGhlcmUgYXJlIG5vIG9wZW4gZHJhd2VycyB0byBiZWdpbiB3aXRoLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGFmdGVyQWxsRGlzbWlzc2VkOiBPYnNlcnZhYmxlPHZvaWQ+ID0gZGVmZXIoKCkgPT5cbiAgICAgICAgdGhpcy5vcGVuRHJhd2Vycy5sZW5ndGggPyB0aGlzLl9nZXRBZnRlckFsbERpc21pc3NlZCgpIDogdGhpcy5fZ2V0QWZ0ZXJBbGxEaXNtaXNzZWQoKS5waXBlKHN0YXJ0V2l0aCh1bmRlZmluZWQpKSxcbiAgICApO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcHJpdmF0ZSBfcGFyZW50RHJhd2VyOiBEcmF3ZXIsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoRFJfRFJBV0VSX0RFRkFVTFRfT1BUSU9OUylcbiAgICAgICAgcHJpdmF0ZSBfZGVmYXVsdE9wdGlvbnM/OiBEcmF3ZXJDb25maWcsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuX2RpYWxvZyA9IF9pbmplY3Rvci5nZXQoRGlhbG9nKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPcGVucyBhIGRyYXdlciBjb250YWluaW5nIHRoZSBnaXZlbiBjb21wb25lbnQuXG4gICAgICogQHBhcmFtIGNvbXBvbmVudCBUeXBlIG9mIHRoZSBjb21wb25lbnQgdG8gbG9hZCBpbnRvIHRoZSBkcmF3ZXIuXG4gICAgICogQHBhcmFtIGNvbmZpZyBFeHRyYSBjb25maWd1cmF0aW9uIG9wdGlvbnMuXG4gICAgICogQHJldHVybnMgUmVmZXJlbmNlIHRvIHRoZSBuZXdseS1vcGVuZWQgZHJhd2VyLlxuICAgICAqL1xuICAgIG9wZW48VCwgRCA9IGFueSwgUiA9IGFueT4oY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+LCBjb25maWc/OiBEcmF3ZXJDb25maWc8RD4pOiBEcmF3ZXJSZWY8VCwgUj47XG5cbiAgICAvKipcbiAgICAgKiBPcGVucyBhIGRyYXdlciBjb250YWluaW5nIHRoZSBnaXZlbiB0ZW1wbGF0ZS5cbiAgICAgKiBAcGFyYW0gdGVtcGxhdGUgVGVtcGxhdGVSZWYgdG8gaW5zdGFudGlhdGUgYXMgdGhlIGRyYXdlciBjb250ZW50LlxuICAgICAqIEBwYXJhbSBjb25maWcgRXh0cmEgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuICAgICAqIEByZXR1cm5zIFJlZmVyZW5jZSB0byB0aGUgbmV3bHktb3BlbmVkIGRyYXdlci5cbiAgICAgKi9cbiAgICBvcGVuPFQsIEQgPSBhbnksIFIgPSBhbnk+KHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxUPiwgY29uZmlnPzogRHJhd2VyQ29uZmlnPEQ+KTogRHJhd2VyUmVmPFQsIFI+O1xuXG4gICAgb3BlbjxULCBEID0gYW55LCBSID0gYW55PihcbiAgICAgICAgY29tcG9uZW50T3JUZW1wbGF0ZVJlZjogQ29tcG9uZW50VHlwZTxUPiB8IFRlbXBsYXRlUmVmPFQ+LFxuICAgICAgICBjb25maWc/OiBEcmF3ZXJDb25maWc8RD4sXG4gICAgKTogRHJhd2VyUmVmPFQsIFI+IHtcbiAgICAgICAgbGV0IGRyYXdlclJlZiE6IERyYXdlclJlZjxULCBSPjtcblxuICAgICAgICBjb25zdCBfY29uZmlnID0geyAuLi4odGhpcy5fZGVmYXVsdE9wdGlvbnMgfHwgbmV3IERyYXdlckNvbmZpZygpKSwgLi4uY29uZmlnIH07XG4gICAgICAgIF9jb25maWcuaWQgPSBfY29uZmlnLmlkIHx8IGBkci1kcmF3ZXItJHt1bmlxdWVJZCsrfWA7XG5cbiAgICAgICAgX2NvbmZpZy53aWR0aCA9XG4gICAgICAgICAgICBfY29uZmlnLnBvc2l0aW9uID09PSAnbGVmdCcgfHwgX2NvbmZpZy5wb3NpdGlvbiA9PT0gJ3JpZ2h0JyA/IGNvZXJjZUNzc1BpeGVsVmFsdWUoX2NvbmZpZy53aWR0aCkgOiAnMTAwdncnO1xuXG4gICAgICAgIF9jb25maWcuaGVpZ2h0ID1cbiAgICAgICAgICAgIF9jb25maWcucG9zaXRpb24gPT09ICd0b3AnIHx8IF9jb25maWcucG9zaXRpb24gPT09ICdib3R0b20nID8gY29lcmNlQ3NzUGl4ZWxWYWx1ZShfY29uZmlnLmhlaWdodCkgOiAnMTAwdmgnO1xuXG4gICAgICAgIHRoaXMuX2RpYWxvZy5vcGVuPFIsIEQsIFQ+KGNvbXBvbmVudE9yVGVtcGxhdGVSZWYsIHtcbiAgICAgICAgICAgIC4uLl9jb25maWcsXG4gICAgICAgICAgICAvLyBEaXNhYmxlIGNsb3Npbmcgc2luY2Ugd2UgbmVlZCB0byBzeW5jIGl0IHVwIHRvIHRoZSBhbmltYXRpb24gb3Vyc2VsdmVzLlxuICAgICAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgICAgICAgLy8gRGlzYWJsZSBjbG9zaW5nIG9uIGRldGFjaG1lbnRzIHNvIHRoYXQgd2UgY2FuIHN5bmMgdXAgdGhlIGFuaW1hdGlvbi5cbiAgICAgICAgICAgIGNsb3NlT25PdmVybGF5RGV0YWNobWVudHM6IGZhbHNlLFxuICAgICAgICAgICAgY29udGFpbmVyOiB7XG4gICAgICAgICAgICAgICAgdHlwZTogRHJhd2VyQ29udGFpbmVyLFxuICAgICAgICAgICAgICAgIHByb3ZpZGVyczogKCkgPT4gW1xuICAgICAgICAgICAgICAgICAgICAvLyBQcm92aWRlIG91ciBjb25maWcgYXMgdGhlIENESyBjb25maWcgYXMgd2VsbCBzaW5jZSBpdCBoYXMgdGhlIHNhbWUgaW50ZXJmYWNlIGFzIHRoZVxuICAgICAgICAgICAgICAgICAgICAvLyBDREsgb25lLCBidXQgaXQgY29udGFpbnMgdGhlIGFjdHVhbCB2YWx1ZXMgcGFzc2VkIGluIGJ5IHRoZSB1c2VyIGZvciB0aGluZ3MgbGlrZVxuICAgICAgICAgICAgICAgICAgICAvLyBgZGlzYWJsZUNsb3NlYCB3aGljaCB3ZSBkaXNhYmxlIGZvciB0aGUgQ0RLIGRpYWxvZyBzaW5jZSB3ZSBoYW5kbGUgaXQgb3Vyc2VsdmVzLlxuICAgICAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IERyYXdlckNvbmZpZywgdXNlVmFsdWU6IF9jb25maWcgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBwcm92aWRlOiBEaWFsb2dDb25maWcsIHVzZVZhbHVlOiBfY29uZmlnIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzY3JvbGxTdHJhdGVneTogX2NvbmZpZy5zY3JvbGxTdHJhdGVneSB8fCB0aGlzLl9vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuYmxvY2soKSxcbiAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKVtfY29uZmlnLnBvc2l0aW9uIV0oJzAnKSxcbiAgICAgICAgICAgIHRlbXBsYXRlQ29udGV4dDogKCkgPT4gKHsgZHJhd2VyUmVmIH0pLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiAoY2RrUmVmLCBfY2RrQ29uZmlnLCBjb250YWluZXIpID0+IHtcbiAgICAgICAgICAgICAgICBkcmF3ZXJSZWYgPSBuZXcgRHJhd2VyUmVmKGNka1JlZiwgX2NvbmZpZywgY29udGFpbmVyIGFzIERyYXdlckNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgeyBwcm92aWRlOiBEcmF3ZXJSZWYsIHVzZVZhbHVlOiBkcmF3ZXJSZWYgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBwcm92aWRlOiBEUl9EUkFXRVJfREFUQSwgdXNlVmFsdWU6IF9jb25maWcuZGF0YSB9LFxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm9wZW5EcmF3ZXJzLnB1c2goZHJhd2VyUmVmKTtcbiAgICAgICAgdGhpcy5hZnRlck9wZW5lZC5uZXh0KGRyYXdlclJlZik7XG5cbiAgICAgICAgZHJhd2VyUmVmLmFmdGVyRGlzbWlzc2VkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5vcGVuRHJhd2Vycy5pbmRleE9mKGRyYXdlclJlZik7XG5cbiAgICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuRHJhd2Vycy5zcGxpY2UoaW5kZXgsIDEpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm9wZW5EcmF3ZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9nZXRBZnRlckFsbERpc21pc3NlZCgpLm5leHQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBkcmF3ZXJSZWY7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGlzbWlzc2VzIGFsbCBvZiB0aGUgY3VycmVudGx5LW9wZW4gZHJhd2Vycy5cbiAgICAgKi9cbiAgICBkaXNtaXNzQWxsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kaXNtaXNzRHJhd2Vycyh0aGlzLm9wZW5EcmF3ZXJzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGaW5kcyBhbiBvcGVuIGRyYXdlciBieSBpdHMgaWQuXG4gICAgICogQHBhcmFtIGlkIElEIHRvIHVzZSB3aGVuIGxvb2tpbmcgdXAgdGhlIGRyYXdlci5cbiAgICAgKi9cbiAgICBnZXREcmF3ZXJCeUlkKGlkOiBzdHJpbmcpOiBEcmF3ZXJSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wZW5EcmF3ZXJzLmZpbmQoKGRyYXdlcikgPT4gZHJhd2VyLmlkID09PSBpZCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIE9ubHkgZGlzbWlzcyB0aGUgZHJhd2VycyBhdCB0aGlzIGxldmVsIG9uIGRlc3Ryb3lcbiAgICAgICAgLy8gc2luY2UgdGhlIHBhcmVudCBzZXJ2aWNlIG1heSBzdGlsbCBiZSBhY3RpdmUuXG4gICAgICAgIHRoaXMuX2Rpc21pc3NEcmF3ZXJzKHRoaXMuX29wZW5EcmF3ZXJzQXRUaGlzTGV2ZWwpO1xuICAgICAgICB0aGlzLl9hZnRlckFsbERpc21pc3NlZEF0VGhpc0xldmVsLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX2FmdGVyT3BlbmVkQXRUaGlzTGV2ZWwuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9kaXNtaXNzRHJhd2VycyhkcmF3ZXJzOiBEcmF3ZXJSZWY8YW55PltdKSB7XG4gICAgICAgIGxldCBpID0gZHJhd2Vycy5sZW5ndGg7XG5cbiAgICAgICAgd2hpbGUgKGktLSkge1xuICAgICAgICAgICAgZHJhd2Vyc1tpXS5kaXNtaXNzKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,6 @@
1
+ export * from './drawer-config';
2
+ export * from './drawer-container.component';
3
+ export * from './drawer-ref';
4
+ export * from './drawer.service';
5
+ export * from './drawer.module';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyYXdlci9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RyYXdlci1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9kcmF3ZXItY29udGFpbmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2RyYXdlci1yZWYnO1xuZXhwb3J0ICogZnJvbSAnLi9kcmF3ZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2RyYXdlci5tb2R1bGUnO1xuIl19