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.
- package/esm2022/lib/components/puro-events-form/puro-events-form.component.mjs +6 -5
- package/esm2022/lib/directives/puro-script/puro-datepicker.directive.mjs +84 -0
- package/esm2022/lib/services/mapper/mapper.service.mjs +13 -12
- package/fesm2022/ctt-puro.mjs +95 -14
- package/fesm2022/ctt-puro.mjs.map +1 -1
- package/lib/directives/puro-script/puro-datepicker.directive.d.ts +14 -0
- package/lib/services/mapper/mapper.service.d.ts +1 -1
- package/package.json +1 -1
|
@@ -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
|