@clr/angular
Version:
Angular components for Clarity
69 lines • 6.67 kB
JavaScript
/*
* Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
* This software is released under MIT license.
* The full license information can be found in LICENSE in the root directory of this project.
*/
import { Component, ContentChild } from '@angular/core';
import { ClrDatagridDetailHeader } from './datagrid-detail-header';
import * as i0 from "@angular/core";
import * as i1 from "./providers/detail.service";
import * as i2 from "../../utils/i18n/common-strings.service";
import * as i3 from "@angular/common";
import * as i4 from "../../utils/cdk/cdk-trap-focus.module";
export class ClrDatagridDetail {
constructor(detailService, commonStrings) {
this.detailService = detailService;
this.commonStrings = commonStrings;
}
close() {
this.detailService.close();
}
}
ClrDatagridDetail.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridDetail, deps: [{ token: i1.DetailService }, { token: i2.ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
ClrDatagridDetail.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrDatagridDetail, selector: "clr-dg-detail", host: { properties: { "class.datagrid-detail-pane": "true" } }, queries: [{ propertyName: "header", first: true, predicate: ClrDatagridDetailHeader, descendants: true }], ngImport: i0, template: `
<div
cdkTrapFocus
[cdkTrapFocusAutoCapture]="true"
class="datagrid-detail-pane-content"
*ngIf="detailService.isOpen"
role="dialog"
[id]="detailService.id"
aria-modal="true"
[attr.aria-describedby]="header ? header.titleId : ''"
>
<div class="clr-sr-only">{{ commonStrings.keys.detailPaneStart }}</div>
<ng-content></ng-content>
<div class="clr-sr-only">{{ commonStrings.keys.detailPaneEnd }}</div>
</div>
`, isInline: true, dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.CdkTrapFocusModule_CdkTrapFocus, selector: "[cdkTrapFocus]" }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridDetail, decorators: [{
type: Component,
args: [{
selector: 'clr-dg-detail',
host: {
'[class.datagrid-detail-pane]': 'true',
},
// We put the *ngIf on the cdkTrapFocus so it doesn't always exist on the page
// have to test for presence of header for aria-describedby because it was causing unit tests to crash
template: `
<div
cdkTrapFocus
[cdkTrapFocusAutoCapture]="true"
class="datagrid-detail-pane-content"
*ngIf="detailService.isOpen"
role="dialog"
[id]="detailService.id"
aria-modal="true"
[attr.aria-describedby]="header ? header.titleId : ''"
>
<div class="clr-sr-only">{{ commonStrings.keys.detailPaneStart }}</div>
<ng-content></ng-content>
<div class="clr-sr-only">{{ commonStrings.keys.detailPaneEnd }}</div>
</div>
`,
}]
}], ctorParameters: function () { return [{ type: i1.DetailService }, { type: i2.ClrCommonStringsService }]; }, propDecorators: { header: [{
type: ContentChild,
args: [ClrDatagridDetailHeader]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQtZGV0YWlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZGF0YS9kYXRhZ3JpZC9kYXRhZ3JpZC1kZXRhaWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7QUEyQm5FLE1BQU0sT0FBTyxpQkFBaUI7SUFHNUIsWUFBbUIsYUFBNEIsRUFBUyxhQUFzQztRQUEzRSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUF5QjtJQUFHLENBQUM7SUFFbEcsS0FBSztRQUNILElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7OEdBUFUsaUJBQWlCO2tHQUFqQixpQkFBaUIseUpBQ2QsdUJBQXVCLGdEQWxCM0I7Ozs7Ozs7Ozs7Ozs7OztHQWVUOzJGQUVVLGlCQUFpQjtrQkF4QjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLElBQUksRUFBRTt3QkFDSiw4QkFBOEIsRUFBRSxNQUFNO3FCQUN2QztvQkFDRCw4RUFBOEU7b0JBQzlFLHNHQUFzRztvQkFDdEcsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7R0FlVDtpQkFDRjswSUFFd0MsTUFBTTtzQkFBNUMsWUFBWTt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjMgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENsckNvbW1vblN0cmluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMvaTE4bi9jb21tb24tc3RyaW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IENsckRhdGFncmlkRGV0YWlsSGVhZGVyIH0gZnJvbSAnLi9kYXRhZ3JpZC1kZXRhaWwtaGVhZGVyJztcbmltcG9ydCB7IERldGFpbFNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9kZXRhaWwuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nsci1kZy1kZXRhaWwnLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5kYXRhZ3JpZC1kZXRhaWwtcGFuZV0nOiAndHJ1ZScsXG4gIH0sXG4gIC8vIFdlIHB1dCB0aGUgKm5nSWYgb24gdGhlIGNka1RyYXBGb2N1cyBzbyBpdCBkb2Vzbid0IGFsd2F5cyBleGlzdCBvbiB0aGUgcGFnZVxuICAvLyBoYXZlIHRvIHRlc3QgZm9yIHByZXNlbmNlIG9mIGhlYWRlciBmb3IgYXJpYS1kZXNjcmliZWRieSBiZWNhdXNlIGl0IHdhcyBjYXVzaW5nIHVuaXQgdGVzdHMgdG8gY3Jhc2hcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2XG4gICAgICBjZGtUcmFwRm9jdXNcbiAgICAgIFtjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZV09XCJ0cnVlXCJcbiAgICAgIGNsYXNzPVwiZGF0YWdyaWQtZGV0YWlsLXBhbmUtY29udGVudFwiXG4gICAgICAqbmdJZj1cImRldGFpbFNlcnZpY2UuaXNPcGVuXCJcbiAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgW2lkXT1cImRldGFpbFNlcnZpY2UuaWRcIlxuICAgICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJoZWFkZXIgPyBoZWFkZXIudGl0bGVJZCA6ICcnXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2xyLXNyLW9ubHlcIj57eyBjb21tb25TdHJpbmdzLmtleXMuZGV0YWlsUGFuZVN0YXJ0IH19PC9kaXY+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2xyLXNyLW9ubHlcIj57eyBjb21tb25TdHJpbmdzLmtleXMuZGV0YWlsUGFuZUVuZCB9fTwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBDbHJEYXRhZ3JpZERldGFpbCB7XG4gIEBDb250ZW50Q2hpbGQoQ2xyRGF0YWdyaWREZXRhaWxIZWFkZXIpIGhlYWRlcjogQ2xyRGF0YWdyaWREZXRhaWxIZWFkZXI7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGRldGFpbFNlcnZpY2U6IERldGFpbFNlcnZpY2UsIHB1YmxpYyBjb21tb25TdHJpbmdzOiBDbHJDb21tb25TdHJpbmdzU2VydmljZSkge31cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRldGFpbFNlcnZpY2UuY2xvc2UoKTtcbiAgfVxufVxuIl19