@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.
- package/datarailsshared-datarailsshared-1.5.524.tgz +0 -0
- package/esm2022/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.mjs +2 -2
- package/esm2022/lib/drawer/drawer-animation.mjs +18 -0
- package/esm2022/lib/drawer/drawer-config.mjs +35 -0
- package/esm2022/lib/drawer/drawer-container.component.mjs +177 -0
- package/esm2022/lib/drawer/drawer-position-strategy.mjs +14 -0
- package/esm2022/lib/drawer/drawer-ref.mjs +98 -0
- package/esm2022/lib/drawer/drawer.module.mjs +19 -0
- package/esm2022/lib/drawer/drawer.service.mjs +140 -0
- package/esm2022/lib/drawer/public-api.mjs +6 -0
- package/esm2022/public-api.mjs +3 -1
- package/esm2022/src/lib/drawer/drDrawer.mjs +5 -0
- package/esm2022/src/lib/drawer/drawer-animation.mjs +18 -0
- package/esm2022/src/lib/drawer/drawer-config.mjs +35 -0
- package/esm2022/src/lib/drawer/drawer-container.component.mjs +177 -0
- package/esm2022/src/lib/drawer/drawer-position-strategy.mjs +14 -0
- package/esm2022/src/lib/drawer/drawer-ref.mjs +98 -0
- package/esm2022/src/lib/drawer/drawer.module.mjs +19 -0
- package/esm2022/src/lib/drawer/drawer.service.mjs +140 -0
- package/esm2022/src/lib/drawer/public-api.mjs +6 -0
- package/fesm2022/datarailsshared-datarailsshared.mjs +559 -90
- package/fesm2022/datarailsshared-datarailsshared.mjs.map +1 -1
- package/fesm2022/drDrawer.mjs +486 -0
- package/fesm2022/drDrawer.mjs.map +1 -0
- package/lib/drawer/drawer-animation.d.ts +5 -0
- package/lib/drawer/drawer-config.d.ts +63 -0
- package/lib/drawer/drawer-container.component.d.ts +45 -0
- package/lib/drawer/drawer-position-strategy.d.ts +10 -0
- package/lib/drawer/drawer-ref.d.ts +53 -0
- package/lib/drawer/drawer.module.d.ts +7 -0
- package/lib/drawer/drawer.service.d.ts +62 -0
- package/lib/drawer/public-api.d.ts +5 -0
- package/package.json +7 -1
- package/public-api.d.ts +2 -0
- package/src/lib/drawer/drawer-animation.d.ts +5 -0
- package/src/lib/drawer/drawer-config.d.ts +63 -0
- package/src/lib/drawer/drawer-container.component.d.ts +45 -0
- package/src/lib/drawer/drawer-position-strategy.d.ts +10 -0
- package/src/lib/drawer/drawer-ref.d.ts +53 -0
- package/src/lib/drawer/drawer.module.d.ts +7 -0
- package/src/lib/drawer/drawer.service.d.ts +62 -0
- package/src/lib/drawer/index.d.ts +5 -0
- package/src/lib/drawer/public-api.d.ts +5 -0
- package/datarailsshared-datarailsshared-1.5.520.tgz +0 -0
|
Binary file
|
|
@@ -116,11 +116,11 @@ export class DrSelectAddItemComponent {
|
|
|
116
116
|
i0.ɵɵtextInterpolate(ctx.dynamicAddLabel);
|
|
117
117
|
i0.ɵɵadvance(1);
|
|
118
118
|
i0.ɵɵproperty("ngIf", ctx.isDynamicAdding);
|
|
119
|
-
} }, dependencies: [i2.NgControlStatus, i2.NgModel, i3.NgIf, i4.DrButtonComponent, i5.DrInputComponent], styles: [".dynamic-add__add-item[_ngcontent-%COMP%]{cursor:pointer;display:flex;align-items:center;border-bottom:1px solid #dfe0e3;padding:6px}.dynamic-add__add-item[_ngcontent-%COMP%]:hover{background:#f9f7ff}.dynamic-add__add-item__text[_ngcontent-%COMP%]{font-size:14px;line-height:22px;margin:0}.dynamic-add__field[_ngcontent-%COMP%]{position:relative}.dynamic-add__field__buttons[_ngcontent-%COMP%]{position:absolute;top:0;right:0;bottom:0;display:flex;align-items:center}.dynamic-add__field__alert[_ngcontent-%COMP%]{font-size:12px;position:absolute;color:#bf1d30;z-index:100;right:30px} .ng-dropdown-panel .ng-dropdown-footer:has(.dynamic-add), .ng-dropdown-panel .ng-dropdown-header:has(.dynamic-add){padding:0;border:none} .ng-dropdown-panel .ng-dropdown-footer .dynamic-add__add-item{border-bottom:none} .dynamic-add__field__input{padding-left:12px!important;height:36px!important;border:none!important;background:#f9f7ff!important;border-radius:0!important} .dynamic-add__field__input>input{background:#f9f7ff} .dynamic-add__field__input>input::placeholder{line-height:22px;font-size:14px;font-weight:400;color:#9ea1aa} .dynamic-add__field__input--error{background:#ffdfe4!important} .dynamic-add__field__input--error>input{background:#ffdfe4}"], changeDetection: 0 }); }
|
|
119
|
+
} }, dependencies: [i2.NgControlStatus, i2.NgModel, i3.NgIf, i4.DrButtonComponent, i5.DrInputComponent], styles: [".dynamic-add__add-item[_ngcontent-%COMP%]{cursor:pointer;display:flex;align-items:center;border-bottom:1px solid #dfe0e3;padding:6px}.dynamic-add__add-item[_ngcontent-%COMP%]:hover{background:#f9f7ff}.dynamic-add__add-item__text[_ngcontent-%COMP%]{font-size:14px;line-height:22px;margin:0;color:#6d6e6f}.dynamic-add__add-item[_ngcontent-%COMP%] .dr-icon-add[_ngcontent-%COMP%]{color:#6d6e6f}.dynamic-add__field[_ngcontent-%COMP%]{position:relative}.dynamic-add__field__buttons[_ngcontent-%COMP%]{position:absolute;top:0;right:0;bottom:0;display:flex;align-items:center}.dynamic-add__field__alert[_ngcontent-%COMP%]{font-size:12px;position:absolute;color:#bf1d30;z-index:100;right:30px} .ng-dropdown-panel .ng-dropdown-footer:has(.dynamic-add), .ng-dropdown-panel .ng-dropdown-header:has(.dynamic-add){padding:0;border:none} .ng-dropdown-panel .ng-dropdown-footer .dynamic-add__add-item{border-bottom:none} .dynamic-add__field__input{padding-left:12px!important;height:36px!important;border:none!important;background:#f9f7ff!important;border-radius:0!important} .dynamic-add__field__input>input{background:#f9f7ff} .dynamic-add__field__input>input::placeholder{line-height:22px;font-size:14px;font-weight:400;color:#9ea1aa} .dynamic-add__field__input--error{background:#ffdfe4!important} .dynamic-add__field__input--error>input{background:#ffdfe4}"], changeDetection: 0 }); }
|
|
120
120
|
}
|
|
121
121
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrSelectAddItemComponent, [{
|
|
122
122
|
type: Component,
|
|
123
|
-
args: [{ selector: 'dr-select-add-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"dr-select__dynamic-add dynamic-add\">\n <div class=\"dynamic-add__add-item\" (click)=\"onDynamicAdding()\">\n <i class=\"dr-icon-add\"></i>\n <p class=\"dynamic-add__add-item__text\">{{ dynamicAddLabel }}</p>\n </div>\n <div *ngIf=\"isDynamicAdding\" class=\"dynamic-add__field\">\n <p *ngIf=\"alertMsg && !isDynamicValueValid() && isDirty\"\n class=\"dynamic-add__field__alert\">{{ alertMsg }}</p>\n <dr-input\n #dynamicInputRef\n class=\"dynamic-add__field__input\"\n [class.dynamic-add__field__input--error]=\"!isDynamicValueValid() && isDirty\"\n [(ngModel)]=\"dynamicValue\"\n (keydown)=\"onDynamicAdd(dynamicValue, $event)\"\n placeholder=\"Type...\"></dr-input>\n <div class=\"dynamic-add__field__buttons\">\n <dr-button\n *ngIf=\"dynamicValue && isDynamicValueValid()\"\n theme=\"icon\"\n icon=\"dr-icon-approve\"\n iconSize=\"18px\"\n (click)=\"onDynamicAdd(dynamicValue)\"></dr-button>\n <dr-button theme=\"icon\" icon=\"dr-icon-exit\" iconSize=\"18px\" (click)=\"onDynamicAddingClose()\"></dr-button>\n </div>\n </div>\n</div>\n", styles: [".dynamic-add__add-item{cursor:pointer;display:flex;align-items:center;border-bottom:1px solid #dfe0e3;padding:6px}.dynamic-add__add-item:hover{background:#f9f7ff}.dynamic-add__add-item__text{font-size:14px;line-height:22px;margin:0}.dynamic-add__field{position:relative}.dynamic-add__field__buttons{position:absolute;top:0;right:0;bottom:0;display:flex;align-items:center}.dynamic-add__field__alert{font-size:12px;position:absolute;color:#bf1d30;z-index:100;right:30px}::ng-deep .ng-dropdown-panel .ng-dropdown-footer:has(.dynamic-add),::ng-deep .ng-dropdown-panel .ng-dropdown-header:has(.dynamic-add){padding:0;border:none}::ng-deep .ng-dropdown-panel .ng-dropdown-footer .dynamic-add__add-item{border-bottom:none}::ng-deep .dynamic-add__field__input{padding-left:12px!important;height:36px!important;border:none!important;background:#f9f7ff!important;border-radius:0!important}::ng-deep .dynamic-add__field__input>input{background:#f9f7ff}::ng-deep .dynamic-add__field__input>input::placeholder{line-height:22px;font-size:14px;font-weight:400;color:#9ea1aa}::ng-deep .dynamic-add__field__input--error{background:#ffdfe4!important}::ng-deep .dynamic-add__field__input--error>input{background:#ffdfe4}\n"] }]
|
|
123
|
+
args: [{ selector: 'dr-select-add-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"dr-select__dynamic-add dynamic-add\">\n <div class=\"dynamic-add__add-item\" (click)=\"onDynamicAdding()\">\n <i class=\"dr-icon-add\"></i>\n <p class=\"dynamic-add__add-item__text\">{{ dynamicAddLabel }}</p>\n </div>\n <div *ngIf=\"isDynamicAdding\" class=\"dynamic-add__field\">\n <p *ngIf=\"alertMsg && !isDynamicValueValid() && isDirty\"\n class=\"dynamic-add__field__alert\">{{ alertMsg }}</p>\n <dr-input\n #dynamicInputRef\n class=\"dynamic-add__field__input\"\n [class.dynamic-add__field__input--error]=\"!isDynamicValueValid() && isDirty\"\n [(ngModel)]=\"dynamicValue\"\n (keydown)=\"onDynamicAdd(dynamicValue, $event)\"\n placeholder=\"Type...\"></dr-input>\n <div class=\"dynamic-add__field__buttons\">\n <dr-button\n *ngIf=\"dynamicValue && isDynamicValueValid()\"\n theme=\"icon\"\n icon=\"dr-icon-approve\"\n iconSize=\"18px\"\n (click)=\"onDynamicAdd(dynamicValue)\"></dr-button>\n <dr-button theme=\"icon\" icon=\"dr-icon-exit\" iconSize=\"18px\" (click)=\"onDynamicAddingClose()\"></dr-button>\n </div>\n </div>\n</div>\n", styles: [".dynamic-add__add-item{cursor:pointer;display:flex;align-items:center;border-bottom:1px solid #dfe0e3;padding:6px}.dynamic-add__add-item:hover{background:#f9f7ff}.dynamic-add__add-item__text{font-size:14px;line-height:22px;margin:0;color:#6d6e6f}.dynamic-add__add-item .dr-icon-add{color:#6d6e6f}.dynamic-add__field{position:relative}.dynamic-add__field__buttons{position:absolute;top:0;right:0;bottom:0;display:flex;align-items:center}.dynamic-add__field__alert{font-size:12px;position:absolute;color:#bf1d30;z-index:100;right:30px}::ng-deep .ng-dropdown-panel .ng-dropdown-footer:has(.dynamic-add),::ng-deep .ng-dropdown-panel .ng-dropdown-header:has(.dynamic-add){padding:0;border:none}::ng-deep .ng-dropdown-panel .ng-dropdown-footer .dynamic-add__add-item{border-bottom:none}::ng-deep .dynamic-add__field__input{padding-left:12px!important;height:36px!important;border:none!important;background:#f9f7ff!important;border-radius:0!important}::ng-deep .dynamic-add__field__input>input{background:#f9f7ff}::ng-deep .dynamic-add__field__input>input::placeholder{line-height:22px;font-size:14px;font-weight:400;color:#9ea1aa}::ng-deep .dynamic-add__field__input--error{background:#ffdfe4!important}::ng-deep .dynamic-add__field__input--error>input{background:#ffdfe4}\n"] }]
|
|
124
124
|
}], function () { return [{ type: i1.DrSelectComponent }]; }, { dynamicAddLabel: [{
|
|
125
125
|
type: Input
|
|
126
126
|
}], bindValue: [{
|
|
@@ -0,0 +1,18 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWFuaW1hdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyYXdlci9kcmF3ZXItYW5pbWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUE0QixNQUFNLHFCQUFxQixDQUFDO0FBRTNHLHFDQUFxQztBQUNyQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FFM0I7SUFDQSwrQ0FBK0M7SUFDL0MsV0FBVyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUU7UUFDMUIsS0FBSyxDQUNELGNBQWMsRUFDZCxLQUFLLENBQUM7WUFDRixZQUFZLEVBQUUsTUFBTTtZQUNwQixVQUFVLEVBQUUsUUFBUTtTQUN2QixDQUFDLENBQ0w7UUFDRCxLQUFLLENBQ0QsU0FBUyxFQUNULEtBQUssQ0FBQztZQUNGLFNBQVMsRUFBRSxNQUFNO1lBQ2pCLFVBQVUsRUFBRSxTQUFTO1NBQ3hCLENBQUMsQ0FDTDtRQUNELFVBQVUsQ0FBQyxvQ0FBb0MsRUFBRSxPQUFPLENBQUMsd0NBQXdDLENBQUMsQ0FBQztRQUNuRyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7S0FDN0UsQ0FBQztDQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIsIEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG4vKiogQW5pbWF0aW9ucyB1c2VkIGJ5IHRoZSBkcmF3ZXIuICovXG5leHBvcnQgY29uc3QgZHJEcmF3ZXJBbmltYXRpb25zOiB7XG4gICAgcmVhZG9ubHkgZHJhd2VyU3RhdGU6IEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YTtcbn0gPSB7XG4gICAgLyoqIEFuaW1hdGlvbiB0aGF0IHNob3dzIGFuZCBoaWRlcyBhIGRyYXdlci4gKi9cbiAgICBkcmF3ZXJTdGF0ZTogdHJpZ2dlcignc3RhdGUnLCBbXG4gICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgJ3ZvaWQsIGhpZGRlbicsXG4gICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgJ2JveC1zaGFkb3cnOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbicsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAndmlzaWJsZScsXG4gICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogJ3Zpc2libGUnLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICAgIHRyYW5zaXRpb24oJ3Zpc2libGUgPT4gdm9pZCwgdmlzaWJsZSA9PiBoaWRkZW4nLCBhbmltYXRlKCc0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKScpKSxcbiAgICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiB2aXNpYmxlJywgYW5pbWF0ZSgnMTUwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSknKSksXG4gICAgXSksXG59O1xuIl19
|
|
@@ -0,0 +1,35 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyYXdlci9kcmF3ZXItY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFlBQVk7SUFBekI7UUFhSSxvREFBb0Q7UUFDcEQsU0FBSSxHQUFjLElBQUksQ0FBQztRQUV2Qix5Q0FBeUM7UUFDekMsZ0JBQVcsR0FBYSxLQUFLLENBQUM7UUFLOUIsK0VBQStFO1FBQy9FLGlCQUFZLEdBQWEsS0FBSyxDQUFDO1FBRS9CLGtEQUFrRDtRQUNsRCxjQUFTLEdBQW1CLElBQUksQ0FBQztRQUVqQzs7OztXQUlHO1FBQ0gsc0JBQWlCLEdBQWEsSUFBSSxDQUFDO1FBRW5DOzs7O1dBSUc7UUFDSCxjQUFTLEdBQXdDLGdCQUFnQixDQUFDO1FBRWxFOzs7V0FHRztRQUNILGlCQUFZLEdBQWEsSUFBSSxDQUFDO1FBSzlCLDhCQUE4QjtRQUM5QixhQUFRLEdBQW9CLFFBQVEsQ0FBQztJQW1CekMsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgU2Nyb2xsU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKiBPcHRpb25zIGZvciB3aGVyZSB0byBzZXQgZm9jdXMgdG8gYXV0b21hdGljYWxseSBvbiBkaWFsb2cgb3Blbi4gKi9cbmV4cG9ydCB0eXBlIEF1dG9Gb2N1c1RhcmdldCA9ICdkaWFsb2cnIHwgJ2ZpcnN0LXRhYmJhYmxlJyB8ICdmaXJzdC1oZWFkaW5nJztcblxuLyoqIFBvc3NpYmxlIG92ZXJyaWRlcyBmb3IgYSBkcmF3ZXIncyBwb3NpdGlvbi4gKi9cbmV4cG9ydCB0eXBlIERyYXdlclBvc2l0aW9uID0gJ3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCc7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiB1c2VkIHdoZW4gb3BlbmluZyBhIGRyYXdlci5cbiAqL1xuZXhwb3J0IGNsYXNzIERyYXdlckNvbmZpZzxEID0gYW55PiB7XG4gICAgLyoqIFRoZSB2aWV3IGNvbnRhaW5lciB0byBwbGFjZSB0aGUgb3ZlcmxheSBmb3IgdGhlIGRyYXdlciBpbnRvLiAqL1xuICAgIHZpZXdDb250YWluZXJSZWY/OiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gICAgLyoqIElEIGZvciB0aGUgZHJhd2VyLiBJZiBvbWl0dGVkLCBhIHVuaXF1ZSBvbmUgd2lsbCBiZSBnZW5lcmF0ZWQuICovXG4gICAgaWQ/OiBzdHJpbmc7XG5cbiAgICAvKiogRXh0cmEgQ1NTIGNsYXNzZXMgdG8gYmUgYWRkZWQgdG8gdGhlIGRyYXdlciBjb250YWluZXIuICovXG4gICAgcGFuZWxDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gICAgLyoqIFRleHQgbGF5b3V0IGRpcmVjdGlvbiBmb3IgdGhlIGRyYXdlci4gKi9cbiAgICBkaXJlY3Rpb24/OiBEaXJlY3Rpb247XG5cbiAgICAvKiogRGF0YSBiZWluZyBpbmplY3RlZCBpbnRvIHRoZSBjaGlsZCBjb21wb25lbnQuICovXG4gICAgZGF0YT86IEQgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBkcmF3ZXIgaGFzIGEgYmFja2Ryb3AuICovXG4gICAgaGFzQmFja2Ryb3A/OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogQ3VzdG9tIGNsYXNzIGZvciB0aGUgYmFja2Ryb3AuICovXG4gICAgYmFja2Ryb3BDbGFzcz86IHN0cmluZztcblxuICAgIC8qKiBXaGV0aGVyIHRoZSB1c2VyIGNhbiB1c2UgZXNjYXBlIG9yIGNsaWNraW5nIG91dHNpZGUgdG8gY2xvc2UgdGhlIGRyYXdlci4gKi9cbiAgICBkaXNhYmxlQ2xvc2U/OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogQXJpYSBsYWJlbCB0byBhc3NpZ24gdG8gdGhlIGRyYXdlciBlbGVtZW50LiAqL1xuICAgIGFyaWFMYWJlbD86IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgZHJhd2VyIHNob3VsZCBjbG9zZSB3aGVuIHRoZSB1c2VyIGdvZXMgYmFja3dhcmRzL2ZvcndhcmRzIGluIGhpc3RvcnkuXG4gICAgICogTm90ZSB0aGF0IHRoaXMgdXN1YWxseSBkb2Vzbid0IGluY2x1ZGUgY2xpY2tpbmcgb24gbGlua3MgKHVubGVzcyB0aGUgdXNlciBpcyB1c2luZ1xuICAgICAqIHRoZSBgSGFzaExvY2F0aW9uU3RyYXRlZ3lgKS5cbiAgICAgKi9cbiAgICBjbG9zZU9uTmF2aWdhdGlvbj86IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogV2hlcmUgdGhlIGRyYXdlciBzaG91bGQgZm9jdXMgb24gb3Blbi5cbiAgICAgKiBAYnJlYWtpbmctY2hhbmdlIDE0LjAuMCBSZW1vdmUgYm9vbGVhbiBvcHRpb24gZnJvbSBhdXRvRm9jdXMuIFVzZSBzdHJpbmcgb3JcbiAgICAgKiBBdXRvRm9jdXNUYXJnZXQgaW5zdGVhZC5cbiAgICAgKi9cbiAgICBhdXRvRm9jdXM/OiBBdXRvRm9jdXNUYXJnZXQgfCBzdHJpbmcgfCBib29sZWFuID0gJ2ZpcnN0LXRhYmJhYmxlJztcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGRyYXdlciBzaG91bGQgcmVzdG9yZSBmb2N1cyB0byB0aGVcbiAgICAgKiBwcmV2aW91c2x5LWZvY3VzZWQgZWxlbWVudCwgYWZ0ZXIgaXQncyBjbG9zZWQuXG4gICAgICovXG4gICAgcmVzdG9yZUZvY3VzPzogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKiogU2Nyb2xsIHN0cmF0ZWd5IHRvIGJlIHVzZWQgZm9yIHRoZSBkcmF3ZXIuICovXG4gICAgc2Nyb2xsU3RyYXRlZ3k/OiBTY3JvbGxTdHJhdGVneTtcblxuICAgIC8qKiBQb3NpdGlvbiBvZiB0aGUgZHJhd2VyLiAqL1xuICAgIHBvc2l0aW9uPzogRHJhd2VyUG9zaXRpb24gPSAnYm90dG9tJztcblxuICAgIC8qKiBXaWR0aCBvZiB0aGUgZHJhd2VyLiAqL1xuICAgIHdpZHRoPzogc3RyaW5nO1xuXG4gICAgLyoqIEhlaWdodCBvZiB0aGUgZHJhd2VyLiAqL1xuICAgIGhlaWdodD86IHN0cmluZztcblxuICAgIC8qKiBNaW4td2lkdGggb2YgdGhlIGRyYXdlci4gSWYgYSBudW1iZXIgaXMgcHJvdmlkZWQsIGFzc3VtZXMgcGl4ZWwgdW5pdHMuICovXG4gICAgbWluV2lkdGg/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgICAvKiogTWluLWhlaWdodCBvZiB0aGUgZHJhd2VyLiBJZiBhIG51bWJlciBpcyBwcm92aWRlZCwgYXNzdW1lcyBwaXhlbCB1bml0cy4gKi9cbiAgICBtaW5IZWlnaHQ/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgICAvKiogTWF4LXdpZHRoIG9mIHRoZSBkcmF3ZXIuIElmIGEgbnVtYmVyIGlzIHByb3ZpZGVkLCBhc3N1bWVzIHBpeGVsIHVuaXRzLiAqL1xuICAgIG1heFdpZHRoPzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgLyoqIE1heC1oZWlnaHQgb2YgdGhlIGRyYXdlci4gSWYgYSBudW1iZXIgaXMgcHJvdmlkZWQsIGFzc3VtZXMgcGl4ZWwgdW5pdHMuICovXG4gICAgbWF4SGVpZ2h0PzogbnVtYmVyIHwgc3RyaW5nO1xufVxuIl19
|
|
@@ -0,0 +1,177 @@
|
|
|
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", 2, 3);
|
|
21
|
+
} }
|
|
22
|
+
function DrawerContainer_ng_template_1_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: 2, vars: 1, consts: [["class", "handle", 4, "ngIf"], ["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.ɵɵtemplate(1, DrawerContainer_ng_template_1_Template, 0, 0, "ng-template", 1);
|
|
147
|
+
} if (rf & 2) {
|
|
148
|
+
i0.ɵɵproperty("ngIf", ctx._config.position === "bottom");
|
|
149
|
+
} }, dependencies: [PortalModule, i4.CdkPortalOutlet, DialogModule, MatCommonModule, CommonModule, i5.NgIf], styles: [".dr-drawer-container{display:block;width:100%;overflow:auto;outline:0;box-sizing:border-box;background-color:#fff;box-shadow:0 4px 14px #d8d9de80}.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] } }); }
|
|
150
|
+
}
|
|
151
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrawerContainer, [{
|
|
152
|
+
type: Component,
|
|
153
|
+
args: [{ selector: 'dr-drawer-container', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, animations: [drDrawerAnimations.drawerState], host: {
|
|
154
|
+
class: 'dr-drawer-container',
|
|
155
|
+
'[class]': '_drawerPosition',
|
|
156
|
+
tabindex: '-1',
|
|
157
|
+
'[id]': '_config.id',
|
|
158
|
+
'[attr.role]': '_config.role',
|
|
159
|
+
'[attr.aria-modal]': '_config.isModal',
|
|
160
|
+
'[attr.aria-label]': '_config.ariaLabel',
|
|
161
|
+
'[@state]': '_animationState',
|
|
162
|
+
'(@state.start)': '_onAnimationStart($event)',
|
|
163
|
+
'(@state.done)': '_onAnimationDone($event)',
|
|
164
|
+
}, standalone: true, imports: [PortalModule, DialogModule, MatCommonModule, CommonModule], template: "<div *ngIf=\"_config.position === 'bottom'\" #handleRef class=\"handle\"></div>\n<ng-template cdkPortalOutlet></ng-template>\n", styles: [".dr-drawer-container{display:block;width:100%;overflow:auto;outline:0;box-sizing:border-box;background-color:#fff;box-shadow:0 4px 14px #d8d9de80}.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"] }]
|
|
165
|
+
}], function () { return [{ type: i0.ElementRef }, { type: i1.FocusTrapFactory }, { type: Document, decorators: [{
|
|
166
|
+
type: Optional
|
|
167
|
+
}, {
|
|
168
|
+
type: Inject,
|
|
169
|
+
args: [DOCUMENT]
|
|
170
|
+
}] }, { type: i2.DrawerConfig }, { type: i1.InteractivityChecker }, { type: i0.NgZone }, { type: i3.OverlayRef }, { type: i1.FocusMonitor }]; }, { _portalOutlet: [{
|
|
171
|
+
type: ViewChild,
|
|
172
|
+
args: [CdkPortalOutlet, { static: true }]
|
|
173
|
+
}], _handleRef: [{
|
|
174
|
+
type: ViewChild,
|
|
175
|
+
args: ['handleRef']
|
|
176
|
+
}] }); })();
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kcmF3ZXIvZHJhd2VyLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kcmF3ZXIvZHJhd2VyLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEVBRU4sUUFBUSxFQUNSLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7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QzVDLENBQUM7SUFFa0Isb0JBQW9CLEtBQVUsQ0FBQzttR0ExSnpDLGVBQWUsdUdBOEJBLFFBQVE7bUdBOUJ2QixlQUFlOzJCQUViLGVBQWU7Ozs7Ozs7MElBRmpCLDZCQUF5QixzR0FBekIsNEJBQXdCOzs7Ozs7O1lDeERyQyxnRUFBMkU7WUFDM0UsZ0ZBQTJDOztZQURyQyx3REFBbUM7NEJEc0QzQixZQUFZLHNCQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsWUFBWSx1NEJBZHZELENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDOzt1RkFnQm5DLGVBQWU7Y0F6QjNCLFNBQVM7MkJBQ0kscUJBQXFCLG1CQU1kLHVCQUF1QixDQUFDLE9BQU8saUJBQ2pDLGlCQUFpQixDQUFDLElBQUksY0FDekIsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsUUFDdEM7b0JBQ0YsS0FBSyxFQUFFLHFCQUFxQjtvQkFDNUIsU0FBUyxFQUFFLGlCQUFpQjtvQkFDNUIsUUFBUSxFQUFFLElBQUk7b0JBQ2QsTUFBTSxFQUFFLFlBQVk7b0JBQ3BCLGFBQWEsRUFBRSxjQUFjO29CQUM3QixtQkFBbUIsRUFBRSxpQkFBaUI7b0JBQ3RDLG1CQUFtQixFQUFFLG1CQUFtQjtvQkFDeEMsVUFBVSxFQUFFLGlCQUFpQjtvQkFDN0IsZ0JBQWdCLEVBQUUsMkJBQTJCO29CQUM3QyxlQUFlLEVBQUUsMEJBQTBCO2lCQUM5QyxjQUNXLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFlBQVksQ0FBQzs7c0JBZ0MvRCxRQUFROztzQkFBSSxNQUFNO3VCQUFDLFFBQVE7K0pBM0JoQyxhQUFhO2tCQURaLFNBQVM7bUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUk1QyxVQUFVO2tCQURULFNBQVM7bUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzVHJhcEZhY3RvcnksIEludGVyYWN0aXZpdHlDaGVja2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQ2RrRGlhbG9nQ29udGFpbmVyLCBEaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDZGtQb3J0YWxPdXRsZXQsIFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbmplY3QsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmluYWxpemUsIGZyb21FdmVudCwgbWFwLCBTdWJqZWN0LCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkckRyYXdlckFuaW1hdGlvbnMgfSBmcm9tICcuL2RyYXdlci1hbmltYXRpb24nO1xuaW1wb3J0IHsgRHJhd2VyQ29uZmlnIH0gZnJvbSAnLi9kcmF3ZXItY29uZmlnJztcbmltcG9ydCB7IEJvdHRvbVBvc2l0aW9uU3RyYXRlZ3ksIERyYXdlclBvc2l0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL2RyYXdlci1wb3NpdGlvbi1zdHJhdGVneSc7XG5cbi8qKlxuICogSW50ZXJuYWwgY29tcG9uZW50IHRoYXQgd3JhcHMgdXNlci1wcm92aWRlZCBkcmF3ZXIgY29udGVudC5cbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1kcmF3ZXItY29udGFpbmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2RyYXdlci1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWydkcmF3ZXItY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgLy8gSW4gSXZ5IGVtYmVkZGVkIHZpZXdzIHdpbGwgYmUgY2hhbmdlIGRldGVjdGVkIGZyb20gdGhlaXIgZGVjbGFyYXRpb24gcGxhY2UsIHJhdGhlciB0aGFuIHdoZXJlXG4gICAgLy8gdGhleSB3ZXJlIHN0YW1wZWQgb3V0LiBUaGlzIG1lYW5zIHRoYXQgd2UgY2FuJ3QgaGF2ZSB0aGUgZHJhd2VyIGNvbnRhaW5lciBiZSBPblB1c2gsXG4gICAgLy8gYmVjYXVzZSBpdCBtaWdodCBjYXVzZSB0aGUgc2hlZXRzIHRoYXQgd2VyZSBvcGVuZWQgZnJvbSBhIHRlbXBsYXRlIG5vdCB0byBiZSBvdXQgb2YgZGF0ZS5cbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBhbmltYXRpb25zOiBbZHJEcmF3ZXJBbmltYXRpb25zLmRyYXdlclN0YXRlXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnZHItZHJhd2VyLWNvbnRhaW5lcicsXG4gICAgICAgICdbY2xhc3NdJzogJ19kcmF3ZXJQb3NpdGlvbicsXG4gICAgICAgIHRhYmluZGV4OiAnLTEnLFxuICAgICAgICAnW2lkXSc6ICdfY29uZmlnLmlkJyxcbiAgICAgICAgJ1thdHRyLnJvbGVdJzogJ19jb25maWcucm9sZScsXG4gICAgICAgICdbYXR0ci5hcmlhLW1vZGFsXSc6ICdfY29uZmlnLmlzTW9kYWwnLFxuICAgICAgICAnW2F0dHIuYXJpYS1sYWJlbF0nOiAnX2NvbmZpZy5hcmlhTGFiZWwnLFxuICAgICAgICAnW0BzdGF0ZV0nOiAnX2FuaW1hdGlvblN0YXRlJyxcbiAgICAgICAgJyhAc3RhdGUuc3RhcnQpJzogJ19vbkFuaW1hdGlvblN0YXJ0KCRldmVudCknLFxuICAgICAgICAnKEBzdGF0ZS5kb25lKSc6ICdfb25BbmltYXRpb25Eb25lKCRldmVudCknLFxuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbUG9ydGFsTW9kdWxlLCBEaWFsb2dNb2R1bGUsIE1hdENvbW1vbk1vZHVsZSwgQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRHJhd2VyQ29udGFpbmVyIGV4dGVuZHMgQ2RrRGlhbG9nQ29udGFpbmVyPERyYXdlckNvbmZpZz4gaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICAgIC8qKiBUaGUgcG9ydGFsIG91dGxldCBpbnNpZGUgb2YgdGhpcyBjb250YWluZXIgaW50byB3aGljaCB0aGUgY29udGVudCB3aWxsIGJlIGxvYWRlZC4gKi9cbiAgICBAVmlld0NoaWxkKENka1BvcnRhbE91dGxldCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBfcG9ydGFsT3V0bGV0ITogQ2RrUG9ydGFsT3V0bGV0O1xuXG4gICAgQFZpZXdDaGlsZCgnaGFuZGxlUmVmJylcbiAgICBfaGFuZGxlUmVmITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgICAvKiogVGhlIHN0YXRlIG9mIHRoZSBkcmF3ZXIgYW5pbWF0aW9ucy4gKi9cbiAgICBfYW5pbWF0aW9uU3RhdGU6ICd2b2lkJyB8ICd2aXNpYmxlJyB8ICdoaWRkZW4nID0gJ3ZvaWQnO1xuXG4gICAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBzdGF0ZSBvZiB0aGUgYW5pbWF0aW9uIGNoYW5nZXMuICovXG4gICAgcmVhZG9ubHkgX2FuaW1hdGlvblN0YXRlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QW5pbWF0aW9uRXZlbnQ+KCk7XG5cbiAgICAvKiogV2hldGhlciB0aGUgY29tcG9uZW50IGhhcyBiZWVuIGRlc3Ryb3llZC4gKi9cbiAgICBwcml2YXRlIF9kZXN0cm95ZWQgPSBmYWxzZTtcblxuICAgIGdldCBfZHJhd2VyUG9zaXRpb24oKSB7XG4gICAgICAgIHJldHVybiBgZHItZHJhd2VyLSR7dGhpcy5fY29uZmlnLnBvc2l0aW9ufWA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwb3NpdGlvblN0cmF0ZWd5ITogRHJhd2VyUG9zaXRpb25TdHJhdGVneTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgZm9jdXNUcmFwRmFjdG9yeTogRm9jdXNUcmFwRmFjdG9yeSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICAgICBjb25maWc6IERyYXdlckNvbmZpZyxcbiAgICAgICAgY2hlY2tlcjogSW50ZXJhY3Rpdml0eUNoZWNrZXIsXG4gICAgICAgIG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYsXG4gICAgICAgIGZvY3VzTW9uaXRvcj86IEZvY3VzTW9uaXRvcixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZiwgZm9jdXNUcmFwRmFjdG9yeSwgZG9jdW1lbnQsIGNvbmZpZywgY2hlY2tlciwgbmdab25lLCBvdmVybGF5UmVmLCBmb2N1c01vbml0b3IpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBfY29udGVudEF0dGFjaGVkKCk6IHZvaWQge1xuICAgICAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgb3JpZ2luYWwgZGlhbG9nLWNvbnRhaW5lciBpbml0aWFsaXphdGlvbiAoaS5lLiBzYXZpbmcgdGhlXG4gICAgICAgIC8vIHByZXZpb3VzIGVsZW1lbnQsIHNldHRpbmcgdXAgdGhlIGZvY3VzIHRyYXAgYW5kIG1vdmluZyBmb2N1cyB0byB0aGUgY29udGFpbmVyKS5cbiAgICAgICAgc3VwZXIuX2NvbnRlbnRBdHRhY2hlZCgpO1xuXG4gICAgICAgIHRoaXMuZW50ZXIoKTtcbiAgICB9XG5cbiAgICAvKiogQmVnaW4gYW5pbWF0aW9uIG9mIGJvdHRvbSBzaGVldCBlbnRyYW5jZSBpbnRvIHZpZXcuICovXG4gICAgZW50ZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fZGVzdHJveWVkKSB7XG4gICAgICAgICAgICB0aGlzLl9hbmltYXRpb25TdGF0ZSA9ICd2aXNpYmxlJztcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEJlZ2luIGFuaW1hdGlvbiBvZiB0aGUgYm90dG9tIHNoZWV0IGV4aXRpbmcgZnJvbSB2aWV3LiAqL1xuICAgIGV4aXQoKTogdm9pZCB7XG4gICAgICAgICh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLnRyYW5zaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmICghdGhpcy5fZGVzdHJveWVkKSB7XG4gICAgICAgICAgICB0aGlzLl9hbmltYXRpb25TdGF0ZSA9ICdoaWRkZW4nO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucG9zaXRpb25TdHJhdGVneSA9IHRoaXMucmVzb2x2ZVBvc2l0aW9uU3RyYXRlZ3koKTtcbiAgICAgICAgaWYgKHRoaXMucG9zaXRpb25TdHJhdGVneSkge1xuICAgICAgICAgICAgdGhpcy5zZXR1cERyYWdMaXN0ZW5lcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNvbHZlUG9zaXRpb25TdHJhdGVneSgpOiBEcmF3ZXJQb3NpdGlvblN0cmF0ZWd5IHtcbiAgICAgICAgc3dpdGNoICh0aGlzLl9jb25maWcucG9zaXRpb24pIHtcbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBCb3R0b21Qb3NpdGlvblN0cmF0ZWd5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwRHJhZ0xpc3RlbmVyKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBtb3VzZWRvd24kID0gZnJvbUV2ZW50KHRoaXMuX2hhbmRsZVJlZi5uYXRpdmVFbGVtZW50LCAnbW91c2Vkb3duJyk7XG4gICAgICAgIGNvbnN0IG1vdXNlbW92ZSQgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZW1vdmUnKTtcbiAgICAgICAgY29uc3QgbW91c2V1cCQgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZXVwJyk7XG5cbiAgICAgICAgbGV0IGxhc3RQb3NpdGlvbiA9IDA7XG4gICAgICAgIGxldCBpbml0UG9zaXRpb24gPSAwO1xuICAgICAgICBsZXQgY3VycmVudFBvc2l0aW9uID0gMDtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgbGFzdFBvc2l0aW9uID0gdGhpcy5nZXRDb250YWluZXJQb3NpdGlvbihjb250YWluZXIpO1xuICAgICAgICAgICAgaW5pdFBvc2l0aW9uID0gbGFzdFBvc2l0aW9uO1xuICAgICAgICB9KTtcblxuICAgICAgICBtb3VzZWRvd24kXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgbW91c2Vtb3ZlJC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wb3NpdGlvblN0cmF0ZWd5LnNob3VsZENsb3NlKGN1cnJlbnRQb3NpdGlvbiwgaW5pdFBvc2l0aW9uLCBsYXN0UG9zaXRpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLnN0eWxlLnRyYW5zaXRpb24gPSAndHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAuMzIsIDAuNzIsIDAsIDEpJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZTNkKDBweCwgMHB4LCAwcHgpYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKG1vdXNldXAkKSxcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIG1hcCgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHRoaXMucG9zaXRpb25TdHJhdGVneS5leHRyYWN0TW91c2VQb3NpdGlvbihldmVudCkpLFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICAgICAgdGFwKChwb3NpdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgY29udGFpbmVyUG9zaXRpb24gPSB0aGlzLmdldENvbnRhaW5lclBvc2l0aW9uKGNvbnRhaW5lcik7XG5cbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyUG9zaXRpb24gPSBNYXRoLm1pbihjb250YWluZXJQb3NpdGlvbiwgbGFzdFBvc2l0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgbGFzdFBvc2l0aW9uID0gTWF0aC5taW4oY29udGFpbmVyUG9zaXRpb24sIGxhc3RQb3NpdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQb3NpdGlvbiA9IHBvc2l0aW9uO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5zdHlsZS50cmFuc2l0aW9uID0gJ25vbmUnO1xuICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuc3R5bGUudHJhbnNmb3JtID0gdGhpcy5wb3NpdGlvblN0cmF0ZWd5LmNhbGN1bGF0ZVRyYW5zZm9ybShwb3NpdGlvbiwgY29udGFpbmVyUG9zaXRpb24pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbnRhaW5lclBvc2l0aW9uKGNvbnRhaW5lcjogSFRNTEVsZW1lbnQpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlnLnBvc2l0aW9uID09PSAnYm90dG9tJyB8fCB0aGlzLl9jb25maWcucG9zaXRpb24gPT09ICd0b3AnXG4gICAgICAgICAgICA/IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3BcbiAgICAgICAgICAgIDogY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG5cbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveWVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBfb25BbmltYXRpb25Eb25lKGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xuICAgICAgICBpZiAoZXZlbnQudG9TdGF0ZSA9PT0gJ3Zpc2libGUnKSB7XG4gICAgICAgICAgICB0aGlzLl90cmFwRm9jdXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2FuaW1hdGlvblN0YXRlQ2hhbmdlZC5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBfb25BbmltYXRpb25TdGFydChldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICAgICAgdGhpcy5fYW5pbWF0aW9uU3RhdGVDaGFuZ2VkLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBfY2FwdHVyZUluaXRpYWxGb2N1cygpOiB2b2lkIHt9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiX2NvbmZpZy5wb3NpdGlvbiA9PT0gJ2JvdHRvbSdcIiAjaGFuZGxlUmVmIGNsYXNzPVwiaGFuZGxlXCI+PC9kaXY+XG48bmctdGVtcGxhdGUgY2RrUG9ydGFsT3V0bGV0PjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -0,0 +1,14 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLXBvc2l0aW9uLXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHJhd2VyL2RyYXdlci1wb3NpdGlvbi1zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLE9BQU8sc0JBQXNCO0lBQy9CLG9CQUFvQixDQUFDLEtBQWlCO1FBQ2xDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRUQsa0JBQWtCLENBQUMsZUFBdUIsRUFBRSxpQkFBeUI7UUFDakUsT0FBTyxlQUFlLEdBQUcsaUJBQWlCO1lBQ3RDLENBQUMsQ0FBQyxvQkFBb0IsZUFBZSxHQUFHLGlCQUFpQixVQUFVO1lBQ25FLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQztJQUN2QyxDQUFDO0lBRUQsV0FBVyxDQUFDLGVBQXVCLEVBQUUsWUFBb0IsRUFBRSxZQUFvQjtRQUMzRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxHQUFHLFlBQVksQ0FBQyxJQUFJLGVBQWUsR0FBRyxZQUFZLENBQUM7SUFDdEYsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBEcmF3ZXJQb3NpdGlvblN0cmF0ZWd5IHtcbiAgICBleHRyYWN0TW91c2VQb3NpdGlvbihldmVudDogTW91c2VFdmVudCk6IG51bWJlcjtcbiAgICBjYWxjdWxhdGVUcmFuc2Zvcm0oY3VycmVudFBvc2l0aW9uOiBudW1iZXIsIGNvbnRhaW5lclBvc2l0aW9uOiBudW1iZXIpOiBzdHJpbmc7XG4gICAgc2hvdWxkQ2xvc2UoY3VycmVudFBvc2l0aW9uOiBudW1iZXIsIGluaXRQb3NpdGlvbjogbnVtYmVyLCBsYXN0UG9zaXRpb246IG51bWJlcik6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBCb3R0b21Qb3NpdGlvblN0cmF0ZWd5IGltcGxlbWVudHMgRHJhd2VyUG9zaXRpb25TdHJhdGVneSB7XG4gICAgZXh0cmFjdE1vdXNlUG9zaXRpb24oZXZlbnQ6IE1vdXNlRXZlbnQpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZXZlbnQuY2xpZW50WTtcbiAgICB9XG5cbiAgICBjYWxjdWxhdGVUcmFuc2Zvcm0oY3VycmVudFBvc2l0aW9uOiBudW1iZXIsIGNvbnRhaW5lclBvc2l0aW9uOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gY3VycmVudFBvc2l0aW9uID4gY29udGFpbmVyUG9zaXRpb25cbiAgICAgICAgICAgID8gYHRyYW5zbGF0ZTNkKDBweCwgJHtjdXJyZW50UG9zaXRpb24gLSBjb250YWluZXJQb3NpdGlvbn1weCwgMHB4KWBcbiAgICAgICAgICAgIDogYHRyYW5zbGF0ZTNkKDBweCwgMHB4LCAwcHgpYDtcbiAgICB9XG5cbiAgICBzaG91bGRDbG9zZShjdXJyZW50UG9zaXRpb246IG51bWJlciwgaW5pdFBvc2l0aW9uOiBudW1iZXIsIGxhc3RQb3NpdGlvbjogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBNYXRoLmFicyhjdXJyZW50UG9zaXRpb24gLSBpbml0UG9zaXRpb24pIDw9IGN1cnJlbnRQb3NpdGlvbiAtIGxhc3RQb3NpdGlvbjtcbiAgICB9XG59XG4iXX0=
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyYXdlci9kcmF3ZXItcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0QsT0FBTyxFQUFFLEtBQUssRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUs5Qzs7R0FFRztBQUNILE1BQU0sT0FBTyxTQUFTO0lBQ2xCLHFFQUFxRTtJQUNyRSxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWtCLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDbEMsQ0FBQztJQTBCRCxZQUNZLElBQXFCLEVBQzdCLE1BQW9CLEVBQ3BCLGlCQUFrQztRQUYxQixTQUFJLEdBQUosSUFBSSxDQUFpQjtRQWJqQyx5RUFBeUU7UUFDeEQsb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBaUIsQ0FBQztRQUVoRSw4RUFBOEU7UUFDN0QsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBYWhELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDeEMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBRWxCLHdDQUF3QztRQUN4QyxpQkFBaUIsQ0FBQyxzQkFBc0I7YUFDbkMsSUFBSSxDQUNELE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FB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O0lBQ0wsQ0FBQztJQUVELCtFQUErRTtJQUMvRSxjQUFjO1FBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUM1QixDQUFDO0lBRUQsbUZBQW1GO0lBQ25GLFdBQVc7UUFDUCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYTtRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDbkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYTtRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDbkMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RpYWxvZyc7XG5pbXBvcnQgeyBFU0NBUEUsIGhhc01vZGlmaWVyS2V5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IG1lcmdlLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEcmF3ZXJDb25maWcgfSBmcm9tICcuL2RyYXdlci1jb25maWcnO1xuaW1wb3J0IHsgRHJhd2VyQ29udGFpbmVyIH0gZnJvbSAnLi9kcmF3ZXItY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBSZWZlcmVuY2UgdG8gYSBkcmF3ZXIgZGlzcGF0Y2hlZCBmcm9tIHRoZSBkcmF3ZXIgc2VydmljZS5cbiAqL1xuZXhwb3J0IGNsYXNzIERyYXdlclJlZjxUID0gYW55LCBSID0gYW55PiB7XG4gICAgLyoqIEluc3RhbmNlIG9mIHRoZSBjb21wb25lbnQgbWFraW5nIHVwIHRoZSBjb250ZW50IG9mIHRoZSBkcmF3ZXIuICovXG4gICAgZ2V0IGluc3RhbmNlKCk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVmLmNvbXBvbmVudEluc3RhbmNlITtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBgQ29tcG9uZW50UmVmYCBvZiB0aGUgY29tcG9uZW50IG9wZW5lZCBpbnRvIHRoZSBkcmF3ZXIuIFdpbGwgYmVcbiAgICAgKiBudWxsIHdoZW4gdGhlIGRyYXdlciBpcyBvcGVuZWQgdXNpbmcgYSBgVGVtcGxhdGVSZWZgLlxuICAgICAqL1xuICAgIGdldCBjb21wb25lbnRSZWYoKTogQ29tcG9uZW50UmVmPFQ+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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyYXdlci9kcmF3ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFPMUMsTUFBTSxPQUFPLFlBQVk7Z0dBQVosWUFBWTtrR0FBWixZQUFZO3VHQUZWLENBQUMsTUFBTSxDQUFDLFlBRlQsZUFBZTs7dUZBSWhCLFlBQVk7Y0FMeEIsUUFBUTtlQUFDO2dCQUNOLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDMUIsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO2dCQUMxQixTQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUM7YUFDdEI7O3dGQUNZLFlBQVksY0FKWCxlQUFlLGFBQ2YsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEcmF3ZXJDb250YWluZXIgfSBmcm9tICcuL2RyYXdlci1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERyYXdlciB9IGZyb20gJy4vZHJhd2VyLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtEcmF3ZXJDb250YWluZXJdLFxuICAgIGV4cG9ydHM6IFtEcmF3ZXJDb250YWluZXJdLFxuICAgIHByb3ZpZGVyczogW0RyYXdlcl0sXG59KVxuZXhwb3J0IGNsYXNzIERyYXdlck1vZHVsZSB7fVxuIl19
|