UNPKG

@clr/angular

Version:

Angular components for Clarity

52 lines 6.62 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. */ /* * If we someday want to be able to render the datagrid in a webworker, * this is where we would test if we're in headless mode. Right now it's not testing anything, but any access * to native DOM elements' methods and properties in the Datagrid happens here. */ import { Injectable } from '@angular/core'; import * as i0 from "@angular/core"; export class DomAdapter { userDefinedWidth(element) { element.classList.add('datagrid-cell-width-zero'); const userDefinedWidth = this.clientRect(element).width; element.classList.remove('datagrid-cell-width-zero'); return userDefinedWidth; } scrollBarWidth(element) { return element.offsetWidth - element.clientWidth; } scrollWidth(element) { return element.scrollWidth || 0; } computedHeight(element) { return parseInt(getComputedStyle(element).getPropertyValue('height'), 10); } clientRect(element) { const elementClientRect = element.getBoundingClientRect(); return { top: parseInt(elementClientRect.top, 10), bottom: parseInt(elementClientRect.bottom, 10), left: parseInt(elementClientRect.left, 10), right: parseInt(elementClientRect.right, 10), width: parseInt(elementClientRect.width, 10), height: parseInt(elementClientRect.height, 10), }; } minWidth(element) { return parseInt(getComputedStyle(element).getPropertyValue('min-width'), 10); } focus(element) { element.focus(); } } DomAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DomAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); DomAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DomAdapter }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DomAdapter, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91dGlscy9kb20tYWRhcHRlci9kb20tYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUg7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxVQUFVO0lBQ3JCLGdCQUFnQixDQUFDLE9BQW9CO1FBQ25DLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDbEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN4RCxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUFZO1FBQ3pCLE9BQU8sT0FBTyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO0lBQ25ELENBQUM7SUFFRCxXQUFXLENBQUMsT0FBWTtRQUN0QixPQUFPLE9BQU8sQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxjQUFjLENBQUMsT0FBWTtRQUN6QixPQUFPLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQVk7UUFDckIsTUFBTSxpQkFBaUIsR0FBRyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUMxRCxPQUFPO1lBQ0wsR0FBRyxFQUFFLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sRUFBRSxRQUFRLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUM5QyxJQUFJLEVBQUUsUUFBUSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDMUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzVDLEtBQUssRUFBRSxRQUFRLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM1QyxNQUFNLEVBQUUsUUFBUSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7U0FDcEMsQ0FBQztJQUNmLENBQUM7SUFFRCxRQUFRLENBQUMsT0FBWTtRQUNuQixPQUFPLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQVk7UUFDaEIsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2xCLENBQUM7O3VHQXRDVSxVQUFVOzJHQUFWLFVBQVU7MkZBQVYsVUFBVTtrQkFEdEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMyBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuLypcbiAqIElmIHdlIHNvbWVkYXkgd2FudCB0byBiZSBhYmxlIHRvIHJlbmRlciB0aGUgZGF0YWdyaWQgaW4gYSB3ZWJ3b3JrZXIsXG4gKiB0aGlzIGlzIHdoZXJlIHdlIHdvdWxkIHRlc3QgaWYgd2UncmUgaW4gaGVhZGxlc3MgbW9kZS4gUmlnaHQgbm93IGl0J3Mgbm90IHRlc3RpbmcgYW55dGhpbmcsIGJ1dCBhbnkgYWNjZXNzXG4gKiB0byBuYXRpdmUgRE9NIGVsZW1lbnRzJyBtZXRob2RzIGFuZCBwcm9wZXJ0aWVzIGluIHRoZSBEYXRhZ3JpZCBoYXBwZW5zIGhlcmUuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRG9tQWRhcHRlciB7XG4gIHVzZXJEZWZpbmVkV2lkdGgoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBudW1iZXIge1xuICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZGF0YWdyaWQtY2VsbC13aWR0aC16ZXJvJyk7XG4gICAgY29uc3QgdXNlckRlZmluZWRXaWR0aCA9IHRoaXMuY2xpZW50UmVjdChlbGVtZW50KS53aWR0aDtcbiAgICBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2RhdGFncmlkLWNlbGwtd2lkdGgtemVybycpO1xuICAgIHJldHVybiB1c2VyRGVmaW5lZFdpZHRoO1xuICB9XG5cbiAgc2Nyb2xsQmFyV2lkdGgoZWxlbWVudDogYW55KSB7XG4gICAgcmV0dXJuIGVsZW1lbnQub2Zmc2V0V2lkdGggLSBlbGVtZW50LmNsaWVudFdpZHRoO1xuICB9XG5cbiAgc2Nyb2xsV2lkdGgoZWxlbWVudDogYW55KSB7XG4gICAgcmV0dXJuIGVsZW1lbnQuc2Nyb2xsV2lkdGggfHwgMDtcbiAgfVxuXG4gIGNvbXB1dGVkSGVpZ2h0KGVsZW1lbnQ6IGFueSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnaGVpZ2h0JyksIDEwKTtcbiAgfVxuXG4gIGNsaWVudFJlY3QoZWxlbWVudDogYW55KTogRE9NUmVjdCB7XG4gICAgY29uc3QgZWxlbWVudENsaWVudFJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHJldHVybiB7XG4gICAgICB0b3A6IHBhcnNlSW50KGVsZW1lbnRDbGllbnRSZWN0LnRvcCwgMTApLFxuICAgICAgYm90dG9tOiBwYXJzZUludChlbGVtZW50Q2xpZW50UmVjdC5ib3R0b20sIDEwKSxcbiAgICAgIGxlZnQ6IHBhcnNlSW50KGVsZW1lbnRDbGllbnRSZWN0LmxlZnQsIDEwKSxcbiAgICAgIHJpZ2h0OiBwYXJzZUludChlbGVtZW50Q2xpZW50UmVjdC5yaWdodCwgMTApLFxuICAgICAgd2lkdGg6IHBhcnNlSW50KGVsZW1lbnRDbGllbnRSZWN0LndpZHRoLCAxMCksXG4gICAgICBoZWlnaHQ6IHBhcnNlSW50KGVsZW1lbnRDbGllbnRSZWN0LmhlaWdodCwgMTApLFxuICAgIH0gYXMgRE9NUmVjdDtcbiAgfVxuXG4gIG1pbldpZHRoKGVsZW1lbnQ6IGFueSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnbWluLXdpZHRoJyksIDEwKTtcbiAgfVxuXG4gIGZvY3VzKGVsZW1lbnQ6IGFueSk6IHZvaWQge1xuICAgIGVsZW1lbnQuZm9jdXMoKTtcbiAgfVxufVxuIl19