@datarailsshared/datarailsshared 1.6.191 → 1.6.199

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.6.199.tgz +0 -0
  2. package/esm2022/lib/dr-tooltip/components/tooltip-default/tooltip-default.component.mjs +5 -4
  3. package/esm2022/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.mjs +6 -6
  4. package/esm2022/lib/dr-tooltip/dr-tooltip.component.mjs +6 -5
  5. package/esm2022/lib/dr-tooltip/dr-tooltip.directive.mjs +3 -2
  6. package/esm2022/lib/dr-tooltip/dr-tooltip.module.mjs +6 -9
  7. package/esm2022/lib/drawer/drawer-config.mjs +3 -1
  8. package/esm2022/lib/drawer/drawer-container.component.mjs +12 -9
  9. package/esm2022/lib/drawer/drawer-ref.mjs +5 -1
  10. package/esm2022/lib/drawer/drawer.service.mjs +82 -1
  11. package/esm2022/lib/filter-dropdown/filter-dropdown.component.mjs +3 -3
  12. package/fesm2022/datarailsshared-datarailsshared.mjs +115 -28
  13. package/fesm2022/datarailsshared-datarailsshared.mjs.map +1 -1
  14. package/lib/dr-tooltip/components/tooltip-default/tooltip-default.component.d.ts +1 -1
  15. package/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.d.ts +1 -2
  16. package/lib/dr-tooltip/dr-tooltip.component.d.ts +1 -1
  17. package/lib/dr-tooltip/dr-tooltip.directive.d.ts +1 -1
  18. package/lib/dr-tooltip/dr-tooltip.module.d.ts +5 -6
  19. package/lib/drawer/drawer-config.d.ts +5 -0
  20. package/lib/drawer/drawer-container.component.d.ts +1 -1
  21. package/lib/drawer/drawer-ref.d.ts +2 -0
  22. package/lib/drawer/drawer.service.d.ts +17 -0
  23. package/package.json +1 -7
  24. package/datarailsshared-datarailsshared-1.6.191.tgz +0 -0
  25. package/esm2022/src/lib/drawer/drDrawer.mjs +0 -5
  26. package/esm2022/src/lib/drawer/drawer-animation.mjs +0 -18
  27. package/esm2022/src/lib/drawer/drawer-config.mjs +0 -35
  28. package/esm2022/src/lib/drawer/drawer-container.component.mjs +0 -179
  29. package/esm2022/src/lib/drawer/drawer-position-strategy.mjs +0 -14
  30. package/esm2022/src/lib/drawer/drawer-ref.mjs +0 -106
  31. package/esm2022/src/lib/drawer/drawer.module.mjs +0 -19
  32. package/esm2022/src/lib/drawer/drawer.service.mjs +0 -140
  33. package/esm2022/src/lib/drawer/public-api.mjs +0 -6
  34. package/fesm2022/drDrawer.mjs +0 -496
  35. package/fesm2022/drDrawer.mjs.map +0 -1
  36. package/src/lib/drawer/drawer-animation.d.ts +0 -5
  37. package/src/lib/drawer/drawer-config.d.ts +0 -68
  38. package/src/lib/drawer/drawer-container.component.d.ts +0 -45
  39. package/src/lib/drawer/drawer-position-strategy.d.ts +0 -10
  40. package/src/lib/drawer/drawer-ref.d.ts +0 -55
  41. package/src/lib/drawer/drawer.module.d.ts +0 -7
  42. package/src/lib/drawer/drawer.service.d.ts +0 -62
  43. package/src/lib/drawer/index.d.ts +0 -5
  44. package/src/lib/drawer/public-api.d.ts +0 -5
@@ -4,5 +4,5 @@ export declare class TooltipDefaultComponent {
4
4
  content: string;
5
5
  theme: TooltipTheme;
6
6
  static ɵfac: i0.ɵɵFactoryDeclaration<TooltipDefaultComponent, never>;
7
- static ɵcmp: i0.ɵɵComponentDeclaration<TooltipDefaultComponent, "dr-tooltip-default", never, { "content": { "alias": "content"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; }, {}, never, ["*"], false, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<TooltipDefaultComponent, "dr-tooltip-default", never, { "content": { "alias": "content"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; }, {}, never, ["*"], true, never>;
8
8
  }
@@ -2,7 +2,6 @@ import { TooltipInfoContext } from '../../interfaces/tooltip-component-context';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class TooltipInfoComponent {
4
4
  data: TooltipInfoContext;
5
- constructor();
6
5
  static ɵfac: i0.ɵɵFactoryDeclaration<TooltipInfoComponent, never>;
7
- static ɵcmp: i0.ɵɵComponentDeclaration<TooltipInfoComponent, "dr-tooltip-info", never, { "data": { "alias": "data"; "required": false; }; }, {}, never, never, false, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<TooltipInfoComponent, "dr-tooltip-info", never, { "data": { "alias": "data"; "required": false; }; }, {}, never, never, true, never>;
8
7
  }
@@ -20,6 +20,6 @@ export declare class TooltipComponent implements OnInit {
20
20
  setMouseOn(): void;
21
21
  unsetMouseOn(): void;
22
22
  static ɵfac: i0.ɵɵFactoryDeclaration<TooltipComponent, never>;
23
- static ɵcmp: i0.ɵɵComponentDeclaration<TooltipComponent, "dr-tooltip", never, { "content": { "alias": "content"; "required": false; }; "contentContext": { "alias": "contentContext"; "required": false; }; "position": { "alias": "position"; "required": false; }; "options": { "alias": "options"; "required": false; }; "class": { "alias": "class"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; }, {}, never, never, false, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<TooltipComponent, "dr-tooltip", never, { "content": { "alias": "content"; "required": false; }; "contentContext": { "alias": "contentContext"; "required": false; }; "position": { "alias": "position"; "required": false; }; "options": { "alias": "options"; "required": false; }; "class": { "alias": "class"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; }, {}, never, never, true, never>;
24
24
  }
25
25
  export {};
@@ -36,5 +36,5 @@ export declare class DrTooltipDirective implements OnDestroy {
36
36
  private destroyTooltip;
37
37
  private clearMouseEnterTimeout;
38
38
  static ɵfac: i0.ɵɵFactoryDeclaration<DrTooltipDirective, never>;
39
- static ɵdir: i0.ɵɵDirectiveDeclaration<DrTooltipDirective, "[drTooltip]", never, { "content": { "alias": "drTooltip"; "required": false; }; "contentContext": { "alias": "drTooltipContext"; "required": false; }; "position": { "alias": "drTooltipPosition"; "required": false; }; "class": { "alias": "drTooltipClass"; "required": false; }; "theme": { "alias": "drTooltipTheme"; "required": false; }; "drTooltipMousleaveTimeout": { "alias": "drTooltipMousleaveTimeout"; "required": false; }; "drTooltipMouseEnterTimeout": { "alias": "drTooltipMouseEnterTimeout"; "required": false; }; "drTooltipOptions": { "alias": "drTooltipOptions"; "required": false; }; "showTooltip": { "alias": "drTooltipShow"; "required": false; }; "hideTooltip": { "alias": "drTooltipHide"; "required": false; }; }, {}, never, never, false, never>;
39
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DrTooltipDirective, "[drTooltip]", never, { "content": { "alias": "drTooltip"; "required": false; }; "contentContext": { "alias": "drTooltipContext"; "required": false; }; "position": { "alias": "drTooltipPosition"; "required": false; }; "class": { "alias": "drTooltipClass"; "required": false; }; "theme": { "alias": "drTooltipTheme"; "required": false; }; "drTooltipMousleaveTimeout": { "alias": "drTooltipMousleaveTimeout"; "required": false; }; "drTooltipMouseEnterTimeout": { "alias": "drTooltipMouseEnterTimeout"; "required": false; }; "drTooltipOptions": { "alias": "drTooltipOptions"; "required": false; }; "showTooltip": { "alias": "drTooltipShow"; "required": false; }; "hideTooltip": { "alias": "drTooltipHide"; "required": false; }; }, {}, never, never, true, never>;
40
40
  }
@@ -1,11 +1,10 @@
1
1
  import * as i0 from "@angular/core";
2
- import * as i1 from "./dr-tooltip.component";
3
- import * as i2 from "./dr-tooltip.directive";
4
- import * as i3 from "./components/tooltip-default/tooltip-default.component";
5
- import * as i4 from "./components/tooltip-info/tooltip-info.component";
6
- import * as i5 from "@angular/common";
2
+ import * as i1 from "./components/tooltip-default/tooltip-default.component";
3
+ import * as i2 from "./components/tooltip-info/tooltip-info.component";
4
+ import * as i3 from "./dr-tooltip.component";
5
+ import * as i4 from "./dr-tooltip.directive";
7
6
  export declare class DrTooltipModule {
8
7
  static ɵfac: i0.ɵɵFactoryDeclaration<DrTooltipModule, never>;
9
- static ɵmod: i0.ɵɵNgModuleDeclaration<DrTooltipModule, [typeof i1.TooltipComponent, typeof i2.DrTooltipDirective, typeof i3.TooltipDefaultComponent, typeof i4.TooltipInfoComponent], [typeof i5.CommonModule], [typeof i1.TooltipComponent, typeof i2.DrTooltipDirective, typeof i3.TooltipDefaultComponent, typeof i4.TooltipInfoComponent]>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DrTooltipModule, never, [typeof i1.TooltipDefaultComponent, typeof i2.TooltipInfoComponent, typeof i3.TooltipComponent, typeof i4.DrTooltipDirective], [typeof i1.TooltipDefaultComponent, typeof i2.TooltipInfoComponent, typeof i3.TooltipComponent, typeof i4.DrTooltipDirective]>;
10
9
  static ɵinj: i0.ɵɵInjectorDeclaration<DrTooltipModule>;
11
10
  }
@@ -11,6 +11,9 @@ export type DrawerPosition = 'top' | 'bottom' | 'left' | 'right';
11
11
  export declare class DrawerConfig<D = any> {
12
12
  /** The view container to place the overlay for the drawer into. */
13
13
  viewContainerRef?: ViewContainerRef;
14
+ /** Element to observe for resize changes to adjust drawer positioning.
15
+ * The drawer will fit within the boundaries of this element. */
16
+ observedElement?: HTMLElement;
14
17
  /** ID for the drawer. If omitted, a unique one will be generated. */
15
18
  id?: string;
16
19
  /** Extra CSS classes to be added to the drawer container. */
@@ -65,4 +68,6 @@ export declare class DrawerConfig<D = any> {
65
68
  * takes precedence over the injector indirectly provided by `ViewContainerRef`.
66
69
  */
67
70
  injector?: Injector;
71
+ /** Whether to render the drawer without default container styles and handle. */
72
+ unstyled?: boolean;
68
73
  }
@@ -15,7 +15,7 @@ export declare class DrawerContainer extends CdkDialogContainer<DrawerConfig> im
15
15
  private overlayRef;
16
16
  /** The portal outlet inside of this container into which the content will be loaded. */
17
17
  _portalOutlet: CdkPortalOutlet;
18
- _handleRef: ElementRef<HTMLDivElement>;
18
+ _handleRef?: ElementRef<HTMLDivElement>;
19
19
  /** The state of the drawer animations. */
20
20
  _animationState: 'void' | 'visible' | 'hidden';
21
21
  /** Emits whenever the state of the animation changes. */
@@ -24,6 +24,8 @@ export declare class DrawerRef<T = any, R = any> {
24
24
  disableClose: boolean | undefined;
25
25
  /** Unique ID for the drawer. */
26
26
  id: string;
27
+ /** Gets the overlay element for the drawer. */
28
+ get overlayElement(): HTMLElement;
27
29
  /** Subject for notifying the user that the drawer has been dismissed. */
28
30
  private readonly _afterDismissed;
29
31
  /** Subject for notifying the user that the drawer has opened and appeared. */
@@ -21,6 +21,7 @@ export declare class Drawer implements OnDestroy {
21
21
  private readonly _afterAllDismissedAtThisLevel;
22
22
  private readonly _afterOpenedAtThisLevel;
23
23
  private _dialog;
24
+ private readonly _resizeSubscriptions;
24
25
  /** Keeps track of the currently-open dialogs. */
25
26
  get openDrawers(): DrawerRef[];
26
27
  /** Stream that emits when a drawer has been opened. */
@@ -56,6 +57,22 @@ export declare class Drawer implements OnDestroy {
56
57
  */
57
58
  getDrawerById(id: string): DrawerRef<any> | undefined;
58
59
  ngOnDestroy(): void;
60
+ /**
61
+ * Sets up resize observation for the specified element and updates drawer positioning.
62
+ */
63
+ private _setupResizeObservation;
64
+ /**
65
+ * Calculates and applies margins to the drawer to fit within the observed element's boundaries.
66
+ */
67
+ private _updateDrawerPosition;
68
+ /**
69
+ * Calculates margins to position drawer within the observed element's boundaries.
70
+ */
71
+ private _calculateMarginsToFitWithinElement;
72
+ /**
73
+ * Applies calculated margins to the overlay element.
74
+ */
75
+ private _applyMarginsToOverlay;
59
76
  private _dismissDrawers;
60
77
  static ɵfac: i0.ɵɵFactoryDeclaration<Drawer, [null, null, { optional: true; skipSelf: true; }, { optional: true; }]>;
61
78
  static ɵprov: i0.ɵɵInjectableDeclaration<Drawer>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datarailsshared/datarailsshared",
3
- "version": "1.6.191",
3
+ "version": "1.6.199",
4
4
  "description": "DataRails shared components",
5
5
  "keywords": [
6
6
  "angular",
@@ -30,12 +30,6 @@
30
30
  "esm2022": "./esm2022/datarailsshared-datarailsshared.mjs",
31
31
  "esm": "./esm2022/datarailsshared-datarailsshared.mjs",
32
32
  "default": "./fesm2022/datarailsshared-datarailsshared.mjs"
33
- },
34
- "./src/lib/drawer": {
35
- "types": "./src/lib/drawer/index.d.ts",
36
- "esm2022": "./esm2022/src/lib/drawer/drDrawer.mjs",
37
- "esm": "./esm2022/src/lib/drawer/drDrawer.mjs",
38
- "default": "./fesm2022/drDrawer.mjs"
39
33
  }
40
34
  },
41
35
  "dependencies": {
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJEcmF3ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kcmF3ZXIvZHJEcmF3ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -1,18 +0,0 @@
1
- import { animate, state, style, transition, trigger } from '@angular/animations';
2
- /** Animations used by the drawer. */
3
- export const drDrawerAnimations = {
4
- /** Animation that shows and hides a drawer. */
5
- drawerState: trigger('state', [
6
- state('void, hidden', style({
7
- 'box-shadow': 'none',
8
- visibility: 'hidden',
9
- })),
10
- state('visible', style({
11
- transform: 'none',
12
- visibility: 'visible',
13
- })),
14
- transition('visible => void, visible => hidden', animate('400ms cubic-bezier(0.25, 0.8, 0.25, 1)')),
15
- transition('void => visible', animate('150ms cubic-bezier(0, 0, 0.2, 1)')),
16
- ]),
17
- };
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWFuaW1hdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyYXdlci9kcmF3ZXItYW5pbWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUE0QixNQUFNLHFCQUFxQixDQUFDO0FBRTNHLHFDQUFxQztBQUNyQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FFM0I7SUFDQSwrQ0FBK0M7SUFDL0MsV0FBVyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUU7UUFDMUIsS0FBSyxDQUNELGNBQWMsRUFDZCxLQUFLLENBQUM7WUFDRixZQUFZLEVBQUUsTUFBTTtZQUNwQixVQUFVLEVBQUUsUUFBUTtTQUN2QixDQUFDLENBQ0w7UUFDRCxLQUFLLENBQ0QsU0FBUyxFQUNULEtBQUssQ0FBQztZQUNGLFNBQVMsRUFBRSxNQUFNO1lBQ2pCLFVBQVUsRUFBRSxTQUFTO1NBQ3hCLENBQUMsQ0FDTDtRQUNELFVBQVUsQ0FBQyxvQ0FBb0MsRUFBRSxPQUFPLENBQUMsd0NBQXdDLENBQUMsQ0FBQztRQUNuRyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7S0FDN0UsQ0FBQztDQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIsIEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG4vKiogQW5pbWF0aW9ucyB1c2VkIGJ5IHRoZSBkcmF3ZXIuICovXG5leHBvcnQgY29uc3QgZHJEcmF3ZXJBbmltYXRpb25zOiB7XG4gICAgcmVhZG9ubHkgZHJhd2VyU3RhdGU6IEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YTtcbn0gPSB7XG4gICAgLyoqIEFuaW1hdGlvbiB0aGF0IHNob3dzIGFuZCBoaWRlcyBhIGRyYXdlci4gKi9cbiAgICBkcmF3ZXJTdGF0ZTogdHJpZ2dlcignc3RhdGUnLCBbXG4gICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgJ3ZvaWQsIGhpZGRlbicsXG4gICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgJ2JveC1zaGFkb3cnOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbicsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAndmlzaWJsZScsXG4gICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogJ3Zpc2libGUnLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICAgIHRyYW5zaXRpb24oJ3Zpc2libGUgPT4gdm9pZCwgdmlzaWJsZSA9PiBoaWRkZW4nLCBhbmltYXRlKCc0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKScpKSxcbiAgICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiB2aXNpYmxlJywgYW5pbWF0ZSgnMTUwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSknKSksXG4gICAgXSksXG59O1xuIl19
@@ -1,35 +0,0 @@
1
- /**
2
- * Configuration used when opening a drawer.
3
- */
4
- export class DrawerConfig {
5
- constructor() {
6
- /** Data being injected into the child component. */
7
- this.data = null;
8
- /** Whether the drawer has a backdrop. */
9
- this.hasBackdrop = false;
10
- /** Whether the user can use escape or clicking outside to close the drawer. */
11
- this.disableClose = false;
12
- /** Aria label to assign to the drawer element. */
13
- this.ariaLabel = null;
14
- /**
15
- * Whether the drawer should close when the user goes backwards/forwards in history.
16
- * Note that this usually doesn't include clicking on links (unless the user is using
17
- * the `HashLocationStrategy`).
18
- */
19
- this.closeOnNavigation = true;
20
- /**
21
- * Where the drawer should focus on open.
22
- * @breaking-change 14.0.0 Remove boolean option from autoFocus. Use string or
23
- * AutoFocusTarget instead.
24
- */
25
- this.autoFocus = 'first-tabbable';
26
- /**
27
- * Whether the drawer should restore focus to the
28
- * previously-focused element, after it's closed.
29
- */
30
- this.restoreFocus = true;
31
- /** Position of the drawer. */
32
- this.position = 'bottom';
33
- }
34
- }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyYXdlci9kcmF3ZXItY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFlBQVk7SUFBekI7UUFhSSxvREFBb0Q7UUFDcEQsU0FBSSxHQUFjLElBQUksQ0FBQztRQUV2Qix5Q0FBeUM7UUFDekMsZ0JBQVcsR0FBYSxLQUFLLENBQUM7UUFLOUIsK0VBQStFO1FBQy9FLGlCQUFZLEdBQWEsS0FBSyxDQUFDO1FBRS9CLGtEQUFrRDtRQUNsRCxjQUFTLEdBQW1CLElBQUksQ0FBQztRQUVqQzs7OztXQUlHO1FBQ0gsc0JBQWlCLEdBQWEsSUFBSSxDQUFDO1FBRW5DOzs7O1dBSUc7UUFDSCxjQUFTLEdBQXdDLGdCQUFnQixDQUFDO1FBRWxFOzs7V0FHRztRQUNILGlCQUFZLEdBQWEsSUFBSSxDQUFDO1FBSzlCLDhCQUE4QjtRQUM5QixhQUFRLEdBQW9CLFFBQVEsQ0FBQztJQXlCekMsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgU2Nyb2xsU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBJbmplY3RvciwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKiogT3B0aW9ucyBmb3Igd2hlcmUgdG8gc2V0IGZvY3VzIHRvIGF1dG9tYXRpY2FsbHkgb24gZGlhbG9nIG9wZW4uICovXG5leHBvcnQgdHlwZSBBdXRvRm9jdXNUYXJnZXQgPSAnZGlhbG9nJyB8ICdmaXJzdC10YWJiYWJsZScgfCAnZmlyc3QtaGVhZGluZyc7XG5cbi8qKiBQb3NzaWJsZSBvdmVycmlkZXMgZm9yIGEgZHJhd2VyJ3MgcG9zaXRpb24uICovXG5leHBvcnQgdHlwZSBEcmF3ZXJQb3NpdGlvbiA9ICd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gdXNlZCB3aGVuIG9wZW5pbmcgYSBkcmF3ZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBEcmF3ZXJDb25maWc8RCA9IGFueT4ge1xuICAgIC8qKiBUaGUgdmlldyBjb250YWluZXIgdG8gcGxhY2UgdGhlIG92ZXJsYXkgZm9yIHRoZSBkcmF3ZXIgaW50by4gKi9cbiAgICB2aWV3Q29udGFpbmVyUmVmPzogVmlld0NvbnRhaW5lclJlZjtcblxuICAgIC8qKiBJRCBmb3IgdGhlIGRyYXdlci4gSWYgb21pdHRlZCwgYSB1bmlxdWUgb25lIHdpbGwgYmUgZ2VuZXJhdGVkLiAqL1xuICAgIGlkPzogc3RyaW5nO1xuXG4gICAgLyoqIEV4dHJhIENTUyBjbGFzc2VzIHRvIGJlIGFkZGVkIHRvIHRoZSBkcmF3ZXIgY29udGFpbmVyLiAqL1xuICAgIHBhbmVsQ2xhc3M/OiBzdHJpbmcgfCBzdHJpbmdbXTtcblxuICAgIC8qKiBUZXh0IGxheW91dCBkaXJlY3Rpb24gZm9yIHRoZSBkcmF3ZXIuICovXG4gICAgZGlyZWN0aW9uPzogRGlyZWN0aW9uO1xuXG4gICAgLyoqIERhdGEgYmVpbmcgaW5qZWN0ZWQgaW50byB0aGUgY2hpbGQgY29tcG9uZW50LiAqL1xuICAgIGRhdGE/OiBEIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKiogV2hldGhlciB0aGUgZHJhd2VyIGhhcyBhIGJhY2tkcm9wLiAqL1xuICAgIGhhc0JhY2tkcm9wPzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqIEN1c3RvbSBjbGFzcyBmb3IgdGhlIGJhY2tkcm9wLiAqL1xuICAgIGJhY2tkcm9wQ2xhc3M/OiBzdHJpbmc7XG5cbiAgICAvKiogV2hldGhlciB0aGUgdXNlciBjYW4gdXNlIGVzY2FwZSBvciBjbGlja2luZyBvdXRzaWRlIHRvIGNsb3NlIHRoZSBkcmF3ZXIuICovXG4gICAgZGlzYWJsZUNsb3NlPzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqIEFyaWEgbGFiZWwgdG8gYXNzaWduIHRvIHRoZSBkcmF3ZXIgZWxlbWVudC4gKi9cbiAgICBhcmlhTGFiZWw/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGRyYXdlciBzaG91bGQgY2xvc2Ugd2hlbiB0aGUgdXNlciBnb2VzIGJhY2t3YXJkcy9mb3J3YXJkcyBpbiBoaXN0b3J5LlxuICAgICAqIE5vdGUgdGhhdCB0aGlzIHVzdWFsbHkgZG9lc24ndCBpbmNsdWRlIGNsaWNraW5nIG9uIGxpbmtzICh1bmxlc3MgdGhlIHVzZXIgaXMgdXNpbmdcbiAgICAgKiB0aGUgYEhhc2hMb2NhdGlvblN0cmF0ZWd5YCkuXG4gICAgICovXG4gICAgY2xvc2VPbk5hdmlnYXRpb24/OiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXJlIHRoZSBkcmF3ZXIgc2hvdWxkIGZvY3VzIG9uIG9wZW4uXG4gICAgICogQGJyZWFraW5nLWNoYW5nZSAxNC4wLjAgUmVtb3ZlIGJvb2xlYW4gb3B0aW9uIGZyb20gYXV0b0ZvY3VzLiBVc2Ugc3RyaW5nIG9yXG4gICAgICogQXV0b0ZvY3VzVGFyZ2V0IGluc3RlYWQuXG4gICAgICovXG4gICAgYXV0b0ZvY3VzPzogQXV0b0ZvY3VzVGFyZ2V0IHwgc3RyaW5nIHwgYm9vbGVhbiA9ICdmaXJzdC10YWJiYWJsZSc7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBkcmF3ZXIgc2hvdWxkIHJlc3RvcmUgZm9jdXMgdG8gdGhlXG4gICAgICogcHJldmlvdXNseS1mb2N1c2VkIGVsZW1lbnQsIGFmdGVyIGl0J3MgY2xvc2VkLlxuICAgICAqL1xuICAgIHJlc3RvcmVGb2N1cz86IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqIFNjcm9sbCBzdHJhdGVneSB0byBiZSB1c2VkIGZvciB0aGUgZHJhd2VyLiAqL1xuICAgIHNjcm9sbFN0cmF0ZWd5PzogU2Nyb2xsU3RyYXRlZ3k7XG5cbiAgICAvKiogUG9zaXRpb24gb2YgdGhlIGRyYXdlci4gKi9cbiAgICBwb3NpdGlvbj86IERyYXdlclBvc2l0aW9uID0gJ2JvdHRvbSc7XG5cbiAgICAvKiogV2lkdGggb2YgdGhlIGRyYXdlci4gKi9cbiAgICB3aWR0aD86IHN0cmluZztcblxuICAgIC8qKiBIZWlnaHQgb2YgdGhlIGRyYXdlci4gKi9cbiAgICBoZWlnaHQ/OiBzdHJpbmc7XG5cbiAgICAvKiogTWluLXdpZHRoIG9mIHRoZSBkcmF3ZXIuIElmIGEgbnVtYmVyIGlzIHByb3ZpZGVkLCBhc3N1bWVzIHBpeGVsIHVuaXRzLiAqL1xuICAgIG1pbldpZHRoPzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgLyoqIE1pbi1oZWlnaHQgb2YgdGhlIGRyYXdlci4gSWYgYSBudW1iZXIgaXMgcHJvdmlkZWQsIGFzc3VtZXMgcGl4ZWwgdW5pdHMuICovXG4gICAgbWluSGVpZ2h0PzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgLyoqIE1heC13aWR0aCBvZiB0aGUgZHJhd2VyLiBJZiBhIG51bWJlciBpcyBwcm92aWRlZCwgYXNzdW1lcyBwaXhlbCB1bml0cy4gKi9cbiAgICBtYXhXaWR0aD86IG51bWJlciB8IHN0cmluZztcblxuICAgIC8qKiBNYXgtaGVpZ2h0IG9mIHRoZSBkcmF3ZXIuIElmIGEgbnVtYmVyIGlzIHByb3ZpZGVkLCBhc3N1bWVzIHBpeGVsIHVuaXRzLiAqL1xuICAgIG1heEhlaWdodD86IG51bWJlciB8IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEluamVjdG9yIHVzZWQgZm9yIHRoZSBpbnN0YW50aWF0aW9uIG9mIHRoZSBjb21wb25lbnQgdG8gYmUgYXR0YWNoZWQuIElmIHByb3ZpZGVkLFxuICAgICAqIHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGUgaW5qZWN0b3IgaW5kaXJlY3RseSBwcm92aWRlZCBieSBgVmlld0NvbnRhaW5lclJlZmAuXG4gICAgICovXG4gICAgaW5qZWN0b3I/OiBJbmplY3Rvcjtcbn1cbiJdfQ==
@@ -1,179 +0,0 @@
1
- import { FocusMonitor, FocusTrapFactory, InteractivityChecker } from '@angular/cdk/a11y';
2
- import { CdkDialogContainer, DialogModule } from '@angular/cdk/dialog';
3
- import { OverlayRef } from '@angular/cdk/overlay';
4
- import { CdkPortalOutlet, PortalModule } from '@angular/cdk/portal';
5
- import { CommonModule, DOCUMENT } from '@angular/common';
6
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, inject, Inject, NgZone, Optional, ViewChild, ViewEncapsulation, } from '@angular/core';
7
- import { MatCommonModule } from '@angular/material/core';
8
- import { distinctUntilChanged, finalize, fromEvent, map, Subject, switchMap, takeUntil, tap } from 'rxjs';
9
- import { drDrawerAnimations } from './drawer-animation';
10
- import { DrawerConfig } from './drawer-config';
11
- import { BottomPositionStrategy } from './drawer-position-strategy';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/cdk/a11y";
14
- import * as i2 from "./drawer-config";
15
- import * as i3 from "@angular/cdk/overlay";
16
- import * as i4 from "@angular/cdk/portal";
17
- import * as i5 from "@angular/common";
18
- const _c0 = ["handleRef"];
19
- function DrawerContainer_div_0_Template(rf, ctx) { if (rf & 1) {
20
- i0.ɵɵelement(0, "div", 3, 4);
21
- } }
22
- function DrawerContainer_ng_template_2_Template(rf, ctx) { }
23
- /**
24
- * Internal component that wraps user-provided drawer content.
25
- * @docs-private
26
- */
27
- export class DrawerContainer extends CdkDialogContainer {
28
- get _drawerPosition() {
29
- return `dr-drawer-${this._config.position}`;
30
- }
31
- constructor(elementRef, focusTrapFactory, document, config, checker, ngZone, overlayRef, focusMonitor) {
32
- super(elementRef, focusTrapFactory, document, config, checker, ngZone, overlayRef, focusMonitor);
33
- this.overlayRef = overlayRef;
34
- /** The state of the drawer animations. */
35
- this._animationState = 'void';
36
- /** Emits whenever the state of the animation changes. */
37
- this._animationStateChanged = new EventEmitter();
38
- /** Whether the component has been destroyed. */
39
- this._destroyed = false;
40
- this._changeDetectorRef = inject(ChangeDetectorRef);
41
- this.destroy$ = new Subject();
42
- }
43
- _contentAttached() {
44
- // Delegate to the original dialog-container initialization (i.e. saving the
45
- // previous element, setting up the focus trap and moving focus to the container).
46
- super._contentAttached();
47
- this.enter();
48
- }
49
- /** Begin animation of bottom sheet entrance into view. */
50
- enter() {
51
- if (!this._destroyed) {
52
- this._animationState = 'visible';
53
- this._changeDetectorRef.markForCheck();
54
- this._changeDetectorRef.detectChanges();
55
- }
56
- }
57
- /** Begin animation of the bottom sheet exiting from view. */
58
- exit() {
59
- this._elementRef.nativeElement.style.transition = undefined;
60
- if (!this._destroyed) {
61
- this._animationState = 'hidden';
62
- this._changeDetectorRef.markForCheck();
63
- }
64
- }
65
- ngAfterViewInit() {
66
- this.positionStrategy = this.resolvePositionStrategy();
67
- if (this.positionStrategy) {
68
- this.setupDragListener();
69
- }
70
- }
71
- resolvePositionStrategy() {
72
- switch (this._config.position) {
73
- case 'bottom':
74
- return new BottomPositionStrategy();
75
- }
76
- }
77
- setupDragListener() {
78
- const mousedown$ = fromEvent(this._handleRef.nativeElement, 'mousedown');
79
- const mousemove$ = fromEvent(document, 'mousemove');
80
- const mouseup$ = fromEvent(document, 'mouseup');
81
- let lastPosition = 0;
82
- let initPosition = 0;
83
- let currentPosition = 0;
84
- const container = this._elementRef.nativeElement;
85
- setTimeout(() => {
86
- lastPosition = this.getContainerPosition(container);
87
- initPosition = lastPosition;
88
- });
89
- mousedown$
90
- .pipe(switchMap(() => mousemove$.pipe(finalize(() => {
91
- const container = this._elementRef.nativeElement;
92
- if (this.positionStrategy.shouldClose(currentPosition, initPosition, lastPosition)) {
93
- this.overlayRef.dispose();
94
- return;
95
- }
96
- container.style.transition = 'transform 0.5s cubic-bezier(0.32, 0.72, 0, 1)';
97
- container.style.transform = `translate3d(0px, 0px, 0px)`;
98
- }), takeUntil(mouseup$))), map((event) => this.positionStrategy.extractMousePosition(event)), distinctUntilChanged(), tap((position) => {
99
- let containerPosition = this.getContainerPosition(container);
100
- containerPosition = Math.min(containerPosition, lastPosition);
101
- lastPosition = Math.min(containerPosition, lastPosition);
102
- currentPosition = position;
103
- container.style.transition = 'none';
104
- container.style.transform = this.positionStrategy.calculateTransform(position, containerPosition);
105
- }), takeUntil(this.destroy$))
106
- .subscribe();
107
- }
108
- getContainerPosition(container) {
109
- return this._config.position === 'bottom' || this._config.position === 'top'
110
- ? container.getBoundingClientRect().top
111
- : container.getBoundingClientRect().left;
112
- }
113
- ngOnDestroy() {
114
- super.ngOnDestroy();
115
- this.destroy$.next();
116
- this.destroy$.complete();
117
- this._destroyed = true;
118
- }
119
- _onAnimationDone(event) {
120
- if (event.toState === 'visible') {
121
- this._trapFocus();
122
- }
123
- this._animationStateChanged.emit(event);
124
- }
125
- _onAnimationStart(event) {
126
- this._animationStateChanged.emit(event);
127
- }
128
- _captureInitialFocus() { }
129
- /** @nocollapse */ static { this.ɵfac = function DrawerContainer_Factory(t) { return new (t || DrawerContainer)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.FocusTrapFactory), i0.ɵɵdirectiveInject(DOCUMENT, 8), i0.ɵɵdirectiveInject(i2.DrawerConfig), i0.ɵɵdirectiveInject(i1.InteractivityChecker), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i3.OverlayRef), i0.ɵɵdirectiveInject(i1.FocusMonitor)); }; }
130
- /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrawerContainer, selectors: [["dr-drawer-container"]], viewQuery: function DrawerContainer_Query(rf, ctx) { if (rf & 1) {
131
- i0.ɵɵviewQuery(CdkPortalOutlet, 7);
132
- i0.ɵɵviewQuery(_c0, 5);
133
- } if (rf & 2) {
134
- let _t;
135
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._portalOutlet = _t.first);
136
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._handleRef = _t.first);
137
- } }, hostAttrs: ["tabindex", "-1", 1, "dr-drawer-container"], hostVars: 7, hostBindings: function DrawerContainer_HostBindings(rf, ctx) { if (rf & 1) {
138
- i0.ɵɵsyntheticHostListener("@state.start", function DrawerContainer_animation_state_start_HostBindingHandler($event) { return ctx._onAnimationStart($event); })("@state.done", function DrawerContainer_animation_state_done_HostBindingHandler($event) { return ctx._onAnimationDone($event); });
139
- } if (rf & 2) {
140
- i0.ɵɵhostProperty("id", ctx._config.id);
141
- i0.ɵɵattribute("role", ctx._config.role)("aria-modal", ctx._config.isModal)("aria-label", ctx._config.ariaLabel);
142
- i0.ɵɵsyntheticHostProperty("@state", ctx._animationState);
143
- i0.ɵɵclassMap(ctx._drawerPosition);
144
- } }, standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 3, vars: 1, consts: [["class", "handle", 4, "ngIf"], [1, "dr-drawer-container__wrapper"], ["cdkPortalOutlet", ""], [1, "handle"], ["handleRef", ""]], template: function DrawerContainer_Template(rf, ctx) { if (rf & 1) {
145
- i0.ɵɵtemplate(0, DrawerContainer_div_0_Template, 2, 0, "div", 0);
146
- i0.ɵɵelementStart(1, "div", 1);
147
- i0.ɵɵtemplate(2, DrawerContainer_ng_template_2_Template, 0, 0, "ng-template", 2);
148
- i0.ɵɵelementEnd();
149
- } if (rf & 2) {
150
- i0.ɵɵproperty("ngIf", ctx._config.position === "bottom");
151
- } }, dependencies: [PortalModule, i4.CdkPortalOutlet, DialogModule, MatCommonModule, CommonModule, i5.NgIf], styles: [".dr-drawer-container{display:flex;flex-direction:column;width:100%;overflow:auto;outline:0;box-sizing:border-box;background-color:#fff;box-shadow:0 4px 14px #d8d9de80}.dr-drawer-container__wrapper{flex:1;overflow:auto}.cdk-high-contrast-active .dr-drawer-container{outline:1px solid}.handle{position:relative;height:24px;cursor:pointer}.handle:after{content:\"\";position:absolute;top:16px;left:50%;transform:translate(-50%,-50%);background-color:#dfe0e3;height:4px;width:64px;border-radius:16px}.dr-drawer-right{transform:translate(100%);border-top-left-radius:16px;border-bottom-left-radius:16px}.dr-drawer-left{transform:translate(-100%);border-top-right-radius:16px;border-bottom-right-radius:16px}.dr-drawer-bottom{transform:translateY(100%);border-top-left-radius:16px;border-top-right-radius:16px}.dr-drawer-top{transform:translateY(-100%);border-bottom-left-radius:16px;border-bottom-right-radius:16px}\n"], encapsulation: 2, data: { animation: [drDrawerAnimations.drawerState] } }); }
152
- }
153
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrawerContainer, [{
154
- type: Component,
155
- args: [{ selector: 'dr-drawer-container', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, animations: [drDrawerAnimations.drawerState], host: {
156
- class: 'dr-drawer-container',
157
- '[class]': '_drawerPosition',
158
- tabindex: '-1',
159
- '[id]': '_config.id',
160
- '[attr.role]': '_config.role',
161
- '[attr.aria-modal]': '_config.isModal',
162
- '[attr.aria-label]': '_config.ariaLabel',
163
- '[@state]': '_animationState',
164
- '(@state.start)': '_onAnimationStart($event)',
165
- '(@state.done)': '_onAnimationDone($event)',
166
- }, standalone: true, imports: [PortalModule, DialogModule, MatCommonModule, CommonModule], template: "<div *ngIf=\"_config.position === 'bottom'\" #handleRef class=\"handle\"></div>\n<div class=\"dr-drawer-container__wrapper\">\n <ng-template cdkPortalOutlet></ng-template>\n</div>\n", styles: [".dr-drawer-container{display:flex;flex-direction:column;width:100%;overflow:auto;outline:0;box-sizing:border-box;background-color:#fff;box-shadow:0 4px 14px #d8d9de80}.dr-drawer-container__wrapper{flex:1;overflow:auto}.cdk-high-contrast-active .dr-drawer-container{outline:1px solid}.handle{position:relative;height:24px;cursor:pointer}.handle:after{content:\"\";position:absolute;top:16px;left:50%;transform:translate(-50%,-50%);background-color:#dfe0e3;height:4px;width:64px;border-radius:16px}.dr-drawer-right{transform:translate(100%);border-top-left-radius:16px;border-bottom-left-radius:16px}.dr-drawer-left{transform:translate(-100%);border-top-right-radius:16px;border-bottom-right-radius:16px}.dr-drawer-bottom{transform:translateY(100%);border-top-left-radius:16px;border-top-right-radius:16px}.dr-drawer-top{transform:translateY(-100%);border-bottom-left-radius:16px;border-bottom-right-radius:16px}\n"] }]
167
- }], function () { return [{ type: i0.ElementRef }, { type: i1.FocusTrapFactory }, { type: Document, decorators: [{
168
- type: Optional
169
- }, {
170
- type: Inject,
171
- args: [DOCUMENT]
172
- }] }, { type: i2.DrawerConfig }, { type: i1.InteractivityChecker }, { type: i0.NgZone }, { type: i3.OverlayRef }, { type: i1.FocusMonitor }]; }, { _portalOutlet: [{
173
- type: ViewChild,
174
- args: [CdkPortalOutlet, { static: true }]
175
- }], _handleRef: [{
176
- type: ViewChild,
177
- args: ['handleRef']
178
- }] }); })();
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kcmF3ZXIvZHJhd2VyLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kcmF3ZXIvZHJhd2VyLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEVBRU4sUUFBUSxFQUNSLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9C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bWF0aW9ucyc7XG5pbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzVHJhcEZhY3RvcnksIEludGVyYWN0aXZpdHlDaGVja2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQ2RrRGlhbG9nQ29udGFpbmVyLCBEaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDZGtQb3J0YWxPdXRsZXQsIFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbmplY3QsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmluYWxpemUsIGZyb21FdmVudCwgbWFwLCBTdWJqZWN0LCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkckRyYXdlckFuaW1hdGlvbnMgfSBmcm9tICcuL2RyYXdlci1hbmltYXRpb24nO1xuaW1wb3J0IHsgRHJhd2VyQ29uZmlnIH0gZnJvbSAnLi9kcmF3ZXItY29uZmlnJztcbmltcG9ydCB7IEJvdHRvbVBvc2l0aW9uU3RyYXRlZ3ksIERyYXdlclBvc2l0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL2RyYXdlci1wb3NpdGlvbi1zdHJhdGVneSc7XG5cbi8qKlxuICogSW50ZXJuYWwgY29tcG9uZW50IHRoYXQgd3JhcHMgdXNlci1wcm92aWRlZCBkcmF3ZXIgY29udGVudC5cbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1kcmF3ZXItY29udGFpbmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2RyYXdlci1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWydkcmF3ZXItY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgLy8gSW4gSXZ5IGVtYmVkZGVkIHZpZXdzIHdpbGwgYmUgY2hhbmdlIGRldGVjdGVkIGZyb20gdGhlaXIgZGVjbGFyYXRpb24gcGxhY2UsIHJhdGhlciB0aGFuIHdoZXJlXG4gICAgLy8gdGhleSB3ZXJlIHN0YW1wZWQgb3V0LiBUaGlzIG1lYW5zIHRoYXQgd2UgY2FuJ3QgaGF2ZSB0aGUgZHJhd2VyIGNvbnRhaW5lciBiZSBPblB1c2gsXG4gICAgLy8gYmVjYXVzZSBpdCBtaWdodCBjYXVzZSB0aGUgc2hlZXRzIHRoYXQgd2VyZSBvcGVuZWQgZnJvbSBhIHRlbXBsYXRlIG5vdCB0byBiZSBvdXQgb2YgZGF0ZS5cbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBhbmltYXRpb25zOiBbZHJEcmF3ZXJBbmltYXRpb25zLmRyYXdlclN0YXRlXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnZHItZHJhd2VyLWNvbnRhaW5lcicsXG4gICAgICAgICdbY2xhc3NdJzogJ19kcmF3ZXJQb3NpdGlvbicsXG4gICAgICAgIHRhYmluZGV4OiAnLTEnLFxuICAgICAgICAnW2lkXSc6ICdfY29uZmlnLmlkJyxcbiAgICAgICAgJ1thdHRyLnJvbGVdJzogJ19jb25maWcucm9sZScsXG4gICAgICAgICdbYXR0ci5hcmlhLW1vZGFsXSc6ICdfY29uZmlnLmlzTW9kYWwnLFxuICAgICAgICAnW2F0dHIuYXJpYS1sYWJlbF0nOiAnX2NvbmZpZy5hcmlhTGFiZWwnLFxuICAgICAgICAnW0BzdGF0ZV0nOiAnX2FuaW1hdGlvblN0YXRlJyxcbiAgICAgICAgJyhAc3RhdGUuc3RhcnQpJzogJ19vbkFuaW1hdGlvblN0YXJ0KCRldmVudCknLFxuICAgICAgICAnKEBzdGF0ZS5kb25lKSc6ICdfb25BbmltYXRpb25Eb25lKCRldmVudCknLFxuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbUG9ydGFsTW9kdWxlLCBEaWFsb2dNb2R1bGUsIE1hdENvbW1vbk1vZHVsZSwgQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRHJhd2VyQ29udGFpbmVyIGV4dGVuZHMgQ2RrRGlhbG9nQ29udGFpbmVyPERyYXdlckNvbmZpZz4gaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICAgIC8qKiBUaGUgcG9ydGFsIG91dGxldCBpbnNpZGUgb2YgdGhpcyBjb250YWluZXIgaW50byB3aGljaCB0aGUgY29udGVudCB3aWxsIGJlIGxvYWRlZC4gKi9cbiAgICBAVmlld0NoaWxkKENka1BvcnRhbE91dGxldCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBfcG9ydGFsT3V0bGV0ITogQ2RrUG9ydGFsT3V0bGV0O1xuXG4gICAgQFZpZXdDaGlsZCgnaGFuZGxlUmVmJylcbiAgICBfaGFuZGxlUmVmITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgICAvKiogVGhlIHN0YXRlIG9mIHRoZSBkcmF3ZXIgYW5pbWF0aW9ucy4gKi9cbiAgICBfYW5pbWF0aW9uU3RhdGU6ICd2b2lkJyB8ICd2aXNpYmxlJyB8ICdoaWRkZW4nID0gJ3ZvaWQnO1xuXG4gICAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBzdGF0ZSBvZiB0aGUgYW5pbWF0aW9uIGNoYW5nZXMuICovXG4gICAgcmVhZG9ubHkgX2FuaW1hdGlvblN0YXRlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QW5pbWF0aW9uRXZlbnQ+KCk7XG5cbiAgICAvKiogV2hldGhlciB0aGUgY29tcG9uZW50IGhhcyBiZWVuIGRlc3Ryb3llZC4gKi9cbiAgICBwcml2YXRlIF9kZXN0cm95ZWQgPSBmYWxzZTtcblxuICAgIGdldCBfZHJhd2VyUG9zaXRpb24oKSB7XG4gICAgICAgIHJldHVybiBgZHItZHJhd2VyLSR7dGhpcy5fY29uZmlnLnBvc2l0aW9ufWA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwb3NpdGlvblN0cmF0ZWd5ITogRHJhd2VyUG9zaXRpb25TdHJhdGVneTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgZm9jdXNUcmFwRmFjdG9yeTogRm9jdXNUcmFwRmFjdG9yeSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICAgICBjb25maWc6IERyYXdlckNvbmZpZyxcbiAgICAgICAgY2hlY2tlcjogSW50ZXJhY3Rpdml0eUNoZWNrZXIsXG4gICAgICAgIG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYsXG4gICAgICAgIGZvY3VzTW9uaXRvcj86IEZvY3VzTW9uaXRvcixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZiwgZm9jdXNUcmFwRmFjdG9yeSwgZG9jdW1lbnQsIGNvbmZpZywgY2hlY2tlciwgbmdab25lLCBvdmVybGF5UmVmLCBmb2N1c01vbml0b3IpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBfY29udGVudEF0dGFjaGVkKCk6IHZvaWQge1xuICAgICAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgb3JpZ2luYWwgZGlhbG9nLWNvbnRhaW5lciBpbml0aWFsaXphdGlvbiAoaS5lLiBzYXZpbmcgdGhlXG4gICAgICAgIC8vIHByZXZpb3VzIGVsZW1lbnQsIHNldHRpbmcgdXAgdGhlIGZvY3VzIHRyYXAgYW5kIG1vdmluZyBmb2N1cyB0byB0aGUgY29udGFpbmVyKS5cbiAgICAgICAgc3VwZXIuX2NvbnRlbnRBdHRhY2hlZCgpO1xuXG4gICAgICAgIHRoaXMuZW50ZXIoKTtcbiAgICB9XG5cbiAgICAvKiogQmVnaW4gYW5pbWF0aW9uIG9mIGJvdHRvbSBzaGVldCBlbnRyYW5jZSBpbnRvIHZpZXcuICovXG4gICAgZW50ZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fZGVzdHJveWVkKSB7XG4gICAgICAgICAgICB0aGlzLl9hbmltYXRpb25TdGF0ZSA9ICd2aXNpYmxlJztcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEJlZ2luIGFuaW1hdGlvbiBvZiB0aGUgYm90dG9tIHNoZWV0IGV4aXRpbmcgZnJvbSB2aWV3LiAqL1xuICAgIGV4aXQoKTogdm9pZCB7XG4gICAgICAgICh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLnRyYW5zaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmICghdGhpcy5fZGVzdHJveWVkKSB7XG4gICAgICAgICAgICB0aGlzLl9hbmltYXRpb25TdGF0ZSA9ICdoaWRkZW4nO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucG9zaXRpb25TdHJhdGVneSA9IHRoaXMucmVzb2x2ZVBvc2l0aW9uU3RyYXRlZ3koKTtcbiAgICAgICAgaWYgKHRoaXMucG9zaXRpb25TdHJhdGVneSkge1xuICAgICAgICAgICAgdGhpcy5zZXR1cERyYWdMaXN0ZW5lcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNvbHZlUG9zaXRpb25TdHJhdGVneSgpOiBEcmF3ZXJQb3NpdGlvblN0cmF0ZWd5IHtcbiAgICAgICAgc3dpdGNoICh0aGlzLl9jb25maWcucG9zaXRpb24pIHtcbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBCb3R0b21Qb3NpdGlvblN0cmF0ZWd5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwRHJhZ0xpc3RlbmVyKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBtb3VzZWRvd24kID0gZnJvbUV2ZW50KHRoaXMuX2hhbmRsZVJlZi5uYXRpdmVFbGVtZW50LCAnbW91c2Vkb3duJyk7XG4gICAgICAgIGNvbnN0IG1vdXNlbW92ZSQgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZW1vdmUnKTtcbiAgICAgICAgY29uc3QgbW91c2V1cCQgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZXVwJyk7XG5cbiAgICAgICAgbGV0IGxhc3RQb3NpdGlvbiA9IDA7XG4gICAgICAgIGxldCBpbml0UG9zaXRpb24gPSAwO1xuICAgICAgICBsZXQgY3VycmVudFBvc2l0aW9uID0gMDtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgbGFzdFBvc2l0aW9uID0gdGhpcy5nZXRDb250YWluZXJQb3NpdGlvbihjb250YWluZXIpO1xuICAgICAgICAgICAgaW5pdFBvc2l0aW9uID0gbGFzdFBvc2l0aW9uO1xuICAgICAgICB9KTtcblxuICAgICAgICBtb3VzZWRvd24kXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgbW91c2Vtb3ZlJC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wb3NpdGlvblN0cmF0ZWd5LnNob3VsZENsb3NlKGN1cnJlbnRQb3NpdGlvbiwgaW5pdFBvc2l0aW9uLCBsYXN0UG9zaXRpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLnN0eWxlLnRyYW5zaXRpb24gPSAndHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAuMzIsIDAuNzIsIDAsIDEpJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZTNkKDBweCwgMHB4LCAwcHgpYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKG1vdXNldXAkKSxcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIG1hcCgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHRoaXMucG9zaXRpb25TdHJhdGVneS5leHRyYWN0TW91c2VQb3NpdGlvbihldmVudCkpLFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICAgICAgdGFwKChwb3NpdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgY29udGFpbmVyUG9zaXRpb24gPSB0aGlzLmdldENvbnRhaW5lclBvc2l0aW9uKGNvbnRhaW5lcik7XG5cbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyUG9zaXRpb24gPSBNYXRoLm1pbihjb250YWluZXJQb3NpdGlvbiwgbGFzdFBvc2l0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgbGFzdFBvc2l0aW9uID0gTWF0aC5taW4oY29udGFpbmVyUG9zaXRpb24sIGxhc3RQb3NpdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQb3NpdGlvbiA9IHBvc2l0aW9uO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5zdHlsZS50cmFuc2l0aW9uID0gJ25vbmUnO1xuICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuc3R5bGUudHJhbnNmb3JtID0gdGhpcy5wb3NpdGlvblN0cmF0ZWd5LmNhbGN1bGF0ZVRyYW5zZm9ybShwb3NpdGlvbiwgY29udGFpbmVyUG9zaXRpb24pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbnRhaW5lclBvc2l0aW9uKGNvbnRhaW5lcjogSFRNTEVsZW1lbnQpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlnLnBvc2l0aW9uID09PSAnYm90dG9tJyB8fCB0aGlzLl9jb25maWcucG9zaXRpb24gPT09ICd0b3AnXG4gICAgICAgICAgICA/IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3BcbiAgICAgICAgICAgIDogY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG5cbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveWVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBfb25BbmltYXRpb25Eb25lKGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xuICAgICAgICBpZiAoZXZlbnQudG9TdGF0ZSA9PT0gJ3Zpc2libGUnKSB7XG4gICAgICAgICAgICB0aGlzLl90cmFwRm9jdXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2FuaW1hdGlvblN0YXRlQ2hhbmdlZC5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBfb25BbmltYXRpb25TdGFydChldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICAgICAgdGhpcy5fYW5pbWF0aW9uU3RhdGVDaGFuZ2VkLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBfY2FwdHVyZUluaXRpYWxGb2N1cygpOiB2b2lkIHt9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiX2NvbmZpZy5wb3NpdGlvbiA9PT0gJ2JvdHRvbSdcIiAjaGFuZGxlUmVmIGNsYXNzPVwiaGFuZGxlXCI+PC9kaXY+XG48ZGl2IGNsYXNzPVwiZHItZHJhd2VyLWNvbnRhaW5lcl9fd3JhcHBlclwiPlxuICAgIDxuZy10ZW1wbGF0ZSBjZGtQb3J0YWxPdXRsZXQ+PC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
@@ -1,14 +0,0 @@
1
- export class BottomPositionStrategy {
2
- extractMousePosition(event) {
3
- return event.clientY;
4
- }
5
- calculateTransform(currentPosition, containerPosition) {
6
- return currentPosition > containerPosition
7
- ? `translate3d(0px, ${currentPosition - containerPosition}px, 0px)`
8
- : `translate3d(0px, 0px, 0px)`;
9
- }
10
- shouldClose(currentPosition, initPosition, lastPosition) {
11
- return Math.abs(currentPosition - initPosition) <= currentPosition - lastPosition;
12
- }
13
- }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLXBvc2l0aW9uLXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHJhd2VyL2RyYXdlci1wb3NpdGlvbi1zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLE9BQU8sc0JBQXNCO0lBQy9CLG9CQUFvQixDQUFDLEtBQWlCO1FBQ2xDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRUQsa0JBQWtCLENBQUMsZUFBdUIsRUFBRSxpQkFBeUI7UUFDakUsT0FBTyxlQUFlLEdBQUcsaUJBQWlCO1lBQ3RDLENBQUMsQ0FBQyxvQkFBb0IsZUFBZSxHQUFHLGlCQUFpQixVQUFVO1lBQ25FLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQztJQUN2QyxDQUFDO0lBRUQsV0FBVyxDQUFDLGVBQXVCLEVBQUUsWUFBb0IsRUFBRSxZQUFvQjtRQUMzRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxHQUFHLFlBQVksQ0FBQyxJQUFJLGVBQWUsR0FBRyxZQUFZLENBQUM7SUFDdEYsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBEcmF3ZXJQb3NpdGlvblN0cmF0ZWd5IHtcbiAgICBleHRyYWN0TW91c2VQb3NpdGlvbihldmVudDogTW91c2VFdmVudCk6IG51bWJlcjtcbiAgICBjYWxjdWxhdGVUcmFuc2Zvcm0oY3VycmVudFBvc2l0aW9uOiBudW1iZXIsIGNvbnRhaW5lclBvc2l0aW9uOiBudW1iZXIpOiBzdHJpbmc7XG4gICAgc2hvdWxkQ2xvc2UoY3VycmVudFBvc2l0aW9uOiBudW1iZXIsIGluaXRQb3NpdGlvbjogbnVtYmVyLCBsYXN0UG9zaXRpb246IG51bWJlcik6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBCb3R0b21Qb3NpdGlvblN0cmF0ZWd5IGltcGxlbWVudHMgRHJhd2VyUG9zaXRpb25TdHJhdGVneSB7XG4gICAgZXh0cmFjdE1vdXNlUG9zaXRpb24oZXZlbnQ6IE1vdXNlRXZlbnQpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZXZlbnQuY2xpZW50WTtcbiAgICB9XG5cbiAgICBjYWxjdWxhdGVUcmFuc2Zvcm0oY3VycmVudFBvc2l0aW9uOiBudW1iZXIsIGNvbnRhaW5lclBvc2l0aW9uOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gY3VycmVudFBvc2l0aW9uID4gY29udGFpbmVyUG9zaXRpb25cbiAgICAgICAgICAgID8gYHRyYW5zbGF0ZTNkKDBweCwgJHtjdXJyZW50UG9zaXRpb24gLSBjb250YWluZXJQb3NpdGlvbn1weCwgMHB4KWBcbiAgICAgICAgICAgIDogYHRyYW5zbGF0ZTNkKDBweCwgMHB4LCAwcHgpYDtcbiAgICB9XG5cbiAgICBzaG91bGRDbG9zZShjdXJyZW50UG9zaXRpb246IG51bWJlciwgaW5pdFBvc2l0aW9uOiBudW1iZXIsIGxhc3RQb3NpdGlvbjogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBNYXRoLmFicyhjdXJyZW50UG9zaXRpb24gLSBpbml0UG9zaXRpb24pIDw9IGN1cnJlbnRQb3NpdGlvbiAtIGxhc3RQb3NpdGlvbjtcbiAgICB9XG59XG4iXX0=
@@ -1,106 +0,0 @@
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
- this._afterDismissed.next(this._result);
45
- this._afterDismissed.complete();
46
- });
47
- merge(this.backdropClick(), this.keydownEvents().pipe(filter((event) => event.keyCode === ESCAPE))).subscribe((event) => {
48
- if (!this.disableClose && (event.type !== 'keydown' || !hasModifierKey(event))) {
49
- event.preventDefault();
50
- this.dismiss();
51
- }
52
- });
53
- }
54
- /**
55
- * Dismisses the drawer.
56
- * @param result Data to be passed back to the drawer opener.
57
- */
58
- dismiss(result) {
59
- this._afterDismissed.next(result);
60
- this._afterDismissed.complete();
61
- if (this.containerInstance && !this._afterDismissed.closed) {
62
- // Transition the backdrop in parallel to the drawer.
63
- this.containerInstance._animationStateChanged
64
- .pipe(filter((event) => event.phaseName === 'start'), take(1))
65
- .subscribe((event) => {
66
- // The logic that disposes of the overlay depends on the exit animation completing, however
67
- // it isn't guaranteed if the parent view is destroyed while it's running. Add a fallback
68
- // timeout which will clean everything up if the animation hasn't fired within the specified
69
- // amount of time plus 100ms. We don't need to run this outside the NgZone, because for the
70
- // vast majority of cases the timeout will have been cleared before it has fired.
71
- this._closeFallbackTimeout = setTimeout(() => {
72
- this._ref.close(this._result);
73
- }, event.totalTime + 100);
74
- this._ref.overlayRef.detachBackdrop();
75
- });
76
- this._result = result;
77
- this.containerInstance.exit();
78
- this.containerInstance = null;
79
- }
80
- }
81
- /** Gets an observable that is notified when the drawer is dismissed. */
82
- afterDismissed() {
83
- return this._afterDismissed;
84
- }
85
- /** Gets an observable that is notified when the drawer is finished closing. */
86
- afterClosed() {
87
- return this._ref.closed;
88
- }
89
- /** Gets an observable that is notified when the drawer has opened and appeared. */
90
- afterOpened() {
91
- return this._afterOpened;
92
- }
93
- /**
94
- * Gets an observable that emits when the overlay's backdrop has been clicked.
95
- */
96
- backdropClick() {
97
- return this._ref.backdropClick;
98
- }
99
- /**
100
- * Gets an observable that emits when keydown events are targeted on the overlay.
101
- */
102
- keydownEvents() {
103
- return this._ref.keydownEvents;
104
- }
105
- }
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyYXdlci9kcmF3ZXItcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0QsT0FBTyxFQUFFLEtBQUssRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUs5Qzs7R0FFRztBQUNILE1BQU0sT0FBTyxTQUFTO0lBQ2xCLHFFQUFxRTtJQUNyRSxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWtCLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDbEMsQ0FBQztJQTBCRCxZQUNZLElBQXFCLEVBQzdCLE1BQW9CLEVBQ3BCLGlCQUFrQztRQUYxQixTQUFJLEdBQUosSUFBSSxDQUFpQjtRQWJqQyx5RUFBeUU7UUFDeEQsb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBaUIsQ0FBQztRQUVoRSw4RUFBOEU7UUFDN0QsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBYWhELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDeEMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBRWxCLHdDQUF3QztRQUN4QyxpQkFBaUIsQ0FBQyxzQkFBc0I7YUFDbkMsSUFBSSxDQUNELE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMs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QUM7Z0JBRTFCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzFDLENBQUMsQ0FBQyxDQUFDO1lBRVAsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7WUFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFLLENBQUM7U0FDbEM7SUFDTCxDQUFDO0lBRUQsd0VBQXdFO0lBQ3hFLGNBQWM7UUFDVixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQztJQUVELCtFQUErRTtJQUMvRSxXQUFXO1FBQ1AsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUM1QixDQUFDO0lBRUQsbUZBQW1GO0lBQ25GLFdBQVc7UUFDUCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYTtRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDbkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYTtRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDbkMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RpYWxvZyc7XG5pbXBvcnQgeyBFU0NBUEUsIGhhc01vZGlmaWVyS2V5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IG1lcmdlLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEcmF3ZXJDb25maWcgfSBmcm9tICcuL2RyYXdlci1jb25maWcnO1xuaW1wb3J0IHsgRHJhd2VyQ29udGFpbmVyIH0gZnJvbSAnLi9kcmF3ZXItY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBSZWZlcmVuY2UgdG8gYSBkcmF3ZXIgZGlzcGF0Y2hlZCBmcm9tIHRoZSBkcmF3ZXIgc2VydmljZS5cbiAqL1xuZXhwb3J0IGNsYXNzIERyYXdlclJlZjxUID0gYW55LCBSID0gYW55PiB7XG4gICAgLyoqIEluc3RhbmNlIG9mIHRoZSBjb21wb25lbnQgbWFraW5nIHVwIHRoZSBjb250ZW50IG9mIHRoZSBkcmF3ZXIuICovXG4gICAgZ2V0IGluc3RhbmNlKCk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVmLmNvbXBvbmVudEluc3RhbmNlITtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBgQ29tcG9uZW50UmVmYCBvZiB0aGUgY29tcG9uZW50IG9wZW5lZCBpbnRvIHRoZSBkcmF3ZXIuIFdpbGwgYmVcbiAgICAgKiBudWxsIHdoZW4gdGhlIGRyYXdlciBpcyBvcGVuZWQgdXNpbmcgYSBgVGVtcGxhdGVSZWZgLlxuICAgICAqL1xuICAgIGdldCBjb21wb25lbnRSZWYoKTogQ29tcG9uZW50UmVmPFQ+IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZWYuY29tcG9uZW50UmVmO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluc3RhbmNlIG9mIHRoZSBjb21wb25lbnQgaW50byB3aGljaCB0aGUgZHJhd2VyIGNvbnRlbnQgaXMgcHJvamVjdGVkLlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBjb250YWluZXJJbnN0YW5jZTogRHJhd2VyQ29udGFpbmVyO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBjbG9zZSB0aGUgZHJhd2VyLiAqL1xuICAgIGRpc2FibGVDbG9zZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAgIC8qKiBVbmlxdWUgSUQgZm9yIHRoZSBkcmF3ZXIuICovXG4gICAgaWQ6IHN0cmluZztcblxuICAgIC8qKiBTdWJqZWN0IGZvciBub3RpZnlpbmcgdGhlIHVzZXIgdGhhdCB0aGUgZHJhd2VyIGhhcyBiZWVuIGRpc21pc3NlZC4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9hZnRlckRpc21pc3NlZCA9IG5ldyBTdWJqZWN0PFIgfCB1bmRlZmluZWQ+KCk7XG5cbiAgICAvKiogU3ViamVjdCBmb3Igbm90aWZ5aW5nIHRoZSB1c2VyIHRoYXQgdGhlIGRyYXdlciBoYXMgb3BlbmVkIGFuZCBhcHBlYXJlZC4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9hZnRlck9wZW5lZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogUmVzdWx0IHRvIGJlIHBhc3NlZCBkb3duIHRvIHRoZSBgYWZ0ZXJEaXNtaXNzZWRgIHN0cmVhbS4gKi9cbiAgICBwcml2YXRlIF9yZXN1bHQ6IFIgfCB1bmRlZmluZWQ7XG5cbiAgICAvKiogSGFuZGxlIHRvIHRoZSB0aW1lb3V0IHRoYXQncyBydW5uaW5nIGFzIGEgZmFsbGJhY2sgaW4gY2FzZSB0aGUgZXhpdCBhbmltYXRpb24gZG9lc24ndCBmaXJlLiAqL1xuICAgIHByaXZhdGUgX2Nsb3NlRmFsbGJhY2tUaW1lb3V0OiBhbnk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfcmVmOiBEaWFsb2dSZWY8UiwgVD4sXG4gICAgICAgIGNvbmZpZzogRHJhd2VyQ29uZmlnLFxuICAgICAgICBjb250YWluZXJJbnN0YW5jZTogRHJhd2VyQ29udGFpbmVyLFxuICAgICkge1xuICAgICAgICB0aGlzLmNvbnRhaW5lckluc3RhbmNlID0gY29udGFpbmVySW5zdGFuY2U7XG4gICAgICAgIHRoaXMuZGlzYWJsZUNsb3NlID0gY29uZmlnLmRpc2FibGVDbG9zZTtcbiAgICAgICAgdGhpcy5pZCA9IF9yZWYuaWQ7XG5cbiAgICAgICAgLy8gRW1pdCB3aGVuIG9wZW5pbmcgYW5pbWF0aW9uIGNvbXBsZXRlc1xuICAgICAgICBjb250YWluZXJJbnN0YW5jZS5fYW5pbWF0aW9uU3RhdGVDaGFuZ2VkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudC5waGFzZU5hbWUgPT09ICdkb25lJyAmJiBldmVudC50b1N0YXRlID09PSAndmlzaWJsZScpLFxuICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZnRlck9wZW5lZC5uZXh0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWZ0ZXJPcGVuZWQuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIC8vIERpc3Bvc2Ugb3ZlcmxheSB3aGVuIGNsb3NpbmcgYW5pbWF0aW9uIGlzIGNvbXBsZXRlXG4gICAgICAgIGNvbnRhaW5lckluc3RhbmNlLl9hbmltYXRpb25TdGF0ZUNoYW5nZWRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50LnBoYXNlTmFtZSA9PT0gJ2RvbmUnICYmIGV2ZW50LnRvU3RhdGUgPT09ICdoaWRkZW4nKSxcbiAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2Nsb3NlRmFsbGJhY2tUaW1lb3V0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZWYuY2xvc2UodGhpcy5fcmVzdWx0KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIF9yZWYub3ZlcmxheVJlZi5kZXRhY2htZW50cygpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9yZWYuY2xvc2UodGhpcy5fcmVzdWx0KTtcbiAgICAgICAgICAgIHRoaXMuX2FmdGVyRGlzbWlzc2VkLm5leHQodGhpcy5fcmVzdWx0KTtcbiAgICAgICAgICAgIHRoaXMuX2FmdGVyRGlzbWlzc2VkLmNvbXBsZXRlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIG1lcmdlKHRoaXMuYmFja2Ryb3BDbGljaygpLCB0aGlzLmtleWRvd25FdmVudHMoKS5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50LmtleUNvZGUgPT09IEVTQ0FQRSkpKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZUNsb3NlICYmIChldmVudC50eXBlICE9PSAna2V5ZG93bicgfHwgIWhhc01vZGlmaWVyS2V5KGV2ZW50IGFzIEtleWJvYXJkRXZlbnQpKSkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNtaXNzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERpc21pc3NlcyB0aGUgZHJhd2VyLlxuICAgICAqIEBwYXJhbSByZXN1bHQgRGF0YSB0byBiZSBwYXNzZWQgYmFjayB0byB0aGUgZHJhd2VyIG9wZW5lci5cbiAgICAgKi9cbiAgICBkaXNtaXNzKHJlc3VsdD86IFIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYWZ0ZXJEaXNtaXNzZWQubmV4dChyZXN1bHQpO1xuICAgICAgICB0aGlzLl9hZnRlckRpc21pc3NlZC5jb21wbGV0ZSgpO1xuXG4gICAgICAgIGlmICh0aGlzLmNvbnRhaW5lckluc3RhbmNlICYmICF0aGlzLl9hZnRlckRpc21pc3NlZC5jbG9zZWQpIHtcbiAgICAgICAgICAgIC8vIFRyYW5zaXRpb24gdGhlIGJhY2tkcm9wIGluIHBhcmFsbGVsIHRvIHRoZSBkcmF3ZXIuXG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lckluc3RhbmNlLl9hbmltYXRpb25TdGF0ZUNoYW5nZWRcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQucGhhc2VOYW1lID09PSAnc3RhcnQnKSxcbiAgICAgICAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGxvZ2ljIHRoYXQgZGlzcG9zZXMgb2YgdGhlIG92ZXJsYXkgZGVwZW5kcyBvbiB0aGUgZXhpdCBhbmltYXRpb24gY29tcGxldGluZywgaG93ZXZlclxuICAgICAgICAgICAgICAgICAgICAvLyBpdCBpc24ndCBndWFyYW50ZWVkIGlmIHRoZSBwYXJlbnQgdmlldyBpcyBkZXN0cm95ZWQgd2hpbGUgaXQncyBydW5uaW5nLiBBZGQgYSBmYWxsYmFja1xuICAgICAgICAgICAgICAgICAgICAvLyB0aW1lb3V0IHdoaWNoIHdpbGwgY2xlYW4gZXZlcnl0aGluZyB1cCBpZiB0aGUgYW5pbWF0aW9uIGhhc24ndCBmaXJlZCB3aXRoaW4gdGhlIHNwZWNpZmllZFxuICAgICAgICAgICAgICAgICAgICAvLyBhbW91bnQgb2YgdGltZSBwbHVzIDEwMG1zLiBXZSBkb24ndCBuZWVkIHRvIHJ1biB0aGlzIG91dHNpZGUgdGhlIE5nWm9uZSwgYmVjYXVzZSBmb3IgdGhlXG4gICAgICAgICAgICAgICAgICAgIC8vIHZhc3QgbWFqb3JpdHkgb2YgY2FzZXMgdGhlIHRpbWVvdXQgd2lsbCBoYXZlIGJlZW4gY2xlYXJlZCBiZWZvcmUgaXQgaGFzIGZpcmVkLlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jbG9zZUZhbGxiYWNrVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVmLmNsb3NlKHRoaXMuX3Jlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgIH0sIGV2ZW50LnRvdGFsVGltZSArIDEwMCk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVmLm92ZXJsYXlSZWYuZGV0YWNoQmFja2Ryb3AoKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5fcmVzdWx0ID0gcmVzdWx0O1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXJJbnN0YW5jZS5leGl0KCk7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lckluc3RhbmNlID0gbnVsbCE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogR2V0cyBhbiBvYnNlcnZhYmxlIHRoYXQgaXMgbm90aWZpZWQgd2hlbiB0aGUgZHJhd2VyIGlzIGRpc21pc3NlZC4gKi9cbiAgICBhZnRlckRpc21pc3NlZCgpOiBPYnNlcnZhYmxlPFIgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FmdGVyRGlzbWlzc2VkO1xuICAgIH1cblxuICAgIC8qKiBHZXRzIGFuIG9ic2VydmFibGUgdGhhdCBpcyBub3RpZmllZCB3aGVuIHRoZSBkcmF3ZXIgaXMgZmluaXNoZWQgY2xvc2luZy4gKi9cbiAgICBhZnRlckNsb3NlZCgpOiBPYnNlcnZhYmxlPFIgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlZi5jbG9zZWQ7XG4gICAgfVxuXG4gICAgLyoqIEdldHMgYW4gb2JzZXJ2YWJsZSB0aGF0IGlzIG5vdGlmaWVkIHdoZW4gdGhlIGRyYXdlciBoYXMgb3BlbmVkIGFuZCBhcHBlYXJlZC4gKi9cbiAgICBhZnRlck9wZW5lZCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FmdGVyT3BlbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHdoZW4gdGhlIG92ZXJsYXkncyBiYWNrZHJvcCBoYXMgYmVlbiBjbGlja2VkLlxuICAgICAqL1xuICAgIGJhY2tkcm9wQ2xpY2soKTogT2JzZXJ2YWJsZTxNb3VzZUV2ZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZWYuYmFja2Ryb3BDbGljaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB3aGVuIGtleWRvd24gZXZlbnRzIGFyZSB0YXJnZXRlZCBvbiB0aGUgb3ZlcmxheS5cbiAgICAgKi9cbiAgICBrZXlkb3duRXZlbnRzKCk6IE9ic2VydmFibGU8S2V5Ym9hcmRFdmVudD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVmLmtleWRvd25FdmVudHM7XG4gICAgfVxufVxuIl19
@@ -1,19 +0,0 @@
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