ng-halfmoon
Version:
Angular Library to build upon the halfmoon-framework
60 lines • 5.48 kB
JavaScript
import { Component, HostBinding, HostListener } from '@angular/core';
import { ModalRef } from '../modal-ref';
export class ModalContainerComponent {
constructor(modalRef) {
this.modalRef = modalRef;
this.baseClass = true;
this.role = 'dialog';
this.tabindex = '-1';
this.overlayDismissal = 'true';
this.escDismissal = 'true';
this.isShown = false;
}
onClick(event) {
if (event.target.classList.contains('modal-dialog')) {
this.close();
}
}
onEsc() {
this.close();
}
close() {
this.modalRef.close();
}
}
ModalContainerComponent.decorators = [
{ type: Component, args: [{
selector: 'hm-modal-container',
template: `
<div class="modal-dialog" role="document">
<div class="modal-content">
<button
class="close"
type="button"
aria-label="Close"
*ngIf="defaultDismiss"
(click)="close()"
>
<span aria-hidden="true">×</span>
</button>
<ng-content></ng-content>
</div>
</div>
`
},] }
];
ModalContainerComponent.ctorParameters = () => [
{ type: ModalRef }
];
ModalContainerComponent.propDecorators = {
baseClass: [{ type: HostBinding, args: ['class.modal',] }],
role: [{ type: HostBinding, args: ['attr.role',] }],
tabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],
overlayDismissal: [{ type: HostBinding, args: ['attr.data-overlay-dismissal-disabled',] }],
escDismissal: [{ type: HostBinding, args: ['attr.data-esc-dismissal-disabled',] }],
isShown: [{ type: HostBinding, args: ['class.show',] }],
id: [{ type: HostBinding, args: ['attr.id',] }],
onClick: [{ type: HostListener, args: ['click', ['$event'],] }],
onEsc: [{ type: HostListener, args: ['window:keydown.esc',] }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWhhbGZtb29uL3NyYy9saWIvYWR2YW5jZWQvbW9kYWwvbW9kYWwtY29udGFpbmVyL21vZGFsLWNvbnRhaW5lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFzQnRDLE1BQU0sT0FBTyx1QkFBdUI7SUFhbEMsWUFBb0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVpELGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDbkIsU0FBSSxHQUFHLFFBQVEsQ0FBQztRQUNaLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFFOUMscUJBQWdCLEdBQUcsTUFBTSxDQUFDO1FBQ3VCLGlCQUFZLEdBQ3BFLE1BQU0sQ0FBQztRQUVrQixZQUFPLEdBQUcsS0FBSyxDQUFDO0lBSUYsQ0FBQztJQUcxQyxPQUFPLENBQUMsS0FBaUI7UUFDdkIsSUFBSyxLQUFLLENBQUMsTUFBc0IsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ3BFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUdELEtBQUs7UUFDSCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7O1lBakRGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2dCQUM5QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7OztHQWVUO2FBRUY7OztZQXJCTyxRQUFROzs7d0JBdUJiLFdBQVcsU0FBQyxhQUFhO21CQUN6QixXQUFXLFNBQUMsV0FBVzt1QkFDdkIsV0FBVyxTQUFDLGVBQWU7K0JBQzNCLFdBQVcsU0FBQyxzQ0FBc0M7MkJBRWxELFdBQVcsU0FBQyxrQ0FBa0M7c0JBRzlDLFdBQVcsU0FBQyxZQUFZO2lCQUN4QixXQUFXLFNBQUMsU0FBUztzQkFLckIsWUFBWSxTQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztvQkFPaEMsWUFBWSxTQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TW9kYWxSZWZ9IGZyb20gJy4uL21vZGFsLXJlZic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2htLW1vZGFsLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWRpYWxvZ1wiIHJvbGU9XCJkb2N1bWVudFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiY2xvc2VcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbG9zZVwiXG4gICAgICAgICAgKm5nSWY9XCJkZWZhdWx0RGlzbWlzc1wiXG4gICAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsQ29udGFpbmVyQ29tcG9uZW50IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tb2RhbCcpIHJlYWRvbmx5IGJhc2VDbGFzcyA9IHRydWU7XG4gIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJykgcmVhZG9ubHkgcm9sZSA9ICdkaWFsb2cnO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKSByZWFkb25seSB0YWJpbmRleCA9ICctMSc7XG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLW92ZXJsYXktZGlzbWlzc2FsLWRpc2FibGVkJylcbiAgcmVhZG9ubHkgb3ZlcmxheURpc21pc3NhbCA9ICd0cnVlJztcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtZXNjLWRpc21pc3NhbC1kaXNhYmxlZCcpIHJlYWRvbmx5IGVzY0Rpc21pc3NhbCA9XG4gICAgJ3RydWUnO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Muc2hvdycpIGlzU2hvd24gPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJykgaWQ6IHN0cmluZztcbiAgZGVmYXVsdERpc21pc3M6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtb2RhbFJlZjogTW9kYWxSZWYpIHt9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsYXNzTGlzdC5jb250YWlucygnbW9kYWwtZGlhbG9nJykpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5ZG93bi5lc2MnKVxuICBvbkVzYygpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGFsUmVmLmNsb3NlKCk7XG4gIH1cbn1cbiJdfQ==