UNPKG

@clr/angular

Version:

Angular components for Clarity

95 lines 11.9 kB
/* * 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, ContentChildren, Input } from '@angular/core'; import { ClrDatagridCell } from './datagrid-cell'; import { SelectionType } from './enums/selection-type'; import * as i0 from "@angular/core"; import * as i1 from "./providers/selection"; import * as i2 from "./providers/row-action-service"; import * as i3 from "./datagrid-if-expanded.service"; import * as i4 from "./providers/global-expandable-rows"; import * as i5 from "../../utils/i18n/common-strings.service"; /** * Generic bland container serving various purposes for Datagrid. * For instance, it can help span a text over multiple rows in detail view. */ export class ClrDatagridRowDetail { constructor(selection, rowActionService, expand, expandableRows, commonStrings) { this.selection = selection; this.rowActionService = rowActionService; this.expand = expand; this.expandableRows = expandableRows; this.commonStrings = commonStrings; this.replacedRow = false; /* reference to the enum so that template can access it */ this.SELECTION_TYPE = SelectionType; this.subscriptions = []; } set replace(value) { this.expand.setReplace(!!value); } get beginningOfExpandableContentAriaText() { return (this._beginningOfExpandableContentAriaText || `${this.commonStrings.keys.datagridExpandableBeginningOf} ${this.commonStrings.keys.datagridExpandableRowContent}`); } get endOfExpandableContentAriaText() { return (this._endOfExpandableContentAriaText || `${this.commonStrings.keys.datagridExpandableEndOf} ${this.commonStrings.keys.datagridExpandableRowContent}`); } ngAfterContentInit() { this.subscriptions.push(this.expand.replace.subscribe(replaceChange => { this.replacedRow = replaceChange; })); } ngOnDestroy() { this.subscriptions.forEach(sub => sub.unsubscribe()); } } ClrDatagridRowDetail.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridRowDetail, deps: [{ token: i1.Selection }, { token: i2.RowActionService }, { token: i3.DatagridIfExpandService }, { token: i4.ExpandableRowsCount }, { token: i5.ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component }); ClrDatagridRowDetail.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrDatagridRowDetail, selector: "clr-dg-row-detail", inputs: { _beginningOfExpandableContentAriaText: ["clrRowDetailBeginningAriaText", "_beginningOfExpandableContentAriaText"], _endOfExpandableContentAriaText: ["clrRowDetailEndAriaText", "_endOfExpandableContentAriaText"], replace: ["clrDgReplace", "replace"] }, host: { attributes: { "role": "gridcell" }, properties: { "class.datagrid-row-flex": "true", "class.datagrid-row-detail": "true", "class.datagrid-container": "cells.length === 0", "attr.id": "expand.expandableId" } }, queries: [{ propertyName: "cells", predicate: ClrDatagridCell }], ngImport: i0, template: ` <div class="clr-sr-only"> {{ beginningOfExpandableContentAriaText }} {{ commonStrings.keys.datagridExpandableRowsHelperText }} </div> <ng-content></ng-content> <div class="clr-sr-only">{{ endOfExpandableContentAriaText }}</div> `, isInline: true }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridRowDetail, decorators: [{ type: Component, args: [{ selector: 'clr-dg-row-detail', template: ` <div class="clr-sr-only"> {{ beginningOfExpandableContentAriaText }} {{ commonStrings.keys.datagridExpandableRowsHelperText }} </div> <ng-content></ng-content> <div class="clr-sr-only">{{ endOfExpandableContentAriaText }}</div> `, host: { '[class.datagrid-row-flex]': 'true', '[class.datagrid-row-detail]': 'true', '[class.datagrid-container]': 'cells.length === 0', '[attr.id]': 'expand.expandableId', role: 'gridcell', }, }] }], ctorParameters: function () { return [{ type: i1.Selection }, { type: i2.RowActionService }, { type: i3.DatagridIfExpandService }, { type: i4.ExpandableRowsCount }, { type: i5.ClrCommonStringsService }]; }, propDecorators: { _beginningOfExpandableContentAriaText: [{ type: Input, args: ['clrRowDetailBeginningAriaText'] }], _endOfExpandableContentAriaText: [{ type: Input, args: ['clrRowDetailEndAriaText'] }], cells: [{ type: ContentChildren, args: [ClrDatagridCell] }], replace: [{ type: Input, args: ['clrDgReplace'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQtcm93LWRldGFpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2RhdGEvZGF0YWdyaWQvZGF0YWdyaWQtcm93LWRldGFpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFvQixTQUFTLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFJMUcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWxELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7OztBQUt2RDs7O0dBR0c7QUFtQkgsTUFBTSxPQUFPLG9CQUFvQjtJQWEvQixZQUNTLFNBQW9CLEVBQ3BCLGdCQUFrQyxFQUNsQyxNQUErQixFQUMvQixjQUFtQyxFQUNuQyxhQUFzQztRQUp0QyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBeUI7UUFDL0IsbUJBQWMsR0FBZCxjQUFjLENBQXFCO1FBQ25DLGtCQUFhLEdBQWIsYUFBYSxDQUF5QjtRQWQvQyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQiwwREFBMEQ7UUFDMUQsbUJBQWMsR0FBRyxhQUFhLENBQUM7UUFJdkIsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO0lBUXhDLENBQUM7SUFFSixJQUNJLE9BQU8sQ0FBQyxLQUFjO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxvQ0FBb0M7UUFDdEMsT0FBTyxDQUNMLElBQUksQ0FBQyxxQ0FBcUM7WUFDMUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyw2QkFBNkI7UUFDdEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FDekQsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLDhCQUE4QjtRQUNoQyxPQUFPLENBQ0wsSUFBSSxDQUFDLCtCQUErQjtZQUNwQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLHVCQUF1QjtRQUNoRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUN6RCxDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQzVDLElBQUksQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7aUhBcERVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLCtpQkFTZCxlQUFlLDZCQXpCdEI7Ozs7Ozs7R0FPVDsyRkFTVSxvQkFBb0I7a0JBbEJoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFFBQVEsRUFBRTs7Ozs7OztHQU9UO29CQUNELElBQUksRUFBRTt3QkFDSiwyQkFBMkIsRUFBRSxNQUFNO3dCQUNuQyw2QkFBNkIsRUFBRSxNQUFNO3dCQUNyQyw0QkFBNEIsRUFBRSxvQkFBb0I7d0JBQ2xELFdBQVcsRUFBRSxxQkFBcUI7d0JBQ2xDLElBQUksRUFBRSxVQUFVO3FCQUNqQjtpQkFDRjs2T0FFeUMscUNBQXFDO3NCQUE1RSxLQUFLO3VCQUFDLCtCQUErQjtnQkFDSiwrQkFBK0I7c0JBQWhFLEtBQUs7dUJBQUMseUJBQXlCO2dCQU9FLEtBQUs7c0JBQXRDLGVBQWU7dUJBQUMsZUFBZTtnQkFhNUIsT0FBTztzQkFEVixLQUFLO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjMgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBJbnB1dCwgT25EZXN0cm95LCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDbHJDb21tb25TdHJpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL2kxOG4vY29tbW9uLXN0cmluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBDbHJEYXRhZ3JpZENlbGwgfSBmcm9tICcuL2RhdGFncmlkLWNlbGwnO1xuaW1wb3J0IHsgRGF0YWdyaWRJZkV4cGFuZFNlcnZpY2UgfSBmcm9tICcuL2RhdGFncmlkLWlmLWV4cGFuZGVkLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VsZWN0aW9uVHlwZSB9IGZyb20gJy4vZW51bXMvc2VsZWN0aW9uLXR5cGUnO1xuaW1wb3J0IHsgRXhwYW5kYWJsZVJvd3NDb3VudCB9IGZyb20gJy4vcHJvdmlkZXJzL2dsb2JhbC1leHBhbmRhYmxlLXJvd3MnO1xuaW1wb3J0IHsgUm93QWN0aW9uU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL3Jvdy1hY3Rpb24tc2VydmljZSc7XG5pbXBvcnQgeyBTZWxlY3Rpb24gfSBmcm9tICcuL3Byb3ZpZGVycy9zZWxlY3Rpb24nO1xuXG4vKipcbiAqIEdlbmVyaWMgYmxhbmQgY29udGFpbmVyIHNlcnZpbmcgdmFyaW91cyBwdXJwb3NlcyBmb3IgRGF0YWdyaWQuXG4gKiBGb3IgaW5zdGFuY2UsIGl0IGNhbiBoZWxwIHNwYW4gYSB0ZXh0IG92ZXIgbXVsdGlwbGUgcm93cyBpbiBkZXRhaWwgdmlldy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xyLWRnLXJvdy1kZXRhaWwnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJjbHItc3Itb25seVwiPlxuICAgICAge3sgYmVnaW5uaW5nT2ZFeHBhbmRhYmxlQ29udGVudEFyaWFUZXh0IH19XG4gICAgICB7eyBjb21tb25TdHJpbmdzLmtleXMuZGF0YWdyaWRFeHBhbmRhYmxlUm93c0hlbHBlclRleHQgfX1cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cImNsci1zci1vbmx5XCI+e3sgZW5kT2ZFeHBhbmRhYmxlQ29udGVudEFyaWFUZXh0IH19PC9kaXY+XG4gIGAsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmRhdGFncmlkLXJvdy1mbGV4XSc6ICd0cnVlJyxcbiAgICAnW2NsYXNzLmRhdGFncmlkLXJvdy1kZXRhaWxdJzogJ3RydWUnLFxuICAgICdbY2xhc3MuZGF0YWdyaWQtY29udGFpbmVyXSc6ICdjZWxscy5sZW5ndGggPT09IDAnLFxuICAgICdbYXR0ci5pZF0nOiAnZXhwYW5kLmV4cGFuZGFibGVJZCcsXG4gICAgcm9sZTogJ2dyaWRjZWxsJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyRGF0YWdyaWRSb3dEZXRhaWwgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoJ2NsclJvd0RldGFpbEJlZ2lubmluZ0FyaWFUZXh0JykgX2JlZ2lubmluZ09mRXhwYW5kYWJsZUNvbnRlbnRBcmlhVGV4dDogc3RyaW5nO1xuICBASW5wdXQoJ2NsclJvd0RldGFpbEVuZEFyaWFUZXh0JykgX2VuZE9mRXhwYW5kYWJsZUNvbnRlbnRBcmlhVGV4dDogc3RyaW5nO1xuXG4gIHJlcGxhY2VkUm93ID0gZmFsc2U7XG5cbiAgLyogcmVmZXJlbmNlIHRvIHRoZSBlbnVtIHNvIHRoYXQgdGVtcGxhdGUgY2FuIGFjY2VzcyBpdCAqL1xuICBTRUxFQ1RJT05fVFlQRSA9IFNlbGVjdGlvblR5cGU7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihDbHJEYXRhZ3JpZENlbGwpIGNlbGxzOiBRdWVyeUxpc3Q8Q2xyRGF0YWdyaWRDZWxsPjtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHNlbGVjdGlvbjogU2VsZWN0aW9uLFxuICAgIHB1YmxpYyByb3dBY3Rpb25TZXJ2aWNlOiBSb3dBY3Rpb25TZXJ2aWNlLFxuICAgIHB1YmxpYyBleHBhbmQ6IERhdGFncmlkSWZFeHBhbmRTZXJ2aWNlLFxuICAgIHB1YmxpYyBleHBhbmRhYmxlUm93czogRXhwYW5kYWJsZVJvd3NDb3VudCxcbiAgICBwdWJsaWMgY29tbW9uU3RyaW5nczogQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2VcbiAgKSB7fVxuXG4gIEBJbnB1dCgnY2xyRGdSZXBsYWNlJylcbiAgc2V0IHJlcGxhY2UodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmV4cGFuZC5zZXRSZXBsYWNlKCEhdmFsdWUpO1xuICB9XG5cbiAgZ2V0IGJlZ2lubmluZ09mRXhwYW5kYWJsZUNvbnRlbnRBcmlhVGV4dCgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5fYmVnaW5uaW5nT2ZFeHBhbmRhYmxlQ29udGVudEFyaWFUZXh0IHx8XG4gICAgICBgJHt0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5kYXRhZ3JpZEV4cGFuZGFibGVCZWdpbm5pbmdPZn0gXG4gICAgICAke3RoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGFncmlkRXhwYW5kYWJsZVJvd0NvbnRlbnR9YFxuICAgICk7XG4gIH1cblxuICBnZXQgZW5kT2ZFeHBhbmRhYmxlQ29udGVudEFyaWFUZXh0KCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLl9lbmRPZkV4cGFuZGFibGVDb250ZW50QXJpYVRleHQgfHxcbiAgICAgIGAke3RoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGFncmlkRXhwYW5kYWJsZUVuZE9mfSBcbiAgICAgICR7dGhpcy5jb21tb25TdHJpbmdzLmtleXMuZGF0YWdyaWRFeHBhbmRhYmxlUm93Q29udGVudH1gXG4gICAgKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuZXhwYW5kLnJlcGxhY2Uuc3Vic2NyaWJlKHJlcGxhY2VDaGFuZ2UgPT4ge1xuICAgICAgICB0aGlzLnJlcGxhY2VkUm93ID0gcmVwbGFjZUNoYW5nZTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gIH1cbn1cbiJdfQ==