primeng-shadowdom-directives
Version:
Directives that make PrimeNG plays nicely with ShadowDOM
62 lines • 8.21 kB
JavaScript
import { Directive, Host, Optional, Self } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "primeng/inputmask";
/*
In angular 15, primeNg uses document from inject, but the logic is still same
*/
export class psdInputMaskDirective {
constructor(hostEl) {
this.hostEl = hostEl;
// @ts-ignore
hostEl.caret = (first, last) => {
let range, begin, end;
if (!hostEl.inputViewChild?.nativeElement.offsetParent ||
hostEl.inputViewChild.nativeElement !==
hostEl.inputViewChild.nativeElement.getRootNode().activeElement) {
return;
}
if (typeof first == 'number') {
begin = first;
end = typeof last === 'number' ? last : begin;
if (hostEl.inputViewChild.nativeElement.setSelectionRange) {
hostEl.inputViewChild.nativeElement.setSelectionRange(begin, end);
}
else if (hostEl.inputViewChild.nativeElement['createTextRange']) {
range = hostEl.inputViewChild.nativeElement['createTextRange']();
range.collapse(true);
range.moveEnd('character', end);
range.moveStart('character', begin);
range.select();
}
}
else {
if (hostEl.inputViewChild.nativeElement.setSelectionRange) {
begin = hostEl.inputViewChild.nativeElement.selectionStart;
end = hostEl.inputViewChild.nativeElement.selectionEnd;
}
else if (document['selection'] &&
document['selection'].createRange) {
range = document['selection'].createRange();
begin = 0 - range.duplicate().moveStart('character', -100000);
end = begin + range.text.length;
}
return { begin: begin, end: end };
}
};
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: psdInputMaskDirective, deps: [{ token: i1.InputMask, host: true, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: psdInputMaskDirective, selector: "[psdInputMask]", ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: psdInputMaskDirective, decorators: [{
type: Directive,
args: [{
selector: '[psdInputMask]',
}]
}], ctorParameters: () => [{ type: i1.InputMask, decorators: [{
type: Host
}, {
type: Self
}, {
type: Optional
}] }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRtYXNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJpbWVuZy1zaGFkb3dkb20tZGlyZWN0aXZlcy9zcmMvZGlyZWN0aXZlcy9pbnB1dG1hc2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBR2hFOztFQUVFO0FBS0YsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxZQUF5RCxNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ3hFLGFBQWE7UUFDYixNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsS0FBYyxFQUFFLElBQWEsRUFBRSxFQUFFO1lBQy9DLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7WUFFdEIsSUFDRSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsYUFBYSxDQUFDLFlBQVk7Z0JBQ2xELE1BQU0sQ0FBQyxjQUFjLENBQUMsYUFBYTtvQkFDakMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUMsYUFBYSxFQUNqRSxDQUFDO2dCQUNELE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxPQUFPLEtBQUssSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDN0IsS0FBSyxHQUFHLEtBQUssQ0FBQztnQkFDZCxHQUFHLEdBQUcsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFDOUMsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO29CQUMxRCxNQUFNLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3BFLENBQUM7cUJBQU0sSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7b0JBQ2xFLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7b0JBQ2pFLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3JCLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUNoQyxLQUFLLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDcEMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNqQixDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztvQkFDMUQsS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztvQkFDM0QsR0FBRyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztnQkFDekQsQ0FBQztxQkFBTSxJQUNKLFFBQWdCLENBQUMsV0FBVyxDQUFDO29CQUM3QixRQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDLFdBQVcsRUFDMUMsQ0FBQztvQkFDRCxLQUFLLEdBQUksUUFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDckQsS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUM5RCxHQUFHLEdBQUcsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO2dCQUNsQyxDQUFDO2dCQUVELE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUNwQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDO0lBQ0osQ0FBQzsrR0ExQ1UscUJBQXFCO21HQUFyQixxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBSGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtpQkFDM0I7OzBCQUVjLElBQUk7OzBCQUFJLElBQUk7OzBCQUFJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3QsIE9wdGlvbmFsLCBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnB1dE1hc2sgfSBmcm9tICdwcmltZW5nL2lucHV0bWFzayc7XG5cbi8qXG4gIEluIGFuZ3VsYXIgMTUsIHByaW1lTmcgdXNlcyBkb2N1bWVudCBmcm9tIGluamVjdCwgYnV0IHRoZSBsb2dpYyBpcyBzdGlsbCBzYW1lXG4qL1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbcHNkSW5wdXRNYXNrXScsXG59KVxuZXhwb3J0IGNsYXNzIHBzZElucHV0TWFza0RpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKEBIb3N0KCkgQFNlbGYoKSBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IGhvc3RFbDogSW5wdXRNYXNrKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGhvc3RFbC5jYXJldCA9IChmaXJzdD86IG51bWJlciwgbGFzdD86IG51bWJlcikgPT4ge1xuICAgICAgbGV0IHJhbmdlLCBiZWdpbiwgZW5kO1xuXG4gICAgICBpZiAoXG4gICAgICAgICFob3N0RWwuaW5wdXRWaWV3Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0UGFyZW50IHx8XG4gICAgICAgIGhvc3RFbC5pbnB1dFZpZXdDaGlsZC5uYXRpdmVFbGVtZW50ICE9PVxuICAgICAgICAgIGhvc3RFbC5pbnB1dFZpZXdDaGlsZC5uYXRpdmVFbGVtZW50LmdldFJvb3ROb2RlKCkuYWN0aXZlRWxlbWVudFxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBmaXJzdCA9PSAnbnVtYmVyJykge1xuICAgICAgICBiZWdpbiA9IGZpcnN0O1xuICAgICAgICBlbmQgPSB0eXBlb2YgbGFzdCA9PT0gJ251bWJlcicgPyBsYXN0IDogYmVnaW47XG4gICAgICAgIGlmIChob3N0RWwuaW5wdXRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZSkge1xuICAgICAgICAgIGhvc3RFbC5pbnB1dFZpZXdDaGlsZC5uYXRpdmVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKGJlZ2luLCBlbmQpO1xuICAgICAgICB9IGVsc2UgaWYgKGhvc3RFbC5pbnB1dFZpZXdDaGlsZC5uYXRpdmVFbGVtZW50WydjcmVhdGVUZXh0UmFuZ2UnXSkge1xuICAgICAgICAgIHJhbmdlID0gaG9zdEVsLmlucHV0Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnRbJ2NyZWF0ZVRleHRSYW5nZSddKCk7XG4gICAgICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSk7XG4gICAgICAgICAgcmFuZ2UubW92ZUVuZCgnY2hhcmFjdGVyJywgZW5kKTtcbiAgICAgICAgICByYW5nZS5tb3ZlU3RhcnQoJ2NoYXJhY3RlcicsIGJlZ2luKTtcbiAgICAgICAgICByYW5nZS5zZWxlY3QoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGhvc3RFbC5pbnB1dFZpZXdDaGlsZC5uYXRpdmVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKSB7XG4gICAgICAgICAgYmVnaW4gPSBob3N0RWwuaW5wdXRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgICBlbmQgPSBob3N0RWwuaW5wdXRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQ7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgKGRvY3VtZW50IGFzIGFueSlbJ3NlbGVjdGlvbiddICYmXG4gICAgICAgICAgKGRvY3VtZW50IGFzIGFueSlbJ3NlbGVjdGlvbiddLmNyZWF0ZVJhbmdlXG4gICAgICAgICkge1xuICAgICAgICAgIHJhbmdlID0gKGRvY3VtZW50IGFzIGFueSlbJ3NlbGVjdGlvbiddLmNyZWF0ZVJhbmdlKCk7XG4gICAgICAgICAgYmVnaW4gPSAwIC0gcmFuZ2UuZHVwbGljYXRlKCkubW92ZVN0YXJ0KCdjaGFyYWN0ZXInLCAtMTAwMDAwKTtcbiAgICAgICAgICBlbmQgPSBiZWdpbiArIHJhbmdlLnRleHQubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHsgYmVnaW46IGJlZ2luLCBlbmQ6IGVuZCB9O1xuICAgICAgfVxuICAgIH07XG4gIH1cbn1cbiJdfQ==