primeng-shadowdom-directives
Version:
Directives that make PrimeNG plays nicely with ShadowDOM
74 lines • 9.38 kB
JavaScript
import { NgModule } from '@angular/core';
import { psdOverlayPanelDirective, psdInputMaskDirective, psdMenuDirective, psdSlideMenuDirective, psdSplitButtonDirective, psdTieredMenuDirective, psdCalendarDirective, } from './directives';
import { DomHandler } from 'primeng/dom';
import * as i0 from "@angular/core";
DomHandler.getScrollableParents = (element) => {
let scrollableParents = [];
if (element) {
let parents = DomHandler.getParents(element).filter((item) => !(item instanceof ShadowRoot));
const overflowRegex = /(auto|scroll)/;
const overflowCheck = (node) => {
let styleDeclaration = window['getComputedStyle'](node, null);
return (overflowRegex.test(styleDeclaration.getPropertyValue('overflow')) ||
overflowRegex.test(styleDeclaration.getPropertyValue('overflowX')) ||
overflowRegex.test(styleDeclaration.getPropertyValue('overflowY')));
};
for (let parent of parents) {
let scrollSelectors = parent.nodeType === 1 && parent.dataset['scrollselectors'];
if (scrollSelectors) {
let selectors = scrollSelectors.split(',');
for (let selector of selectors) {
let el = DomHandler.findSingle(parent, selector);
if (el && overflowCheck(el)) {
scrollableParents.push(el);
}
}
}
if (parent.nodeType !== 9 && overflowCheck(parent)) {
scrollableParents.push(parent);
}
}
}
return scrollableParents;
};
export class PrimeNGShadowDOMDirective {
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PrimeNGShadowDOMDirective, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: PrimeNGShadowDOMDirective, declarations: [psdMenuDirective,
psdOverlayPanelDirective,
psdInputMaskDirective,
psdSlideMenuDirective,
psdSplitButtonDirective,
psdTieredMenuDirective,
psdCalendarDirective], exports: [psdMenuDirective,
psdOverlayPanelDirective,
psdInputMaskDirective,
psdSlideMenuDirective,
psdSplitButtonDirective,
psdTieredMenuDirective,
psdCalendarDirective] }); }
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PrimeNGShadowDOMDirective }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PrimeNGShadowDOMDirective, decorators: [{
type: NgModule,
args: [{
declarations: [
psdMenuDirective,
psdOverlayPanelDirective,
psdInputMaskDirective,
psdSlideMenuDirective,
psdSplitButtonDirective,
psdTieredMenuDirective,
psdCalendarDirective,
],
exports: [
psdMenuDirective,
psdOverlayPanelDirective,
psdInputMaskDirective,
psdSlideMenuDirective,
psdSplitButtonDirective,
psdTieredMenuDirective,
psdCalendarDirective,
],
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWVuZy1zaGFkb3dkb20tZGlyZWN0aXZlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9wcmltZW5nLXNoYWRvd2RvbS1kaXJlY3RpdmVzL3NyYy9wcmltZW5nLXNoYWRvd2RvbS1kaXJlY3RpdmVzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLGdCQUFnQixFQUNoQixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0QixvQkFBb0IsR0FDckIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFFekMsVUFBVSxDQUFDLG9CQUFvQixHQUFHLENBQUMsT0FBWSxFQUFFLEVBQUU7SUFDakQsSUFBSSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFFM0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNaLElBQUksT0FBTyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUNqRCxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksWUFBWSxVQUFVLENBQUMsQ0FDN0MsQ0FBQztRQUNGLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQztRQUN0QyxNQUFNLGFBQWEsR0FBRyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ2xDLElBQUksZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzlELE9BQU8sQ0FDTCxhQUFhLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNqRSxhQUFhLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNsRSxhQUFhLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQ25FLENBQUM7UUFDSixDQUFDLENBQUM7UUFFRixLQUFLLElBQUksTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQzNCLElBQUksZUFBZSxHQUNqQixNQUFNLENBQUMsUUFBUSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDN0QsSUFBSSxlQUFlLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxTQUFTLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0MsS0FBSyxJQUFJLFFBQVEsSUFBSSxTQUFTLEVBQUUsQ0FBQztvQkFDL0IsSUFBSSxFQUFFLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7b0JBQ2pELElBQUksRUFBRSxJQUFJLGFBQWEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO3dCQUM1QixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQzdCLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFFRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssQ0FBQyxJQUFJLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUNuRCxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxpQkFBaUIsQ0FBQztBQUMzQixDQUFDLENBQUM7QUFzQkYsTUFBTSxPQUFPLHlCQUF5QjsrR0FBekIseUJBQXlCO2dIQUF6Qix5QkFBeUIsaUJBbEJsQyxnQkFBZ0I7WUFDaEIsd0JBQXdCO1lBQ3hCLHFCQUFxQjtZQUNyQixxQkFBcUI7WUFDckIsdUJBQXVCO1lBQ3ZCLHNCQUFzQjtZQUN0QixvQkFBb0IsYUFHcEIsZ0JBQWdCO1lBQ2hCLHdCQUF3QjtZQUN4QixxQkFBcUI7WUFDckIscUJBQXFCO1lBQ3JCLHVCQUF1QjtZQUN2QixzQkFBc0I7WUFDdEIsb0JBQW9CO2dIQUdYLHlCQUF5Qjs7NEZBQXpCLHlCQUF5QjtrQkFwQnJDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGdCQUFnQjt3QkFDaEIsd0JBQXdCO3dCQUN4QixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2QixzQkFBc0I7d0JBQ3RCLG9CQUFvQjtxQkFDckI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGdCQUFnQjt3QkFDaEIsd0JBQXdCO3dCQUN4QixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2QixzQkFBc0I7d0JBQ3RCLG9CQUFvQjtxQkFDckI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgcHNkT3ZlcmxheVBhbmVsRGlyZWN0aXZlLFxuICBwc2RJbnB1dE1hc2tEaXJlY3RpdmUsXG4gIHBzZE1lbnVEaXJlY3RpdmUsXG4gIHBzZFNsaWRlTWVudURpcmVjdGl2ZSxcbiAgcHNkU3BsaXRCdXR0b25EaXJlY3RpdmUsXG4gIHBzZFRpZXJlZE1lbnVEaXJlY3RpdmUsXG4gIHBzZENhbGVuZGFyRGlyZWN0aXZlLFxufSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgRG9tSGFuZGxlciB9IGZyb20gJ3ByaW1lbmcvZG9tJztcblxuRG9tSGFuZGxlci5nZXRTY3JvbGxhYmxlUGFyZW50cyA9IChlbGVtZW50OiBhbnkpID0+IHtcbiAgbGV0IHNjcm9sbGFibGVQYXJlbnRzID0gW107XG5cbiAgaWYgKGVsZW1lbnQpIHtcbiAgICBsZXQgcGFyZW50cyA9IERvbUhhbmRsZXIuZ2V0UGFyZW50cyhlbGVtZW50KS5maWx0ZXIoXG4gICAgICAoaXRlbTogYW55KSA9PiAhKGl0ZW0gaW5zdGFuY2VvZiBTaGFkb3dSb290KVxuICAgICk7XG4gICAgY29uc3Qgb3ZlcmZsb3dSZWdleCA9IC8oYXV0b3xzY3JvbGwpLztcbiAgICBjb25zdCBvdmVyZmxvd0NoZWNrID0gKG5vZGU6IGFueSkgPT4ge1xuICAgICAgbGV0IHN0eWxlRGVjbGFyYXRpb24gPSB3aW5kb3dbJ2dldENvbXB1dGVkU3R5bGUnXShub2RlLCBudWxsKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIG92ZXJmbG93UmVnZXgudGVzdChzdHlsZURlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJ292ZXJmbG93JykpIHx8XG4gICAgICAgIG92ZXJmbG93UmVnZXgudGVzdChzdHlsZURlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJ292ZXJmbG93WCcpKSB8fFxuICAgICAgICBvdmVyZmxvd1JlZ2V4LnRlc3Qoc3R5bGVEZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCdvdmVyZmxvd1knKSlcbiAgICAgICk7XG4gICAgfTtcblxuICAgIGZvciAobGV0IHBhcmVudCBvZiBwYXJlbnRzKSB7XG4gICAgICBsZXQgc2Nyb2xsU2VsZWN0b3JzID1cbiAgICAgICAgcGFyZW50Lm5vZGVUeXBlID09PSAxICYmIHBhcmVudC5kYXRhc2V0WydzY3JvbGxzZWxlY3RvcnMnXTtcbiAgICAgIGlmIChzY3JvbGxTZWxlY3RvcnMpIHtcbiAgICAgICAgbGV0IHNlbGVjdG9ycyA9IHNjcm9sbFNlbGVjdG9ycy5zcGxpdCgnLCcpO1xuICAgICAgICBmb3IgKGxldCBzZWxlY3RvciBvZiBzZWxlY3RvcnMpIHtcbiAgICAgICAgICBsZXQgZWwgPSBEb21IYW5kbGVyLmZpbmRTaW5nbGUocGFyZW50LCBzZWxlY3Rvcik7XG4gICAgICAgICAgaWYgKGVsICYmIG92ZXJmbG93Q2hlY2soZWwpKSB7XG4gICAgICAgICAgICBzY3JvbGxhYmxlUGFyZW50cy5wdXNoKGVsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHBhcmVudC5ub2RlVHlwZSAhPT0gOSAmJiBvdmVyZmxvd0NoZWNrKHBhcmVudCkpIHtcbiAgICAgICAgc2Nyb2xsYWJsZVBhcmVudHMucHVzaChwYXJlbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzY3JvbGxhYmxlUGFyZW50cztcbn07XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIHBzZE1lbnVEaXJlY3RpdmUsXG4gICAgcHNkT3ZlcmxheVBhbmVsRGlyZWN0aXZlLFxuICAgIHBzZElucHV0TWFza0RpcmVjdGl2ZSxcbiAgICBwc2RTbGlkZU1lbnVEaXJlY3RpdmUsXG4gICAgcHNkU3BsaXRCdXR0b25EaXJlY3RpdmUsXG4gICAgcHNkVGllcmVkTWVudURpcmVjdGl2ZSxcbiAgICBwc2RDYWxlbmRhckRpcmVjdGl2ZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIHBzZE1lbnVEaXJlY3RpdmUsXG4gICAgcHNkT3ZlcmxheVBhbmVsRGlyZWN0aXZlLFxuICAgIHBzZElucHV0TWFza0RpcmVjdGl2ZSxcbiAgICBwc2RTbGlkZU1lbnVEaXJlY3RpdmUsXG4gICAgcHNkU3BsaXRCdXR0b25EaXJlY3RpdmUsXG4gICAgcHNkVGllcmVkTWVudURpcmVjdGl2ZSxcbiAgICBwc2RDYWxlbmRhckRpcmVjdGl2ZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJpbWVOR1NoYWRvd0RPTURpcmVjdGl2ZSB7fVxuIl19