ctt-puro 0.64.15 → 0.65.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,84 @@
1
+ import { Directive, Inject, PLATFORM_ID, } from '@angular/core';
2
+ import { isPlatformBrowser } from '@angular/common';
3
+ import { DatepickerLocaleUtil } from '../../utils/datepicker-locale.util';
4
+ import * as i0 from "@angular/core";
5
+ export class PuroDatepickerDirective {
6
+ constructor(el, ngZone, platformId) {
7
+ this.el = el;
8
+ this.ngZone = ngZone;
9
+ this.platformId = platformId;
10
+ this.inited = false;
11
+ }
12
+ ngAfterViewInit() {
13
+ if (!isPlatformBrowser(this.platformId))
14
+ return;
15
+ if (typeof $ === 'undefined')
16
+ return;
17
+ // MUY IMPORTANTE: fuera del zone => no rompe stability
18
+ this.ngZone.runOutsideAngular(() => {
19
+ queueMicrotask(() => this.init());
20
+ });
21
+ }
22
+ init() {
23
+ if (this.inited)
24
+ return;
25
+ const input = this.el.nativeElement;
26
+ DatepickerLocaleUtil.setLocale(DatepickerLocaleUtil.detectLanguage());
27
+ // limpia instancias previas
28
+ if ($(input).hasClass('hasDatepicker')) {
29
+ $(input).datepicker('destroy');
30
+ }
31
+ $(input).datepicker({
32
+ showAnim: 'fadeIn',
33
+ changeMonth: true,
34
+ changeYear: true,
35
+ showOtherMonths: true,
36
+ selectOtherMonths: true,
37
+ dateFormat: 'dd/mm/yy',
38
+ onSelect: (dateText) => {
39
+ // el DOM lo actualiza el plugin
40
+ input.value = dateText;
41
+ // vuelve a Angular SOLO para notificar al formControl
42
+ this.ngZone.run(() => {
43
+ input.dispatchEvent(new Event('input', { bubbles: true }));
44
+ input.dispatchEvent(new Event('change', { bubbles: true }));
45
+ });
46
+ },
47
+ onClose: () => {
48
+ this.ngZone.run(() => {
49
+ input.dispatchEvent(new Event('input', { bubbles: true }));
50
+ input.dispatchEvent(new Event('change', { bubbles: true }));
51
+ });
52
+ },
53
+ });
54
+ this.inited = true;
55
+ }
56
+ ngOnDestroy() {
57
+ if (!isPlatformBrowser(this.platformId))
58
+ return;
59
+ if (typeof $ === 'undefined')
60
+ return;
61
+ const input = this.el.nativeElement;
62
+ try {
63
+ if ($(input).hasClass('hasDatepicker')) {
64
+ $(input).datepicker('destroy');
65
+ }
66
+ // por si el plugin dejó handlers
67
+ $(input).off();
68
+ }
69
+ catch { }
70
+ }
71
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroDatepickerDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive }); }
72
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: PuroDatepickerDirective, isStandalone: true, selector: "[puroDatepicker]", ngImport: i0 }); }
73
+ }
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroDatepickerDirective, decorators: [{
75
+ type: Directive,
76
+ args: [{
77
+ selector: '[puroDatepicker]',
78
+ standalone: true,
79
+ }]
80
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: undefined, decorators: [{
81
+ type: Inject,
82
+ args: [PLATFORM_ID]
83
+ }] }] });
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1kYXRlcGlja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3B1cm8vc3JjL2xpYi9kaXJlY3RpdmVzL3B1cm8tc2NyaXB0L3B1cm8tZGF0ZXBpY2tlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxNQUFNLEVBR04sV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQVExRSxNQUFNLE9BQU8sdUJBQXVCO0lBR2xDLFlBQ1UsRUFBZ0MsRUFDaEMsTUFBYyxFQUNPLFVBQWtCO1FBRnZDLE9BQUUsR0FBRixFQUFFLENBQThCO1FBQ2hDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDTyxlQUFVLEdBQVYsVUFBVSxDQUFRO1FBTHpDLFdBQU0sR0FBRyxLQUFLLENBQUM7SUFNcEIsQ0FBQztJQUVKLGVBQWU7UUFDYixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUFFLE9BQU87UUFDaEQsSUFBSSxPQUFPLENBQUMsS0FBSyxXQUFXO1lBQUUsT0FBTztRQUVyQyx1REFBdUQ7UUFDdkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDakMsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLElBQUk7UUFDVixJQUFJLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUN4QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQztRQUVwQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUV0RSw0QkFBNEI7UUFDNUIsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ3RDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDaEM7UUFFRCxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDO1lBQ2xCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsVUFBVSxFQUFFLFVBQVU7WUFFdEIsUUFBUSxFQUFFLENBQUMsUUFBZ0IsRUFBRSxFQUFFO2dCQUM3QixnQ0FBZ0M7Z0JBQ2hDLEtBQUssQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO2dCQUV2QixzREFBc0Q7Z0JBQ3RELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtvQkFDbkIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUMzRCxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzlELENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUVELE9BQU8sRUFBRSxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO29CQUNuQixLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQzNELEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDOUQsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUFFLE9BQU87UUFDaEQsSUFBSSxPQUFPLENBQUMsS0FBSyxXQUFXO1lBQUUsT0FBTztRQUVyQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQztRQUNwQyxJQUFJO1lBQ0YsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUFFO2dCQUN0QyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ2hDO1lBQ0QsaUNBQWlDO1lBQ2pDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUNoQjtRQUFDLE1BQU0sR0FBRTtJQUNaLENBQUM7K0dBeEVVLHVCQUF1QixrRUFNeEIsV0FBVzttR0FOVix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBSm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkFPSSxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIFBMQVRGT1JNX0lELFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERhdGVwaWNrZXJMb2NhbGVVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbHMvZGF0ZXBpY2tlci1sb2NhbGUudXRpbCc7XG5cbmRlY2xhcmUgY29uc3QgJDogYW55O1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbcHVyb0RhdGVwaWNrZXJdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgUHVyb0RhdGVwaWNrZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGluaXRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IG9iamVjdFxuICApIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuICAgIGlmICh0eXBlb2YgJCA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybjtcblxuICAgIC8vIE1VWSBJTVBPUlRBTlRFOiBmdWVyYSBkZWwgem9uZSA9PiBubyByb21wZSBzdGFiaWxpdHlcbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB0aGlzLmluaXQoKSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5pdGVkKSByZXR1cm47XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBEYXRlcGlja2VyTG9jYWxlVXRpbC5zZXRMb2NhbGUoRGF0ZXBpY2tlckxvY2FsZVV0aWwuZGV0ZWN0TGFuZ3VhZ2UoKSk7XG5cbiAgICAvLyBsaW1waWEgaW5zdGFuY2lhcyBwcmV2aWFzXG4gICAgaWYgKCQoaW5wdXQpLmhhc0NsYXNzKCdoYXNEYXRlcGlja2VyJykpIHtcbiAgICAgICQoaW5wdXQpLmRhdGVwaWNrZXIoJ2Rlc3Ryb3knKTtcbiAgICB9XG5cbiAgICAkKGlucHV0KS5kYXRlcGlja2VyKHtcbiAgICAgIHNob3dBbmltOiAnZmFkZUluJyxcbiAgICAgIGNoYW5nZU1vbnRoOiB0cnVlLFxuICAgICAgY2hhbmdlWWVhcjogdHJ1ZSxcbiAgICAgIHNob3dPdGhlck1vbnRoczogdHJ1ZSxcbiAgICAgIHNlbGVjdE90aGVyTW9udGhzOiB0cnVlLFxuICAgICAgZGF0ZUZvcm1hdDogJ2RkL21tL3l5JyxcblxuICAgICAgb25TZWxlY3Q6IChkYXRlVGV4dDogc3RyaW5nKSA9PiB7XG4gICAgICAgIC8vIGVsIERPTSBsbyBhY3R1YWxpemEgZWwgcGx1Z2luXG4gICAgICAgIGlucHV0LnZhbHVlID0gZGF0ZVRleHQ7XG5cbiAgICAgICAgLy8gdnVlbHZlIGEgQW5ndWxhciBTT0xPIHBhcmEgbm90aWZpY2FyIGFsIGZvcm1Db250cm9sXG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgaW5wdXQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICAgICAgICBpbnB1dC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuXG4gICAgICBvbkNsb3NlOiAoKSA9PiB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgaW5wdXQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICAgICAgICBpbnB1dC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5pbml0ZWQgPSB0cnVlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgaWYgKHR5cGVvZiAkID09PSAndW5kZWZpbmVkJykgcmV0dXJuO1xuXG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgdHJ5IHtcbiAgICAgIGlmICgkKGlucHV0KS5oYXNDbGFzcygnaGFzRGF0ZXBpY2tlcicpKSB7XG4gICAgICAgICQoaW5wdXQpLmRhdGVwaWNrZXIoJ2Rlc3Ryb3knKTtcbiAgICAgIH1cbiAgICAgIC8vIHBvciBzaSBlbCBwbHVnaW4gZGVqw7MgaGFuZGxlcnNcbiAgICAgICQoaW5wdXQpLm9mZigpO1xuICAgIH0gY2F0Y2gge31cbiAgfVxufVxuIl19