@ng-matero/extensions 13.0.2 → 13.0.3
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.
|
@@ -215,10 +215,6 @@ export class MtxPopover {
|
|
|
215
215
|
this._emitCloseEvent();
|
|
216
216
|
}
|
|
217
217
|
}
|
|
218
|
-
/**
|
|
219
|
-
* TODO: Refactor when @angular/cdk includes feature I mentioned on github see link below.
|
|
220
|
-
* https://github.com/angular/material2/pull/5493#issuecomment-313085323
|
|
221
|
-
*/
|
|
222
218
|
/** Disables close of popover when leaving trigger element and mouse over the popover */
|
|
223
219
|
onMouseOver() {
|
|
224
220
|
if (this.triggerEvent === 'hover') {
|
|
@@ -228,12 +224,12 @@ export class MtxPopover {
|
|
|
228
224
|
/** Enables close of popover when mouse leaving popover element */
|
|
229
225
|
onMouseLeave() {
|
|
230
226
|
if (this.triggerEvent === 'hover') {
|
|
231
|
-
|
|
232
|
-
|
|
227
|
+
setTimeout(() => {
|
|
228
|
+
this.closeDisabled = false;
|
|
229
|
+
this._emitCloseEvent();
|
|
230
|
+
}, this.leaveDelay);
|
|
233
231
|
}
|
|
234
232
|
}
|
|
235
|
-
// TODO: Refactor how styles are set and updated on the component, use best practices.
|
|
236
|
-
// TODO: If arrow left and right positioning is requested, see if flex direction can be used to work with order.
|
|
237
233
|
/** Sets the current styles for the popover to allow for dynamically changing settings */
|
|
238
234
|
setCurrentStyles(pos = this.position) {
|
|
239
235
|
const left = pos[1] === 'after'
|
|
@@ -331,4 +327,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
|
|
|
331
327
|
type: ViewChild,
|
|
332
328
|
args: [TemplateRef]
|
|
333
329
|
}] } });
|
|
334
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvcG9wb3Zlci9wb3BvdmVyLnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh0ZW5zaW9ucy9wb3BvdmVyL3BvcG92ZXIuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBRWpCLHVCQUF1QixFQUN2QixXQUFXLEVBRVgsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFRL0MsT0FBTyxFQUNMLG1DQUFtQyxFQUNuQyxpQ0FBaUMsR0FDbEMsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFXeEQsTUFBTSxPQUFPLFVBQVU7SUF3T3JCLFlBQ3NCLElBQW9CLEVBQ2hDLFdBQXVCLEVBQ3hCLElBQVk7UUFGQyxTQUFJLEdBQUosSUFBSSxDQUFnQjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN4QixTQUFJLEdBQUosSUFBSSxDQUFRO1FBMU9LLFNBQUksR0FBRyxRQUFRLENBQUM7UUFFMUMscUVBQXFFO1FBQzdELGNBQVMsR0FBdUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbkQsa0JBQWEsR0FBMkIsT0FBTyxDQUFDO1FBQ2hELG9CQUFlLEdBQTZCLFlBQVksQ0FBQztRQUN6RCxnQkFBVyxHQUFHLEdBQUcsQ0FBQztRQUNsQixnQkFBVyxHQUFHLEdBQUcsQ0FBQztRQUNsQixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQixrQkFB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LHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksY0FDekIsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUNwQixZQUFZOzswQkEyT25CLFFBQVE7MEZBeE9lLElBQUk7c0JBQTdCLFdBQVc7dUJBQUMsV0FBVztnQkEyQ3BCLFFBQVE7c0JBRFgsS0FBSztnQkFpQkYsWUFBWTtzQkFEZixLQUFLO2dCQVVGLGNBQWM7c0JBRGpCLEtBQUs7Z0JBVUYsVUFBVTtzQkFEYixLQUFLO2dCQVVGLFVBQVU7c0JBRGIsS0FBSztnQkFVRixPQUFPO3NCQURWLEtBQUs7Z0JBVUYsT0FBTztzQkFEVixLQUFLO2dCQVVGLFlBQVk7c0JBRGYsS0FBSztnQkFVRixZQUFZO3NCQURmLEtBQUs7Z0JBVUYsVUFBVTtzQkFEYixLQUFLO2dCQVVGLFdBQVc7c0JBRGQsS0FBSztnQkFVRixpQkFBaUI7c0JBRHBCLEtBQUs7Z0JBVUYsb0JBQW9CO3NCQUR2QixLQUFLO2dCQVVGLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFVRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBVUYsMkJBQTJCO3NCQUQ5QixLQUFLO2dCQWVGLFVBQVU7c0JBRGIsS0FBSzt1QkFBQyxPQUFPO2dCQXFCVixTQUFTO3NCQURaLEtBQUs7Z0JBU0ksTUFBTTtzQkFBZixNQUFNO2dCQUVpQixXQUFXO3NCQUFsQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgRWxlbWVudFJlZixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIEhvc3RCaW5kaW5nLFxuICBOZ1pvbmUsXG4gIE9wdGlvbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBFU0NBUEUgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5cbmltcG9ydCB7XG4gIE10eFBvcG92ZXJUcmlnZ2VyRXZlbnQsXG4gIE10eFBvcG92ZXJTY3JvbGxTdHJhdGVneSxcbiAgTXR4UG9wb3ZlclBvc2l0aW9uLFxufSBmcm9tICcuL3BvcG92ZXItdHlwZXMnO1xuaW1wb3J0IHtcbiAgdGhyb3dNdHhQb3BvdmVySW52YWxpZFBvc2l0aW9uU3RhcnQsXG4gIHRocm93TXR4UG9wb3ZlckludmFsaWRQb3NpdGlvbkVuZCxcbn0gZnJvbSAnLi9wb3BvdmVyLWVycm9ycyc7XG5pbXBvcnQgeyBNdHhQb3BvdmVyUGFuZWwgfSBmcm9tICcuL3BvcG92ZXItaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1Qb3BvdmVyIH0gZnJvbSAnLi9wb3BvdmVyLWFuaW1hdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdHgtcG9wb3ZlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wb3BvdmVyLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wb3BvdmVyLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGFuaW1hdGlvbnM6IFt0cmFuc2Zvcm1Qb3BvdmVyXSxcbiAgZXhwb3J0QXM6ICdtdHhQb3BvdmVyJyxcbn0pXG5leHBvcnQgY2xhc3MgTXR4UG9wb3ZlciBpbXBsZW1lbnRzIE10eFBvcG92ZXJQYW5lbCwgT25EZXN0cm95IHtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlID0gJ2RpYWxvZyc7XG5cbiAgLyoqIFNldHRpbmdzIGZvciBwb3BvdmVyLCB2aWV3IHNldHRlcnMgYW5kIGdldHRlcnMgZm9yIG1vcmUgZGV0YWlsICovXG4gIHByaXZhdGUgX3Bvc2l0aW9uOiBNdHhQb3BvdmVyUG9zaXRpb24gPSBbJ2JlbG93JywgJ2FmdGVyJ107XG4gIHByaXZhdGUgX3RyaWdnZXJFdmVudDogTXR4UG9wb3ZlclRyaWdnZXJFdmVudCA9ICdob3Zlcic7XG4gIHByaXZhdGUgX3Njcm9sbFN0cmF0ZWd5OiBNdHhQb3BvdmVyU2Nyb2xsU3RyYXRlZ3kgPSAncmVwb3NpdGlvbic7XG4gIHByaXZhdGUgX2VudGVyRGVsYXkgPSAxMDA7XG4gIHByaXZhdGUgX2xlYXZlRGVsYXkgPSAxMDA7XG4gIHByaXZhdGUgX3BhbmVsT2Zmc2V0WCA9IDA7XG4gIHByaXZhdGUgX3BhbmVsT2Zmc2V0WSA9IDA7XG4gIHByaXZhdGUgX2Nsb3NlT25QYW5lbENsaWNrID0gZmFsc2U7XG4gIHByaXZhdGUgX2Nsb3NlT25CYWNrZHJvcENsaWNrID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfZGlzYWJsZUFuaW1hdGlvbiA9IGZhbHNlO1xuICBwcml2YXRlIF9mb2N1c1RyYXBFbmFibGVkID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfZm9jdXNUcmFwQXV0b0NhcHR1cmVFbmFibGVkID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfYXJyb3dPZmZzZXRYID0gMjA7XG4gIHByaXZhdGUgX2Fycm93T2Zmc2V0WSA9IDIwO1xuICBwcml2YXRlIF9hcnJvd1dpZHRoID0gMTY7XG4gIHByaXZhdGUgX2Fycm93SGVpZ2h0ID0gMTY7XG5cbiAgLyoqIENvbmZpZyBvYmplY3QgdG8gYmUgcGFzc2VkIGludG8gdGhlIHBvcG92ZXIncyBuZ0NsYXNzICovXG4gIF9jbGFzc0xpc3Q6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG5cbiAgLyoqIFdoZXRoZXIgcG9wb3ZlcidzIGB0YXJnZXRFbGVtZW50YCBpcyBkZWZpbmVkICovXG4gIHB1YmxpYyBjb250YWluZXJQb3NpdGlvbmluZyA9IGZhbHNlO1xuXG4gIC8qKiBDbG9zaW5nIGRpc2FibGVkIG9uIHBvcG92ZXIgKi9cbiAgcHVibGljIGNsb3NlRGlzYWJsZWQgPSBmYWxzZTtcblxuICAvKiogQ29uZmlnIG9iamVjdCB0byBiZSBwYXNzZWQgaW50byB0aGUgcG9wb3ZlcidzIGFycm93IG5nU3R5bGUgKi9cbiAgcHVibGljIHBvcG92ZXJQYW5lbFN0eWxlcyE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIC8qKiBDb25maWcgb2JqZWN0IHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBwb3BvdmVyJ3MgYXJyb3cgbmdTdHlsZSAqL1xuICBwdWJsaWMgcG9wb3ZlckFycm93U3R5bGVzITogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgLyoqIENvbmZpZyBvYmplY3QgdG8gYmUgcGFzc2VkIGludG8gdGhlIHBvcG92ZXIncyBjb250ZW50IG5nU3R5bGUgKi9cbiAgcHVibGljIHBvcG92ZXJDb250ZW50U3R5bGVzITogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgLyoqIEVtaXRzIHRoZSBjdXJyZW50IGFuaW1hdGlvbiBzdGF0ZSB3aGVuZXZlciBpdCBjaGFuZ2VzLiAqL1xuICBfb25BbmltYXRpb25TdGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QW5pbWF0aW9uRXZlbnQ+KCk7XG5cbiAgLyoqIFBvc2l0aW9uIG9mIHRoZSBwb3BvdmVyLiAqL1xuICBASW5wdXQoKVxuICBnZXQgcG9zaXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uO1xuICB9XG4gIHNldCBwb3NpdGlvbih2YWx1ZTogTXR4UG9wb3ZlclBvc2l0aW9uKSB7XG4gICAgaWYgKCFbJ2JlZm9yZScsICdhZnRlcicsICdhYm92ZScsICdiZWxvdyddLmluY2x1ZGVzKHZhbHVlWzBdKSkge1xuICAgICAgdGhyb3dNdHhQb3BvdmVySW52YWxpZFBvc2l0aW9uU3RhcnQoKTtcbiAgICB9XG4gICAgaWYgKCFbJ2JlZm9yZScsICdhZnRlcicsICdhYm92ZScsICdiZWxvdycsICdjZW50ZXInXS5pbmNsdWRlcyh2YWx1ZVsxXSkpIHtcbiAgICAgIHRocm93TXR4UG9wb3ZlckludmFsaWRQb3NpdGlvbkVuZCgpO1xuICAgIH1cbiAgICB0aGlzLl9wb3NpdGlvbiA9IHZhbHVlO1xuICAgIHRoaXMuc2V0UG9zaXRpb25DbGFzc2VzKCk7XG4gIH1cblxuICAvKiogUG9wb3ZlciB0cmlnZ2VyIGV2ZW50ICovXG4gIEBJbnB1dCgpXG4gIGdldCB0cmlnZ2VyRXZlbnQoKTogTXR4UG9wb3ZlclRyaWdnZXJFdmVudCB7XG4gICAgcmV0dXJuIHRoaXMuX3RyaWdnZXJFdmVudDtcbiAgfVxuICBzZXQgdHJpZ2dlckV2ZW50KHZhbHVlOiBNdHhQb3BvdmVyVHJpZ2dlckV2ZW50KSB7XG4gICAgdGhpcy5fdHJpZ2dlckV2ZW50ID0gdmFsdWU7XG4gIH1cblxuICAvKiogUG9wb3ZlciBzY3JvbGwgc3RyYXRlZ3kgKi9cbiAgQElucHV0KClcbiAgZ2V0IHNjcm9sbFN0cmF0ZWd5KCk6IE10eFBvcG92ZXJTY3JvbGxTdHJhdGVneSB7XG4gICAgcmV0dXJuIHRoaXMuX3Njcm9sbFN0cmF0ZWd5O1xuICB9XG4gIHNldCBzY3JvbGxTdHJhdGVneSh2YWx1ZTogTXR4UG9wb3ZlclNjcm9sbFN0cmF0ZWd5KSB7XG4gICAgdGhpcy5fc2Nyb2xsU3RyYXRlZ3kgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKiBQb3BvdmVyIGVudGVyIGRlbGF5ICovXG4gIEBJbnB1dCgpXG4gIGdldCBlbnRlckRlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGVyRGVsYXk7XG4gIH1cbiAgc2V0IGVudGVyRGVsYXkodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2VudGVyRGVsYXkgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKiBQb3BvdmVyIGxlYXZlIGRlbGF5ICovXG4gIEBJbnB1dCgpXG4gIGdldCBsZWF2ZURlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2xlYXZlRGVsYXk7XG4gIH1cbiAgc2V0IGxlYXZlRGVsYXkodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2xlYXZlRGVsYXkgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKiBQb3BvdmVyIHRhcmdldCBvZmZzZXQgeCAqL1xuICBASW5wdXQoKVxuICBnZXQgeE9mZnNldCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9wYW5lbE9mZnNldFg7XG4gIH1cbiAgc2V0IHhPZmZzZXQodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX3BhbmVsT2Zmc2V0WCA9IHZhbHVlO1xuICB9XG5cbiAgLyoqIFBvcG92ZXIgdGFyZ2V0IG9mZnNldCB5ICovXG4gIEBJbnB1dCgpXG4gIGdldCB5T2Zmc2V0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3BhbmVsT2Zmc2V0WTtcbiAgfVxuICBzZXQgeU9mZnNldCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fcGFuZWxPZmZzZXRZID0gdmFsdWU7XG4gIH1cblxuICAvKiogUG9wb3ZlciBhcnJvdyBvZmZzZXQgeCAqL1xuICBASW5wdXQoKVxuICBnZXQgYXJyb3dPZmZzZXRYKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2Fycm93T2Zmc2V0WDtcbiAgfVxuICBzZXQgYXJyb3dPZmZzZXRYKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9hcnJvd09mZnNldFggPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKiBQb3BvdmVyIGFycm93IG9mZnNldCB5ICovXG4gIEBJbnB1dCgpXG4gIGdldCBhcnJvd09mZnNldFkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fYXJyb3dPZmZzZXRZO1xuICB9XG4gIHNldCBhcnJvd09mZnNldFkodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2Fycm93T2Zmc2V0WSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqIFBvcG92ZXIgYXJyb3cgd2lkdGggKi9cbiAgQElucHV0KClcbiAgZ2V0IGFycm93V2lkdGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fYXJyb3dXaWR0aDtcbiAgfVxuICBzZXQgYXJyb3dXaWR0aCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fYXJyb3dXaWR0aCA9IHZhbHVlO1xuICB9XG5cbiAgLyoqIFBvcG92ZXIgYXJyb3cgaGVpZ2h0ICovXG4gIEBJbnB1dCgpXG4gIGdldCBhcnJvd0hlaWdodCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9hcnJvd0hlaWdodDtcbiAgfVxuICBzZXQgYXJyb3dIZWlnaHQodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2Fycm93SGVpZ2h0ID0gdmFsdWU7XG4gIH1cblxuICAvKiogUG9wb3ZlciBjbG9zZSBvbiBjb250YWluZXIgY2xpY2sgKi9cbiAgQElucHV0KClcbiAgZ2V0IGNsb3NlT25QYW5lbENsaWNrKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jbG9zZU9uUGFuZWxDbGljaztcbiAgfVxuICBzZXQgY2xvc2VPblBhbmVsQ2xpY2sodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9jbG9zZU9uUGFuZWxDbGljayA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICAvKiogUG9wb3ZlciBjbG9zZSBvbiBiYWNrZHJvcCBjbGljayAqL1xuICBASW5wdXQoKVxuICBnZXQgY2xvc2VPbkJhY2tkcm9wQ2xpY2soKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrO1xuICB9XG4gIHNldCBjbG9zZU9uQmFja2Ryb3BDbGljayh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBEaXNhYmxlIGFuaW1hdGlvbnMgb2YgcG9wb3ZlciBhbmQgYWxsIGNoaWxkIGVsZW1lbnRzICovXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlQW5pbWF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlQW5pbWF0aW9uO1xuICB9XG4gIHNldCBkaXNhYmxlQW5pbWF0aW9uKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZUFuaW1hdGlvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICAvKiogUG9wb3ZlciBmb2N1cyB0cmFwIHVzaW5nIGNka1RyYXBGb2N1cyAqL1xuICBASW5wdXQoKVxuICBnZXQgZm9jdXNUcmFwRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZm9jdXNUcmFwRW5hYmxlZDtcbiAgfVxuICBzZXQgZm9jdXNUcmFwRW5hYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2ZvY3VzVHJhcEVuYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgLyoqIFBvcG92ZXIgZm9jdXMgdHJhcCBhdXRvIGNhcHR1cmUgdXNpbmcgY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmUgKi9cbiAgQElucHV0KClcbiAgZ2V0IGZvY3VzVHJhcEF1dG9DYXB0dXJlRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZm9jdXNUcmFwQXV0b0NhcHR1cmVFbmFibGVkO1xuICB9XG4gIHNldCBmb2N1c1RyYXBBdXRvQ2FwdHVyZUVuYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9mb2N1c1RyYXBBdXRvQ2FwdHVyZUVuYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIHRha2VzIGNsYXNzZXMgc2V0IG9uIHRoZSBob3N0IG1kLXBvcG92ZXIgZWxlbWVudCBhbmQgYXBwbGllcyB0aGVtIG9uIHRoZVxuICAgKiBwb3BvdmVyIHRlbXBsYXRlIHRoYXQgZGlzcGxheXMgaW4gdGhlIG92ZXJsYXkgY29udGFpbmVyLiAgT3RoZXJ3aXNlLCBpdCdzIGRpZmZpY3VsdFxuICAgKiB0byBzdHlsZSB0aGUgY29udGFpbmluZyBwb3BvdmVyIGZyb20gb3V0c2lkZSB0aGUgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gY2xhc3NlcyBsaXN0IG9mIGNsYXNzIG5hbWVzXG4gICAqL1xuICBASW5wdXQoJ2NsYXNzJylcbiAgc2V0IHBhbmVsQ2xhc3MoY2xhc3Nlczogc3RyaW5nKSB7XG4gICAgaWYgKGNsYXNzZXMgJiYgY2xhc3Nlcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuX2NsYXNzTGlzdCA9IGNsYXNzZXMuc3BsaXQoJyAnKS5yZWR1Y2UoKG9iajogYW55LCBjbGFzc05hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICBvYmpbY2xhc3NOYW1lXSA9IHRydWU7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgICB9LCB7fSk7XG5cbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc05hbWUgPSAnJztcbiAgICAgIHRoaXMuc2V0UG9zaXRpb25DbGFzc2VzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIHRha2VzIGNsYXNzZXMgc2V0IG9uIHRoZSBob3N0IG1kLXBvcG92ZXIgZWxlbWVudCBhbmQgYXBwbGllcyB0aGVtIG9uIHRoZVxuICAgKiBwb3BvdmVyIHRlbXBsYXRlIHRoYXQgZGlzcGxheXMgaW4gdGhlIG92ZXJsYXkgY29udGFpbmVyLiAgT3RoZXJ3aXNlLCBpdCdzIGRpZmZpY3VsdFxuICAgKiB0byBzdHlsZSB0aGUgY29udGFpbmluZyBwb3BvdmVyIGZyb20gb3V0c2lkZSB0aGUgY29tcG9uZW50LlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYHBhbmVsQ2xhc3NgIGluc3RlYWQuXG4gICAqIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBjbGFzc0xpc3QoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wYW5lbENsYXNzO1xuICB9XG4gIHNldCBjbGFzc0xpc3QoY2xhc3Nlczogc3RyaW5nKSB7XG4gICAgdGhpcy5wYW5lbENsYXNzID0gY2xhc3NlcztcbiAgfVxuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHBvcG92ZXIgaXMgY2xvc2VkLiAqL1xuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBWaWV3Q2hpbGQoVGVtcGxhdGVSZWYpIHRlbXBsYXRlUmVmITogVGVtcGxhdGVSZWY8YW55PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9kaXI6IERpcmVjdGlvbmFsaXR5LFxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHVibGljIHpvbmU6IE5nWm9uZVxuICApIHtcbiAgICB0aGlzLnNldFBvc2l0aW9uQ2xhc3NlcygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZW1pdENsb3NlRXZlbnQoKTtcbiAgICB0aGlzLmNsb3NlZC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqIEhhbmRsZSBhIGtleWJvYXJkIGV2ZW50IGZyb20gdGhlIHBvcG92ZXIsIGRlbGVnYXRpbmcgdG8gdGhlIGFwcHJvcHJpYXRlIGFjdGlvbi4gKi9cbiAgX2hhbmRsZUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBzd2l0Y2ggKGV2ZW50LmtleUNvZGUpIHtcbiAgICAgIGNhc2UgRVNDQVBFOlxuICAgICAgICB0aGlzLl9lbWl0Q2xvc2VFdmVudCgpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZW1pdHMgYSBjbG9zZSBldmVudCB0byB3aGljaCB0aGUgdHJpZ2dlciBpcyBzdWJzY3JpYmVkLiBXaGVuIGVtaXR0ZWQsIHRoZVxuICAgKiB0cmlnZ2VyIHdpbGwgY2xvc2UgdGhlIHBvcG92ZXIuXG4gICAqL1xuICBfZW1pdENsb3NlRXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZWQuZW1pdCgpO1xuICB9XG5cbiAgLyoqIENsb3NlIHBvcG92ZXIgb24gY2xpY2sgaWYgY2xvc2VPblBhbmVsQ2xpY2sgaXMgdHJ1ZSAqL1xuICBvbkNsaWNrKCkge1xuICAgIGlmICh0aGlzLmNsb3NlT25QYW5lbENsaWNrKSB7XG4gICAgICB0aGlzLl9lbWl0Q2xvc2VFdmVudCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUT0RPOiBSZWZhY3RvciB3aGVuIEBhbmd1bGFyL2NkayBpbmNsdWRlcyBmZWF0dXJlIEkgbWVudGlvbmVkIG9uIGdpdGh1YiBzZWUgbGluayBiZWxvdy5cbiAgICogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvbWF0ZXJpYWwyL3B1bGwvNTQ5MyNpc3N1ZWNvbW1lbnQtMzEzMDg1MzIzXG4gICAqL1xuICAvKiogRGlzYWJsZXMgY2xvc2Ugb2YgcG9wb3ZlciB3aGVuIGxlYXZpbmcgdHJpZ2dlciBlbGVtZW50IGFuZCBtb3VzZSBvdmVyIHRoZSBwb3BvdmVyICovXG4gIG9uTW91c2VPdmVyKCkge1xuICAgIGlmICh0aGlzLnRyaWdnZXJFdmVudCA9PT0gJ2hvdmVyJykge1xuICAgICAgdGhpcy5jbG9zZURpc2FibGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgLyoqIEVuYWJsZXMgY2xvc2Ugb2YgcG9wb3ZlciB3aGVuIG1vdXNlIGxlYXZpbmcgcG9wb3ZlciBlbGVtZW50ICovXG4gIG9uTW91c2VMZWF2ZSgpIHtcbiAgICBpZiAodGhpcy50cmlnZ2VyRXZlbnQgPT09ICdob3ZlcicpIHtcbiAgICAgIHRoaXMuY2xvc2VEaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5fZW1pdENsb3NlRXZlbnQoKTtcbiAgICB9XG4gIH1cblxuICAvLyBUT0RPOiBSZWZhY3RvciBob3cgc3R5bGVzIGFyZSBzZXQgYW5kIHVwZGF0ZWQgb24gdGhlIGNvbXBvbmVudCwgdXNlIGJlc3QgcHJhY3RpY2VzLlxuICAvLyBUT0RPOiBJZiBhcnJvdyBsZWZ0IGFuZCByaWdodCBwb3NpdGlvbmluZyBpcyByZXF1ZXN0ZWQsIHNlZSBpZiBmbGV4IGRpcmVjdGlvbiBjYW4gYmUgdXNlZCB0byB3b3JrIHdpdGggb3JkZXIuXG4gIC8qKiBTZXRzIHRoZSBjdXJyZW50IHN0eWxlcyBmb3IgdGhlIHBvcG92ZXIgdG8gYWxsb3cgZm9yIGR5bmFtaWNhbGx5IGNoYW5naW5nIHNldHRpbmdzICovXG4gIHNldEN1cnJlbnRTdHlsZXMocG9zID0gdGhpcy5wb3NpdGlvbikge1xuICAgIGNvbnN0IGxlZnQgPVxuICAgICAgcG9zWzFdID09PSAnYWZ0ZXInXG4gICAgICAgID8gYCR7dGhpcy5hcnJvd09mZnNldFggLSB0aGlzLmFycm93V2lkdGggLyAyfXB4YFxuICAgICAgICA6IHBvc1sxXSA9PT0gJ2NlbnRlcidcbiAgICAgICAgPyBgY2FsYyg1MCUgLSAke3RoaXMuYXJyb3dXaWR0aCAvIDJ9cHgpYFxuICAgICAgICA6ICcnO1xuICAgIGNvbnN0IHJpZ2h0ID0gcG9zWzFdID09PSAnYmVmb3JlJyA/IGAke3RoaXMuYXJyb3dPZmZzZXRYIC0gdGhpcy5hcnJvd1dpZHRoIC8gMn1weGAgOiAnJztcblxuICAgIGNvbnN0IGJvdHRvbSA9XG4gICAgICBwb3NbMV0gPT09ICdhYm92ZSdcbiAgICAgICAgPyBgJHt0aGlzLmFycm93T2Zmc2V0WSAtIHRoaXMuYXJyb3dIZWlnaHQgLyAyfXB4YFxuICAgICAgICA6IHBvc1sxXSA9PT0gJ2NlbnRlcidcbiAgICAgICAgPyBgY2FsYyg1MCUgLSAke3RoaXMuYXJyb3dIZWlnaHQgLyAyfXB4KWBcbiAgICAgICAgOiAnJztcbiAgICBjb25zdCB0b3AgPSBwb3NbMV0gPT09ICdiZWxvdycgPyBgJHt0aGlzLmFycm93T2Zmc2V0WSAtIHRoaXMuYXJyb3dIZWlnaHQgLyAyfXB4YCA6ICcnO1xuXG4gICAgdGhpcy5wb3BvdmVyQXJyb3dTdHlsZXMgPVxuICAgICAgcG9zWzBdID09PSAnYWJvdmUnIHx8IHBvc1swXSA9PT0gJ2JlbG93J1xuICAgICAgICA/IHtcbiAgICAgICAgICAgIGxlZnQ6IHRoaXMuX2Rpci52YWx1ZSA9PT0gJ2x0cicgPyBsZWZ0IDogcmlnaHQsXG4gICAgICAgICAgICByaWdodDogdGhpcy5fZGlyLnZhbHVlID09PSAnbHRyJyA/IHJpZ2h0IDogbGVmdCxcbiAgICAgICAgICB9XG4gICAgICAgIDoge1xuICAgICAgICAgICAgdG9wLFxuICAgICAgICAgICAgYm90dG9tLFxuICAgICAgICAgIH07XG4gIH1cblxuICAvKipcbiAgICogSXQncyBuZWNlc3NhcnkgdG8gc2V0IHBvc2l0aW9uLWJhc2VkIGNsYXNzZXMgdG8gZW5zdXJlIHRoZSBwb3BvdmVyIHBhbmVsIGFuaW1hdGlvblxuICAgKiBmb2xkcyBvdXQgZnJvbSB0aGUgY29ycmVjdCBkaXJlY3Rpb24uXG4gICAqL1xuICBzZXRQb3NpdGlvbkNsYXNzZXMocG9zID0gdGhpcy5wb3NpdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX2NsYXNzTGlzdFsnbXR4LXBvcG92ZXItYmVmb3JlLWFib3ZlJ10gPSBwb3NbMF0gPT09ICdiZWZvcmUnICYmIHBvc1sxXSA9PT0gJ2Fib3ZlJztcbiAgICB0aGlzLl9jbGFzc0xpc3RbJ210eC1wb3BvdmVyLWJlZm9yZS1jZW50ZXInXSA9IHBvc1swXSA9PT0gJ2JlZm9yZScgJiYgcG9zWzFdID09PSAnY2VudGVyJztcbiAgICB0aGlzLl9jbGFzc0xpc3RbJ210eC1wb3BvdmVyLWJlZm9yZS1iZWxvdyddID0gcG9zWzBdID09PSAnYmVmb3JlJyAmJiBwb3NbMV0gPT09ICdiZWxvdyc7XG4gICAgdGhpcy5fY2xhc3NMaXN0WydtdHgtcG9wb3Zlci1hZnRlci1hYm92ZSddID0gcG9zWzBdID09PSAnYWZ0ZXInICYmIHBvc1sxXSA9PT0gJ2Fib3ZlJztcbiAgICB0aGlzLl9jbGFzc0xpc3RbJ210eC1wb3BvdmVyLWFmdGVyLWNlbnRlciddID0gcG9zWzBdID09PSAnYWZ0ZXInICYmIHBvc1sxXSA9PT0gJ2NlbnRlcic7XG4gICAgdGhpcy5fY2xhc3NMaXN0WydtdHgtcG9wb3Zlci1hZnRlci1iZWxvdyddID0gcG9zWzBdID09PSAnYWZ0ZXInICYmIHBvc1sxXSA9PT0gJ2JlbG93JztcbiAgICB0aGlzLl9jbGFzc0xpc3RbJ210eC1wb3BvdmVyLWFib3ZlLWJlZm9yZSddID0gcG9zWzBdID09PSAnYWJvdmUnICYmIHBvc1sxXSA9PT0gJ2JlZm9yZSc7XG4gICAgdGhpcy5fY2xhc3NMaXN0WydtdHgtcG9wb3Zlci1hYm92ZS1jZW50ZXInXSA9IHBvc1swXSA9PT0gJ2Fib3ZlJyAmJiBwb3NbMV0gPT09ICdjZW50ZXInO1xuICAgIHRoaXMuX2NsYXNzTGlzdFsnbXR4LXBvcG92ZXItYWJvdmUtYWZ0ZXInXSA9IHBvc1swXSA9PT0gJ2Fib3ZlJyAmJiBwb3NbMV0gPT09ICdhZnRlcic7XG4gICAgdGhpcy5fY2xhc3NMaXN0WydtdHgtcG9wb3Zlci1iZWxvdy1iZWZvcmUnXSA9IHBvc1swXSA9PT0gJ2JlbG93JyAmJiBwb3NbMV0gPT09ICdiZWZvcmUnO1xuICAgIHRoaXMuX2NsYXNzTGlzdFsnbXR4LXBvcG92ZXItYmVsb3ctY2VudGVyJ10gPSBwb3NbMF0gPT09ICdiZWxvdycgJiYgcG9zWzFdID09PSAnY2VudGVyJztcbiAgICB0aGlzLl9jbGFzc0xpc3RbJ210eC1wb3BvdmVyLWJlbG93LWFmdGVyJ10gPSBwb3NbMF0gPT09ICdiZWxvdycgJiYgcG9zWzFdID09PSAnYWZ0ZXInO1xuICB9XG5cbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Nsb3NlT25QYW5lbENsaWNrOiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9jbG9zZU9uQmFja2Ryb3BDbGljazogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZGlzYWJsZUFuaW1hdGlvbjogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZm9jdXNUcmFwRW5hYmxlZDogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZm9jdXNUcmFwQXV0b0NhcHR1cmVFbmFibGVkOiBCb29sZWFuSW5wdXQ7XG59XG4iLCI8bmctdGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cIm10eC1wb3BvdmVyLXBhbmVsIG1hdC1lbGV2YXRpb24tejhcIiByb2xlPVwiZGlhbG9nXCJcclxuICAgICAgIFtuZ0NsYXNzXT1cIl9jbGFzc0xpc3RcIlxyXG4gICAgICAgW25nU3R5bGVdPVwicG9wb3ZlclBhbmVsU3R5bGVzXCJcclxuICAgICAgIChrZXlkb3duKT1cIl9oYW5kbGVLZXlkb3duKCRldmVudClcIlxyXG4gICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soKVwiXHJcbiAgICAgICAobW91c2VvdmVyKT1cIm9uTW91c2VPdmVyKClcIlxyXG4gICAgICAgKG1vdXNlbGVhdmUpPVwib25Nb3VzZUxlYXZlKClcIlxyXG4gICAgICAgW0AuZGlzYWJsZWRdPVwiZGlzYWJsZUFuaW1hdGlvblwiXHJcbiAgICAgICBbQHRyYW5zZm9ybVBvcG92ZXJdPVwiJ2VudGVyJ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm10eC1wb3BvdmVyLWRpcmVjdGlvbi1hcnJvd1wiIFtuZ1N0eWxlXT1cInBvcG92ZXJBcnJvd1N0eWxlc1wiPjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm10eC1wb3BvdmVyLWNvbnRlbnRcIlxyXG4gICAgICAgICBbbmdTdHlsZV09XCJwb3BvdmVyQ29udGVudFN0eWxlc1wiXHJcbiAgICAgICAgIFtjZGtUcmFwRm9jdXNdPVwiZm9jdXNUcmFwRW5hYmxlZFwiXHJcbiAgICAgICAgIFtjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZV09XCJmb2N1c1RyYXBBdXRvQ2FwdHVyZUVuYWJsZWRcIj5cclxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
330
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvcG9wb3Zlci9wb3BvdmVyLnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh0ZW5zaW9ucy9wb3BvdmVyL3BvcG92ZXIuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBRWpCLHVCQUF1QixFQUN2QixXQUFXLEVBRVgsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFRL0MsT0FBTyxFQUNMLG1DQUFtQyxFQUNuQyxpQ0FBaUMsR0FDbEMsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFXeEQsTUFBTSxPQUFPLFVBQVU7SUF3T3JCLFlBQ3NCLElBQW9CLEVBQ2hDLFdBQXVCLEVBQ3hCLElBQVk7UUFGQyxTQUFJLEdBQUosSUFBSSxDQUFnQjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN4QixTQUFJLEdBQUosSUFBSSxDQUFRO1FBMU9LLFNBQUksR0FBRyxRQUFRLENBQUM7UUFFMUMscUVBQXFFO1FBQzdELGNBQVMsR0FBdUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbkQsa0JBQWEsR0FBMkIsT0FBTyxDQUFDO1FBQ2hELG9CQUFlLEdBQTZCLFlBQVksQ0FBQztRQUN6RCxnQkFBVyxHQUFHLEdBQUcsQ0FBQztRQUNsQixnQkFBVyxHQUFHLEdBQUcsQ0FBQztRQUNsQixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQixrQkFB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VTtrQkFUdEIsU0FBUzsrQkFDRSxhQUFhLG1CQUdOLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksY0FDekIsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUNwQixZQUFZOzswQkEyT25CLFFBQVE7MEZBeE9lLElBQUk7c0JBQTdCLFdBQVc7dUJBQUMsV0FBVztnQkEyQ3BCLFFBQVE7c0JBRFgsS0FBSztnQkFpQkYsWUFBWTtzQkFEZixLQUFLO2dCQVVGLGNBQWM7c0JBRGpCLEtBQUs7Z0JBVUYsVUFBVTtzQkFEYixLQUFLO2dCQVVGLFVBQVU7c0JBRGIsS0FBSztnQkFVRixPQUFPO3NCQURWLEtBQUs7Z0JBVUYsT0FBTztzQkFEVixLQUFLO2dCQVVGLFlBQVk7c0JBRGYsS0FBSztnQkFVRixZQUFZO3NCQURmLEtBQUs7Z0JBVUYsVUFBVTtzQkFEYixLQUFLO2dCQVVGLFdBQVc7c0JBRGQsS0FBSztnQkFVRixpQkFBaUI7c0JBRHBCLEtBQUs7Z0JBVUYsb0JBQW9CO3NCQUR2QixLQUFLO2dCQVVGLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFVRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBVUYsMkJBQTJCO3NCQUQ5QixLQUFLO2dCQWVGLFVBQVU7c0JBRGIsS0FBSzt1QkFBQyxPQUFPO2dCQXFCVixTQUFTO3NCQURaLEtBQUs7Z0JBU0ksTUFBTTtzQkFBZixNQUFNO2dCQUVpQixXQUFXO3NCQUFsQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgRWxlbWVudFJlZixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIEhvc3RCaW5kaW5nLFxuICBOZ1pvbmUsXG4gIE9wdGlvbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBFU0NBUEUgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5cbmltcG9ydCB7XG4gIE10eFBvcG92ZXJUcmlnZ2VyRXZlbnQsXG4gIE10eFBvcG92ZXJTY3JvbGxTdHJhdGVneSxcbiAgTXR4UG9wb3ZlclBvc2l0aW9uLFxufSBmcm9tICcuL3BvcG92ZXItdHlwZXMnO1xuaW1wb3J0IHtcbiAgdGhyb3dNdHhQb3BvdmVySW52YWxpZFBvc2l0aW9uU3RhcnQsXG4gIHRocm93TXR4UG9wb3ZlckludmFsaWRQb3NpdGlvbkVuZCxcbn0gZnJvbSAnLi9wb3BvdmVyLWVycm9ycyc7XG5pbXBvcnQgeyBNdHhQb3BvdmVyUGFuZWwgfSBmcm9tICcuL3BvcG92ZXItaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1Qb3BvdmVyIH0gZnJvbSAnLi9wb3BvdmVyLWFuaW1hdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdHgtcG9wb3ZlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wb3BvdmVyLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wb3BvdmVyLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGFuaW1hdGlvbnM6IFt0cmFuc2Zvcm1Qb3BvdmVyXSxcbiAgZXhwb3J0QXM6ICdtdHhQb3BvdmVyJyxcbn0pXG5leHBvcnQgY2xhc3MgTXR4UG9wb3ZlciBpbXBsZW1lbnRzIE10eFBvcG92ZXJQYW5lbCwgT25EZXN0cm95IHtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlID0gJ2RpYWxvZyc7XG5cbiAgLyoqIFNldHRpbmdzIGZvciBwb3BvdmVyLCB2aWV3IHNldHRlcnMgYW5kIGdldHRlcnMgZm9yIG1vcmUgZGV0YWlsICovXG4gIHByaXZhdGUgX3Bvc2l0aW9uOiBNdHhQb3BvdmVyUG9zaXRpb24gPSBbJ2JlbG93JywgJ2FmdGVyJ107XG4gIHByaXZhdGUgX3RyaWdnZXJFdmVudDogTXR4UG9wb3ZlclRyaWdnZXJFdmVudCA9ICdob3Zlcic7XG4gIHByaXZhdGUgX3Njcm9sbFN0cmF0ZWd5OiBNdHhQb3BvdmVyU2Nyb2xsU3RyYXRlZ3kgPSAncmVwb3NpdGlvbic7XG4gIHByaXZhdGUgX2VudGVyRGVsYXkgPSAxMDA7XG4gIHByaXZhdGUgX2xlYXZlRGVsYXkgPSAxMDA7XG4gIHByaXZhdGUgX3BhbmVsT2Zmc2V0WCA9IDA7XG4gIHByaXZhdGUgX3BhbmVsT2Zmc2V0WSA9IDA7XG4gIHByaXZhdGUgX2Nsb3NlT25QYW5lbENsaWNrID0gZmFsc2U7XG4gIHByaXZhdGUgX2Nsb3NlT25CYWNrZHJvcENsaWNrID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfZGlzYWJsZUFuaW1hdGlvbiA9IGZhbHNlO1xuICBwcml2YXRlIF9mb2N1c1RyYXBFbmFibGVkID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfZm9jdXNUcmFwQXV0b0NhcHR1cmVFbmFibGVkID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfYXJyb3dPZmZzZXRYID0gMjA7XG4gIHByaXZhdGUgX2Fycm93T2Zmc2V0WSA9IDIwO1xuICBwcml2YXRlIF9hcnJvd1dpZHRoID0gMTY7XG4gIHByaXZhdGUgX2Fycm93SGVpZ2h0ID0gMTY7XG5cbiAgLyoqIENvbmZpZyBvYmplY3QgdG8gYmUgcGFzc2VkIGludG8gdGhlIHBvcG92ZXIncyBuZ0NsYXNzICovXG4gIF9jbGFzc0xpc3Q6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG5cbiAgLyoqIFdoZXRoZXIgcG9wb3ZlcidzIGB0YXJnZXRFbGVtZW50YCBpcyBkZWZpbmVkICovXG4gIHB1YmxpYyBjb250YWluZXJQb3NpdGlvbmluZyA9IGZhbHNlO1xuXG4gIC8qKiBDbG9zaW5nIGRpc2FibGVkIG9uIHBvcG92ZXIgKi9cbiAgcHVibGljIGNsb3NlRGlzYWJsZWQgPSBmYWxzZTtcblxuICAvKiogQ29uZmlnIG9iamVjdCB0byBiZSBwYXNzZWQgaW50byB0aGUgcG9wb3ZlcidzIGFycm93IG5nU3R5bGUgKi9cbiAgcHVibGljIHBvcG92ZXJQYW5lbFN0eWxlcyE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIC8qKiBDb25maWcgb2JqZWN0IHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBwb3BvdmVyJ3MgYXJyb3cgbmdTdHlsZSAqL1xuICBwdWJsaWMgcG9wb3ZlckFycm93U3R5bGVzITogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgLyoqIENvbmZpZyBvYmplY3QgdG8gYmUgcGFzc2VkIGludG8gdGhlIHBvcG92ZXIncyBjb250ZW50IG5nU3R5bGUgKi9cbiAgcHVibGljIHBvcG92ZXJDb250ZW50U3R5bGVzITogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgLyoqIEVtaXRzIHRoZSBjdXJyZW50IGFuaW1hdGlvbiBzdGF0ZSB3aGVuZXZlciBpdCBjaGFuZ2VzLiAqL1xuICBfb25BbmltYXRpb25TdGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QW5pbWF0aW9uRXZlbnQ+KCk7XG5cbiAgLyoqIFBvc2l0aW9uIG9mIHRoZSBwb3BvdmVyLiAqL1xuICBASW5wdXQoKVxuICBnZXQgcG9zaXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uO1xuICB9XG4gIHNldCBwb3NpdGlvbih2YWx1ZTogTXR4UG9wb3ZlclBvc2l0aW9uKSB7XG4gICAgaWYgKCFbJ2JlZm9yZScsICdhZnRlcicsICdhYm92ZScsICdiZWxvdyddLmluY2x1ZGVzKHZhbHVlWzBdKSkge1xuICAgICAgdGhyb3dNdHhQb3BvdmVySW52YWxpZFBvc2l0aW9uU3RhcnQoKTtcbiAgICB9XG4gICAgaWYgKCFbJ2JlZm9yZScsICdhZnRlcicsICdhYm92ZScsICdiZWxvdycsICdjZW50ZXInXS5pbmNsdWRlcyh2YWx1ZVsxXSkpIHtcbiAgICAgIHRocm93TXR4UG9wb3ZlckludmFsaWRQb3NpdGlvbkVuZCgpO1xuICAgIH1cbiAgICB0aGlzLl9wb3NpdGlvbiA9IHZhbHVlO1xuICAgIHRoaXMuc2V0UG9zaXRpb25DbGFzc2VzKCk7XG4gIH1cblxuICAvKiogUG9wb3ZlciB0cmlnZ2VyIGV2ZW50ICovXG4gIEBJbnB1dCgpXG4gIGdldCB0cmlnZ2VyRXZlbnQoKTogTXR4UG9wb3ZlclRyaWdnZXJFdmVudCB7XG4gICAgcmV0dXJuIHRoaXMuX3RyaWdnZXJFdmVudDtcbiAgfVxuICBzZXQgdHJpZ2dlckV2ZW50KHZhbHVlOiBNdHhQb3BvdmVyVHJpZ2dlckV2ZW50KSB7XG4gICAgdGhpcy5fdHJpZ2dlckV2ZW50ID0gdmFsdWU7XG4gIH1cblxuICAvKiogUG9wb3ZlciBzY3JvbGwgc3RyYXRlZ3kgKi9cbiAgQElucHV0KClcbiAgZ2V0IHNjcm9sbFN0cmF0ZWd5KCk6IE10eFBvcG92ZXJTY3JvbGxTdHJhdGVneSB7XG4gICAgcmV0dXJuIHRoaXMuX3Njcm9sbFN0cmF0ZWd5O1xuICB9XG4gIHNldCBzY3JvbGxTdHJhdGVneSh2YWx1ZTogTXR4UG9wb3ZlclNjcm9sbFN0cmF0ZWd5KSB7XG4gICAgdGhpcy5fc2Nyb2xsU3RyYXRlZ3kgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKiBQb3BvdmVyIGVudGVyIGRlbGF5ICovXG4gIEBJbnB1dCgpXG4gIGdldCBlbnRlckRlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGVyRGVsYXk7XG4gIH1cbiAgc2V0IGVudGVyRGVsYXkodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2VudGVyRGVsYXkgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKiBQb3BvdmVyIGxlYXZlIGRlbGF5ICovXG4gIEBJbnB1dCgpXG4gIGdldCBsZWF2ZURlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2xlYXZlRGVsYXk7XG4gIH1cbiAgc2V0IGxlYXZlRGVsYXkodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2xlYXZlRGVsYXkgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKiBQb3BvdmVyIHRhcmdldCBvZmZzZXQgeCAqL1xuICBASW5wdXQoKVxuICBnZXQgeE9mZnNldCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9wYW5lbE9mZnNldFg7XG4gIH1cbiAgc2V0IHhPZmZzZXQodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX3BhbmVsT2Zmc2V0WCA9IHZhbHVlO1xuICB9XG5cbiAgLyoqIFBvcG92ZXIgdGFyZ2V0IG9mZnNldCB5ICovXG4gIEBJbnB1dCgpXG4gIGdldCB5T2Zmc2V0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3BhbmVsT2Zmc2V0WTtcbiAgfVxuICBzZXQgeU9mZnNldCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fcGFuZWxPZmZzZXRZID0gdmFsdWU7XG4gIH1cblxuICAvKiogUG9wb3ZlciBhcnJvdyBvZmZzZXQgeCAqL1xuICBASW5wdXQoKVxuICBnZXQgYXJyb3dPZmZzZXRYKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2Fycm93T2Zmc2V0WDtcbiAgfVxuICBzZXQgYXJyb3dPZmZzZXRYKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9hcnJvd09mZnNldFggPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKiBQb3BvdmVyIGFycm93IG9mZnNldCB5ICovXG4gIEBJbnB1dCgpXG4gIGdldCBhcnJvd09mZnNldFkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fYXJyb3dPZmZzZXRZO1xuICB9XG4gIHNldCBhcnJvd09mZnNldFkodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2Fycm93T2Zmc2V0WSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqIFBvcG92ZXIgYXJyb3cgd2lkdGggKi9cbiAgQElucHV0KClcbiAgZ2V0IGFycm93V2lkdGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fYXJyb3dXaWR0aDtcbiAgfVxuICBzZXQgYXJyb3dXaWR0aCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fYXJyb3dXaWR0aCA9IHZhbHVlO1xuICB9XG5cbiAgLyoqIFBvcG92ZXIgYXJyb3cgaGVpZ2h0ICovXG4gIEBJbnB1dCgpXG4gIGdldCBhcnJvd0hlaWdodCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9hcnJvd0hlaWdodDtcbiAgfVxuICBzZXQgYXJyb3dIZWlnaHQodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2Fycm93SGVpZ2h0ID0gdmFsdWU7XG4gIH1cblxuICAvKiogUG9wb3ZlciBjbG9zZSBvbiBjb250YWluZXIgY2xpY2sgKi9cbiAgQElucHV0KClcbiAgZ2V0IGNsb3NlT25QYW5lbENsaWNrKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jbG9zZU9uUGFuZWxDbGljaztcbiAgfVxuICBzZXQgY2xvc2VPblBhbmVsQ2xpY2sodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9jbG9zZU9uUGFuZWxDbGljayA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICAvKiogUG9wb3ZlciBjbG9zZSBvbiBiYWNrZHJvcCBjbGljayAqL1xuICBASW5wdXQoKVxuICBnZXQgY2xvc2VPbkJhY2tkcm9wQ2xpY2soKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrO1xuICB9XG4gIHNldCBjbG9zZU9uQmFja2Ryb3BDbGljayh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBEaXNhYmxlIGFuaW1hdGlvbnMgb2YgcG9wb3ZlciBhbmQgYWxsIGNoaWxkIGVsZW1lbnRzICovXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlQW5pbWF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlQW5pbWF0aW9uO1xuICB9XG4gIHNldCBkaXNhYmxlQW5pbWF0aW9uKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZUFuaW1hdGlvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICAvKiogUG9wb3ZlciBmb2N1cyB0cmFwIHVzaW5nIGNka1RyYXBGb2N1cyAqL1xuICBASW5wdXQoKVxuICBnZXQgZm9jdXNUcmFwRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZm9jdXNUcmFwRW5hYmxlZDtcbiAgfVxuICBzZXQgZm9jdXNUcmFwRW5hYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2ZvY3VzVHJhcEVuYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgLyoqIFBvcG92ZXIgZm9jdXMgdHJhcCBhdXRvIGNhcHR1cmUgdXNpbmcgY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmUgKi9cbiAgQElucHV0KClcbiAgZ2V0IGZvY3VzVHJhcEF1dG9DYXB0dXJlRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZm9jdXNUcmFwQXV0b0NhcHR1cmVFbmFibGVkO1xuICB9XG4gIHNldCBmb2N1c1RyYXBBdXRvQ2FwdHVyZUVuYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9mb2N1c1RyYXBBdXRvQ2FwdHVyZUVuYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIHRha2VzIGNsYXNzZXMgc2V0IG9uIHRoZSBob3N0IG1kLXBvcG92ZXIgZWxlbWVudCBhbmQgYXBwbGllcyB0aGVtIG9uIHRoZVxuICAgKiBwb3BvdmVyIHRlbXBsYXRlIHRoYXQgZGlzcGxheXMgaW4gdGhlIG92ZXJsYXkgY29udGFpbmVyLiAgT3RoZXJ3aXNlLCBpdCdzIGRpZmZpY3VsdFxuICAgKiB0byBzdHlsZSB0aGUgY29udGFpbmluZyBwb3BvdmVyIGZyb20gb3V0c2lkZSB0aGUgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gY2xhc3NlcyBsaXN0IG9mIGNsYXNzIG5hbWVzXG4gICAqL1xuICBASW5wdXQoJ2NsYXNzJylcbiAgc2V0IHBhbmVsQ2xhc3MoY2xhc3Nlczogc3RyaW5nKSB7XG4gICAgaWYgKGNsYXNzZXMgJiYgY2xhc3Nlcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuX2NsYXNzTGlzdCA9IGNsYXNzZXMuc3BsaXQoJyAnKS5yZWR1Y2UoKG9iajogYW55LCBjbGFzc05hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICBvYmpbY2xhc3NOYW1lXSA9IHRydWU7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgICB9LCB7fSk7XG5cbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc05hbWUgPSAnJztcbiAgICAgIHRoaXMuc2V0UG9zaXRpb25DbGFzc2VzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIHRha2VzIGNsYXNzZXMgc2V0IG9uIHRoZSBob3N0IG1kLXBvcG92ZXIgZWxlbWVudCBhbmQgYXBwbGllcyB0aGVtIG9uIHRoZVxuICAgKiBwb3BvdmVyIHRlbXBsYXRlIHRoYXQgZGlzcGxheXMgaW4gdGhlIG92ZXJsYXkgY29udGFpbmVyLiAgT3RoZXJ3aXNlLCBpdCdzIGRpZmZpY3VsdFxuICAgKiB0byBzdHlsZSB0aGUgY29udGFpbmluZyBwb3BvdmVyIGZyb20gb3V0c2lkZSB0aGUgY29tcG9uZW50LlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYHBhbmVsQ2xhc3NgIGluc3RlYWQuXG4gICAqIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBjbGFzc0xpc3QoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wYW5lbENsYXNzO1xuICB9XG4gIHNldCBjbGFzc0xpc3QoY2xhc3Nlczogc3RyaW5nKSB7XG4gICAgdGhpcy5wYW5lbENsYXNzID0gY2xhc3NlcztcbiAgfVxuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHBvcG92ZXIgaXMgY2xvc2VkLiAqL1xuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBWaWV3Q2hpbGQoVGVtcGxhdGVSZWYpIHRlbXBsYXRlUmVmITogVGVtcGxhdGVSZWY8YW55PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9kaXI6IERpcmVjdGlvbmFsaXR5LFxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHVibGljIHpvbmU6IE5nWm9uZVxuICApIHtcbiAgICB0aGlzLnNldFBvc2l0aW9uQ2xhc3NlcygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZW1pdENsb3NlRXZlbnQoKTtcbiAgICB0aGlzLmNsb3NlZC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqIEhhbmRsZSBhIGtleWJvYXJkIGV2ZW50IGZyb20gdGhlIHBvcG92ZXIsIGRlbGVnYXRpbmcgdG8gdGhlIGFwcHJvcHJpYXRlIGFjdGlvbi4gKi9cbiAgX2hhbmRsZUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBzd2l0Y2ggKGV2ZW50LmtleUNvZGUpIHtcbiAgICAgIGNhc2UgRVNDQVBFOlxuICAgICAgICB0aGlzLl9lbWl0Q2xvc2VFdmVudCgpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZW1pdHMgYSBjbG9zZSBldmVudCB0byB3aGljaCB0aGUgdHJpZ2dlciBpcyBzdWJzY3JpYmVkLiBXaGVuIGVtaXR0ZWQsIHRoZVxuICAgKiB0cmlnZ2VyIHdpbGwgY2xvc2UgdGhlIHBvcG92ZXIuXG4gICAqL1xuICBfZW1pdENsb3NlRXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZWQuZW1pdCgpO1xuICB9XG5cbiAgLyoqIENsb3NlIHBvcG92ZXIgb24gY2xpY2sgaWYgY2xvc2VPblBhbmVsQ2xpY2sgaXMgdHJ1ZSAqL1xuICBvbkNsaWNrKCkge1xuICAgIGlmICh0aGlzLmNsb3NlT25QYW5lbENsaWNrKSB7XG4gICAgICB0aGlzLl9lbWl0Q2xvc2VFdmVudCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBEaXNhYmxlcyBjbG9zZSBvZiBwb3BvdmVyIHdoZW4gbGVhdmluZyB0cmlnZ2VyIGVsZW1lbnQgYW5kIG1vdXNlIG92ZXIgdGhlIHBvcG92ZXIgKi9cbiAgb25Nb3VzZU92ZXIoKSB7XG4gICAgaWYgKHRoaXMudHJpZ2dlckV2ZW50ID09PSAnaG92ZXInKSB7XG4gICAgICB0aGlzLmNsb3NlRGlzYWJsZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBFbmFibGVzIGNsb3NlIG9mIHBvcG92ZXIgd2hlbiBtb3VzZSBsZWF2aW5nIHBvcG92ZXIgZWxlbWVudCAqL1xuICBvbk1vdXNlTGVhdmUoKSB7XG4gICAgaWYgKHRoaXMudHJpZ2dlckV2ZW50ID09PSAnaG92ZXInKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZURpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2VtaXRDbG9zZUV2ZW50KCk7XG4gICAgICB9LCB0aGlzLmxlYXZlRGVsYXkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBTZXRzIHRoZSBjdXJyZW50IHN0eWxlcyBmb3IgdGhlIHBvcG92ZXIgdG8gYWxsb3cgZm9yIGR5bmFtaWNhbGx5IGNoYW5naW5nIHNldHRpbmdzICovXG4gIHNldEN1cnJlbnRTdHlsZXMocG9zID0gdGhpcy5wb3NpdGlvbikge1xuICAgIGNvbnN0IGxlZnQgPVxuICAgICAgcG9zWzFdID09PSAnYWZ0ZXInXG4gICAgICAgID8gYCR7dGhpcy5hcnJvd09mZnNldFggLSB0aGlzLmFycm93V2lkdGggLyAyfXB4YFxuICAgICAgICA6IHBvc1sxXSA9PT0gJ2NlbnRlcidcbiAgICAgICAgPyBgY2FsYyg1MCUgLSAke3RoaXMuYXJyb3dXaWR0aCAvIDJ9cHgpYFxuICAgICAgICA6ICcnO1xuICAgIGNvbnN0IHJpZ2h0ID0gcG9zWzFdID09PSAnYmVmb3JlJyA/IGAke3RoaXMuYXJyb3dPZmZzZXRYIC0gdGhpcy5hcnJvd1dpZHRoIC8gMn1weGAgOiAnJztcblxuICAgIGNvbnN0IGJvdHRvbSA9XG4gICAgICBwb3NbMV0gPT09ICdhYm92ZSdcbiAgICAgICAgPyBgJHt0aGlzLmFycm93T2Zmc2V0WSAtIHRoaXMuYXJyb3dIZWlnaHQgLyAyfXB4YFxuICAgICAgICA6IHBvc1sxXSA9PT0gJ2NlbnRlcidcbiAgICAgICAgPyBgY2FsYyg1MCUgLSAke3RoaXMuYXJyb3dIZWlnaHQgLyAyfXB4KWBcbiAgICAgICAgOiAnJztcbiAgICBjb25zdCB0b3AgPSBwb3NbMV0gPT09ICdiZWxvdycgPyBgJHt0aGlzLmFycm93T2Zmc2V0WSAtIHRoaXMuYXJyb3dIZWlnaHQgLyAyfXB4YCA6ICcnO1xuXG4gICAgdGhpcy5wb3BvdmVyQXJyb3dTdHlsZXMgPVxuICAgICAgcG9zWzBdID09PSAnYWJvdmUnIHx8IHBvc1swXSA9PT0gJ2JlbG93J1xuICAgICAgICA/IHtcbiAgICAgICAgICAgIGxlZnQ6IHRoaXMuX2Rpci52YWx1ZSA9PT0gJ2x0cicgPyBsZWZ0IDogcmlnaHQsXG4gICAgICAgICAgICByaWdodDogdGhpcy5fZGlyLnZhbHVlID09PSAnbHRyJyA/IHJpZ2h0IDogbGVmdCxcbiAgICAgICAgICB9XG4gICAgICAgIDoge1xuICAgICAgICAgICAgdG9wLFxuICAgICAgICAgICAgYm90dG9tLFxuICAgICAgICAgIH07XG4gIH1cblxuICAvKipcbiAgICogSXQncyBuZWNlc3NhcnkgdG8gc2V0IHBvc2l0aW9uLWJhc2VkIGNsYXNzZXMgdG8gZW5zdXJlIHRoZSBwb3BvdmVyIHBhbmVsIGFuaW1hdGlvblxuICAgKiBmb2xkcyBvdXQgZnJvbSB0aGUgY29ycmVjdCBkaXJlY3Rpb24uXG4gICAqL1xuICBzZXRQb3NpdGlvbkNsYXNzZXMocG9zID0gdGhpcy5wb3NpdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX2NsYXNzTGlzdFsnbXR4LXBvcG92ZXItYmVmb3JlLWFib3ZlJ10gPSBwb3NbMF0gPT09ICdiZWZvcmUnICYmIHBvc1sxXSA9PT0gJ2Fib3ZlJztcbiAgICB0aGlzLl9jbGFzc0xpc3RbJ210eC1wb3BvdmVyLWJlZm9yZS1jZW50ZXInXSA9IHBvc1swXSA9PT0gJ2JlZm9yZScgJiYgcG9zWzFdID09PSAnY2VudGVyJztcbiAgICB0aGlzLl9jbGFzc0xpc3RbJ210eC1wb3BvdmVyLWJlZm9yZS1iZWxvdyddID0gcG9zWzBdID09PSAnYmVmb3JlJyAmJiBwb3NbMV0gPT09ICdiZWxvdyc7XG4gICAgdGhpcy5fY2xhc3NMaXN0WydtdHgtcG9wb3Zlci1hZnRlci1hYm92ZSddID0gcG9zWzBdID09PSAnYWZ0ZXInICYmIHBvc1sxXSA9PT0gJ2Fib3ZlJztcbiAgICB0aGlzLl9jbGFzc0xpc3RbJ210eC1wb3BvdmVyLWFmdGVyLWNlbnRlciddID0gcG9zWzBdID09PSAnYWZ0ZXInICYmIHBvc1sxXSA9PT0gJ2NlbnRlcic7XG4gICAgdGhpcy5fY2xhc3NMaXN0WydtdHgtcG9wb3Zlci1hZnRlci1iZWxvdyddID0gcG9zWzBdID09PSAnYWZ0ZXInICYmIHBvc1sxXSA9PT0gJ2JlbG93JztcbiAgICB0aGlzLl9jbGFzc0xpc3RbJ210eC1wb3BvdmVyLWFib3ZlLWJlZm9yZSddID0gcG9zWzBdID09PSAnYWJvdmUnICYmIHBvc1sxXSA9PT0gJ2JlZm9yZSc7XG4gICAgdGhpcy5fY2xhc3NMaXN0WydtdHgtcG9wb3Zlci1hYm92ZS1jZW50ZXInXSA9IHBvc1swXSA9PT0gJ2Fib3ZlJyAmJiBwb3NbMV0gPT09ICdjZW50ZXInO1xuICAgIHRoaXMuX2NsYXNzTGlzdFsnbXR4LXBvcG92ZXItYWJvdmUtYWZ0ZXInXSA9IHBvc1swXSA9PT0gJ2Fib3ZlJyAmJiBwb3NbMV0gPT09ICdhZnRlcic7XG4gICAgdGhpcy5fY2xhc3NMaXN0WydtdHgtcG9wb3Zlci1iZWxvdy1iZWZvcmUnXSA9IHBvc1swXSA9PT0gJ2JlbG93JyAmJiBwb3NbMV0gPT09ICdiZWZvcmUnO1xuICAgIHRoaXMuX2NsYXNzTGlzdFsnbXR4LXBvcG92ZXItYmVsb3ctY2VudGVyJ10gPSBwb3NbMF0gPT09ICdiZWxvdycgJiYgcG9zWzFdID09PSAnY2VudGVyJztcbiAgICB0aGlzLl9jbGFzc0xpc3RbJ210eC1wb3BvdmVyLWJlbG93LWFmdGVyJ10gPSBwb3NbMF0gPT09ICdiZWxvdycgJiYgcG9zWzFdID09PSAnYWZ0ZXInO1xuICB9XG5cbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Nsb3NlT25QYW5lbENsaWNrOiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9jbG9zZU9uQmFja2Ryb3BDbGljazogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZGlzYWJsZUFuaW1hdGlvbjogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZm9jdXNUcmFwRW5hYmxlZDogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZm9jdXNUcmFwQXV0b0NhcHR1cmVFbmFibGVkOiBCb29sZWFuSW5wdXQ7XG59XG4iLCI8bmctdGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cIm10eC1wb3BvdmVyLXBhbmVsIG1hdC1lbGV2YXRpb24tejhcIiByb2xlPVwiZGlhbG9nXCJcclxuICAgICAgIFtuZ0NsYXNzXT1cIl9jbGFzc0xpc3RcIlxyXG4gICAgICAgW25nU3R5bGVdPVwicG9wb3ZlclBhbmVsU3R5bGVzXCJcclxuICAgICAgIChrZXlkb3duKT1cIl9oYW5kbGVLZXlkb3duKCRldmVudClcIlxyXG4gICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soKVwiXHJcbiAgICAgICAobW91c2VvdmVyKT1cIm9uTW91c2VPdmVyKClcIlxyXG4gICAgICAgKG1vdXNlbGVhdmUpPVwib25Nb3VzZUxlYXZlKClcIlxyXG4gICAgICAgW0AuZGlzYWJsZWRdPVwiZGlzYWJsZUFuaW1hdGlvblwiXHJcbiAgICAgICBbQHRyYW5zZm9ybVBvcG92ZXJdPVwiJ2VudGVyJ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm10eC1wb3BvdmVyLWRpcmVjdGlvbi1hcnJvd1wiIFtuZ1N0eWxlXT1cInBvcG92ZXJBcnJvd1N0eWxlc1wiPjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm10eC1wb3BvdmVyLWNvbnRlbnRcIlxyXG4gICAgICAgICBbbmdTdHlsZV09XCJwb3BvdmVyQ29udGVudFN0eWxlc1wiXHJcbiAgICAgICAgIFtjZGtUcmFwRm9jdXNdPVwiZm9jdXNUcmFwRW5hYmxlZFwiXHJcbiAgICAgICAgIFtjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZV09XCJmb2N1c1RyYXBBdXRvQ2FwdHVyZUVuYWJsZWRcIj5cclxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
package/fesm2015/mtxPopover.mjs
CHANGED
|
@@ -276,10 +276,6 @@ class MtxPopover {
|
|
|
276
276
|
this._emitCloseEvent();
|
|
277
277
|
}
|
|
278
278
|
}
|
|
279
|
-
/**
|
|
280
|
-
* TODO: Refactor when @angular/cdk includes feature I mentioned on github see link below.
|
|
281
|
-
* https://github.com/angular/material2/pull/5493#issuecomment-313085323
|
|
282
|
-
*/
|
|
283
279
|
/** Disables close of popover when leaving trigger element and mouse over the popover */
|
|
284
280
|
onMouseOver() {
|
|
285
281
|
if (this.triggerEvent === 'hover') {
|
|
@@ -289,12 +285,12 @@ class MtxPopover {
|
|
|
289
285
|
/** Enables close of popover when mouse leaving popover element */
|
|
290
286
|
onMouseLeave() {
|
|
291
287
|
if (this.triggerEvent === 'hover') {
|
|
292
|
-
|
|
293
|
-
|
|
288
|
+
setTimeout(() => {
|
|
289
|
+
this.closeDisabled = false;
|
|
290
|
+
this._emitCloseEvent();
|
|
291
|
+
}, this.leaveDelay);
|
|
294
292
|
}
|
|
295
293
|
}
|
|
296
|
-
// TODO: Refactor how styles are set and updated on the component, use best practices.
|
|
297
|
-
// TODO: If arrow left and right positioning is requested, see if flex direction can be used to work with order.
|
|
298
294
|
/** Sets the current styles for the popover to allow for dynamically changing settings */
|
|
299
295
|
setCurrentStyles(pos = this.position) {
|
|
300
296
|
const left = pos[1] === 'after'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mtxPopover.mjs","sources":["../../../projects/extensions/popover/popover-errors.ts","../../../projects/extensions/popover/popover-animations.ts","../../../projects/extensions/popover/popover.ts","../../../projects/extensions/popover/popover.html","../../../projects/extensions/popover/popover-trigger.ts","../../../projects/extensions/popover/popover-target.ts","../../../projects/extensions/popover/popover-module.ts","../../../projects/extensions/popover/mtxPopover.ts"],"sourcesContent":["/**\n * Throws an exception for the case when popover trigger doesn't have a valid mtx-popover instance\n */\nexport function throwMtxPopoverMissingError() {\n throw Error(`mtx-popover-trigger: must pass in an mtx-popover instance.\n\n Example:\n <mtx-popover #popover=\"mtxPopover\"></mtx-popover>\n <button [mtxPopoverTriggerFor]=\"popover\"></button>`);\n}\n\n/**\n * Throws an exception for the case when popover's mtxPopoverPosition[0] value isn't valid.\n * In other words, it doesn't match 'above', 'below', 'before' or 'after'.\n */\nexport function throwMtxPopoverInvalidPositionStart() {\n throw Error(`mtxPopoverPosition[0] value must be either 'above', 'below', 'before' or 'after'.\n Example: <mtx-popover [position]=\"['below', 'after']\" #popover=\"mtxPopover\"></mtx-popover>`);\n}\n\n/**\n * Throws an exception for the case when popover's mtxPopoverPosition[1] value isn't valid.\n * In other words, it doesn't match 'above', 'below', 'before', 'after' or 'center'.\n */\nexport function throwMtxPopoverInvalidPositionEnd() {\n throw Error(`mtxPopoverPosition[1] value must be either 'above', 'below', 'before', 'after' or 'center'.\n Example: <mtx-popover [position]=\"['below', 'after']\" #popover=\"mtxPopover\"></mtx-popover>`);\n}\n","import {\r\n trigger,\r\n state,\r\n style,\r\n animate,\r\n transition,\r\n AnimationTriggerMetadata,\r\n} from '@angular/animations';\r\n\r\n/**\r\n * Below are all the animations for the md-popover component.\r\n * Animation duration and timing values are based on AngularJS Material.\r\n */\r\n\r\n/**\r\n * This animation controls the popover panel's entry and exit from the page.\r\n *\r\n * When the popover panel is added to the DOM, it scales in and fades in its border.\r\n *\r\n * When the popover panel is removed from the DOM, it simply fades out after a brief\r\n * delay to display the ripple.\r\n */\r\n\r\nexport const transformPopover: AnimationTriggerMetadata = trigger('transformPopover', [\r\n state(\r\n 'enter',\r\n style({\r\n opacity: 1,\r\n transform: `scale(1)`,\r\n })\r\n ),\r\n transition('void => *', [\r\n style({\r\n opacity: 0,\r\n transform: `scale(0)`,\r\n }),\r\n animate(`200ms cubic-bezier(0.25, 0.8, 0.25, 1)`),\r\n ]),\r\n transition('* => void', [animate('50ms 100ms linear', style({ opacity: 0 }))]),\r\n]);\r\n","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n ElementRef,\n ChangeDetectionStrategy,\n HostBinding,\n NgZone,\n Optional,\n} from '@angular/core';\nimport { AnimationEvent } from '@angular/animations';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport { Directionality } from '@angular/cdk/bidi';\n\nimport {\n MtxPopoverTriggerEvent,\n MtxPopoverScrollStrategy,\n MtxPopoverPosition,\n} from './popover-types';\nimport {\n throwMtxPopoverInvalidPositionStart,\n throwMtxPopoverInvalidPositionEnd,\n} from './popover-errors';\nimport { MtxPopoverPanel } from './popover-interfaces';\nimport { transformPopover } from './popover-animations';\n\n@Component({\n selector: 'mtx-popover',\n templateUrl: './popover.html',\n styleUrls: ['./popover.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [transformPopover],\n exportAs: 'mtxPopover',\n})\nexport class MtxPopover implements MtxPopoverPanel, OnDestroy {\n @HostBinding('attr.role') role = 'dialog';\n\n /** Settings for popover, view setters and getters for more detail */\n private _position: MtxPopoverPosition = ['below', 'after'];\n private _triggerEvent: MtxPopoverTriggerEvent = 'hover';\n private _scrollStrategy: MtxPopoverScrollStrategy = 'reposition';\n private _enterDelay = 100;\n private _leaveDelay = 100;\n private _panelOffsetX = 0;\n private _panelOffsetY = 0;\n private _closeOnPanelClick = false;\n private _closeOnBackdropClick = true;\n private _disableAnimation = false;\n private _focusTrapEnabled = true;\n private _focusTrapAutoCaptureEnabled = true;\n private _arrowOffsetX = 20;\n private _arrowOffsetY = 20;\n private _arrowWidth = 16;\n private _arrowHeight = 16;\n\n /** Config object to be passed into the popover's ngClass */\n _classList: { [key: string]: boolean } = {};\n\n /** Whether popover's `targetElement` is defined */\n public containerPositioning = false;\n\n /** Closing disabled on popover */\n public closeDisabled = false;\n\n /** Config object to be passed into the popover's arrow ngStyle */\n public popoverPanelStyles!: Record<string, unknown>;\n\n /** Config object to be passed into the popover's arrow ngStyle */\n public popoverArrowStyles!: Record<string, unknown>;\n\n /** Config object to be passed into the popover's content ngStyle */\n public popoverContentStyles!: Record<string, unknown>;\n\n /** Emits the current animation state whenever it changes. */\n _onAnimationStateChange = new EventEmitter<AnimationEvent>();\n\n /** Position of the popover. */\n @Input()\n get position() {\n return this._position;\n }\n set position(value: MtxPopoverPosition) {\n if (!['before', 'after', 'above', 'below'].includes(value[0])) {\n throwMtxPopoverInvalidPositionStart();\n }\n if (!['before', 'after', 'above', 'below', 'center'].includes(value[1])) {\n throwMtxPopoverInvalidPositionEnd();\n }\n this._position = value;\n this.setPositionClasses();\n }\n\n /** Popover trigger event */\n @Input()\n get triggerEvent(): MtxPopoverTriggerEvent {\n return this._triggerEvent;\n }\n set triggerEvent(value: MtxPopoverTriggerEvent) {\n this._triggerEvent = value;\n }\n\n /** Popover scroll strategy */\n @Input()\n get scrollStrategy(): MtxPopoverScrollStrategy {\n return this._scrollStrategy;\n }\n set scrollStrategy(value: MtxPopoverScrollStrategy) {\n this._scrollStrategy = value;\n }\n\n /** Popover enter delay */\n @Input()\n get enterDelay(): number {\n return this._enterDelay;\n }\n set enterDelay(value: number) {\n this._enterDelay = value;\n }\n\n /** Popover leave delay */\n @Input()\n get leaveDelay(): number {\n return this._leaveDelay;\n }\n set leaveDelay(value: number) {\n this._leaveDelay = value;\n }\n\n /** Popover target offset x */\n @Input()\n get xOffset(): number {\n return this._panelOffsetX;\n }\n set xOffset(value: number) {\n this._panelOffsetX = value;\n }\n\n /** Popover target offset y */\n @Input()\n get yOffset(): number {\n return this._panelOffsetY;\n }\n set yOffset(value: number) {\n this._panelOffsetY = value;\n }\n\n /** Popover arrow offset x */\n @Input()\n get arrowOffsetX(): number {\n return this._arrowOffsetX;\n }\n set arrowOffsetX(value: number) {\n this._arrowOffsetX = value;\n }\n\n /** Popover arrow offset y */\n @Input()\n get arrowOffsetY(): number {\n return this._arrowOffsetY;\n }\n set arrowOffsetY(value: number) {\n this._arrowOffsetY = value;\n }\n\n /** Popover arrow width */\n @Input()\n get arrowWidth(): number {\n return this._arrowWidth;\n }\n set arrowWidth(value: number) {\n this._arrowWidth = value;\n }\n\n /** Popover arrow height */\n @Input()\n get arrowHeight(): number {\n return this._arrowHeight;\n }\n set arrowHeight(value: number) {\n this._arrowHeight = value;\n }\n\n /** Popover close on container click */\n @Input()\n get closeOnPanelClick(): boolean {\n return this._closeOnPanelClick;\n }\n set closeOnPanelClick(value: boolean) {\n this._closeOnPanelClick = coerceBooleanProperty(value);\n }\n\n /** Popover close on backdrop click */\n @Input()\n get closeOnBackdropClick(): boolean {\n return this._closeOnBackdropClick;\n }\n set closeOnBackdropClick(value: boolean) {\n this._closeOnBackdropClick = coerceBooleanProperty(value);\n }\n\n /** Disable animations of popover and all child elements */\n @Input()\n get disableAnimation(): boolean {\n return this._disableAnimation;\n }\n set disableAnimation(value: boolean) {\n this._disableAnimation = coerceBooleanProperty(value);\n }\n\n /** Popover focus trap using cdkTrapFocus */\n @Input()\n get focusTrapEnabled(): boolean {\n return this._focusTrapEnabled;\n }\n set focusTrapEnabled(value: boolean) {\n this._focusTrapEnabled = coerceBooleanProperty(value);\n }\n\n /** Popover focus trap auto capture using cdkTrapFocusAutoCapture */\n @Input()\n get focusTrapAutoCaptureEnabled(): boolean {\n return this._focusTrapAutoCaptureEnabled;\n }\n set focusTrapAutoCaptureEnabled(value: boolean) {\n this._focusTrapAutoCaptureEnabled = coerceBooleanProperty(value);\n }\n\n /**\n * This method takes classes set on the host md-popover element and applies them on the\n * popover template that displays in the overlay container. Otherwise, it's difficult\n * to style the containing popover from outside the component.\n * @param classes list of class names\n */\n @Input('class')\n set panelClass(classes: string) {\n if (classes && classes.length) {\n this._classList = classes.split(' ').reduce((obj: any, className: string) => {\n obj[className] = true;\n return obj;\n }, {});\n\n this._elementRef.nativeElement.className = '';\n this.setPositionClasses();\n }\n }\n\n /**\n * This method takes classes set on the host md-popover element and applies them on the\n * popover template that displays in the overlay container. Otherwise, it's difficult\n * to style the containing popover from outside the component.\n * @deprecated Use `panelClass` instead.\n * @breaking-change 8.0.0\n */\n @Input()\n get classList(): string {\n return this.panelClass;\n }\n set classList(classes: string) {\n this.panelClass = classes;\n }\n\n /** Event emitted when the popover is closed. */\n @Output() closed = new EventEmitter<void>();\n\n @ViewChild(TemplateRef) templateRef!: TemplateRef<any>;\n\n constructor(\n @Optional() private _dir: Directionality,\n private _elementRef: ElementRef,\n public zone: NgZone\n ) {\n this.setPositionClasses();\n }\n\n ngOnDestroy() {\n this._emitCloseEvent();\n this.closed.complete();\n }\n\n /** Handle a keyboard event from the popover, delegating to the appropriate action. */\n _handleKeydown(event: KeyboardEvent) {\n switch (event.keyCode) {\n case ESCAPE:\n this._emitCloseEvent();\n return;\n }\n }\n\n /**\n * This emits a close event to which the trigger is subscribed. When emitted, the\n * trigger will close the popover.\n */\n _emitCloseEvent(): void {\n this.closed.emit();\n }\n\n /** Close popover on click if closeOnPanelClick is true */\n onClick() {\n if (this.closeOnPanelClick) {\n this._emitCloseEvent();\n }\n }\n\n /**\n * TODO: Refactor when @angular/cdk includes feature I mentioned on github see link below.\n * https://github.com/angular/material2/pull/5493#issuecomment-313085323\n */\n /** Disables close of popover when leaving trigger element and mouse over the popover */\n onMouseOver() {\n if (this.triggerEvent === 'hover') {\n this.closeDisabled = true;\n }\n }\n /** Enables close of popover when mouse leaving popover element */\n onMouseLeave() {\n if (this.triggerEvent === 'hover') {\n this.closeDisabled = false;\n this._emitCloseEvent();\n }\n }\n\n // TODO: Refactor how styles are set and updated on the component, use best practices.\n // TODO: If arrow left and right positioning is requested, see if flex direction can be used to work with order.\n /** Sets the current styles for the popover to allow for dynamically changing settings */\n setCurrentStyles(pos = this.position) {\n const left =\n pos[1] === 'after'\n ? `${this.arrowOffsetX - this.arrowWidth / 2}px`\n : pos[1] === 'center'\n ? `calc(50% - ${this.arrowWidth / 2}px)`\n : '';\n const right = pos[1] === 'before' ? `${this.arrowOffsetX - this.arrowWidth / 2}px` : '';\n\n const bottom =\n pos[1] === 'above'\n ? `${this.arrowOffsetY - this.arrowHeight / 2}px`\n : pos[1] === 'center'\n ? `calc(50% - ${this.arrowHeight / 2}px)`\n : '';\n const top = pos[1] === 'below' ? `${this.arrowOffsetY - this.arrowHeight / 2}px` : '';\n\n this.popoverArrowStyles =\n pos[0] === 'above' || pos[0] === 'below'\n ? {\n left: this._dir.value === 'ltr' ? left : right,\n right: this._dir.value === 'ltr' ? right : left,\n }\n : {\n top,\n bottom,\n };\n }\n\n /**\n * It's necessary to set position-based classes to ensure the popover panel animation\n * folds out from the correct direction.\n */\n setPositionClasses(pos = this.position): void {\n this._classList['mtx-popover-before-above'] = pos[0] === 'before' && pos[1] === 'above';\n this._classList['mtx-popover-before-center'] = pos[0] === 'before' && pos[1] === 'center';\n this._classList['mtx-popover-before-below'] = pos[0] === 'before' && pos[1] === 'below';\n this._classList['mtx-popover-after-above'] = pos[0] === 'after' && pos[1] === 'above';\n this._classList['mtx-popover-after-center'] = pos[0] === 'after' && pos[1] === 'center';\n this._classList['mtx-popover-after-below'] = pos[0] === 'after' && pos[1] === 'below';\n this._classList['mtx-popover-above-before'] = pos[0] === 'above' && pos[1] === 'before';\n this._classList['mtx-popover-above-center'] = pos[0] === 'above' && pos[1] === 'center';\n this._classList['mtx-popover-above-after'] = pos[0] === 'above' && pos[1] === 'after';\n this._classList['mtx-popover-below-before'] = pos[0] === 'below' && pos[1] === 'before';\n this._classList['mtx-popover-below-center'] = pos[0] === 'below' && pos[1] === 'center';\n this._classList['mtx-popover-below-after'] = pos[0] === 'below' && pos[1] === 'after';\n }\n\n static ngAcceptInputType_closeOnPanelClick: BooleanInput;\n static ngAcceptInputType_closeOnBackdropClick: BooleanInput;\n static ngAcceptInputType_disableAnimation: BooleanInput;\n static ngAcceptInputType_focusTrapEnabled: BooleanInput;\n static ngAcceptInputType_focusTrapAutoCaptureEnabled: BooleanInput;\n}\n","<ng-template>\r\n <div class=\"mtx-popover-panel mat-elevation-z8\" role=\"dialog\"\r\n [ngClass]=\"_classList\"\r\n [ngStyle]=\"popoverPanelStyles\"\r\n (keydown)=\"_handleKeydown($event)\"\r\n (click)=\"onClick()\"\r\n (mouseover)=\"onMouseOver()\"\r\n (mouseleave)=\"onMouseLeave()\"\r\n [@.disabled]=\"disableAnimation\"\r\n [@transformPopover]=\"'enter'\">\r\n <div class=\"mtx-popover-direction-arrow\" [ngStyle]=\"popoverArrowStyles\"></div>\r\n <div class=\"mtx-popover-content\"\r\n [ngStyle]=\"popoverContentStyles\"\r\n [cdkTrapFocus]=\"focusTrapEnabled\"\r\n [cdkTrapFocusAutoCapture]=\"focusTrapAutoCaptureEnabled\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>\r\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n ViewContainerRef,\n HostListener,\n HostBinding,\n ChangeDetectorRef,\n} from '@angular/core';\n\nimport { isFakeMousedownFromScreenReader } from '@angular/cdk/a11y';\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport {\n Overlay,\n OverlayRef,\n OverlayConfig,\n HorizontalConnectionPos,\n VerticalConnectionPos,\n FlexibleConnectedPositionStrategy,\n ScrollStrategy,\n ConnectedPosition,\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\nimport { Subscription, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { MtxPopoverPanel, MtxTarget } from './popover-interfaces';\nimport {\n MtxPopoverTriggerEvent,\n MtxPopoverScrollStrategy,\n MtxPopoverPosition,\n MtxPopoverPositionStart,\n} from './popover-types';\nimport { throwMtxPopoverMissingError } from './popover-errors';\n\n/**\n * This directive is intended to be used in conjunction with an mtx-popover tag. It is\n * responsible for toggling the display of the provided popover instance.\n */\n\n@Directive({\n selector: '[mtxPopoverTriggerFor]',\n exportAs: 'mtxPopoverTrigger',\n})\nexport class MtxPopoverTrigger implements AfterViewInit, OnDestroy {\n @HostBinding('attr.aria-haspopup') ariaHaspopup = true;\n\n popoverOpened$ = new Subject<void>();\n popoverClosed$ = new Subject<void>();\n\n private _portal!: TemplatePortal<any>;\n private _overlayRef: OverlayRef | null = null;\n private _popoverOpen = false;\n private _halt = false;\n private _backdropSubscription!: Subscription;\n private _positionSubscription!: Subscription;\n private _detachmentsSubscription!: Subscription;\n\n private _mouseoverTimer: any;\n\n // tracking input type is necessary so it's possible to only auto-focus\n // the first item of the list when the popover is opened via the keyboard\n private _openedByMouse = false;\n\n private _onDestroy = new Subject<void>();\n\n /** References the popover instance that the trigger is associated with. */\n @Input('mtxPopoverTriggerFor') popover!: MtxPopoverPanel;\n\n /** References the popover target instance that the trigger is associated with. */\n @Input('mtxPopoverTargetAt') targetElement!: MtxTarget;\n\n /** Popover trigger event */\n @Input('mtxPopoverTriggerOn') triggerEvent!: MtxPopoverTriggerEvent;\n\n /** Event emitted when the associated popover is opened. */\n @Output() popoverOpened = new EventEmitter<void>();\n\n /** Event emitted when the associated popover is closed. */\n @Output() popoverClosed = new EventEmitter<void>();\n\n constructor(\n private _overlay: Overlay,\n public _elementRef: ElementRef,\n private _viewContainerRef: ViewContainerRef,\n @Optional() private _dir: Directionality,\n private _changeDetectorRef: ChangeDetectorRef\n ) {}\n\n ngAfterViewInit() {\n this._checkPopover();\n this._setCurrentConfig();\n this.popover.closed.subscribe(() => this.closePopover());\n }\n\n ngOnDestroy() {\n this.destroyPopover();\n }\n\n private _setCurrentConfig() {\n if (this.triggerEvent) {\n this.popover.triggerEvent = this.triggerEvent;\n }\n\n this.popover.setCurrentStyles();\n }\n\n /** Whether the popover is open. */\n get popoverOpen(): boolean {\n return this._popoverOpen;\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n if (this.popover.triggerEvent === 'click') {\n this.togglePopover();\n }\n }\n\n @HostListener('mouseenter', ['$event'])\n onMouseEnter(event: MouseEvent): void {\n this._halt = false;\n if (this.popover.triggerEvent === 'hover') {\n this._mouseoverTimer = setTimeout(() => {\n this.openPopover();\n }, this.popover.enterDelay);\n }\n }\n\n @HostListener('mouseleave', ['$event'])\n onMouseLeave(event: MouseEvent): void {\n if (this.popover.triggerEvent === 'hover') {\n if (this._mouseoverTimer) {\n clearTimeout(this._mouseoverTimer);\n this._mouseoverTimer = null;\n }\n if (this._popoverOpen) {\n setTimeout(() => {\n if (!this.popover.closeDisabled) {\n this.closePopover();\n }\n }, this.popover.leaveDelay);\n } else {\n this._halt = true;\n }\n }\n }\n\n /** Toggles the popover between the open and closed states. */\n togglePopover(): void {\n return this._popoverOpen ? this.closePopover() : this.openPopover();\n }\n\n /** Opens the popover. */\n openPopover(): void {\n if (!this._popoverOpen && !this._halt) {\n this._createOverlay().attach(this._portal);\n\n this._subscribeToBackdrop();\n this._subscribeToDetachments();\n\n this._initPopover();\n }\n }\n\n /** Closes the popover. */\n closePopover(): void {\n if (this._overlayRef) {\n this._overlayRef.detach();\n this._resetPopover();\n }\n\n this.destroyPopover();\n }\n\n /** Removes the popover from the DOM. */\n destroyPopover(): void {\n if (this._mouseoverTimer) {\n clearTimeout(this._mouseoverTimer);\n this._mouseoverTimer = null;\n }\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n this._cleanUpSubscriptions();\n }\n\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n /** Focuses the popover trigger. */\n focus() {\n this._elementRef.nativeElement.focus();\n }\n\n /** The text direction of the containing app. */\n get dir(): Direction {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n }\n\n /**\n * This method ensures that the popover closes when the overlay backdrop is clicked.\n * We do not use first() here because doing so would not catch clicks from within\n * the popover, and it would fail to unsubscribe properly. Instead, we unsubscribe\n * explicitly when the popover is closed or destroyed.\n */\n private _subscribeToBackdrop(): void {\n if (this._overlayRef) {\n /** Only subscribe to backdrop if trigger event is click */\n if (this.triggerEvent === 'click' && this.popover.closeOnBackdropClick === true) {\n this._overlayRef\n .backdropClick()\n .pipe(takeUntil(this.popoverClosed$), takeUntil(this._onDestroy))\n .subscribe(() => {\n this.popover._emitCloseEvent();\n });\n }\n }\n }\n\n private _subscribeToDetachments(): void {\n if (this._overlayRef) {\n this._overlayRef\n .detachments()\n .pipe(takeUntil(this.popoverClosed$), takeUntil(this._onDestroy))\n .subscribe(() => {\n this._setPopoverClosed();\n });\n }\n }\n\n /**\n * This method sets the popover state to open and focuses the first item if\n * the popover was opened via the keyboard.\n */\n private _initPopover(): void {\n this._setPopoverOpened();\n }\n\n /**\n * This method resets the popover when it's closed, most importantly restoring\n * focus to the popover trigger if the popover was opened via the keyboard.\n */\n private _resetPopover(): void {\n this._setPopoverClosed();\n\n // Focus only needs to be reset to the host element if the popover was opened\n // by the keyboard and manually shifted to the first popover item.\n if (!this._openedByMouse) {\n this.focus();\n }\n this._openedByMouse = false;\n }\n\n /** set state rather than toggle to support triggers sharing a popover */\n private _setPopoverOpened(): void {\n if (!this._popoverOpen) {\n this._popoverOpen = true;\n\n this.popoverOpened$.next();\n this.popoverOpened.emit();\n }\n }\n\n /** set state rather than toggle to support triggers sharing a popover */\n private _setPopoverClosed(): void {\n if (this._popoverOpen) {\n this._popoverOpen = false;\n\n this.popoverClosed$.next();\n this.popoverClosed.emit();\n }\n }\n\n /**\n * This method checks that a valid instance of MdPopover has been passed into\n * mdPopoverTriggerFor. If not, an exception is thrown.\n */\n private _checkPopover() {\n if (!this.popover) {\n throwMtxPopoverMissingError();\n }\n }\n\n /**\n * This method creates the overlay from the provided popover's template and saves its\n * OverlayRef so that it can be attached to the DOM when openPopover is called.\n */\n private _createOverlay(): OverlayRef {\n if (!this._overlayRef) {\n this._portal = new TemplatePortal(this.popover.templateRef, this._viewContainerRef);\n const config = this._getOverlayConfig();\n this._subscribeToPositions(config.positionStrategy as FlexibleConnectedPositionStrategy);\n this._overlayRef = this._overlay.create(config);\n }\n\n return this._overlayRef;\n }\n\n /**\n * This method builds the configuration object needed to create the overlay, the OverlayConfig.\n * @returns OverlayConfig\n */\n private _getOverlayConfig(): OverlayConfig {\n const overlayState = new OverlayConfig();\n overlayState.positionStrategy = this._getPosition();\n\n /** Display overlay backdrop if trigger event is click */\n if (this.triggerEvent === 'click') {\n overlayState.hasBackdrop = true;\n overlayState.backdropClass = 'cdk-overlay-transparent-backdrop';\n }\n\n overlayState.direction = this._dir;\n overlayState.scrollStrategy = this._getOverlayScrollStrategy(this.popover.scrollStrategy);\n\n return overlayState;\n }\n\n /**\n * This method returns the scroll strategy used by the cdk/overlay.\n */\n private _getOverlayScrollStrategy(strategy: MtxPopoverScrollStrategy): ScrollStrategy {\n switch (strategy) {\n case 'noop':\n return this._overlay.scrollStrategies.noop();\n case 'close':\n return this._overlay.scrollStrategies.close();\n case 'block':\n return this._overlay.scrollStrategies.block();\n case 'reposition':\n default:\n return this._overlay.scrollStrategies.reposition();\n }\n }\n\n /**\n * Listens to changes in the position of the overlay and sets the correct classes\n * on the popover based on the new position. This ensures the animation origin is always\n * correct, even if a fallback position is used for the overlay.\n */\n private _subscribeToPositions(position: FlexibleConnectedPositionStrategy): void {\n this._positionSubscription = position.positionChanges.subscribe(change => {\n const posX =\n change.connectionPair.overlayX === 'start'\n ? 'after'\n : change.connectionPair.overlayX === 'end'\n ? 'before'\n : 'center';\n const posY =\n change.connectionPair.overlayY === 'top'\n ? 'below'\n : change.connectionPair.overlayY === 'bottom'\n ? 'above'\n : 'center';\n\n const pos: MtxPopoverPosition =\n this.popover.position[0] === 'above' || this.popover.position[0] === 'below'\n ? [posY as MtxPopoverPositionStart, posX]\n : [posX as MtxPopoverPositionStart, posY];\n\n // required for ChangeDetectionStrategy.OnPush\n this._changeDetectorRef.markForCheck();\n\n this.popover.zone.run(() => {\n this.popover.setCurrentStyles(pos);\n this.popover.setPositionClasses(pos);\n });\n });\n }\n\n /**\n * This method builds the position strategy for the overlay, so the popover is properly connected\n * to the trigger.\n * @returns ConnectedPositionStrategy\n */\n private _getPosition(): FlexibleConnectedPositionStrategy {\n const [originX, origin2ndX, origin3rdX]: HorizontalConnectionPos[] =\n this.popover.position[0] === 'before' || this.popover.position[1] === 'after'\n ? ['start', 'center', 'end']\n : this.popover.position[0] === 'after' || this.popover.position[1] === 'before'\n ? ['end', 'center', 'start']\n : ['center', 'start', 'end'];\n\n const [originY, origin2ndY, origin3rdY]: VerticalConnectionPos[] =\n this.popover.position[0] === 'above' || this.popover.position[1] === 'below'\n ? ['top', 'center', 'bottom']\n : this.popover.position[0] === 'below' || this.popover.position[1] === 'above'\n ? ['bottom', 'center', 'top']\n : ['center', 'top', 'bottom'];\n\n const [overlayX, overlayFallbackX]: HorizontalConnectionPos[] =\n this.popover.position[0] === 'below' || this.popover.position[0] === 'above'\n ? [originX, originX]\n : this.popover.position[0] === 'before'\n ? ['end', 'start']\n : ['start', 'end'];\n\n const [overlayY, overlayFallbackY]: VerticalConnectionPos[] =\n this.popover.position[0] === 'before' || this.popover.position[0] === 'after'\n ? [originY, originY]\n : this.popover.position[0] === 'below'\n ? ['top', 'bottom']\n : ['bottom', 'top'];\n\n const originFallbackX = overlayX;\n const originFallbackY = overlayY;\n\n const offsetX =\n this.popover.xOffset && !isNaN(Number(this.popover.xOffset))\n ? Number(this.dir === 'ltr' ? this.popover.xOffset : -this.popover.xOffset)\n : 0;\n const offsetY =\n this.popover.yOffset && !isNaN(Number(this.popover.yOffset))\n ? Number(this.popover.yOffset)\n : 0;\n\n /**\n * For overriding position element, when `mtxPopoverTargetAt` has a valid element reference.\n * Useful for sticking popover to parent element and offsetting arrow to trigger element.\n * If undefined defaults to the trigger element reference.\n */\n let element = this._elementRef;\n if (typeof this.targetElement !== 'undefined') {\n this.popover.containerPositioning = true;\n element = this.targetElement._elementRef;\n }\n\n let positions: ConnectedPosition[] = [{ originX, originY, overlayX, overlayY }];\n\n if (this.popover.position[0] === 'above' || this.popover.position[0] === 'below') {\n positions = [\n { originX, originY, overlayX, overlayY, offsetY },\n { originX: origin2ndX, originY, overlayX: origin2ndX, overlayY, offsetY },\n { originX: origin3rdX, originY, overlayX: origin3rdX, overlayY, offsetY },\n {\n originX,\n originY: originFallbackY,\n overlayX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY,\n },\n {\n originX: origin2ndX,\n originY: originFallbackY,\n overlayX: origin2ndX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY,\n },\n {\n originX: origin3rdX,\n originY: originFallbackY,\n overlayX: origin3rdX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY,\n },\n ];\n }\n\n if (this.popover.position[0] === 'before' || this.popover.position[0] === 'after') {\n positions = [\n { originX, originY, overlayX, overlayY, offsetX },\n { originX, originY: origin2ndY, overlayX, overlayY: origin2ndY, offsetX },\n { originX, originY: origin3rdY, overlayX, overlayY: origin3rdY, offsetX },\n {\n originX: originFallbackX,\n originY,\n overlayX: overlayFallbackX,\n overlayY,\n offsetX: -offsetX,\n },\n {\n originX: originFallbackX,\n originY: origin2ndY,\n overlayX: overlayFallbackX,\n overlayY: origin2ndY,\n offsetX: -offsetX,\n },\n {\n originX: originFallbackX,\n originY: origin3rdY,\n overlayX: overlayFallbackX,\n overlayY: origin3rdY,\n offsetX: -offsetX,\n },\n ];\n }\n\n return this._overlay\n .position()\n .flexibleConnectedTo(element)\n .withLockedPosition()\n .withPositions(positions)\n .withDefaultOffsetX(offsetX)\n .withDefaultOffsetY(offsetY);\n }\n\n private _cleanUpSubscriptions(): void {\n if (this._backdropSubscription) {\n this._backdropSubscription.unsubscribe();\n }\n if (this._positionSubscription) {\n this._positionSubscription.unsubscribe();\n }\n if (this._detachmentsSubscription) {\n this._detachmentsSubscription.unsubscribe();\n }\n }\n\n @HostListener('mousedown', ['$event']) _handleMousedown(event: MouseEvent): void {\n if (event && !isFakeMousedownFromScreenReader(event)) {\n this._openedByMouse = true;\n }\n }\n}\n","import { Directive, ElementRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'mtx-popover-target, [mtxPopoverTarget]',\r\n exportAs: 'mtxPopoverTarget',\r\n})\r\nexport class MtxPopoverTarget {\r\n constructor(public _elementRef: ElementRef) {}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\n\r\nimport { MtxPopover } from './popover';\r\nimport { MtxPopoverTrigger } from './popover-trigger';\r\nimport { MtxPopoverTarget } from './popover-target';\r\n\r\n@NgModule({\r\n imports: [OverlayModule, CommonModule, A11yModule],\r\n exports: [MtxPopover, MtxPopoverTrigger, MtxPopoverTarget],\r\n declarations: [MtxPopover, MtxPopoverTrigger, MtxPopoverTarget],\r\n})\r\nexport class MtxPopoverModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mtxPopover.mjs","sources":["../../../projects/extensions/popover/popover-errors.ts","../../../projects/extensions/popover/popover-animations.ts","../../../projects/extensions/popover/popover.ts","../../../projects/extensions/popover/popover.html","../../../projects/extensions/popover/popover-trigger.ts","../../../projects/extensions/popover/popover-target.ts","../../../projects/extensions/popover/popover-module.ts","../../../projects/extensions/popover/mtxPopover.ts"],"sourcesContent":["/**\n * Throws an exception for the case when popover trigger doesn't have a valid mtx-popover instance\n */\nexport function throwMtxPopoverMissingError() {\n throw Error(`mtx-popover-trigger: must pass in an mtx-popover instance.\n\n Example:\n <mtx-popover #popover=\"mtxPopover\"></mtx-popover>\n <button [mtxPopoverTriggerFor]=\"popover\"></button>`);\n}\n\n/**\n * Throws an exception for the case when popover's mtxPopoverPosition[0] value isn't valid.\n * In other words, it doesn't match 'above', 'below', 'before' or 'after'.\n */\nexport function throwMtxPopoverInvalidPositionStart() {\n throw Error(`mtxPopoverPosition[0] value must be either 'above', 'below', 'before' or 'after'.\n Example: <mtx-popover [position]=\"['below', 'after']\" #popover=\"mtxPopover\"></mtx-popover>`);\n}\n\n/**\n * Throws an exception for the case when popover's mtxPopoverPosition[1] value isn't valid.\n * In other words, it doesn't match 'above', 'below', 'before', 'after' or 'center'.\n */\nexport function throwMtxPopoverInvalidPositionEnd() {\n throw Error(`mtxPopoverPosition[1] value must be either 'above', 'below', 'before', 'after' or 'center'.\n Example: <mtx-popover [position]=\"['below', 'after']\" #popover=\"mtxPopover\"></mtx-popover>`);\n}\n","import {\r\n trigger,\r\n state,\r\n style,\r\n animate,\r\n transition,\r\n AnimationTriggerMetadata,\r\n} from '@angular/animations';\r\n\r\n/**\r\n * Below are all the animations for the md-popover component.\r\n * Animation duration and timing values are based on AngularJS Material.\r\n */\r\n\r\n/**\r\n * This animation controls the popover panel's entry and exit from the page.\r\n *\r\n * When the popover panel is added to the DOM, it scales in and fades in its border.\r\n *\r\n * When the popover panel is removed from the DOM, it simply fades out after a brief\r\n * delay to display the ripple.\r\n */\r\n\r\nexport const transformPopover: AnimationTriggerMetadata = trigger('transformPopover', [\r\n state(\r\n 'enter',\r\n style({\r\n opacity: 1,\r\n transform: `scale(1)`,\r\n })\r\n ),\r\n transition('void => *', [\r\n style({\r\n opacity: 0,\r\n transform: `scale(0)`,\r\n }),\r\n animate(`200ms cubic-bezier(0.25, 0.8, 0.25, 1)`),\r\n ]),\r\n transition('* => void', [animate('50ms 100ms linear', style({ opacity: 0 }))]),\r\n]);\r\n","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n ElementRef,\n ChangeDetectionStrategy,\n HostBinding,\n NgZone,\n Optional,\n} from '@angular/core';\nimport { AnimationEvent } from '@angular/animations';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport { Directionality } from '@angular/cdk/bidi';\n\nimport {\n MtxPopoverTriggerEvent,\n MtxPopoverScrollStrategy,\n MtxPopoverPosition,\n} from './popover-types';\nimport {\n throwMtxPopoverInvalidPositionStart,\n throwMtxPopoverInvalidPositionEnd,\n} from './popover-errors';\nimport { MtxPopoverPanel } from './popover-interfaces';\nimport { transformPopover } from './popover-animations';\n\n@Component({\n selector: 'mtx-popover',\n templateUrl: './popover.html',\n styleUrls: ['./popover.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [transformPopover],\n exportAs: 'mtxPopover',\n})\nexport class MtxPopover implements MtxPopoverPanel, OnDestroy {\n @HostBinding('attr.role') role = 'dialog';\n\n /** Settings for popover, view setters and getters for more detail */\n private _position: MtxPopoverPosition = ['below', 'after'];\n private _triggerEvent: MtxPopoverTriggerEvent = 'hover';\n private _scrollStrategy: MtxPopoverScrollStrategy = 'reposition';\n private _enterDelay = 100;\n private _leaveDelay = 100;\n private _panelOffsetX = 0;\n private _panelOffsetY = 0;\n private _closeOnPanelClick = false;\n private _closeOnBackdropClick = true;\n private _disableAnimation = false;\n private _focusTrapEnabled = true;\n private _focusTrapAutoCaptureEnabled = true;\n private _arrowOffsetX = 20;\n private _arrowOffsetY = 20;\n private _arrowWidth = 16;\n private _arrowHeight = 16;\n\n /** Config object to be passed into the popover's ngClass */\n _classList: { [key: string]: boolean } = {};\n\n /** Whether popover's `targetElement` is defined */\n public containerPositioning = false;\n\n /** Closing disabled on popover */\n public closeDisabled = false;\n\n /** Config object to be passed into the popover's arrow ngStyle */\n public popoverPanelStyles!: Record<string, unknown>;\n\n /** Config object to be passed into the popover's arrow ngStyle */\n public popoverArrowStyles!: Record<string, unknown>;\n\n /** Config object to be passed into the popover's content ngStyle */\n public popoverContentStyles!: Record<string, unknown>;\n\n /** Emits the current animation state whenever it changes. */\n _onAnimationStateChange = new EventEmitter<AnimationEvent>();\n\n /** Position of the popover. */\n @Input()\n get position() {\n return this._position;\n }\n set position(value: MtxPopoverPosition) {\n if (!['before', 'after', 'above', 'below'].includes(value[0])) {\n throwMtxPopoverInvalidPositionStart();\n }\n if (!['before', 'after', 'above', 'below', 'center'].includes(value[1])) {\n throwMtxPopoverInvalidPositionEnd();\n }\n this._position = value;\n this.setPositionClasses();\n }\n\n /** Popover trigger event */\n @Input()\n get triggerEvent(): MtxPopoverTriggerEvent {\n return this._triggerEvent;\n }\n set triggerEvent(value: MtxPopoverTriggerEvent) {\n this._triggerEvent = value;\n }\n\n /** Popover scroll strategy */\n @Input()\n get scrollStrategy(): MtxPopoverScrollStrategy {\n return this._scrollStrategy;\n }\n set scrollStrategy(value: MtxPopoverScrollStrategy) {\n this._scrollStrategy = value;\n }\n\n /** Popover enter delay */\n @Input()\n get enterDelay(): number {\n return this._enterDelay;\n }\n set enterDelay(value: number) {\n this._enterDelay = value;\n }\n\n /** Popover leave delay */\n @Input()\n get leaveDelay(): number {\n return this._leaveDelay;\n }\n set leaveDelay(value: number) {\n this._leaveDelay = value;\n }\n\n /** Popover target offset x */\n @Input()\n get xOffset(): number {\n return this._panelOffsetX;\n }\n set xOffset(value: number) {\n this._panelOffsetX = value;\n }\n\n /** Popover target offset y */\n @Input()\n get yOffset(): number {\n return this._panelOffsetY;\n }\n set yOffset(value: number) {\n this._panelOffsetY = value;\n }\n\n /** Popover arrow offset x */\n @Input()\n get arrowOffsetX(): number {\n return this._arrowOffsetX;\n }\n set arrowOffsetX(value: number) {\n this._arrowOffsetX = value;\n }\n\n /** Popover arrow offset y */\n @Input()\n get arrowOffsetY(): number {\n return this._arrowOffsetY;\n }\n set arrowOffsetY(value: number) {\n this._arrowOffsetY = value;\n }\n\n /** Popover arrow width */\n @Input()\n get arrowWidth(): number {\n return this._arrowWidth;\n }\n set arrowWidth(value: number) {\n this._arrowWidth = value;\n }\n\n /** Popover arrow height */\n @Input()\n get arrowHeight(): number {\n return this._arrowHeight;\n }\n set arrowHeight(value: number) {\n this._arrowHeight = value;\n }\n\n /** Popover close on container click */\n @Input()\n get closeOnPanelClick(): boolean {\n return this._closeOnPanelClick;\n }\n set closeOnPanelClick(value: boolean) {\n this._closeOnPanelClick = coerceBooleanProperty(value);\n }\n\n /** Popover close on backdrop click */\n @Input()\n get closeOnBackdropClick(): boolean {\n return this._closeOnBackdropClick;\n }\n set closeOnBackdropClick(value: boolean) {\n this._closeOnBackdropClick = coerceBooleanProperty(value);\n }\n\n /** Disable animations of popover and all child elements */\n @Input()\n get disableAnimation(): boolean {\n return this._disableAnimation;\n }\n set disableAnimation(value: boolean) {\n this._disableAnimation = coerceBooleanProperty(value);\n }\n\n /** Popover focus trap using cdkTrapFocus */\n @Input()\n get focusTrapEnabled(): boolean {\n return this._focusTrapEnabled;\n }\n set focusTrapEnabled(value: boolean) {\n this._focusTrapEnabled = coerceBooleanProperty(value);\n }\n\n /** Popover focus trap auto capture using cdkTrapFocusAutoCapture */\n @Input()\n get focusTrapAutoCaptureEnabled(): boolean {\n return this._focusTrapAutoCaptureEnabled;\n }\n set focusTrapAutoCaptureEnabled(value: boolean) {\n this._focusTrapAutoCaptureEnabled = coerceBooleanProperty(value);\n }\n\n /**\n * This method takes classes set on the host md-popover element and applies them on the\n * popover template that displays in the overlay container. Otherwise, it's difficult\n * to style the containing popover from outside the component.\n * @param classes list of class names\n */\n @Input('class')\n set panelClass(classes: string) {\n if (classes && classes.length) {\n this._classList = classes.split(' ').reduce((obj: any, className: string) => {\n obj[className] = true;\n return obj;\n }, {});\n\n this._elementRef.nativeElement.className = '';\n this.setPositionClasses();\n }\n }\n\n /**\n * This method takes classes set on the host md-popover element and applies them on the\n * popover template that displays in the overlay container. Otherwise, it's difficult\n * to style the containing popover from outside the component.\n * @deprecated Use `panelClass` instead.\n * @breaking-change 8.0.0\n */\n @Input()\n get classList(): string {\n return this.panelClass;\n }\n set classList(classes: string) {\n this.panelClass = classes;\n }\n\n /** Event emitted when the popover is closed. */\n @Output() closed = new EventEmitter<void>();\n\n @ViewChild(TemplateRef) templateRef!: TemplateRef<any>;\n\n constructor(\n @Optional() private _dir: Directionality,\n private _elementRef: ElementRef,\n public zone: NgZone\n ) {\n this.setPositionClasses();\n }\n\n ngOnDestroy() {\n this._emitCloseEvent();\n this.closed.complete();\n }\n\n /** Handle a keyboard event from the popover, delegating to the appropriate action. */\n _handleKeydown(event: KeyboardEvent) {\n switch (event.keyCode) {\n case ESCAPE:\n this._emitCloseEvent();\n return;\n }\n }\n\n /**\n * This emits a close event to which the trigger is subscribed. When emitted, the\n * trigger will close the popover.\n */\n _emitCloseEvent(): void {\n this.closed.emit();\n }\n\n /** Close popover on click if closeOnPanelClick is true */\n onClick() {\n if (this.closeOnPanelClick) {\n this._emitCloseEvent();\n }\n }\n\n /** Disables close of popover when leaving trigger element and mouse over the popover */\n onMouseOver() {\n if (this.triggerEvent === 'hover') {\n this.closeDisabled = true;\n }\n }\n\n /** Enables close of popover when mouse leaving popover element */\n onMouseLeave() {\n if (this.triggerEvent === 'hover') {\n setTimeout(() => {\n this.closeDisabled = false;\n this._emitCloseEvent();\n }, this.leaveDelay);\n }\n }\n\n /** Sets the current styles for the popover to allow for dynamically changing settings */\n setCurrentStyles(pos = this.position) {\n const left =\n pos[1] === 'after'\n ? `${this.arrowOffsetX - this.arrowWidth / 2}px`\n : pos[1] === 'center'\n ? `calc(50% - ${this.arrowWidth / 2}px)`\n : '';\n const right = pos[1] === 'before' ? `${this.arrowOffsetX - this.arrowWidth / 2}px` : '';\n\n const bottom =\n pos[1] === 'above'\n ? `${this.arrowOffsetY - this.arrowHeight / 2}px`\n : pos[1] === 'center'\n ? `calc(50% - ${this.arrowHeight / 2}px)`\n : '';\n const top = pos[1] === 'below' ? `${this.arrowOffsetY - this.arrowHeight / 2}px` : '';\n\n this.popoverArrowStyles =\n pos[0] === 'above' || pos[0] === 'below'\n ? {\n left: this._dir.value === 'ltr' ? left : right,\n right: this._dir.value === 'ltr' ? right : left,\n }\n : {\n top,\n bottom,\n };\n }\n\n /**\n * It's necessary to set position-based classes to ensure the popover panel animation\n * folds out from the correct direction.\n */\n setPositionClasses(pos = this.position): void {\n this._classList['mtx-popover-before-above'] = pos[0] === 'before' && pos[1] === 'above';\n this._classList['mtx-popover-before-center'] = pos[0] === 'before' && pos[1] === 'center';\n this._classList['mtx-popover-before-below'] = pos[0] === 'before' && pos[1] === 'below';\n this._classList['mtx-popover-after-above'] = pos[0] === 'after' && pos[1] === 'above';\n this._classList['mtx-popover-after-center'] = pos[0] === 'after' && pos[1] === 'center';\n this._classList['mtx-popover-after-below'] = pos[0] === 'after' && pos[1] === 'below';\n this._classList['mtx-popover-above-before'] = pos[0] === 'above' && pos[1] === 'before';\n this._classList['mtx-popover-above-center'] = pos[0] === 'above' && pos[1] === 'center';\n this._classList['mtx-popover-above-after'] = pos[0] === 'above' && pos[1] === 'after';\n this._classList['mtx-popover-below-before'] = pos[0] === 'below' && pos[1] === 'before';\n this._classList['mtx-popover-below-center'] = pos[0] === 'below' && pos[1] === 'center';\n this._classList['mtx-popover-below-after'] = pos[0] === 'below' && pos[1] === 'after';\n }\n\n static ngAcceptInputType_closeOnPanelClick: BooleanInput;\n static ngAcceptInputType_closeOnBackdropClick: BooleanInput;\n static ngAcceptInputType_disableAnimation: BooleanInput;\n static ngAcceptInputType_focusTrapEnabled: BooleanInput;\n static ngAcceptInputType_focusTrapAutoCaptureEnabled: BooleanInput;\n}\n","<ng-template>\r\n <div class=\"mtx-popover-panel mat-elevation-z8\" role=\"dialog\"\r\n [ngClass]=\"_classList\"\r\n [ngStyle]=\"popoverPanelStyles\"\r\n (keydown)=\"_handleKeydown($event)\"\r\n (click)=\"onClick()\"\r\n (mouseover)=\"onMouseOver()\"\r\n (mouseleave)=\"onMouseLeave()\"\r\n [@.disabled]=\"disableAnimation\"\r\n [@transformPopover]=\"'enter'\">\r\n <div class=\"mtx-popover-direction-arrow\" [ngStyle]=\"popoverArrowStyles\"></div>\r\n <div class=\"mtx-popover-content\"\r\n [ngStyle]=\"popoverContentStyles\"\r\n [cdkTrapFocus]=\"focusTrapEnabled\"\r\n [cdkTrapFocusAutoCapture]=\"focusTrapAutoCaptureEnabled\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>\r\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n ViewContainerRef,\n HostListener,\n HostBinding,\n ChangeDetectorRef,\n} from '@angular/core';\n\nimport { isFakeMousedownFromScreenReader } from '@angular/cdk/a11y';\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport {\n Overlay,\n OverlayRef,\n OverlayConfig,\n HorizontalConnectionPos,\n VerticalConnectionPos,\n FlexibleConnectedPositionStrategy,\n ScrollStrategy,\n ConnectedPosition,\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\nimport { Subscription, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { MtxPopoverPanel, MtxTarget } from './popover-interfaces';\nimport {\n MtxPopoverTriggerEvent,\n MtxPopoverScrollStrategy,\n MtxPopoverPosition,\n MtxPopoverPositionStart,\n} from './popover-types';\nimport { throwMtxPopoverMissingError } from './popover-errors';\n\n/**\n * This directive is intended to be used in conjunction with an mtx-popover tag. It is\n * responsible for toggling the display of the provided popover instance.\n */\n\n@Directive({\n selector: '[mtxPopoverTriggerFor]',\n exportAs: 'mtxPopoverTrigger',\n})\nexport class MtxPopoverTrigger implements AfterViewInit, OnDestroy {\n @HostBinding('attr.aria-haspopup') ariaHaspopup = true;\n\n popoverOpened$ = new Subject<void>();\n popoverClosed$ = new Subject<void>();\n\n private _portal!: TemplatePortal<any>;\n private _overlayRef: OverlayRef | null = null;\n private _popoverOpen = false;\n private _halt = false;\n private _backdropSubscription!: Subscription;\n private _positionSubscription!: Subscription;\n private _detachmentsSubscription!: Subscription;\n\n private _mouseoverTimer: any;\n\n // tracking input type is necessary so it's possible to only auto-focus\n // the first item of the list when the popover is opened via the keyboard\n private _openedByMouse = false;\n\n private _onDestroy = new Subject<void>();\n\n /** References the popover instance that the trigger is associated with. */\n @Input('mtxPopoverTriggerFor') popover!: MtxPopoverPanel;\n\n /** References the popover target instance that the trigger is associated with. */\n @Input('mtxPopoverTargetAt') targetElement!: MtxTarget;\n\n /** Popover trigger event */\n @Input('mtxPopoverTriggerOn') triggerEvent!: MtxPopoverTriggerEvent;\n\n /** Event emitted when the associated popover is opened. */\n @Output() popoverOpened = new EventEmitter<void>();\n\n /** Event emitted when the associated popover is closed. */\n @Output() popoverClosed = new EventEmitter<void>();\n\n constructor(\n private _overlay: Overlay,\n public _elementRef: ElementRef,\n private _viewContainerRef: ViewContainerRef,\n @Optional() private _dir: Directionality,\n private _changeDetectorRef: ChangeDetectorRef\n ) {}\n\n ngAfterViewInit() {\n this._checkPopover();\n this._setCurrentConfig();\n this.popover.closed.subscribe(() => this.closePopover());\n }\n\n ngOnDestroy() {\n this.destroyPopover();\n }\n\n private _setCurrentConfig() {\n if (this.triggerEvent) {\n this.popover.triggerEvent = this.triggerEvent;\n }\n\n this.popover.setCurrentStyles();\n }\n\n /** Whether the popover is open. */\n get popoverOpen(): boolean {\n return this._popoverOpen;\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n if (this.popover.triggerEvent === 'click') {\n this.togglePopover();\n }\n }\n\n @HostListener('mouseenter', ['$event'])\n onMouseEnter(event: MouseEvent): void {\n this._halt = false;\n if (this.popover.triggerEvent === 'hover') {\n this._mouseoverTimer = setTimeout(() => {\n this.openPopover();\n }, this.popover.enterDelay);\n }\n }\n\n @HostListener('mouseleave', ['$event'])\n onMouseLeave(event: MouseEvent): void {\n if (this.popover.triggerEvent === 'hover') {\n if (this._mouseoverTimer) {\n clearTimeout(this._mouseoverTimer);\n this._mouseoverTimer = null;\n }\n if (this._popoverOpen) {\n setTimeout(() => {\n if (!this.popover.closeDisabled) {\n this.closePopover();\n }\n }, this.popover.leaveDelay);\n } else {\n this._halt = true;\n }\n }\n }\n\n /** Toggles the popover between the open and closed states. */\n togglePopover(): void {\n return this._popoverOpen ? this.closePopover() : this.openPopover();\n }\n\n /** Opens the popover. */\n openPopover(): void {\n if (!this._popoverOpen && !this._halt) {\n this._createOverlay().attach(this._portal);\n\n this._subscribeToBackdrop();\n this._subscribeToDetachments();\n\n this._initPopover();\n }\n }\n\n /** Closes the popover. */\n closePopover(): void {\n if (this._overlayRef) {\n this._overlayRef.detach();\n this._resetPopover();\n }\n\n this.destroyPopover();\n }\n\n /** Removes the popover from the DOM. */\n destroyPopover(): void {\n if (this._mouseoverTimer) {\n clearTimeout(this._mouseoverTimer);\n this._mouseoverTimer = null;\n }\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n this._cleanUpSubscriptions();\n }\n\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n /** Focuses the popover trigger. */\n focus() {\n this._elementRef.nativeElement.focus();\n }\n\n /** The text direction of the containing app. */\n get dir(): Direction {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n }\n\n /**\n * This method ensures that the popover closes when the overlay backdrop is clicked.\n * We do not use first() here because doing so would not catch clicks from within\n * the popover, and it would fail to unsubscribe properly. Instead, we unsubscribe\n * explicitly when the popover is closed or destroyed.\n */\n private _subscribeToBackdrop(): void {\n if (this._overlayRef) {\n /** Only subscribe to backdrop if trigger event is click */\n if (this.triggerEvent === 'click' && this.popover.closeOnBackdropClick === true) {\n this._overlayRef\n .backdropClick()\n .pipe(takeUntil(this.popoverClosed$), takeUntil(this._onDestroy))\n .subscribe(() => {\n this.popover._emitCloseEvent();\n });\n }\n }\n }\n\n private _subscribeToDetachments(): void {\n if (this._overlayRef) {\n this._overlayRef\n .detachments()\n .pipe(takeUntil(this.popoverClosed$), takeUntil(this._onDestroy))\n .subscribe(() => {\n this._setPopoverClosed();\n });\n }\n }\n\n /**\n * This method sets the popover state to open and focuses the first item if\n * the popover was opened via the keyboard.\n */\n private _initPopover(): void {\n this._setPopoverOpened();\n }\n\n /**\n * This method resets the popover when it's closed, most importantly restoring\n * focus to the popover trigger if the popover was opened via the keyboard.\n */\n private _resetPopover(): void {\n this._setPopoverClosed();\n\n // Focus only needs to be reset to the host element if the popover was opened\n // by the keyboard and manually shifted to the first popover item.\n if (!this._openedByMouse) {\n this.focus();\n }\n this._openedByMouse = false;\n }\n\n /** set state rather than toggle to support triggers sharing a popover */\n private _setPopoverOpened(): void {\n if (!this._popoverOpen) {\n this._popoverOpen = true;\n\n this.popoverOpened$.next();\n this.popoverOpened.emit();\n }\n }\n\n /** set state rather than toggle to support triggers sharing a popover */\n private _setPopoverClosed(): void {\n if (this._popoverOpen) {\n this._popoverOpen = false;\n\n this.popoverClosed$.next();\n this.popoverClosed.emit();\n }\n }\n\n /**\n * This method checks that a valid instance of MdPopover has been passed into\n * mdPopoverTriggerFor. If not, an exception is thrown.\n */\n private _checkPopover() {\n if (!this.popover) {\n throwMtxPopoverMissingError();\n }\n }\n\n /**\n * This method creates the overlay from the provided popover's template and saves its\n * OverlayRef so that it can be attached to the DOM when openPopover is called.\n */\n private _createOverlay(): OverlayRef {\n if (!this._overlayRef) {\n this._portal = new TemplatePortal(this.popover.templateRef, this._viewContainerRef);\n const config = this._getOverlayConfig();\n this._subscribeToPositions(config.positionStrategy as FlexibleConnectedPositionStrategy);\n this._overlayRef = this._overlay.create(config);\n }\n\n return this._overlayRef;\n }\n\n /**\n * This method builds the configuration object needed to create the overlay, the OverlayConfig.\n * @returns OverlayConfig\n */\n private _getOverlayConfig(): OverlayConfig {\n const overlayState = new OverlayConfig();\n overlayState.positionStrategy = this._getPosition();\n\n /** Display overlay backdrop if trigger event is click */\n if (this.triggerEvent === 'click') {\n overlayState.hasBackdrop = true;\n overlayState.backdropClass = 'cdk-overlay-transparent-backdrop';\n }\n\n overlayState.direction = this._dir;\n overlayState.scrollStrategy = this._getOverlayScrollStrategy(this.popover.scrollStrategy);\n\n return overlayState;\n }\n\n /**\n * This method returns the scroll strategy used by the cdk/overlay.\n */\n private _getOverlayScrollStrategy(strategy: MtxPopoverScrollStrategy): ScrollStrategy {\n switch (strategy) {\n case 'noop':\n return this._overlay.scrollStrategies.noop();\n case 'close':\n return this._overlay.scrollStrategies.close();\n case 'block':\n return this._overlay.scrollStrategies.block();\n case 'reposition':\n default:\n return this._overlay.scrollStrategies.reposition();\n }\n }\n\n /**\n * Listens to changes in the position of the overlay and sets the correct classes\n * on the popover based on the new position. This ensures the animation origin is always\n * correct, even if a fallback position is used for the overlay.\n */\n private _subscribeToPositions(position: FlexibleConnectedPositionStrategy): void {\n this._positionSubscription = position.positionChanges.subscribe(change => {\n const posX =\n change.connectionPair.overlayX === 'start'\n ? 'after'\n : change.connectionPair.overlayX === 'end'\n ? 'before'\n : 'center';\n const posY =\n change.connectionPair.overlayY === 'top'\n ? 'below'\n : change.connectionPair.overlayY === 'bottom'\n ? 'above'\n : 'center';\n\n const pos: MtxPopoverPosition =\n this.popover.position[0] === 'above' || this.popover.position[0] === 'below'\n ? [posY as MtxPopoverPositionStart, posX]\n : [posX as MtxPopoverPositionStart, posY];\n\n // required for ChangeDetectionStrategy.OnPush\n this._changeDetectorRef.markForCheck();\n\n this.popover.zone.run(() => {\n this.popover.setCurrentStyles(pos);\n this.popover.setPositionClasses(pos);\n });\n });\n }\n\n /**\n * This method builds the position strategy for the overlay, so the popover is properly connected\n * to the trigger.\n * @returns ConnectedPositionStrategy\n */\n private _getPosition(): FlexibleConnectedPositionStrategy {\n const [originX, origin2ndX, origin3rdX]: HorizontalConnectionPos[] =\n this.popover.position[0] === 'before' || this.popover.position[1] === 'after'\n ? ['start', 'center', 'end']\n : this.popover.position[0] === 'after' || this.popover.position[1] === 'before'\n ? ['end', 'center', 'start']\n : ['center', 'start', 'end'];\n\n const [originY, origin2ndY, origin3rdY]: VerticalConnectionPos[] =\n this.popover.position[0] === 'above' || this.popover.position[1] === 'below'\n ? ['top', 'center', 'bottom']\n : this.popover.position[0] === 'below' || this.popover.position[1] === 'above'\n ? ['bottom', 'center', 'top']\n : ['center', 'top', 'bottom'];\n\n const [overlayX, overlayFallbackX]: HorizontalConnectionPos[] =\n this.popover.position[0] === 'below' || this.popover.position[0] === 'above'\n ? [originX, originX]\n : this.popover.position[0] === 'before'\n ? ['end', 'start']\n : ['start', 'end'];\n\n const [overlayY, overlayFallbackY]: VerticalConnectionPos[] =\n this.popover.position[0] === 'before' || this.popover.position[0] === 'after'\n ? [originY, originY]\n : this.popover.position[0] === 'below'\n ? ['top', 'bottom']\n : ['bottom', 'top'];\n\n const originFallbackX = overlayX;\n const originFallbackY = overlayY;\n\n const offsetX =\n this.popover.xOffset && !isNaN(Number(this.popover.xOffset))\n ? Number(this.dir === 'ltr' ? this.popover.xOffset : -this.popover.xOffset)\n : 0;\n const offsetY =\n this.popover.yOffset && !isNaN(Number(this.popover.yOffset))\n ? Number(this.popover.yOffset)\n : 0;\n\n /**\n * For overriding position element, when `mtxPopoverTargetAt` has a valid element reference.\n * Useful for sticking popover to parent element and offsetting arrow to trigger element.\n * If undefined defaults to the trigger element reference.\n */\n let element = this._elementRef;\n if (typeof this.targetElement !== 'undefined') {\n this.popover.containerPositioning = true;\n element = this.targetElement._elementRef;\n }\n\n let positions: ConnectedPosition[] = [{ originX, originY, overlayX, overlayY }];\n\n if (this.popover.position[0] === 'above' || this.popover.position[0] === 'below') {\n positions = [\n { originX, originY, overlayX, overlayY, offsetY },\n { originX: origin2ndX, originY, overlayX: origin2ndX, overlayY, offsetY },\n { originX: origin3rdX, originY, overlayX: origin3rdX, overlayY, offsetY },\n {\n originX,\n originY: originFallbackY,\n overlayX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY,\n },\n {\n originX: origin2ndX,\n originY: originFallbackY,\n overlayX: origin2ndX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY,\n },\n {\n originX: origin3rdX,\n originY: originFallbackY,\n overlayX: origin3rdX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY,\n },\n ];\n }\n\n if (this.popover.position[0] === 'before' || this.popover.position[0] === 'after') {\n positions = [\n { originX, originY, overlayX, overlayY, offsetX },\n { originX, originY: origin2ndY, overlayX, overlayY: origin2ndY, offsetX },\n { originX, originY: origin3rdY, overlayX, overlayY: origin3rdY, offsetX },\n {\n originX: originFallbackX,\n originY,\n overlayX: overlayFallbackX,\n overlayY,\n offsetX: -offsetX,\n },\n {\n originX: originFallbackX,\n originY: origin2ndY,\n overlayX: overlayFallbackX,\n overlayY: origin2ndY,\n offsetX: -offsetX,\n },\n {\n originX: originFallbackX,\n originY: origin3rdY,\n overlayX: overlayFallbackX,\n overlayY: origin3rdY,\n offsetX: -offsetX,\n },\n ];\n }\n\n return this._overlay\n .position()\n .flexibleConnectedTo(element)\n .withLockedPosition()\n .withPositions(positions)\n .withDefaultOffsetX(offsetX)\n .withDefaultOffsetY(offsetY);\n }\n\n private _cleanUpSubscriptions(): void {\n if (this._backdropSubscription) {\n this._backdropSubscription.unsubscribe();\n }\n if (this._positionSubscription) {\n this._positionSubscription.unsubscribe();\n }\n if (this._detachmentsSubscription) {\n this._detachmentsSubscription.unsubscribe();\n }\n }\n\n @HostListener('mousedown', ['$event']) _handleMousedown(event: MouseEvent): void {\n if (event && !isFakeMousedownFromScreenReader(event)) {\n this._openedByMouse = true;\n }\n }\n}\n","import { Directive, ElementRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'mtx-popover-target, [mtxPopoverTarget]',\r\n exportAs: 'mtxPopoverTarget',\r\n})\r\nexport class MtxPopoverTarget {\r\n constructor(public _elementRef: ElementRef) {}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\n\r\nimport { MtxPopover } from './popover';\r\nimport { MtxPopoverTrigger } from './popover-trigger';\r\nimport { MtxPopoverTarget } from './popover-target';\r\n\r\n@NgModule({\r\n imports: [OverlayModule, CommonModule, A11yModule],\r\n exports: [MtxPopover, MtxPopoverTrigger, MtxPopoverTarget],\r\n declarations: [MtxPopover, MtxPopoverTrigger, MtxPopoverTarget],\r\n})\r\nexport class MtxPopoverModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/fesm2020/mtxPopover.mjs
CHANGED
|
@@ -276,10 +276,6 @@ class MtxPopover {
|
|
|
276
276
|
this._emitCloseEvent();
|
|
277
277
|
}
|
|
278
278
|
}
|
|
279
|
-
/**
|
|
280
|
-
* TODO: Refactor when @angular/cdk includes feature I mentioned on github see link below.
|
|
281
|
-
* https://github.com/angular/material2/pull/5493#issuecomment-313085323
|
|
282
|
-
*/
|
|
283
279
|
/** Disables close of popover when leaving trigger element and mouse over the popover */
|
|
284
280
|
onMouseOver() {
|
|
285
281
|
if (this.triggerEvent === 'hover') {
|
|
@@ -289,12 +285,12 @@ class MtxPopover {
|
|
|
289
285
|
/** Enables close of popover when mouse leaving popover element */
|
|
290
286
|
onMouseLeave() {
|
|
291
287
|
if (this.triggerEvent === 'hover') {
|
|
292
|
-
|
|
293
|
-
|
|
288
|
+
setTimeout(() => {
|
|
289
|
+
this.closeDisabled = false;
|
|
290
|
+
this._emitCloseEvent();
|
|
291
|
+
}, this.leaveDelay);
|
|
294
292
|
}
|
|
295
293
|
}
|
|
296
|
-
// TODO: Refactor how styles are set and updated on the component, use best practices.
|
|
297
|
-
// TODO: If arrow left and right positioning is requested, see if flex direction can be used to work with order.
|
|
298
294
|
/** Sets the current styles for the popover to allow for dynamically changing settings */
|
|
299
295
|
setCurrentStyles(pos = this.position) {
|
|
300
296
|
const left = pos[1] === 'after'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mtxPopover.mjs","sources":["../../../projects/extensions/popover/popover-errors.ts","../../../projects/extensions/popover/popover-animations.ts","../../../projects/extensions/popover/popover.ts","../../../projects/extensions/popover/popover.html","../../../projects/extensions/popover/popover-trigger.ts","../../../projects/extensions/popover/popover-target.ts","../../../projects/extensions/popover/popover-module.ts","../../../projects/extensions/popover/mtxPopover.ts"],"sourcesContent":["/**\n * Throws an exception for the case when popover trigger doesn't have a valid mtx-popover instance\n */\nexport function throwMtxPopoverMissingError() {\n throw Error(`mtx-popover-trigger: must pass in an mtx-popover instance.\n\n Example:\n <mtx-popover #popover=\"mtxPopover\"></mtx-popover>\n <button [mtxPopoverTriggerFor]=\"popover\"></button>`);\n}\n\n/**\n * Throws an exception for the case when popover's mtxPopoverPosition[0] value isn't valid.\n * In other words, it doesn't match 'above', 'below', 'before' or 'after'.\n */\nexport function throwMtxPopoverInvalidPositionStart() {\n throw Error(`mtxPopoverPosition[0] value must be either 'above', 'below', 'before' or 'after'.\n Example: <mtx-popover [position]=\"['below', 'after']\" #popover=\"mtxPopover\"></mtx-popover>`);\n}\n\n/**\n * Throws an exception for the case when popover's mtxPopoverPosition[1] value isn't valid.\n * In other words, it doesn't match 'above', 'below', 'before', 'after' or 'center'.\n */\nexport function throwMtxPopoverInvalidPositionEnd() {\n throw Error(`mtxPopoverPosition[1] value must be either 'above', 'below', 'before', 'after' or 'center'.\n Example: <mtx-popover [position]=\"['below', 'after']\" #popover=\"mtxPopover\"></mtx-popover>`);\n}\n","import {\r\n trigger,\r\n state,\r\n style,\r\n animate,\r\n transition,\r\n AnimationTriggerMetadata,\r\n} from '@angular/animations';\r\n\r\n/**\r\n * Below are all the animations for the md-popover component.\r\n * Animation duration and timing values are based on AngularJS Material.\r\n */\r\n\r\n/**\r\n * This animation controls the popover panel's entry and exit from the page.\r\n *\r\n * When the popover panel is added to the DOM, it scales in and fades in its border.\r\n *\r\n * When the popover panel is removed from the DOM, it simply fades out after a brief\r\n * delay to display the ripple.\r\n */\r\n\r\nexport const transformPopover: AnimationTriggerMetadata = trigger('transformPopover', [\r\n state(\r\n 'enter',\r\n style({\r\n opacity: 1,\r\n transform: `scale(1)`,\r\n })\r\n ),\r\n transition('void => *', [\r\n style({\r\n opacity: 0,\r\n transform: `scale(0)`,\r\n }),\r\n animate(`200ms cubic-bezier(0.25, 0.8, 0.25, 1)`),\r\n ]),\r\n transition('* => void', [animate('50ms 100ms linear', style({ opacity: 0 }))]),\r\n]);\r\n","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n ElementRef,\n ChangeDetectionStrategy,\n HostBinding,\n NgZone,\n Optional,\n} from '@angular/core';\nimport { AnimationEvent } from '@angular/animations';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport { Directionality } from '@angular/cdk/bidi';\n\nimport {\n MtxPopoverTriggerEvent,\n MtxPopoverScrollStrategy,\n MtxPopoverPosition,\n} from './popover-types';\nimport {\n throwMtxPopoverInvalidPositionStart,\n throwMtxPopoverInvalidPositionEnd,\n} from './popover-errors';\nimport { MtxPopoverPanel } from './popover-interfaces';\nimport { transformPopover } from './popover-animations';\n\n@Component({\n selector: 'mtx-popover',\n templateUrl: './popover.html',\n styleUrls: ['./popover.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [transformPopover],\n exportAs: 'mtxPopover',\n})\nexport class MtxPopover implements MtxPopoverPanel, OnDestroy {\n @HostBinding('attr.role') role = 'dialog';\n\n /** Settings for popover, view setters and getters for more detail */\n private _position: MtxPopoverPosition = ['below', 'after'];\n private _triggerEvent: MtxPopoverTriggerEvent = 'hover';\n private _scrollStrategy: MtxPopoverScrollStrategy = 'reposition';\n private _enterDelay = 100;\n private _leaveDelay = 100;\n private _panelOffsetX = 0;\n private _panelOffsetY = 0;\n private _closeOnPanelClick = false;\n private _closeOnBackdropClick = true;\n private _disableAnimation = false;\n private _focusTrapEnabled = true;\n private _focusTrapAutoCaptureEnabled = true;\n private _arrowOffsetX = 20;\n private _arrowOffsetY = 20;\n private _arrowWidth = 16;\n private _arrowHeight = 16;\n\n /** Config object to be passed into the popover's ngClass */\n _classList: { [key: string]: boolean } = {};\n\n /** Whether popover's `targetElement` is defined */\n public containerPositioning = false;\n\n /** Closing disabled on popover */\n public closeDisabled = false;\n\n /** Config object to be passed into the popover's arrow ngStyle */\n public popoverPanelStyles!: Record<string, unknown>;\n\n /** Config object to be passed into the popover's arrow ngStyle */\n public popoverArrowStyles!: Record<string, unknown>;\n\n /** Config object to be passed into the popover's content ngStyle */\n public popoverContentStyles!: Record<string, unknown>;\n\n /** Emits the current animation state whenever it changes. */\n _onAnimationStateChange = new EventEmitter<AnimationEvent>();\n\n /** Position of the popover. */\n @Input()\n get position() {\n return this._position;\n }\n set position(value: MtxPopoverPosition) {\n if (!['before', 'after', 'above', 'below'].includes(value[0])) {\n throwMtxPopoverInvalidPositionStart();\n }\n if (!['before', 'after', 'above', 'below', 'center'].includes(value[1])) {\n throwMtxPopoverInvalidPositionEnd();\n }\n this._position = value;\n this.setPositionClasses();\n }\n\n /** Popover trigger event */\n @Input()\n get triggerEvent(): MtxPopoverTriggerEvent {\n return this._triggerEvent;\n }\n set triggerEvent(value: MtxPopoverTriggerEvent) {\n this._triggerEvent = value;\n }\n\n /** Popover scroll strategy */\n @Input()\n get scrollStrategy(): MtxPopoverScrollStrategy {\n return this._scrollStrategy;\n }\n set scrollStrategy(value: MtxPopoverScrollStrategy) {\n this._scrollStrategy = value;\n }\n\n /** Popover enter delay */\n @Input()\n get enterDelay(): number {\n return this._enterDelay;\n }\n set enterDelay(value: number) {\n this._enterDelay = value;\n }\n\n /** Popover leave delay */\n @Input()\n get leaveDelay(): number {\n return this._leaveDelay;\n }\n set leaveDelay(value: number) {\n this._leaveDelay = value;\n }\n\n /** Popover target offset x */\n @Input()\n get xOffset(): number {\n return this._panelOffsetX;\n }\n set xOffset(value: number) {\n this._panelOffsetX = value;\n }\n\n /** Popover target offset y */\n @Input()\n get yOffset(): number {\n return this._panelOffsetY;\n }\n set yOffset(value: number) {\n this._panelOffsetY = value;\n }\n\n /** Popover arrow offset x */\n @Input()\n get arrowOffsetX(): number {\n return this._arrowOffsetX;\n }\n set arrowOffsetX(value: number) {\n this._arrowOffsetX = value;\n }\n\n /** Popover arrow offset y */\n @Input()\n get arrowOffsetY(): number {\n return this._arrowOffsetY;\n }\n set arrowOffsetY(value: number) {\n this._arrowOffsetY = value;\n }\n\n /** Popover arrow width */\n @Input()\n get arrowWidth(): number {\n return this._arrowWidth;\n }\n set arrowWidth(value: number) {\n this._arrowWidth = value;\n }\n\n /** Popover arrow height */\n @Input()\n get arrowHeight(): number {\n return this._arrowHeight;\n }\n set arrowHeight(value: number) {\n this._arrowHeight = value;\n }\n\n /** Popover close on container click */\n @Input()\n get closeOnPanelClick(): boolean {\n return this._closeOnPanelClick;\n }\n set closeOnPanelClick(value: boolean) {\n this._closeOnPanelClick = coerceBooleanProperty(value);\n }\n\n /** Popover close on backdrop click */\n @Input()\n get closeOnBackdropClick(): boolean {\n return this._closeOnBackdropClick;\n }\n set closeOnBackdropClick(value: boolean) {\n this._closeOnBackdropClick = coerceBooleanProperty(value);\n }\n\n /** Disable animations of popover and all child elements */\n @Input()\n get disableAnimation(): boolean {\n return this._disableAnimation;\n }\n set disableAnimation(value: boolean) {\n this._disableAnimation = coerceBooleanProperty(value);\n }\n\n /** Popover focus trap using cdkTrapFocus */\n @Input()\n get focusTrapEnabled(): boolean {\n return this._focusTrapEnabled;\n }\n set focusTrapEnabled(value: boolean) {\n this._focusTrapEnabled = coerceBooleanProperty(value);\n }\n\n /** Popover focus trap auto capture using cdkTrapFocusAutoCapture */\n @Input()\n get focusTrapAutoCaptureEnabled(): boolean {\n return this._focusTrapAutoCaptureEnabled;\n }\n set focusTrapAutoCaptureEnabled(value: boolean) {\n this._focusTrapAutoCaptureEnabled = coerceBooleanProperty(value);\n }\n\n /**\n * This method takes classes set on the host md-popover element and applies them on the\n * popover template that displays in the overlay container. Otherwise, it's difficult\n * to style the containing popover from outside the component.\n * @param classes list of class names\n */\n @Input('class')\n set panelClass(classes: string) {\n if (classes && classes.length) {\n this._classList = classes.split(' ').reduce((obj: any, className: string) => {\n obj[className] = true;\n return obj;\n }, {});\n\n this._elementRef.nativeElement.className = '';\n this.setPositionClasses();\n }\n }\n\n /**\n * This method takes classes set on the host md-popover element and applies them on the\n * popover template that displays in the overlay container. Otherwise, it's difficult\n * to style the containing popover from outside the component.\n * @deprecated Use `panelClass` instead.\n * @breaking-change 8.0.0\n */\n @Input()\n get classList(): string {\n return this.panelClass;\n }\n set classList(classes: string) {\n this.panelClass = classes;\n }\n\n /** Event emitted when the popover is closed. */\n @Output() closed = new EventEmitter<void>();\n\n @ViewChild(TemplateRef) templateRef!: TemplateRef<any>;\n\n constructor(\n @Optional() private _dir: Directionality,\n private _elementRef: ElementRef,\n public zone: NgZone\n ) {\n this.setPositionClasses();\n }\n\n ngOnDestroy() {\n this._emitCloseEvent();\n this.closed.complete();\n }\n\n /** Handle a keyboard event from the popover, delegating to the appropriate action. */\n _handleKeydown(event: KeyboardEvent) {\n switch (event.keyCode) {\n case ESCAPE:\n this._emitCloseEvent();\n return;\n }\n }\n\n /**\n * This emits a close event to which the trigger is subscribed. When emitted, the\n * trigger will close the popover.\n */\n _emitCloseEvent(): void {\n this.closed.emit();\n }\n\n /** Close popover on click if closeOnPanelClick is true */\n onClick() {\n if (this.closeOnPanelClick) {\n this._emitCloseEvent();\n }\n }\n\n /**\n * TODO: Refactor when @angular/cdk includes feature I mentioned on github see link below.\n * https://github.com/angular/material2/pull/5493#issuecomment-313085323\n */\n /** Disables close of popover when leaving trigger element and mouse over the popover */\n onMouseOver() {\n if (this.triggerEvent === 'hover') {\n this.closeDisabled = true;\n }\n }\n /** Enables close of popover when mouse leaving popover element */\n onMouseLeave() {\n if (this.triggerEvent === 'hover') {\n this.closeDisabled = false;\n this._emitCloseEvent();\n }\n }\n\n // TODO: Refactor how styles are set and updated on the component, use best practices.\n // TODO: If arrow left and right positioning is requested, see if flex direction can be used to work with order.\n /** Sets the current styles for the popover to allow for dynamically changing settings */\n setCurrentStyles(pos = this.position) {\n const left =\n pos[1] === 'after'\n ? `${this.arrowOffsetX - this.arrowWidth / 2}px`\n : pos[1] === 'center'\n ? `calc(50% - ${this.arrowWidth / 2}px)`\n : '';\n const right = pos[1] === 'before' ? `${this.arrowOffsetX - this.arrowWidth / 2}px` : '';\n\n const bottom =\n pos[1] === 'above'\n ? `${this.arrowOffsetY - this.arrowHeight / 2}px`\n : pos[1] === 'center'\n ? `calc(50% - ${this.arrowHeight / 2}px)`\n : '';\n const top = pos[1] === 'below' ? `${this.arrowOffsetY - this.arrowHeight / 2}px` : '';\n\n this.popoverArrowStyles =\n pos[0] === 'above' || pos[0] === 'below'\n ? {\n left: this._dir.value === 'ltr' ? left : right,\n right: this._dir.value === 'ltr' ? right : left,\n }\n : {\n top,\n bottom,\n };\n }\n\n /**\n * It's necessary to set position-based classes to ensure the popover panel animation\n * folds out from the correct direction.\n */\n setPositionClasses(pos = this.position): void {\n this._classList['mtx-popover-before-above'] = pos[0] === 'before' && pos[1] === 'above';\n this._classList['mtx-popover-before-center'] = pos[0] === 'before' && pos[1] === 'center';\n this._classList['mtx-popover-before-below'] = pos[0] === 'before' && pos[1] === 'below';\n this._classList['mtx-popover-after-above'] = pos[0] === 'after' && pos[1] === 'above';\n this._classList['mtx-popover-after-center'] = pos[0] === 'after' && pos[1] === 'center';\n this._classList['mtx-popover-after-below'] = pos[0] === 'after' && pos[1] === 'below';\n this._classList['mtx-popover-above-before'] = pos[0] === 'above' && pos[1] === 'before';\n this._classList['mtx-popover-above-center'] = pos[0] === 'above' && pos[1] === 'center';\n this._classList['mtx-popover-above-after'] = pos[0] === 'above' && pos[1] === 'after';\n this._classList['mtx-popover-below-before'] = pos[0] === 'below' && pos[1] === 'before';\n this._classList['mtx-popover-below-center'] = pos[0] === 'below' && pos[1] === 'center';\n this._classList['mtx-popover-below-after'] = pos[0] === 'below' && pos[1] === 'after';\n }\n\n static ngAcceptInputType_closeOnPanelClick: BooleanInput;\n static ngAcceptInputType_closeOnBackdropClick: BooleanInput;\n static ngAcceptInputType_disableAnimation: BooleanInput;\n static ngAcceptInputType_focusTrapEnabled: BooleanInput;\n static ngAcceptInputType_focusTrapAutoCaptureEnabled: BooleanInput;\n}\n","<ng-template>\r\n <div class=\"mtx-popover-panel mat-elevation-z8\" role=\"dialog\"\r\n [ngClass]=\"_classList\"\r\n [ngStyle]=\"popoverPanelStyles\"\r\n (keydown)=\"_handleKeydown($event)\"\r\n (click)=\"onClick()\"\r\n (mouseover)=\"onMouseOver()\"\r\n (mouseleave)=\"onMouseLeave()\"\r\n [@.disabled]=\"disableAnimation\"\r\n [@transformPopover]=\"'enter'\">\r\n <div class=\"mtx-popover-direction-arrow\" [ngStyle]=\"popoverArrowStyles\"></div>\r\n <div class=\"mtx-popover-content\"\r\n [ngStyle]=\"popoverContentStyles\"\r\n [cdkTrapFocus]=\"focusTrapEnabled\"\r\n [cdkTrapFocusAutoCapture]=\"focusTrapAutoCaptureEnabled\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>\r\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n ViewContainerRef,\n HostListener,\n HostBinding,\n ChangeDetectorRef,\n} from '@angular/core';\n\nimport { isFakeMousedownFromScreenReader } from '@angular/cdk/a11y';\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport {\n Overlay,\n OverlayRef,\n OverlayConfig,\n HorizontalConnectionPos,\n VerticalConnectionPos,\n FlexibleConnectedPositionStrategy,\n ScrollStrategy,\n ConnectedPosition,\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\nimport { Subscription, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { MtxPopoverPanel, MtxTarget } from './popover-interfaces';\nimport {\n MtxPopoverTriggerEvent,\n MtxPopoverScrollStrategy,\n MtxPopoverPosition,\n MtxPopoverPositionStart,\n} from './popover-types';\nimport { throwMtxPopoverMissingError } from './popover-errors';\n\n/**\n * This directive is intended to be used in conjunction with an mtx-popover tag. It is\n * responsible for toggling the display of the provided popover instance.\n */\n\n@Directive({\n selector: '[mtxPopoverTriggerFor]',\n exportAs: 'mtxPopoverTrigger',\n})\nexport class MtxPopoverTrigger implements AfterViewInit, OnDestroy {\n @HostBinding('attr.aria-haspopup') ariaHaspopup = true;\n\n popoverOpened$ = new Subject<void>();\n popoverClosed$ = new Subject<void>();\n\n private _portal!: TemplatePortal<any>;\n private _overlayRef: OverlayRef | null = null;\n private _popoverOpen = false;\n private _halt = false;\n private _backdropSubscription!: Subscription;\n private _positionSubscription!: Subscription;\n private _detachmentsSubscription!: Subscription;\n\n private _mouseoverTimer: any;\n\n // tracking input type is necessary so it's possible to only auto-focus\n // the first item of the list when the popover is opened via the keyboard\n private _openedByMouse = false;\n\n private _onDestroy = new Subject<void>();\n\n /** References the popover instance that the trigger is associated with. */\n @Input('mtxPopoverTriggerFor') popover!: MtxPopoverPanel;\n\n /** References the popover target instance that the trigger is associated with. */\n @Input('mtxPopoverTargetAt') targetElement!: MtxTarget;\n\n /** Popover trigger event */\n @Input('mtxPopoverTriggerOn') triggerEvent!: MtxPopoverTriggerEvent;\n\n /** Event emitted when the associated popover is opened. */\n @Output() popoverOpened = new EventEmitter<void>();\n\n /** Event emitted when the associated popover is closed. */\n @Output() popoverClosed = new EventEmitter<void>();\n\n constructor(\n private _overlay: Overlay,\n public _elementRef: ElementRef,\n private _viewContainerRef: ViewContainerRef,\n @Optional() private _dir: Directionality,\n private _changeDetectorRef: ChangeDetectorRef\n ) {}\n\n ngAfterViewInit() {\n this._checkPopover();\n this._setCurrentConfig();\n this.popover.closed.subscribe(() => this.closePopover());\n }\n\n ngOnDestroy() {\n this.destroyPopover();\n }\n\n private _setCurrentConfig() {\n if (this.triggerEvent) {\n this.popover.triggerEvent = this.triggerEvent;\n }\n\n this.popover.setCurrentStyles();\n }\n\n /** Whether the popover is open. */\n get popoverOpen(): boolean {\n return this._popoverOpen;\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n if (this.popover.triggerEvent === 'click') {\n this.togglePopover();\n }\n }\n\n @HostListener('mouseenter', ['$event'])\n onMouseEnter(event: MouseEvent): void {\n this._halt = false;\n if (this.popover.triggerEvent === 'hover') {\n this._mouseoverTimer = setTimeout(() => {\n this.openPopover();\n }, this.popover.enterDelay);\n }\n }\n\n @HostListener('mouseleave', ['$event'])\n onMouseLeave(event: MouseEvent): void {\n if (this.popover.triggerEvent === 'hover') {\n if (this._mouseoverTimer) {\n clearTimeout(this._mouseoverTimer);\n this._mouseoverTimer = null;\n }\n if (this._popoverOpen) {\n setTimeout(() => {\n if (!this.popover.closeDisabled) {\n this.closePopover();\n }\n }, this.popover.leaveDelay);\n } else {\n this._halt = true;\n }\n }\n }\n\n /** Toggles the popover between the open and closed states. */\n togglePopover(): void {\n return this._popoverOpen ? this.closePopover() : this.openPopover();\n }\n\n /** Opens the popover. */\n openPopover(): void {\n if (!this._popoverOpen && !this._halt) {\n this._createOverlay().attach(this._portal);\n\n this._subscribeToBackdrop();\n this._subscribeToDetachments();\n\n this._initPopover();\n }\n }\n\n /** Closes the popover. */\n closePopover(): void {\n if (this._overlayRef) {\n this._overlayRef.detach();\n this._resetPopover();\n }\n\n this.destroyPopover();\n }\n\n /** Removes the popover from the DOM. */\n destroyPopover(): void {\n if (this._mouseoverTimer) {\n clearTimeout(this._mouseoverTimer);\n this._mouseoverTimer = null;\n }\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n this._cleanUpSubscriptions();\n }\n\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n /** Focuses the popover trigger. */\n focus() {\n this._elementRef.nativeElement.focus();\n }\n\n /** The text direction of the containing app. */\n get dir(): Direction {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n }\n\n /**\n * This method ensures that the popover closes when the overlay backdrop is clicked.\n * We do not use first() here because doing so would not catch clicks from within\n * the popover, and it would fail to unsubscribe properly. Instead, we unsubscribe\n * explicitly when the popover is closed or destroyed.\n */\n private _subscribeToBackdrop(): void {\n if (this._overlayRef) {\n /** Only subscribe to backdrop if trigger event is click */\n if (this.triggerEvent === 'click' && this.popover.closeOnBackdropClick === true) {\n this._overlayRef\n .backdropClick()\n .pipe(takeUntil(this.popoverClosed$), takeUntil(this._onDestroy))\n .subscribe(() => {\n this.popover._emitCloseEvent();\n });\n }\n }\n }\n\n private _subscribeToDetachments(): void {\n if (this._overlayRef) {\n this._overlayRef\n .detachments()\n .pipe(takeUntil(this.popoverClosed$), takeUntil(this._onDestroy))\n .subscribe(() => {\n this._setPopoverClosed();\n });\n }\n }\n\n /**\n * This method sets the popover state to open and focuses the first item if\n * the popover was opened via the keyboard.\n */\n private _initPopover(): void {\n this._setPopoverOpened();\n }\n\n /**\n * This method resets the popover when it's closed, most importantly restoring\n * focus to the popover trigger if the popover was opened via the keyboard.\n */\n private _resetPopover(): void {\n this._setPopoverClosed();\n\n // Focus only needs to be reset to the host element if the popover was opened\n // by the keyboard and manually shifted to the first popover item.\n if (!this._openedByMouse) {\n this.focus();\n }\n this._openedByMouse = false;\n }\n\n /** set state rather than toggle to support triggers sharing a popover */\n private _setPopoverOpened(): void {\n if (!this._popoverOpen) {\n this._popoverOpen = true;\n\n this.popoverOpened$.next();\n this.popoverOpened.emit();\n }\n }\n\n /** set state rather than toggle to support triggers sharing a popover */\n private _setPopoverClosed(): void {\n if (this._popoverOpen) {\n this._popoverOpen = false;\n\n this.popoverClosed$.next();\n this.popoverClosed.emit();\n }\n }\n\n /**\n * This method checks that a valid instance of MdPopover has been passed into\n * mdPopoverTriggerFor. If not, an exception is thrown.\n */\n private _checkPopover() {\n if (!this.popover) {\n throwMtxPopoverMissingError();\n }\n }\n\n /**\n * This method creates the overlay from the provided popover's template and saves its\n * OverlayRef so that it can be attached to the DOM when openPopover is called.\n */\n private _createOverlay(): OverlayRef {\n if (!this._overlayRef) {\n this._portal = new TemplatePortal(this.popover.templateRef, this._viewContainerRef);\n const config = this._getOverlayConfig();\n this._subscribeToPositions(config.positionStrategy as FlexibleConnectedPositionStrategy);\n this._overlayRef = this._overlay.create(config);\n }\n\n return this._overlayRef;\n }\n\n /**\n * This method builds the configuration object needed to create the overlay, the OverlayConfig.\n * @returns OverlayConfig\n */\n private _getOverlayConfig(): OverlayConfig {\n const overlayState = new OverlayConfig();\n overlayState.positionStrategy = this._getPosition();\n\n /** Display overlay backdrop if trigger event is click */\n if (this.triggerEvent === 'click') {\n overlayState.hasBackdrop = true;\n overlayState.backdropClass = 'cdk-overlay-transparent-backdrop';\n }\n\n overlayState.direction = this._dir;\n overlayState.scrollStrategy = this._getOverlayScrollStrategy(this.popover.scrollStrategy);\n\n return overlayState;\n }\n\n /**\n * This method returns the scroll strategy used by the cdk/overlay.\n */\n private _getOverlayScrollStrategy(strategy: MtxPopoverScrollStrategy): ScrollStrategy {\n switch (strategy) {\n case 'noop':\n return this._overlay.scrollStrategies.noop();\n case 'close':\n return this._overlay.scrollStrategies.close();\n case 'block':\n return this._overlay.scrollStrategies.block();\n case 'reposition':\n default:\n return this._overlay.scrollStrategies.reposition();\n }\n }\n\n /**\n * Listens to changes in the position of the overlay and sets the correct classes\n * on the popover based on the new position. This ensures the animation origin is always\n * correct, even if a fallback position is used for the overlay.\n */\n private _subscribeToPositions(position: FlexibleConnectedPositionStrategy): void {\n this._positionSubscription = position.positionChanges.subscribe(change => {\n const posX =\n change.connectionPair.overlayX === 'start'\n ? 'after'\n : change.connectionPair.overlayX === 'end'\n ? 'before'\n : 'center';\n const posY =\n change.connectionPair.overlayY === 'top'\n ? 'below'\n : change.connectionPair.overlayY === 'bottom'\n ? 'above'\n : 'center';\n\n const pos: MtxPopoverPosition =\n this.popover.position[0] === 'above' || this.popover.position[0] === 'below'\n ? [posY as MtxPopoverPositionStart, posX]\n : [posX as MtxPopoverPositionStart, posY];\n\n // required for ChangeDetectionStrategy.OnPush\n this._changeDetectorRef.markForCheck();\n\n this.popover.zone.run(() => {\n this.popover.setCurrentStyles(pos);\n this.popover.setPositionClasses(pos);\n });\n });\n }\n\n /**\n * This method builds the position strategy for the overlay, so the popover is properly connected\n * to the trigger.\n * @returns ConnectedPositionStrategy\n */\n private _getPosition(): FlexibleConnectedPositionStrategy {\n const [originX, origin2ndX, origin3rdX]: HorizontalConnectionPos[] =\n this.popover.position[0] === 'before' || this.popover.position[1] === 'after'\n ? ['start', 'center', 'end']\n : this.popover.position[0] === 'after' || this.popover.position[1] === 'before'\n ? ['end', 'center', 'start']\n : ['center', 'start', 'end'];\n\n const [originY, origin2ndY, origin3rdY]: VerticalConnectionPos[] =\n this.popover.position[0] === 'above' || this.popover.position[1] === 'below'\n ? ['top', 'center', 'bottom']\n : this.popover.position[0] === 'below' || this.popover.position[1] === 'above'\n ? ['bottom', 'center', 'top']\n : ['center', 'top', 'bottom'];\n\n const [overlayX, overlayFallbackX]: HorizontalConnectionPos[] =\n this.popover.position[0] === 'below' || this.popover.position[0] === 'above'\n ? [originX, originX]\n : this.popover.position[0] === 'before'\n ? ['end', 'start']\n : ['start', 'end'];\n\n const [overlayY, overlayFallbackY]: VerticalConnectionPos[] =\n this.popover.position[0] === 'before' || this.popover.position[0] === 'after'\n ? [originY, originY]\n : this.popover.position[0] === 'below'\n ? ['top', 'bottom']\n : ['bottom', 'top'];\n\n const originFallbackX = overlayX;\n const originFallbackY = overlayY;\n\n const offsetX =\n this.popover.xOffset && !isNaN(Number(this.popover.xOffset))\n ? Number(this.dir === 'ltr' ? this.popover.xOffset : -this.popover.xOffset)\n : 0;\n const offsetY =\n this.popover.yOffset && !isNaN(Number(this.popover.yOffset))\n ? Number(this.popover.yOffset)\n : 0;\n\n /**\n * For overriding position element, when `mtxPopoverTargetAt` has a valid element reference.\n * Useful for sticking popover to parent element and offsetting arrow to trigger element.\n * If undefined defaults to the trigger element reference.\n */\n let element = this._elementRef;\n if (typeof this.targetElement !== 'undefined') {\n this.popover.containerPositioning = true;\n element = this.targetElement._elementRef;\n }\n\n let positions: ConnectedPosition[] = [{ originX, originY, overlayX, overlayY }];\n\n if (this.popover.position[0] === 'above' || this.popover.position[0] === 'below') {\n positions = [\n { originX, originY, overlayX, overlayY, offsetY },\n { originX: origin2ndX, originY, overlayX: origin2ndX, overlayY, offsetY },\n { originX: origin3rdX, originY, overlayX: origin3rdX, overlayY, offsetY },\n {\n originX,\n originY: originFallbackY,\n overlayX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY,\n },\n {\n originX: origin2ndX,\n originY: originFallbackY,\n overlayX: origin2ndX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY,\n },\n {\n originX: origin3rdX,\n originY: originFallbackY,\n overlayX: origin3rdX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY,\n },\n ];\n }\n\n if (this.popover.position[0] === 'before' || this.popover.position[0] === 'after') {\n positions = [\n { originX, originY, overlayX, overlayY, offsetX },\n { originX, originY: origin2ndY, overlayX, overlayY: origin2ndY, offsetX },\n { originX, originY: origin3rdY, overlayX, overlayY: origin3rdY, offsetX },\n {\n originX: originFallbackX,\n originY,\n overlayX: overlayFallbackX,\n overlayY,\n offsetX: -offsetX,\n },\n {\n originX: originFallbackX,\n originY: origin2ndY,\n overlayX: overlayFallbackX,\n overlayY: origin2ndY,\n offsetX: -offsetX,\n },\n {\n originX: originFallbackX,\n originY: origin3rdY,\n overlayX: overlayFallbackX,\n overlayY: origin3rdY,\n offsetX: -offsetX,\n },\n ];\n }\n\n return this._overlay\n .position()\n .flexibleConnectedTo(element)\n .withLockedPosition()\n .withPositions(positions)\n .withDefaultOffsetX(offsetX)\n .withDefaultOffsetY(offsetY);\n }\n\n private _cleanUpSubscriptions(): void {\n if (this._backdropSubscription) {\n this._backdropSubscription.unsubscribe();\n }\n if (this._positionSubscription) {\n this._positionSubscription.unsubscribe();\n }\n if (this._detachmentsSubscription) {\n this._detachmentsSubscription.unsubscribe();\n }\n }\n\n @HostListener('mousedown', ['$event']) _handleMousedown(event: MouseEvent): void {\n if (event && !isFakeMousedownFromScreenReader(event)) {\n this._openedByMouse = true;\n }\n }\n}\n","import { Directive, ElementRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'mtx-popover-target, [mtxPopoverTarget]',\r\n exportAs: 'mtxPopoverTarget',\r\n})\r\nexport class MtxPopoverTarget {\r\n constructor(public _elementRef: ElementRef) {}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\n\r\nimport { MtxPopover } from './popover';\r\nimport { MtxPopoverTrigger } from './popover-trigger';\r\nimport { MtxPopoverTarget } from './popover-target';\r\n\r\n@NgModule({\r\n imports: [OverlayModule, CommonModule, A11yModule],\r\n exports: [MtxPopover, MtxPopoverTrigger, MtxPopoverTarget],\r\n declarations: [MtxPopover, MtxPopoverTrigger, MtxPopoverTarget],\r\n})\r\nexport class MtxPopoverModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mtxPopover.mjs","sources":["../../../projects/extensions/popover/popover-errors.ts","../../../projects/extensions/popover/popover-animations.ts","../../../projects/extensions/popover/popover.ts","../../../projects/extensions/popover/popover.html","../../../projects/extensions/popover/popover-trigger.ts","../../../projects/extensions/popover/popover-target.ts","../../../projects/extensions/popover/popover-module.ts","../../../projects/extensions/popover/mtxPopover.ts"],"sourcesContent":["/**\n * Throws an exception for the case when popover trigger doesn't have a valid mtx-popover instance\n */\nexport function throwMtxPopoverMissingError() {\n throw Error(`mtx-popover-trigger: must pass in an mtx-popover instance.\n\n Example:\n <mtx-popover #popover=\"mtxPopover\"></mtx-popover>\n <button [mtxPopoverTriggerFor]=\"popover\"></button>`);\n}\n\n/**\n * Throws an exception for the case when popover's mtxPopoverPosition[0] value isn't valid.\n * In other words, it doesn't match 'above', 'below', 'before' or 'after'.\n */\nexport function throwMtxPopoverInvalidPositionStart() {\n throw Error(`mtxPopoverPosition[0] value must be either 'above', 'below', 'before' or 'after'.\n Example: <mtx-popover [position]=\"['below', 'after']\" #popover=\"mtxPopover\"></mtx-popover>`);\n}\n\n/**\n * Throws an exception for the case when popover's mtxPopoverPosition[1] value isn't valid.\n * In other words, it doesn't match 'above', 'below', 'before', 'after' or 'center'.\n */\nexport function throwMtxPopoverInvalidPositionEnd() {\n throw Error(`mtxPopoverPosition[1] value must be either 'above', 'below', 'before', 'after' or 'center'.\n Example: <mtx-popover [position]=\"['below', 'after']\" #popover=\"mtxPopover\"></mtx-popover>`);\n}\n","import {\r\n trigger,\r\n state,\r\n style,\r\n animate,\r\n transition,\r\n AnimationTriggerMetadata,\r\n} from '@angular/animations';\r\n\r\n/**\r\n * Below are all the animations for the md-popover component.\r\n * Animation duration and timing values are based on AngularJS Material.\r\n */\r\n\r\n/**\r\n * This animation controls the popover panel's entry and exit from the page.\r\n *\r\n * When the popover panel is added to the DOM, it scales in and fades in its border.\r\n *\r\n * When the popover panel is removed from the DOM, it simply fades out after a brief\r\n * delay to display the ripple.\r\n */\r\n\r\nexport const transformPopover: AnimationTriggerMetadata = trigger('transformPopover', [\r\n state(\r\n 'enter',\r\n style({\r\n opacity: 1,\r\n transform: `scale(1)`,\r\n })\r\n ),\r\n transition('void => *', [\r\n style({\r\n opacity: 0,\r\n transform: `scale(0)`,\r\n }),\r\n animate(`200ms cubic-bezier(0.25, 0.8, 0.25, 1)`),\r\n ]),\r\n transition('* => void', [animate('50ms 100ms linear', style({ opacity: 0 }))]),\r\n]);\r\n","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n ElementRef,\n ChangeDetectionStrategy,\n HostBinding,\n NgZone,\n Optional,\n} from '@angular/core';\nimport { AnimationEvent } from '@angular/animations';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport { Directionality } from '@angular/cdk/bidi';\n\nimport {\n MtxPopoverTriggerEvent,\n MtxPopoverScrollStrategy,\n MtxPopoverPosition,\n} from './popover-types';\nimport {\n throwMtxPopoverInvalidPositionStart,\n throwMtxPopoverInvalidPositionEnd,\n} from './popover-errors';\nimport { MtxPopoverPanel } from './popover-interfaces';\nimport { transformPopover } from './popover-animations';\n\n@Component({\n selector: 'mtx-popover',\n templateUrl: './popover.html',\n styleUrls: ['./popover.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [transformPopover],\n exportAs: 'mtxPopover',\n})\nexport class MtxPopover implements MtxPopoverPanel, OnDestroy {\n @HostBinding('attr.role') role = 'dialog';\n\n /** Settings for popover, view setters and getters for more detail */\n private _position: MtxPopoverPosition = ['below', 'after'];\n private _triggerEvent: MtxPopoverTriggerEvent = 'hover';\n private _scrollStrategy: MtxPopoverScrollStrategy = 'reposition';\n private _enterDelay = 100;\n private _leaveDelay = 100;\n private _panelOffsetX = 0;\n private _panelOffsetY = 0;\n private _closeOnPanelClick = false;\n private _closeOnBackdropClick = true;\n private _disableAnimation = false;\n private _focusTrapEnabled = true;\n private _focusTrapAutoCaptureEnabled = true;\n private _arrowOffsetX = 20;\n private _arrowOffsetY = 20;\n private _arrowWidth = 16;\n private _arrowHeight = 16;\n\n /** Config object to be passed into the popover's ngClass */\n _classList: { [key: string]: boolean } = {};\n\n /** Whether popover's `targetElement` is defined */\n public containerPositioning = false;\n\n /** Closing disabled on popover */\n public closeDisabled = false;\n\n /** Config object to be passed into the popover's arrow ngStyle */\n public popoverPanelStyles!: Record<string, unknown>;\n\n /** Config object to be passed into the popover's arrow ngStyle */\n public popoverArrowStyles!: Record<string, unknown>;\n\n /** Config object to be passed into the popover's content ngStyle */\n public popoverContentStyles!: Record<string, unknown>;\n\n /** Emits the current animation state whenever it changes. */\n _onAnimationStateChange = new EventEmitter<AnimationEvent>();\n\n /** Position of the popover. */\n @Input()\n get position() {\n return this._position;\n }\n set position(value: MtxPopoverPosition) {\n if (!['before', 'after', 'above', 'below'].includes(value[0])) {\n throwMtxPopoverInvalidPositionStart();\n }\n if (!['before', 'after', 'above', 'below', 'center'].includes(value[1])) {\n throwMtxPopoverInvalidPositionEnd();\n }\n this._position = value;\n this.setPositionClasses();\n }\n\n /** Popover trigger event */\n @Input()\n get triggerEvent(): MtxPopoverTriggerEvent {\n return this._triggerEvent;\n }\n set triggerEvent(value: MtxPopoverTriggerEvent) {\n this._triggerEvent = value;\n }\n\n /** Popover scroll strategy */\n @Input()\n get scrollStrategy(): MtxPopoverScrollStrategy {\n return this._scrollStrategy;\n }\n set scrollStrategy(value: MtxPopoverScrollStrategy) {\n this._scrollStrategy = value;\n }\n\n /** Popover enter delay */\n @Input()\n get enterDelay(): number {\n return this._enterDelay;\n }\n set enterDelay(value: number) {\n this._enterDelay = value;\n }\n\n /** Popover leave delay */\n @Input()\n get leaveDelay(): number {\n return this._leaveDelay;\n }\n set leaveDelay(value: number) {\n this._leaveDelay = value;\n }\n\n /** Popover target offset x */\n @Input()\n get xOffset(): number {\n return this._panelOffsetX;\n }\n set xOffset(value: number) {\n this._panelOffsetX = value;\n }\n\n /** Popover target offset y */\n @Input()\n get yOffset(): number {\n return this._panelOffsetY;\n }\n set yOffset(value: number) {\n this._panelOffsetY = value;\n }\n\n /** Popover arrow offset x */\n @Input()\n get arrowOffsetX(): number {\n return this._arrowOffsetX;\n }\n set arrowOffsetX(value: number) {\n this._arrowOffsetX = value;\n }\n\n /** Popover arrow offset y */\n @Input()\n get arrowOffsetY(): number {\n return this._arrowOffsetY;\n }\n set arrowOffsetY(value: number) {\n this._arrowOffsetY = value;\n }\n\n /** Popover arrow width */\n @Input()\n get arrowWidth(): number {\n return this._arrowWidth;\n }\n set arrowWidth(value: number) {\n this._arrowWidth = value;\n }\n\n /** Popover arrow height */\n @Input()\n get arrowHeight(): number {\n return this._arrowHeight;\n }\n set arrowHeight(value: number) {\n this._arrowHeight = value;\n }\n\n /** Popover close on container click */\n @Input()\n get closeOnPanelClick(): boolean {\n return this._closeOnPanelClick;\n }\n set closeOnPanelClick(value: boolean) {\n this._closeOnPanelClick = coerceBooleanProperty(value);\n }\n\n /** Popover close on backdrop click */\n @Input()\n get closeOnBackdropClick(): boolean {\n return this._closeOnBackdropClick;\n }\n set closeOnBackdropClick(value: boolean) {\n this._closeOnBackdropClick = coerceBooleanProperty(value);\n }\n\n /** Disable animations of popover and all child elements */\n @Input()\n get disableAnimation(): boolean {\n return this._disableAnimation;\n }\n set disableAnimation(value: boolean) {\n this._disableAnimation = coerceBooleanProperty(value);\n }\n\n /** Popover focus trap using cdkTrapFocus */\n @Input()\n get focusTrapEnabled(): boolean {\n return this._focusTrapEnabled;\n }\n set focusTrapEnabled(value: boolean) {\n this._focusTrapEnabled = coerceBooleanProperty(value);\n }\n\n /** Popover focus trap auto capture using cdkTrapFocusAutoCapture */\n @Input()\n get focusTrapAutoCaptureEnabled(): boolean {\n return this._focusTrapAutoCaptureEnabled;\n }\n set focusTrapAutoCaptureEnabled(value: boolean) {\n this._focusTrapAutoCaptureEnabled = coerceBooleanProperty(value);\n }\n\n /**\n * This method takes classes set on the host md-popover element and applies them on the\n * popover template that displays in the overlay container. Otherwise, it's difficult\n * to style the containing popover from outside the component.\n * @param classes list of class names\n */\n @Input('class')\n set panelClass(classes: string) {\n if (classes && classes.length) {\n this._classList = classes.split(' ').reduce((obj: any, className: string) => {\n obj[className] = true;\n return obj;\n }, {});\n\n this._elementRef.nativeElement.className = '';\n this.setPositionClasses();\n }\n }\n\n /**\n * This method takes classes set on the host md-popover element and applies them on the\n * popover template that displays in the overlay container. Otherwise, it's difficult\n * to style the containing popover from outside the component.\n * @deprecated Use `panelClass` instead.\n * @breaking-change 8.0.0\n */\n @Input()\n get classList(): string {\n return this.panelClass;\n }\n set classList(classes: string) {\n this.panelClass = classes;\n }\n\n /** Event emitted when the popover is closed. */\n @Output() closed = new EventEmitter<void>();\n\n @ViewChild(TemplateRef) templateRef!: TemplateRef<any>;\n\n constructor(\n @Optional() private _dir: Directionality,\n private _elementRef: ElementRef,\n public zone: NgZone\n ) {\n this.setPositionClasses();\n }\n\n ngOnDestroy() {\n this._emitCloseEvent();\n this.closed.complete();\n }\n\n /** Handle a keyboard event from the popover, delegating to the appropriate action. */\n _handleKeydown(event: KeyboardEvent) {\n switch (event.keyCode) {\n case ESCAPE:\n this._emitCloseEvent();\n return;\n }\n }\n\n /**\n * This emits a close event to which the trigger is subscribed. When emitted, the\n * trigger will close the popover.\n */\n _emitCloseEvent(): void {\n this.closed.emit();\n }\n\n /** Close popover on click if closeOnPanelClick is true */\n onClick() {\n if (this.closeOnPanelClick) {\n this._emitCloseEvent();\n }\n }\n\n /** Disables close of popover when leaving trigger element and mouse over the popover */\n onMouseOver() {\n if (this.triggerEvent === 'hover') {\n this.closeDisabled = true;\n }\n }\n\n /** Enables close of popover when mouse leaving popover element */\n onMouseLeave() {\n if (this.triggerEvent === 'hover') {\n setTimeout(() => {\n this.closeDisabled = false;\n this._emitCloseEvent();\n }, this.leaveDelay);\n }\n }\n\n /** Sets the current styles for the popover to allow for dynamically changing settings */\n setCurrentStyles(pos = this.position) {\n const left =\n pos[1] === 'after'\n ? `${this.arrowOffsetX - this.arrowWidth / 2}px`\n : pos[1] === 'center'\n ? `calc(50% - ${this.arrowWidth / 2}px)`\n : '';\n const right = pos[1] === 'before' ? `${this.arrowOffsetX - this.arrowWidth / 2}px` : '';\n\n const bottom =\n pos[1] === 'above'\n ? `${this.arrowOffsetY - this.arrowHeight / 2}px`\n : pos[1] === 'center'\n ? `calc(50% - ${this.arrowHeight / 2}px)`\n : '';\n const top = pos[1] === 'below' ? `${this.arrowOffsetY - this.arrowHeight / 2}px` : '';\n\n this.popoverArrowStyles =\n pos[0] === 'above' || pos[0] === 'below'\n ? {\n left: this._dir.value === 'ltr' ? left : right,\n right: this._dir.value === 'ltr' ? right : left,\n }\n : {\n top,\n bottom,\n };\n }\n\n /**\n * It's necessary to set position-based classes to ensure the popover panel animation\n * folds out from the correct direction.\n */\n setPositionClasses(pos = this.position): void {\n this._classList['mtx-popover-before-above'] = pos[0] === 'before' && pos[1] === 'above';\n this._classList['mtx-popover-before-center'] = pos[0] === 'before' && pos[1] === 'center';\n this._classList['mtx-popover-before-below'] = pos[0] === 'before' && pos[1] === 'below';\n this._classList['mtx-popover-after-above'] = pos[0] === 'after' && pos[1] === 'above';\n this._classList['mtx-popover-after-center'] = pos[0] === 'after' && pos[1] === 'center';\n this._classList['mtx-popover-after-below'] = pos[0] === 'after' && pos[1] === 'below';\n this._classList['mtx-popover-above-before'] = pos[0] === 'above' && pos[1] === 'before';\n this._classList['mtx-popover-above-center'] = pos[0] === 'above' && pos[1] === 'center';\n this._classList['mtx-popover-above-after'] = pos[0] === 'above' && pos[1] === 'after';\n this._classList['mtx-popover-below-before'] = pos[0] === 'below' && pos[1] === 'before';\n this._classList['mtx-popover-below-center'] = pos[0] === 'below' && pos[1] === 'center';\n this._classList['mtx-popover-below-after'] = pos[0] === 'below' && pos[1] === 'after';\n }\n\n static ngAcceptInputType_closeOnPanelClick: BooleanInput;\n static ngAcceptInputType_closeOnBackdropClick: BooleanInput;\n static ngAcceptInputType_disableAnimation: BooleanInput;\n static ngAcceptInputType_focusTrapEnabled: BooleanInput;\n static ngAcceptInputType_focusTrapAutoCaptureEnabled: BooleanInput;\n}\n","<ng-template>\r\n <div class=\"mtx-popover-panel mat-elevation-z8\" role=\"dialog\"\r\n [ngClass]=\"_classList\"\r\n [ngStyle]=\"popoverPanelStyles\"\r\n (keydown)=\"_handleKeydown($event)\"\r\n (click)=\"onClick()\"\r\n (mouseover)=\"onMouseOver()\"\r\n (mouseleave)=\"onMouseLeave()\"\r\n [@.disabled]=\"disableAnimation\"\r\n [@transformPopover]=\"'enter'\">\r\n <div class=\"mtx-popover-direction-arrow\" [ngStyle]=\"popoverArrowStyles\"></div>\r\n <div class=\"mtx-popover-content\"\r\n [ngStyle]=\"popoverContentStyles\"\r\n [cdkTrapFocus]=\"focusTrapEnabled\"\r\n [cdkTrapFocusAutoCapture]=\"focusTrapAutoCaptureEnabled\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>\r\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n ViewContainerRef,\n HostListener,\n HostBinding,\n ChangeDetectorRef,\n} from '@angular/core';\n\nimport { isFakeMousedownFromScreenReader } from '@angular/cdk/a11y';\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport {\n Overlay,\n OverlayRef,\n OverlayConfig,\n HorizontalConnectionPos,\n VerticalConnectionPos,\n FlexibleConnectedPositionStrategy,\n ScrollStrategy,\n ConnectedPosition,\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\nimport { Subscription, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { MtxPopoverPanel, MtxTarget } from './popover-interfaces';\nimport {\n MtxPopoverTriggerEvent,\n MtxPopoverScrollStrategy,\n MtxPopoverPosition,\n MtxPopoverPositionStart,\n} from './popover-types';\nimport { throwMtxPopoverMissingError } from './popover-errors';\n\n/**\n * This directive is intended to be used in conjunction with an mtx-popover tag. It is\n * responsible for toggling the display of the provided popover instance.\n */\n\n@Directive({\n selector: '[mtxPopoverTriggerFor]',\n exportAs: 'mtxPopoverTrigger',\n})\nexport class MtxPopoverTrigger implements AfterViewInit, OnDestroy {\n @HostBinding('attr.aria-haspopup') ariaHaspopup = true;\n\n popoverOpened$ = new Subject<void>();\n popoverClosed$ = new Subject<void>();\n\n private _portal!: TemplatePortal<any>;\n private _overlayRef: OverlayRef | null = null;\n private _popoverOpen = false;\n private _halt = false;\n private _backdropSubscription!: Subscription;\n private _positionSubscription!: Subscription;\n private _detachmentsSubscription!: Subscription;\n\n private _mouseoverTimer: any;\n\n // tracking input type is necessary so it's possible to only auto-focus\n // the first item of the list when the popover is opened via the keyboard\n private _openedByMouse = false;\n\n private _onDestroy = new Subject<void>();\n\n /** References the popover instance that the trigger is associated with. */\n @Input('mtxPopoverTriggerFor') popover!: MtxPopoverPanel;\n\n /** References the popover target instance that the trigger is associated with. */\n @Input('mtxPopoverTargetAt') targetElement!: MtxTarget;\n\n /** Popover trigger event */\n @Input('mtxPopoverTriggerOn') triggerEvent!: MtxPopoverTriggerEvent;\n\n /** Event emitted when the associated popover is opened. */\n @Output() popoverOpened = new EventEmitter<void>();\n\n /** Event emitted when the associated popover is closed. */\n @Output() popoverClosed = new EventEmitter<void>();\n\n constructor(\n private _overlay: Overlay,\n public _elementRef: ElementRef,\n private _viewContainerRef: ViewContainerRef,\n @Optional() private _dir: Directionality,\n private _changeDetectorRef: ChangeDetectorRef\n ) {}\n\n ngAfterViewInit() {\n this._checkPopover();\n this._setCurrentConfig();\n this.popover.closed.subscribe(() => this.closePopover());\n }\n\n ngOnDestroy() {\n this.destroyPopover();\n }\n\n private _setCurrentConfig() {\n if (this.triggerEvent) {\n this.popover.triggerEvent = this.triggerEvent;\n }\n\n this.popover.setCurrentStyles();\n }\n\n /** Whether the popover is open. */\n get popoverOpen(): boolean {\n return this._popoverOpen;\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n if (this.popover.triggerEvent === 'click') {\n this.togglePopover();\n }\n }\n\n @HostListener('mouseenter', ['$event'])\n onMouseEnter(event: MouseEvent): void {\n this._halt = false;\n if (this.popover.triggerEvent === 'hover') {\n this._mouseoverTimer = setTimeout(() => {\n this.openPopover();\n }, this.popover.enterDelay);\n }\n }\n\n @HostListener('mouseleave', ['$event'])\n onMouseLeave(event: MouseEvent): void {\n if (this.popover.triggerEvent === 'hover') {\n if (this._mouseoverTimer) {\n clearTimeout(this._mouseoverTimer);\n this._mouseoverTimer = null;\n }\n if (this._popoverOpen) {\n setTimeout(() => {\n if (!this.popover.closeDisabled) {\n this.closePopover();\n }\n }, this.popover.leaveDelay);\n } else {\n this._halt = true;\n }\n }\n }\n\n /** Toggles the popover between the open and closed states. */\n togglePopover(): void {\n return this._popoverOpen ? this.closePopover() : this.openPopover();\n }\n\n /** Opens the popover. */\n openPopover(): void {\n if (!this._popoverOpen && !this._halt) {\n this._createOverlay().attach(this._portal);\n\n this._subscribeToBackdrop();\n this._subscribeToDetachments();\n\n this._initPopover();\n }\n }\n\n /** Closes the popover. */\n closePopover(): void {\n if (this._overlayRef) {\n this._overlayRef.detach();\n this._resetPopover();\n }\n\n this.destroyPopover();\n }\n\n /** Removes the popover from the DOM. */\n destroyPopover(): void {\n if (this._mouseoverTimer) {\n clearTimeout(this._mouseoverTimer);\n this._mouseoverTimer = null;\n }\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n this._cleanUpSubscriptions();\n }\n\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n /** Focuses the popover trigger. */\n focus() {\n this._elementRef.nativeElement.focus();\n }\n\n /** The text direction of the containing app. */\n get dir(): Direction {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n }\n\n /**\n * This method ensures that the popover closes when the overlay backdrop is clicked.\n * We do not use first() here because doing so would not catch clicks from within\n * the popover, and it would fail to unsubscribe properly. Instead, we unsubscribe\n * explicitly when the popover is closed or destroyed.\n */\n private _subscribeToBackdrop(): void {\n if (this._overlayRef) {\n /** Only subscribe to backdrop if trigger event is click */\n if (this.triggerEvent === 'click' && this.popover.closeOnBackdropClick === true) {\n this._overlayRef\n .backdropClick()\n .pipe(takeUntil(this.popoverClosed$), takeUntil(this._onDestroy))\n .subscribe(() => {\n this.popover._emitCloseEvent();\n });\n }\n }\n }\n\n private _subscribeToDetachments(): void {\n if (this._overlayRef) {\n this._overlayRef\n .detachments()\n .pipe(takeUntil(this.popoverClosed$), takeUntil(this._onDestroy))\n .subscribe(() => {\n this._setPopoverClosed();\n });\n }\n }\n\n /**\n * This method sets the popover state to open and focuses the first item if\n * the popover was opened via the keyboard.\n */\n private _initPopover(): void {\n this._setPopoverOpened();\n }\n\n /**\n * This method resets the popover when it's closed, most importantly restoring\n * focus to the popover trigger if the popover was opened via the keyboard.\n */\n private _resetPopover(): void {\n this._setPopoverClosed();\n\n // Focus only needs to be reset to the host element if the popover was opened\n // by the keyboard and manually shifted to the first popover item.\n if (!this._openedByMouse) {\n this.focus();\n }\n this._openedByMouse = false;\n }\n\n /** set state rather than toggle to support triggers sharing a popover */\n private _setPopoverOpened(): void {\n if (!this._popoverOpen) {\n this._popoverOpen = true;\n\n this.popoverOpened$.next();\n this.popoverOpened.emit();\n }\n }\n\n /** set state rather than toggle to support triggers sharing a popover */\n private _setPopoverClosed(): void {\n if (this._popoverOpen) {\n this._popoverOpen = false;\n\n this.popoverClosed$.next();\n this.popoverClosed.emit();\n }\n }\n\n /**\n * This method checks that a valid instance of MdPopover has been passed into\n * mdPopoverTriggerFor. If not, an exception is thrown.\n */\n private _checkPopover() {\n if (!this.popover) {\n throwMtxPopoverMissingError();\n }\n }\n\n /**\n * This method creates the overlay from the provided popover's template and saves its\n * OverlayRef so that it can be attached to the DOM when openPopover is called.\n */\n private _createOverlay(): OverlayRef {\n if (!this._overlayRef) {\n this._portal = new TemplatePortal(this.popover.templateRef, this._viewContainerRef);\n const config = this._getOverlayConfig();\n this._subscribeToPositions(config.positionStrategy as FlexibleConnectedPositionStrategy);\n this._overlayRef = this._overlay.create(config);\n }\n\n return this._overlayRef;\n }\n\n /**\n * This method builds the configuration object needed to create the overlay, the OverlayConfig.\n * @returns OverlayConfig\n */\n private _getOverlayConfig(): OverlayConfig {\n const overlayState = new OverlayConfig();\n overlayState.positionStrategy = this._getPosition();\n\n /** Display overlay backdrop if trigger event is click */\n if (this.triggerEvent === 'click') {\n overlayState.hasBackdrop = true;\n overlayState.backdropClass = 'cdk-overlay-transparent-backdrop';\n }\n\n overlayState.direction = this._dir;\n overlayState.scrollStrategy = this._getOverlayScrollStrategy(this.popover.scrollStrategy);\n\n return overlayState;\n }\n\n /**\n * This method returns the scroll strategy used by the cdk/overlay.\n */\n private _getOverlayScrollStrategy(strategy: MtxPopoverScrollStrategy): ScrollStrategy {\n switch (strategy) {\n case 'noop':\n return this._overlay.scrollStrategies.noop();\n case 'close':\n return this._overlay.scrollStrategies.close();\n case 'block':\n return this._overlay.scrollStrategies.block();\n case 'reposition':\n default:\n return this._overlay.scrollStrategies.reposition();\n }\n }\n\n /**\n * Listens to changes in the position of the overlay and sets the correct classes\n * on the popover based on the new position. This ensures the animation origin is always\n * correct, even if a fallback position is used for the overlay.\n */\n private _subscribeToPositions(position: FlexibleConnectedPositionStrategy): void {\n this._positionSubscription = position.positionChanges.subscribe(change => {\n const posX =\n change.connectionPair.overlayX === 'start'\n ? 'after'\n : change.connectionPair.overlayX === 'end'\n ? 'before'\n : 'center';\n const posY =\n change.connectionPair.overlayY === 'top'\n ? 'below'\n : change.connectionPair.overlayY === 'bottom'\n ? 'above'\n : 'center';\n\n const pos: MtxPopoverPosition =\n this.popover.position[0] === 'above' || this.popover.position[0] === 'below'\n ? [posY as MtxPopoverPositionStart, posX]\n : [posX as MtxPopoverPositionStart, posY];\n\n // required for ChangeDetectionStrategy.OnPush\n this._changeDetectorRef.markForCheck();\n\n this.popover.zone.run(() => {\n this.popover.setCurrentStyles(pos);\n this.popover.setPositionClasses(pos);\n });\n });\n }\n\n /**\n * This method builds the position strategy for the overlay, so the popover is properly connected\n * to the trigger.\n * @returns ConnectedPositionStrategy\n */\n private _getPosition(): FlexibleConnectedPositionStrategy {\n const [originX, origin2ndX, origin3rdX]: HorizontalConnectionPos[] =\n this.popover.position[0] === 'before' || this.popover.position[1] === 'after'\n ? ['start', 'center', 'end']\n : this.popover.position[0] === 'after' || this.popover.position[1] === 'before'\n ? ['end', 'center', 'start']\n : ['center', 'start', 'end'];\n\n const [originY, origin2ndY, origin3rdY]: VerticalConnectionPos[] =\n this.popover.position[0] === 'above' || this.popover.position[1] === 'below'\n ? ['top', 'center', 'bottom']\n : this.popover.position[0] === 'below' || this.popover.position[1] === 'above'\n ? ['bottom', 'center', 'top']\n : ['center', 'top', 'bottom'];\n\n const [overlayX, overlayFallbackX]: HorizontalConnectionPos[] =\n this.popover.position[0] === 'below' || this.popover.position[0] === 'above'\n ? [originX, originX]\n : this.popover.position[0] === 'before'\n ? ['end', 'start']\n : ['start', 'end'];\n\n const [overlayY, overlayFallbackY]: VerticalConnectionPos[] =\n this.popover.position[0] === 'before' || this.popover.position[0] === 'after'\n ? [originY, originY]\n : this.popover.position[0] === 'below'\n ? ['top', 'bottom']\n : ['bottom', 'top'];\n\n const originFallbackX = overlayX;\n const originFallbackY = overlayY;\n\n const offsetX =\n this.popover.xOffset && !isNaN(Number(this.popover.xOffset))\n ? Number(this.dir === 'ltr' ? this.popover.xOffset : -this.popover.xOffset)\n : 0;\n const offsetY =\n this.popover.yOffset && !isNaN(Number(this.popover.yOffset))\n ? Number(this.popover.yOffset)\n : 0;\n\n /**\n * For overriding position element, when `mtxPopoverTargetAt` has a valid element reference.\n * Useful for sticking popover to parent element and offsetting arrow to trigger element.\n * If undefined defaults to the trigger element reference.\n */\n let element = this._elementRef;\n if (typeof this.targetElement !== 'undefined') {\n this.popover.containerPositioning = true;\n element = this.targetElement._elementRef;\n }\n\n let positions: ConnectedPosition[] = [{ originX, originY, overlayX, overlayY }];\n\n if (this.popover.position[0] === 'above' || this.popover.position[0] === 'below') {\n positions = [\n { originX, originY, overlayX, overlayY, offsetY },\n { originX: origin2ndX, originY, overlayX: origin2ndX, overlayY, offsetY },\n { originX: origin3rdX, originY, overlayX: origin3rdX, overlayY, offsetY },\n {\n originX,\n originY: originFallbackY,\n overlayX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY,\n },\n {\n originX: origin2ndX,\n originY: originFallbackY,\n overlayX: origin2ndX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY,\n },\n {\n originX: origin3rdX,\n originY: originFallbackY,\n overlayX: origin3rdX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY,\n },\n ];\n }\n\n if (this.popover.position[0] === 'before' || this.popover.position[0] === 'after') {\n positions = [\n { originX, originY, overlayX, overlayY, offsetX },\n { originX, originY: origin2ndY, overlayX, overlayY: origin2ndY, offsetX },\n { originX, originY: origin3rdY, overlayX, overlayY: origin3rdY, offsetX },\n {\n originX: originFallbackX,\n originY,\n overlayX: overlayFallbackX,\n overlayY,\n offsetX: -offsetX,\n },\n {\n originX: originFallbackX,\n originY: origin2ndY,\n overlayX: overlayFallbackX,\n overlayY: origin2ndY,\n offsetX: -offsetX,\n },\n {\n originX: originFallbackX,\n originY: origin3rdY,\n overlayX: overlayFallbackX,\n overlayY: origin3rdY,\n offsetX: -offsetX,\n },\n ];\n }\n\n return this._overlay\n .position()\n .flexibleConnectedTo(element)\n .withLockedPosition()\n .withPositions(positions)\n .withDefaultOffsetX(offsetX)\n .withDefaultOffsetY(offsetY);\n }\n\n private _cleanUpSubscriptions(): void {\n if (this._backdropSubscription) {\n this._backdropSubscription.unsubscribe();\n }\n if (this._positionSubscription) {\n this._positionSubscription.unsubscribe();\n }\n if (this._detachmentsSubscription) {\n this._detachmentsSubscription.unsubscribe();\n }\n }\n\n @HostListener('mousedown', ['$event']) _handleMousedown(event: MouseEvent): void {\n if (event && !isFakeMousedownFromScreenReader(event)) {\n this._openedByMouse = true;\n }\n }\n}\n","import { Directive, ElementRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'mtx-popover-target, [mtxPopoverTarget]',\r\n exportAs: 'mtxPopoverTarget',\r\n})\r\nexport class MtxPopoverTarget {\r\n constructor(public _elementRef: ElementRef) {}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\n\r\nimport { MtxPopover } from './popover';\r\nimport { MtxPopoverTrigger } from './popover-trigger';\r\nimport { MtxPopoverTarget } from './popover-target';\r\n\r\n@NgModule({\r\n imports: [OverlayModule, CommonModule, A11yModule],\r\n exports: [MtxPopover, MtxPopoverTrigger, MtxPopoverTarget],\r\n declarations: [MtxPopover, MtxPopoverTrigger, MtxPopoverTarget],\r\n})\r\nexport class MtxPopoverModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/popover/popover.d.ts
CHANGED
|
@@ -121,10 +121,6 @@ export declare class MtxPopover implements MtxPopoverPanel, OnDestroy {
|
|
|
121
121
|
_emitCloseEvent(): void;
|
|
122
122
|
/** Close popover on click if closeOnPanelClick is true */
|
|
123
123
|
onClick(): void;
|
|
124
|
-
/**
|
|
125
|
-
* TODO: Refactor when @angular/cdk includes feature I mentioned on github see link below.
|
|
126
|
-
* https://github.com/angular/material2/pull/5493#issuecomment-313085323
|
|
127
|
-
*/
|
|
128
124
|
/** Disables close of popover when leaving trigger element and mouse over the popover */
|
|
129
125
|
onMouseOver(): void;
|
|
130
126
|
/** Enables close of popover when mouse leaving popover element */
|