@dev-tcloud/tcloud-ui 0.0.49 → 0.0.51
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/README.md +11 -0
- package/esm2020/lib/_directives/directives.module.mjs +10 -5
- package/esm2020/lib/_directives/hover-parent/hover-parent.directive.mjs +58 -0
- package/esm2020/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.component.mjs +302 -0
- package/esm2020/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.module.mjs +31 -0
- package/esm2020/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component.mjs +209 -0
- package/esm2020/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.module.mjs +35 -0
- package/esm2020/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.component.mjs +79 -29
- package/esm2020/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.module.mjs +8 -4
- package/esm2020/lib/_pipes/datebr.mjs +102 -0
- package/esm2020/lib/_pipes/index.mjs +2 -1
- package/esm2020/lib/_pipes/tcloud-pipes.module.mjs +14 -8
- package/esm2020/lib/tcloud-ui.module.mjs +17 -3
- package/esm2020/public-api.mjs +8 -1
- package/fesm2015/dev-tcloud-tcloud-ui.mjs +1345 -553
- package/fesm2015/dev-tcloud-tcloud-ui.mjs.map +1 -1
- package/fesm2020/dev-tcloud-tcloud-ui.mjs +1337 -551
- package/fesm2020/dev-tcloud-tcloud-ui.mjs.map +1 -1
- package/lib/_directives/directives.module.d.ts +2 -1
- package/lib/_directives/hover-parent/hover-parent.directive.d.ts +15 -0
- package/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.component.d.ts +46 -0
- package/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.module.d.ts +9 -0
- package/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component.d.ts +34 -0
- package/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.module.d.ts +10 -0
- package/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.component.d.ts +2 -1
- package/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.module.d.ts +2 -1
- package/lib/_pipes/datebr.d.ts +11 -0
- package/lib/_pipes/index.d.ts +1 -0
- package/lib/_pipes/tcloud-pipes.module.d.ts +3 -2
- package/lib/tcloud-ui.module.d.ts +5 -3
- package/package.json +1 -1
- package/public-api.d.ts +5 -0
package/README.md
CHANGED
|
@@ -28,10 +28,13 @@ npm install @dev-tcloud/tcloud-ui --save
|
|
|
28
28
|
- TCloudUiScrollBoxModule
|
|
29
29
|
- TCloudUiFiltersModule
|
|
30
30
|
- TCloudUiAccordionModule
|
|
31
|
+
- TCloudUiDatepickerComponent
|
|
32
|
+
- TCloudUiDatepickerTimeComponent
|
|
31
33
|
|
|
32
34
|
## tcloud-ui directives
|
|
33
35
|
- TCloudUiTooltipDirective
|
|
34
36
|
- TCloudUiAlignDirective
|
|
37
|
+
- TCloudUiHoverParentDirective
|
|
35
38
|
|
|
36
39
|
## tcloud-ui services
|
|
37
40
|
- TCloudUiLoadingTransitionsService
|
|
@@ -63,6 +66,14 @@ angular.json
|
|
|
63
66
|
],
|
|
64
67
|
```
|
|
65
68
|
|
|
69
|
+
|
|
70
|
+
## Add calendar library to use datepicker
|
|
71
|
+
```javascript
|
|
72
|
+
"script": [
|
|
73
|
+
"node_modules/@dev-tcloud/tcloud-ui/datepicker/js/datepicker-full.min.js",
|
|
74
|
+
],
|
|
75
|
+
```
|
|
76
|
+
|
|
66
77
|
# TcloudUi
|
|
67
78
|
|
|
68
79
|
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 14.1.1.
|
|
@@ -1,25 +1,30 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { TCloudUiAlignDirective } from './align/align.directive';
|
|
3
|
+
import { TCloudUiHoverParentDirective } from './hover-parent/hover-parent.directive';
|
|
3
4
|
import { TCloudUiTooltipDirective } from './tooltip/tooltip.directive';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export class TCloudUiDirectiveModule {
|
|
6
7
|
}
|
|
7
8
|
TCloudUiDirectiveModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
9
|
TCloudUiDirectiveModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDirectiveModule, declarations: [TCloudUiTooltipDirective,
|
|
9
|
-
TCloudUiAlignDirective
|
|
10
|
-
|
|
10
|
+
TCloudUiAlignDirective,
|
|
11
|
+
TCloudUiHoverParentDirective], exports: [TCloudUiTooltipDirective,
|
|
12
|
+
TCloudUiAlignDirective,
|
|
13
|
+
TCloudUiHoverParentDirective] });
|
|
11
14
|
TCloudUiDirectiveModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDirectiveModule });
|
|
12
15
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDirectiveModule, decorators: [{
|
|
13
16
|
type: NgModule,
|
|
14
17
|
args: [{
|
|
15
18
|
declarations: [
|
|
16
19
|
TCloudUiTooltipDirective,
|
|
17
|
-
TCloudUiAlignDirective
|
|
20
|
+
TCloudUiAlignDirective,
|
|
21
|
+
TCloudUiHoverParentDirective
|
|
18
22
|
],
|
|
19
23
|
exports: [
|
|
20
24
|
TCloudUiTooltipDirective,
|
|
21
|
-
TCloudUiAlignDirective
|
|
25
|
+
TCloudUiAlignDirective,
|
|
26
|
+
TCloudUiHoverParentDirective
|
|
22
27
|
],
|
|
23
28
|
}]
|
|
24
29
|
}] });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fZGlyZWN0aXZlcy9kaXJlY3RpdmVzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQWN2RSxNQUFNLE9BQU8sdUJBQXVCOztxSEFBdkIsdUJBQXVCO3NIQUF2Qix1QkFBdUIsaUJBVmhDLHdCQUF3QjtRQUN4QixzQkFBc0I7UUFDdEIsNEJBQTRCLGFBRzVCLHdCQUF3QjtRQUN4QixzQkFBc0I7UUFDdEIsNEJBQTRCO3NIQUduQix1QkFBdUI7NEZBQXZCLHVCQUF1QjtrQkFabkMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osd0JBQXdCO3dCQUN4QixzQkFBc0I7d0JBQ3RCLDRCQUE0QjtxQkFDN0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHdCQUF3Qjt3QkFDeEIsc0JBQXNCO3dCQUN0Qiw0QkFBNEI7cUJBQzdCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVENsb3VkVWlBbGlnbkRpcmVjdGl2ZSB9IGZyb20gJy4vYWxpZ24vYWxpZ24uZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgVENsb3VkVWlIb3ZlclBhcmVudERpcmVjdGl2ZSB9IGZyb20gJy4vaG92ZXItcGFyZW50L2hvdmVyLXBhcmVudC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBUQ2xvdWRVaVRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFRDbG91ZFVpVG9vbHRpcERpcmVjdGl2ZSxcclxuICAgIFRDbG91ZFVpQWxpZ25EaXJlY3RpdmUsXHJcbiAgICBUQ2xvdWRVaUhvdmVyUGFyZW50RGlyZWN0aXZlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBUQ2xvdWRVaVRvb2x0aXBEaXJlY3RpdmUsXHJcbiAgICBUQ2xvdWRVaUFsaWduRGlyZWN0aXZlLFxyXG4gICAgVENsb3VkVWlIb3ZlclBhcmVudERpcmVjdGl2ZVxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUQ2xvdWRVaURpcmVjdGl2ZU1vZHVsZSB7fSJdfQ==
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Directive, Input, HostListener } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class TCloudUiHoverParentDirective {
|
|
4
|
+
constructor(renderer) {
|
|
5
|
+
this.renderer = renderer;
|
|
6
|
+
}
|
|
7
|
+
onMouseOver() {
|
|
8
|
+
if (this.getElement()) {
|
|
9
|
+
const el = this.getElement();
|
|
10
|
+
if (el) {
|
|
11
|
+
this.renderer.addClass(el, (this.CLASS) ? this.CLASS : 'tcloud-hover-parent');
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
onMouseOut() {
|
|
16
|
+
if (this.getElement()) {
|
|
17
|
+
const el = this.getElement();
|
|
18
|
+
if (el) {
|
|
19
|
+
this.renderer.removeClass(el, (this.CLASS) ? this.CLASS : 'tcloud-hover-parent');
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
set TCHoverParent(id) {
|
|
24
|
+
if (id) {
|
|
25
|
+
this.ID = id;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
set TCHoverParentClass(clss) {
|
|
29
|
+
if (clss) {
|
|
30
|
+
this.CLASS = clss;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
getElement() {
|
|
34
|
+
if (this.ID) {
|
|
35
|
+
return document.getElementById(this.ID) || undefined;
|
|
36
|
+
}
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
TCloudUiHoverParentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiHoverParentDirective, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
41
|
+
TCloudUiHoverParentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: TCloudUiHoverParentDirective, selector: "[TCHoverParent]", inputs: { TCHoverParent: "TCHoverParent", TCHoverParentClass: "TCHoverParentClass" }, host: { listeners: { "mouseover": "onMouseOver()", "mouseout": "onMouseOut()" } }, ngImport: i0 });
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiHoverParentDirective, decorators: [{
|
|
43
|
+
type: Directive,
|
|
44
|
+
args: [{
|
|
45
|
+
selector: '[TCHoverParent]'
|
|
46
|
+
}]
|
|
47
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { onMouseOver: [{
|
|
48
|
+
type: HostListener,
|
|
49
|
+
args: ['mouseover']
|
|
50
|
+
}], onMouseOut: [{
|
|
51
|
+
type: HostListener,
|
|
52
|
+
args: ['mouseout']
|
|
53
|
+
}], TCHoverParent: [{
|
|
54
|
+
type: Input
|
|
55
|
+
}], TCHoverParentClass: [{
|
|
56
|
+
type: Input
|
|
57
|
+
}] } });
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG92ZXItcGFyZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RjbG91ZC11aS9zcmMvbGliL19kaXJlY3RpdmVzL2hvdmVyLXBhcmVudC9ob3Zlci1wYXJlbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLMUUsTUFBTSxPQUFPLDRCQUE0QjtJQUt2QyxZQUNVLFFBQW1CO1FBQW5CLGFBQVEsR0FBUixRQUFRLENBQVc7SUFDMUIsQ0FBQztJQUV1QixXQUFXO1FBQ3BDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3JCLE1BQU0sRUFBRSxHQUFTLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNuQyxJQUFJLEVBQUUsRUFBRTtnQkFDTixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUM7YUFDL0U7U0FDRjtJQUNILENBQUM7SUFFeUIsVUFBVTtRQUNsQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNyQixNQUFNLEVBQUUsR0FBUyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbkMsSUFBSSxFQUFFLEVBQUU7Z0JBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO2FBQ2xGO1NBRUY7SUFDSCxDQUFDO0lBRUQsSUFBYSxhQUFhLENBQUUsRUFBVTtRQUNwQyxJQUFJLEVBQUUsRUFBQztZQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1NBQUU7SUFDMUIsQ0FBQztJQUVELElBQWEsa0JBQWtCLENBQUUsSUFBUztRQUN4QyxJQUFJLElBQUksRUFBQztZQUNQLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDVCxPQUFPLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLFNBQVMsQ0FBQztTQUN4RDtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7OzBIQTNDVSw0QkFBNEI7OEdBQTVCLDRCQUE0Qjs0RkFBNUIsNEJBQTRCO2tCQUh4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7aUJBQzVCO2dHQVU0QixXQUFXO3NCQUFyQyxZQUFZO3VCQUFDLFdBQVc7Z0JBU0MsVUFBVTtzQkFBbkMsWUFBWTt1QkFBQyxVQUFVO2dCQVVYLGFBQWE7c0JBQXpCLEtBQUs7Z0JBSU8sa0JBQWtCO3NCQUE5QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFJlbmRlcmVyMiwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tUQ0hvdmVyUGFyZW50XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRDbG91ZFVpSG92ZXJQYXJlbnREaXJlY3RpdmUge1xyXG5cclxuICBwcml2YXRlIENMQVNTOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBJRDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxyXG4gICkge31cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignbW91c2VvdmVyJykgb25Nb3VzZU92ZXIoKSB7XHJcbiAgICBpZiggdGhpcy5nZXRFbGVtZW50KCkgKXtcclxuICAgICAgY29uc3QgZWwgPSA8YW55PiB0aGlzLmdldEVsZW1lbnQoKTtcclxuICAgICAgaWYoIGVsICl7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhlbCwgKHRoaXMuQ0xBU1MpID8gdGhpcy5DTEFTUyA6ICd0Y2xvdWQtaG92ZXItcGFyZW50Jyk7XHJcbiAgICAgIH1cclxuICAgIH0gXHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZW91dCcpIG9uTW91c2VPdXQoKSB7XHJcbiAgICBpZiggdGhpcy5nZXRFbGVtZW50KCkgKXtcclxuICAgICAgY29uc3QgZWwgPSA8YW55PiB0aGlzLmdldEVsZW1lbnQoKTtcclxuICAgICAgaWYoIGVsICl7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhlbCwgKHRoaXMuQ0xBU1MpID8gdGhpcy5DTEFTUyA6ICd0Y2xvdWQtaG92ZXItcGFyZW50Jyk7XHJcbiAgICAgIH1cclxuICAgICBcclxuICAgIH0gICAgXHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgVENIb3ZlclBhcmVudCAoaWQ6IHN0cmluZyl7XHJcbiAgICBpZiAoaWQpeyB0aGlzLklEID0gaWQ7IH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNldCBUQ0hvdmVyUGFyZW50Q2xhc3MgKGNsc3M6IGFueSl7XHJcbiAgICBpZiAoY2xzcyl7XHJcbiAgICAgIHRoaXMuQ0xBU1MgPSBjbHNzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZHtcclxuICAgIGlmKCB0aGlzLklEICl7XHJcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuSUQpIHx8IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxufSJdfQ==
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
import { Component, ViewChild, Output, EventEmitter, forwardRef, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../_pipes";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
var translation = {
|
|
7
|
+
ptBR: {
|
|
8
|
+
days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"],
|
|
9
|
+
daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"],
|
|
10
|
+
daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa"],
|
|
11
|
+
months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
|
|
12
|
+
monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"],
|
|
13
|
+
today: "Hoje",
|
|
14
|
+
clear: "Limpar",
|
|
15
|
+
titleFormat: "MM y",
|
|
16
|
+
format: "dd/mm/yyyy",
|
|
17
|
+
weekStart: 0
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR = {
|
|
21
|
+
provide: NG_VALUE_ACCESSOR,
|
|
22
|
+
useExisting: forwardRef(() => TCloudUiDatepickerComponent),
|
|
23
|
+
multi: true
|
|
24
|
+
};
|
|
25
|
+
const noop = () => {
|
|
26
|
+
};
|
|
27
|
+
export class TCloudUiDatepickerComponent {
|
|
28
|
+
constructor(_DateBRPipe, _changeDetectorRef) {
|
|
29
|
+
this._DateBRPipe = _DateBRPipe;
|
|
30
|
+
this._changeDetectorRef = _changeDetectorRef;
|
|
31
|
+
// multiple permite selecionar multiplas datas
|
|
32
|
+
this.multiple = false;
|
|
33
|
+
// maxNumberOfDates - Maximum number of dates users can select. No limit is applied if 0 is set.
|
|
34
|
+
// Depende de: multiple como true
|
|
35
|
+
this.maxNumberOfDates = 0;
|
|
36
|
+
// daysOfWeekDisabled - Dias da semana desabilidatos = 0 para sabado até 6 para domingo
|
|
37
|
+
this.daysOfWeekDisabled = [];
|
|
38
|
+
// minDate - Data minima para exibicao do calendario - ex: 01/01/2020
|
|
39
|
+
this.minDate = '';
|
|
40
|
+
// maxDate - Data maxima para exibicao do calendario - ex: 31/12/2020
|
|
41
|
+
this.maxDate = '';
|
|
42
|
+
// datesDisabled - Datas desabilitadas - Ex: ['12/10/2020','25/12/2020']
|
|
43
|
+
this.datesDisabled = [];
|
|
44
|
+
// modeInput - Exibe um input para quando clicar abrir o calendario
|
|
45
|
+
this.modeInput = false;
|
|
46
|
+
this.useBorder = true;
|
|
47
|
+
// onChange - Dispara a data selecionada
|
|
48
|
+
this.onChange = new EventEmitter();
|
|
49
|
+
this.ngModelChange = new EventEmitter();
|
|
50
|
+
this.code = 'tcloud-ui-datepicker';
|
|
51
|
+
this.ID = '';
|
|
52
|
+
//Placeholders for the callbacks which are later providesd
|
|
53
|
+
//by the Control Value Accessor
|
|
54
|
+
this.onTouchedCallback = noop;
|
|
55
|
+
this.onChangeCallback = noop;
|
|
56
|
+
}
|
|
57
|
+
set ngModel(v) {
|
|
58
|
+
//console.log('ngModel', v);
|
|
59
|
+
if (v && v !== this.innerValue) {
|
|
60
|
+
this.innerValue = v; //this.toSetMask(v);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
ngOnInit() {
|
|
64
|
+
this.ID = this.generateID();
|
|
65
|
+
Datepicker.locales.ptBR = translation.ptBR;
|
|
66
|
+
this.start_datepicker();
|
|
67
|
+
}
|
|
68
|
+
generateID() {
|
|
69
|
+
return `tcloud-ui-datepicker-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}`;
|
|
70
|
+
}
|
|
71
|
+
toSetMask(v) {
|
|
72
|
+
return this._DateBRPipe.transform(v);
|
|
73
|
+
}
|
|
74
|
+
get_options() {
|
|
75
|
+
let options = {
|
|
76
|
+
nextArrow: `<i class="fas fa-caret-right"></i>`,
|
|
77
|
+
prevArrow: `<i class="fas fa-caret-left"></i>`,
|
|
78
|
+
format: 'dd/mm/yyyy',
|
|
79
|
+
daysOfWeekHighlighted: [0, 6],
|
|
80
|
+
language: 'ptBR'
|
|
81
|
+
};
|
|
82
|
+
if ((this.daysOfWeekDisabled).length > 0) {
|
|
83
|
+
options['daysOfWeekDisabled'] = this.daysOfWeekDisabled;
|
|
84
|
+
}
|
|
85
|
+
if ((this.datesDisabled).length > 0) {
|
|
86
|
+
options['datesDisabled'] = this.datesDisabled;
|
|
87
|
+
}
|
|
88
|
+
if (this.minDate !== '') {
|
|
89
|
+
options['minDate'] = this.minDate;
|
|
90
|
+
}
|
|
91
|
+
if (this.maxDate !== '') {
|
|
92
|
+
options['maxDate'] = this.maxDate;
|
|
93
|
+
}
|
|
94
|
+
if (this.multiple) {
|
|
95
|
+
options['maxNumberOfDates'] = this.maxNumberOfDates;
|
|
96
|
+
}
|
|
97
|
+
return options;
|
|
98
|
+
}
|
|
99
|
+
clearDate() {
|
|
100
|
+
if (this.datepicker) {
|
|
101
|
+
this.datepicker.setDate({ clear: true });
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
start_datepicker() {
|
|
105
|
+
setTimeout(() => {
|
|
106
|
+
const input_datepicker = this.input_datepicker?.nativeElement;
|
|
107
|
+
if (input_datepicker) {
|
|
108
|
+
input_datepicker.setAttribute('placeholder', 'DD/MM/YYYY');
|
|
109
|
+
if (!this.useBorder) {
|
|
110
|
+
input_datepicker.setAttribute('style', 'border:none; text-align: center; max-width: 105px; padding: 0;');
|
|
111
|
+
}
|
|
112
|
+
this.datepicker = new Datepicker(input_datepicker, this.get_options());
|
|
113
|
+
if (this.innerValue && this.innerValue !== '') {
|
|
114
|
+
this.toSetDefaultDate(this.innerValue);
|
|
115
|
+
}
|
|
116
|
+
input_datepicker.addEventListener('keyup', (event) => {
|
|
117
|
+
const v = (input_datepicker['value']) ? input_datepicker['value'] : '';
|
|
118
|
+
input_datepicker['value'] = this.toSetMask(v);
|
|
119
|
+
if ((input_datepicker['value']).length >= 10) {
|
|
120
|
+
const v = (input_datepicker['value']).substring(0, 10);
|
|
121
|
+
const part_date = (v).split('/');
|
|
122
|
+
if ((part_date).length === 3) {
|
|
123
|
+
let dia = part_date[0];
|
|
124
|
+
let mes = part_date[1];
|
|
125
|
+
let ano = part_date[2];
|
|
126
|
+
mes = (+(mes) < 10) ? `0${+mes}` : mes;
|
|
127
|
+
dia = (+(dia) < 10) ? `0${+dia}` : dia;
|
|
128
|
+
const dt = new Date(ano + '-' + mes + '-' + dia);
|
|
129
|
+
if (dt) {
|
|
130
|
+
input_datepicker?.changeDate;
|
|
131
|
+
document.getElementById(this.ID)?.blur();
|
|
132
|
+
this.onChange.emit(this.innerValue);
|
|
133
|
+
this.ngModelChange.emit(this.innerValue);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
this.innerValue = undefined;
|
|
139
|
+
this.onChange.emit(this.innerValue);
|
|
140
|
+
this.ngModelChange.emit(this.innerValue);
|
|
141
|
+
}
|
|
142
|
+
//console.log('input_datepicker', input_datepicker['value'] );
|
|
143
|
+
});
|
|
144
|
+
input_datepicker.addEventListener('changeDate', (event) => {
|
|
145
|
+
//console.log(event);
|
|
146
|
+
if (event?.detail?.date) {
|
|
147
|
+
this.toSelectedDate(event.detail);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
//console.log('event null');
|
|
151
|
+
this.innerValue = '';
|
|
152
|
+
this.ngModelChange.emit(this.innerValue);
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
toSetDate() {
|
|
159
|
+
// Ex de uso
|
|
160
|
+
const dates = ['18/11/2022'];
|
|
161
|
+
if (this.datepicker) {
|
|
162
|
+
this.datepicker.setDate(dates);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
toSetDefaultDate(date) {
|
|
166
|
+
if (date === undefined || date === null || date === '') {
|
|
167
|
+
this.clearDate();
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
let dates = [];
|
|
171
|
+
if (date && typeof date === 'string') {
|
|
172
|
+
if ((date).includes(',')) {
|
|
173
|
+
const dates = (date).split(',');
|
|
174
|
+
date = dates;
|
|
175
|
+
if (!this.multiple) {
|
|
176
|
+
this.innerValue = date = dates[0];
|
|
177
|
+
this.ngModelChange.emit(this.innerValue);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
if (date && typeof date === 'string') {
|
|
182
|
+
(dates).push(date);
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
dates = date;
|
|
186
|
+
}
|
|
187
|
+
if (this.datepicker) {
|
|
188
|
+
this.datepicker.setDate(dates);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
toSelectedDate(detail) {
|
|
192
|
+
if (detail.datepicker.dates && (detail.datepicker.dates).length > 0) {
|
|
193
|
+
if (this.multiple) {
|
|
194
|
+
let dates = [];
|
|
195
|
+
for (let i = 0; i < (detail.datepicker.dates).length; i++) {
|
|
196
|
+
const timeStamp = detail.datepicker.dates[i];
|
|
197
|
+
(dates).push(this.format_date(timeStamp));
|
|
198
|
+
}
|
|
199
|
+
this.innerValue = dates;
|
|
200
|
+
this.onChange.emit(this.innerValue);
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
const timeStamp = detail.datepicker.dates[0];
|
|
204
|
+
const date = this.format_date(timeStamp);
|
|
205
|
+
this.onChange.emit(date);
|
|
206
|
+
this.innerValue = date;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
this.clearDate();
|
|
211
|
+
this.innerValue = null;
|
|
212
|
+
this.onChange.emit(this.innerValue);
|
|
213
|
+
}
|
|
214
|
+
this.value = this.innerValue;
|
|
215
|
+
this.ngModelChange.emit(this.innerValue);
|
|
216
|
+
}
|
|
217
|
+
format_date(timeStamp) {
|
|
218
|
+
var date = new Date(timeStamp);
|
|
219
|
+
let dia = `${date.getDate()}`;
|
|
220
|
+
let mes = `${date.getMonth() + 1}`;
|
|
221
|
+
let ano = `${date.getFullYear()}`;
|
|
222
|
+
dia = (+(dia) < 10) ? `0${+dia}` : dia;
|
|
223
|
+
mes = (+(mes) < 10) ? `0${+mes}` : mes;
|
|
224
|
+
const dateFormat = `${dia}/${mes}/${ano}`;
|
|
225
|
+
return dateFormat;
|
|
226
|
+
}
|
|
227
|
+
toClickIn(id) {
|
|
228
|
+
const element = document.getElementById(id);
|
|
229
|
+
setTimeout(() => {
|
|
230
|
+
element?.datepicker?.show();
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
//get accessor
|
|
234
|
+
get value() {
|
|
235
|
+
return this.innerValue;
|
|
236
|
+
}
|
|
237
|
+
;
|
|
238
|
+
//set accessor including call the onchange callback
|
|
239
|
+
set value(v) {
|
|
240
|
+
//console.log('value', v);
|
|
241
|
+
if (v !== this.innerValue) {
|
|
242
|
+
this.innerValue = v; // this.toSetMask(v);
|
|
243
|
+
this.onChangeCallback(v);
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
// this.innerValue = '';
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
//Set touched on blur
|
|
250
|
+
onBlur() {
|
|
251
|
+
this.onTouchedCallback();
|
|
252
|
+
}
|
|
253
|
+
//From ControlValueAccessor interface
|
|
254
|
+
writeValue(value) {
|
|
255
|
+
if (value !== this.innerValue) {
|
|
256
|
+
this.innerValue = value;
|
|
257
|
+
this.toSetDefaultDate(value);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
//From ControlValueAccessor interface
|
|
261
|
+
registerOnChange(fn) {
|
|
262
|
+
this.onChangeCallback = fn;
|
|
263
|
+
}
|
|
264
|
+
//From ControlValueAccessor interface
|
|
265
|
+
registerOnTouched(fn) {
|
|
266
|
+
this.onTouchedCallback = fn;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
TCloudUiDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDatepickerComponent, deps: [{ token: i1.DateBRPipe }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
270
|
+
TCloudUiDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TCloudUiDatepickerComponent, selector: "tcloud-ui-datepicker", inputs: { multiple: "multiple", maxNumberOfDates: "maxNumberOfDates", daysOfWeekDisabled: "daysOfWeekDisabled", minDate: "minDate", maxDate: "maxDate", datesDisabled: "datesDisabled", modeInput: "modeInput", useBorder: "useBorder", ngModel: "ngModel", code: "code" }, outputs: { onChange: "onChange", ngModelChange: "ngModelChange" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "input_datepicker", first: true, predicate: ["input_datepicker"], descendants: true }], ngImport: i0, template: "<!-- Input mode -->\r\n<ng-container *ngIf=\"modeInput\">\r\n\r\n <div class=\"input-tc-datepicker\" [class.no-border]=\"!useBorder\">\r\n <table class=\"table-box-input\">\r\n <tr>\r\n <td>\r\n <div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div>\r\n </td>\r\n <td>\r\n <input #input_datepicker type=\"text\" name=\"{{ID}}\" id=\"{{ID}}\" class=\"form-control\" >\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n\r\n \r\n \r\n</ng-container>\r\n\r\n<!-- Inline mode -->\r\n<ng-container *ngIf=\"!modeInput\"> \r\n <div #input_datepicker id=\"{{ID}}\" pattern=\"/^\\d{2}\\/\\d{2}\\/\\d{4}$/\"></div>\r\n</ng-container>\r\n\r\n\r\n<!-- EX de uso \r\n <tc-datepicker \r\n [multiple]=\"false\"\r\n [daysOfWeekDisabled]=\"[0,6]\"\r\n [minDate]=\"'18/11/2021'\"\r\n [maxDate]=\"'18/12/2023'\"\r\n [datesDisabled]=\"['12/10/2022','25/12/2022']\"\r\n [modeInput]=\"false\"\r\n [(ngModel)]=\"dateValue\" >\r\n </tc-datepicker>\r\n \r\n // multiple = false\r\n // dateValue - string - pode ser: 12/12/2022 \r\n\r\n // multiple = true\r\n // dateValue - string - pode ser: 11/12/2022,12/12/2022 ... \r\n\r\n <pre>data: {{ dateValue }}</pre>\r\n-->\r\n", styles: [".input_datepicker{width:100%;max-width:290px}.input-tc-datepicker{border:1px solid #ccc;border-radius:3px}.input-tc-datepicker.no-border{border:none!important}.input-tc-datepicker .table-box-input{width:100%}.input-tc-datepicker .table-box-input td:first-child{width:20px}.input-tc-datepicker .table-box-input td:first-child .delimiter-time-icon{text-align:center;cursor:pointer}.input-tc-datepicker .table-box-input input{border:none}\n", ".datepicker{display:none}.datepicker.active{display:block}.datepicker-dropdown{left:0;padding-top:4px;position:absolute;top:0;z-index:20}.datepicker-dropdown.datepicker-orient-top{padding-bottom:4px;padding-top:0}.datepicker-picker{background-color:#fff;border-radius:4px;display:inline-block}.datepicker-dropdown .datepicker-picker{box-shadow:0 2px 3px #0a0a0a1a,0 0 0 1px #0a0a0a1a}.datepicker-picker span{-webkit-touch-callout:none;border:0;border-radius:4px;cursor:default;display:block;flex:1;text-align:center;-webkit-user-select:none;user-select:none}.datepicker-main{padding:2px}.datepicker-footer{background-color:#f5f5f5;box-shadow:inset 0 1px 1px #0a0a0a1a}.datepicker-controls,.datepicker-grid,.datepicker-view,.datepicker-view .days-of-week{display:flex}.datepicker-grid{flex-wrap:wrap}.datepicker-view .days .datepicker-cell,.datepicker-view .dow{flex-basis:14.2857142857%}.datepicker-view.datepicker-grid .datepicker-cell{flex-basis:25%}.datepicker-cell,.datepicker-view .week{height:2.25rem;line-height:2.25rem}.datepicker-title{background-color:#f5f5f5;box-shadow:inset 0 -1px 1px #0a0a0a1a;font-weight:700;padding:.375rem .75rem;text-align:center}.datepicker-header .datepicker-controls{padding:2px 2px 0}.datepicker-controls .button{align-items:center;background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;box-shadow:none;color:#363636;cursor:pointer;display:inline-flex;font-size:1rem;height:2.25em;justify-content:center;line-height:1.5;margin:0;padding:calc(.375em - 1px) .75em;position:relative;text-align:center;vertical-align:top;white-space:nowrap}.datepicker-controls .button:active,.datepicker-controls .button:focus{outline:none}.datepicker-controls .button:hover{border-color:#b5b5b5;color:#363636}.datepicker-controls .button:focus{border-color:#3273dc;color:#363636}.datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #3273dc40}.datepicker-controls .button:active{border-color:#4a4a4a;color:#363636}.datepicker-controls .button[disabled]{cursor:not-allowed}.datepicker-header .datepicker-controls .button{border-color:transparent;font-weight:700}.datepicker-header .datepicker-controls .button:hover{background-color:#f9f9f9}.datepicker-header .datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #ffffff40}.datepicker-header .datepicker-controls .button:active{background-color:#f2f2f2}.datepicker-header .datepicker-controls .button[disabled]{box-shadow:none}.datepicker-footer .datepicker-controls .button{border-radius:2px;font-size:.75rem;margin:calc(.375rem - 1px) .375rem;width:100%}.datepicker-controls .view-switch{flex:auto}.datepicker-controls .next-btn,.datepicker-controls .prev-btn{padding-left:.375rem;padding-right:.375rem;width:2.25rem}.datepicker-controls .next-btn.disabled,.datepicker-controls .prev-btn.disabled{visibility:hidden}.datepicker-view .dow{font-size:.875rem;font-weight:700;height:1.5rem;line-height:1.5rem}.datepicker-view .week{color:#b5b5b5;font-size:.75rem;width:2.25rem}@media (max-width:22.5rem){.datepicker-view .week{width:1.96875rem}}.datepicker-grid{width:15.75rem}@media (max-width:22.5rem){.calendar-weeks+.days .datepicker-grid{width:13.78125rem}}.datepicker-cell:not(.disabled):hover{background-color:#f9f9f9;cursor:pointer}.datepicker-cell.focused:not(.selected){background-color:#e8e8e8}.datepicker-cell.selected,.datepicker-cell.selected:hover{background-color:#3273dc;color:#fff;font-weight:600}.datepicker-cell.disabled{color:#dbdbdb}.datepicker-cell.next:not(.disabled),.datepicker-cell.prev:not(.disabled){color:#7a7a7a}.datepicker-cell.next.selected,.datepicker-cell.prev.selected{color:#e6e6e6}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today){background-color:#f5f5f5;border-radius:0}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today):not(.disabled):hover{background-color:#eee}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today).focused{background-color:#e8e8e8}.datepicker-cell.today:not(.selected){background-color:#00d1b2}.datepicker-cell.today:not(.selected):not(.disabled){color:#fff}.datepicker-cell.today.focused:not(.selected){background-color:#00c4a7}.datepicker-cell.range-end:not(.selected),.datepicker-cell.range-start:not(.selected){background-color:#b5b5b5;color:#fff}.datepicker-cell.range-end.focused:not(.selected),.datepicker-cell.range-start.focused:not(.selected){background-color:#afafaf}.datepicker-cell.range-start{border-radius:4px 0 0 4px}.datepicker-cell.range-end{border-radius:0 4px 4px 0}.datepicker-cell.range{background-color:#dbdbdb;border-radius:0}.datepicker-cell.range:not(.disabled):not(.focused):not(.today):hover{background-color:#d5d5d5}.datepicker-cell.range.disabled{color:#c2c2c2}.datepicker-cell.range.focused{background-color:#cfcfcf}.datepicker-view.datepicker-grid .datepicker-cell{height:4.5rem;line-height:4.5rem}.datepicker-input.in-edit{border-color:#2366d1}.datepicker-input.in-edit:active,.datepicker-input.in-edit:focus{box-shadow:0 0 .25em .25em #2366d133}\n", ".datepicker-picker{border:1px solid #ccc;padding:10px 15px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
271
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDatepickerComponent, decorators: [{
|
|
272
|
+
type: Component,
|
|
273
|
+
args: [{ selector: 'tcloud-ui-datepicker', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], encapsulation: ViewEncapsulation.None, template: "<!-- Input mode -->\r\n<ng-container *ngIf=\"modeInput\">\r\n\r\n <div class=\"input-tc-datepicker\" [class.no-border]=\"!useBorder\">\r\n <table class=\"table-box-input\">\r\n <tr>\r\n <td>\r\n <div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div>\r\n </td>\r\n <td>\r\n <input #input_datepicker type=\"text\" name=\"{{ID}}\" id=\"{{ID}}\" class=\"form-control\" >\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n\r\n \r\n \r\n</ng-container>\r\n\r\n<!-- Inline mode -->\r\n<ng-container *ngIf=\"!modeInput\"> \r\n <div #input_datepicker id=\"{{ID}}\" pattern=\"/^\\d{2}\\/\\d{2}\\/\\d{4}$/\"></div>\r\n</ng-container>\r\n\r\n\r\n<!-- EX de uso \r\n <tc-datepicker \r\n [multiple]=\"false\"\r\n [daysOfWeekDisabled]=\"[0,6]\"\r\n [minDate]=\"'18/11/2021'\"\r\n [maxDate]=\"'18/12/2023'\"\r\n [datesDisabled]=\"['12/10/2022','25/12/2022']\"\r\n [modeInput]=\"false\"\r\n [(ngModel)]=\"dateValue\" >\r\n </tc-datepicker>\r\n \r\n // multiple = false\r\n // dateValue - string - pode ser: 12/12/2022 \r\n\r\n // multiple = true\r\n // dateValue - string - pode ser: 11/12/2022,12/12/2022 ... \r\n\r\n <pre>data: {{ dateValue }}</pre>\r\n-->\r\n", styles: [".input_datepicker{width:100%;max-width:290px}.input-tc-datepicker{border:1px solid #ccc;border-radius:3px}.input-tc-datepicker.no-border{border:none!important}.input-tc-datepicker .table-box-input{width:100%}.input-tc-datepicker .table-box-input td:first-child{width:20px}.input-tc-datepicker .table-box-input td:first-child .delimiter-time-icon{text-align:center;cursor:pointer}.input-tc-datepicker .table-box-input input{border:none}\n", ".datepicker{display:none}.datepicker.active{display:block}.datepicker-dropdown{left:0;padding-top:4px;position:absolute;top:0;z-index:20}.datepicker-dropdown.datepicker-orient-top{padding-bottom:4px;padding-top:0}.datepicker-picker{background-color:#fff;border-radius:4px;display:inline-block}.datepicker-dropdown .datepicker-picker{box-shadow:0 2px 3px #0a0a0a1a,0 0 0 1px #0a0a0a1a}.datepicker-picker span{-webkit-touch-callout:none;border:0;border-radius:4px;cursor:default;display:block;flex:1;text-align:center;-webkit-user-select:none;user-select:none}.datepicker-main{padding:2px}.datepicker-footer{background-color:#f5f5f5;box-shadow:inset 0 1px 1px #0a0a0a1a}.datepicker-controls,.datepicker-grid,.datepicker-view,.datepicker-view .days-of-week{display:flex}.datepicker-grid{flex-wrap:wrap}.datepicker-view .days .datepicker-cell,.datepicker-view .dow{flex-basis:14.2857142857%}.datepicker-view.datepicker-grid .datepicker-cell{flex-basis:25%}.datepicker-cell,.datepicker-view .week{height:2.25rem;line-height:2.25rem}.datepicker-title{background-color:#f5f5f5;box-shadow:inset 0 -1px 1px #0a0a0a1a;font-weight:700;padding:.375rem .75rem;text-align:center}.datepicker-header .datepicker-controls{padding:2px 2px 0}.datepicker-controls .button{align-items:center;background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;box-shadow:none;color:#363636;cursor:pointer;display:inline-flex;font-size:1rem;height:2.25em;justify-content:center;line-height:1.5;margin:0;padding:calc(.375em - 1px) .75em;position:relative;text-align:center;vertical-align:top;white-space:nowrap}.datepicker-controls .button:active,.datepicker-controls .button:focus{outline:none}.datepicker-controls .button:hover{border-color:#b5b5b5;color:#363636}.datepicker-controls .button:focus{border-color:#3273dc;color:#363636}.datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #3273dc40}.datepicker-controls .button:active{border-color:#4a4a4a;color:#363636}.datepicker-controls .button[disabled]{cursor:not-allowed}.datepicker-header .datepicker-controls .button{border-color:transparent;font-weight:700}.datepicker-header .datepicker-controls .button:hover{background-color:#f9f9f9}.datepicker-header .datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #ffffff40}.datepicker-header .datepicker-controls .button:active{background-color:#f2f2f2}.datepicker-header .datepicker-controls .button[disabled]{box-shadow:none}.datepicker-footer .datepicker-controls .button{border-radius:2px;font-size:.75rem;margin:calc(.375rem - 1px) .375rem;width:100%}.datepicker-controls .view-switch{flex:auto}.datepicker-controls .next-btn,.datepicker-controls .prev-btn{padding-left:.375rem;padding-right:.375rem;width:2.25rem}.datepicker-controls .next-btn.disabled,.datepicker-controls .prev-btn.disabled{visibility:hidden}.datepicker-view .dow{font-size:.875rem;font-weight:700;height:1.5rem;line-height:1.5rem}.datepicker-view .week{color:#b5b5b5;font-size:.75rem;width:2.25rem}@media (max-width:22.5rem){.datepicker-view .week{width:1.96875rem}}.datepicker-grid{width:15.75rem}@media (max-width:22.5rem){.calendar-weeks+.days .datepicker-grid{width:13.78125rem}}.datepicker-cell:not(.disabled):hover{background-color:#f9f9f9;cursor:pointer}.datepicker-cell.focused:not(.selected){background-color:#e8e8e8}.datepicker-cell.selected,.datepicker-cell.selected:hover{background-color:#3273dc;color:#fff;font-weight:600}.datepicker-cell.disabled{color:#dbdbdb}.datepicker-cell.next:not(.disabled),.datepicker-cell.prev:not(.disabled){color:#7a7a7a}.datepicker-cell.next.selected,.datepicker-cell.prev.selected{color:#e6e6e6}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today){background-color:#f5f5f5;border-radius:0}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today):not(.disabled):hover{background-color:#eee}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today).focused{background-color:#e8e8e8}.datepicker-cell.today:not(.selected){background-color:#00d1b2}.datepicker-cell.today:not(.selected):not(.disabled){color:#fff}.datepicker-cell.today.focused:not(.selected){background-color:#00c4a7}.datepicker-cell.range-end:not(.selected),.datepicker-cell.range-start:not(.selected){background-color:#b5b5b5;color:#fff}.datepicker-cell.range-end.focused:not(.selected),.datepicker-cell.range-start.focused:not(.selected){background-color:#afafaf}.datepicker-cell.range-start{border-radius:4px 0 0 4px}.datepicker-cell.range-end{border-radius:0 4px 4px 0}.datepicker-cell.range{background-color:#dbdbdb;border-radius:0}.datepicker-cell.range:not(.disabled):not(.focused):not(.today):hover{background-color:#d5d5d5}.datepicker-cell.range.disabled{color:#c2c2c2}.datepicker-cell.range.focused{background-color:#cfcfcf}.datepicker-view.datepicker-grid .datepicker-cell{height:4.5rem;line-height:4.5rem}.datepicker-input.in-edit{border-color:#2366d1}.datepicker-input.in-edit:active,.datepicker-input.in-edit:focus{box-shadow:0 0 .25em .25em #2366d133}\n", ".datepicker-picker{border:1px solid #ccc;padding:10px 15px}\n"] }]
|
|
274
|
+
}], ctorParameters: function () { return [{ type: i1.DateBRPipe }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { multiple: [{
|
|
275
|
+
type: Input
|
|
276
|
+
}], maxNumberOfDates: [{
|
|
277
|
+
type: Input
|
|
278
|
+
}], daysOfWeekDisabled: [{
|
|
279
|
+
type: Input
|
|
280
|
+
}], minDate: [{
|
|
281
|
+
type: Input
|
|
282
|
+
}], maxDate: [{
|
|
283
|
+
type: Input
|
|
284
|
+
}], datesDisabled: [{
|
|
285
|
+
type: Input
|
|
286
|
+
}], modeInput: [{
|
|
287
|
+
type: Input
|
|
288
|
+
}], useBorder: [{
|
|
289
|
+
type: Input
|
|
290
|
+
}], onChange: [{
|
|
291
|
+
type: Output
|
|
292
|
+
}], ngModel: [{
|
|
293
|
+
type: Input
|
|
294
|
+
}], ngModelChange: [{
|
|
295
|
+
type: Output
|
|
296
|
+
}], input_datepicker: [{
|
|
297
|
+
type: ViewChild,
|
|
298
|
+
args: ['input_datepicker', { static: false }]
|
|
299
|
+
}], code: [{
|
|
300
|
+
type: Input
|
|
301
|
+
}] } });
|
|
302
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXIvdGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXIvdGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWMsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUN4SixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU1uRCxJQUFJLFdBQVcsR0FBRztJQUNoQixJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUM7UUFDNUUsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQzVELE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztRQUNuRCxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFB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O0lBRUQscUNBQXFDO0lBQ3JDLGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQscUNBQXFDO0lBQ3JDLGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUM5QixDQUFDOzt5SEE1VVUsMkJBQTJCOzZHQUEzQiwyQkFBMkIsOFhBSDNCLENBQUMsbUNBQW1DLENBQUMsZ0pDdkNsRCw0d0NBNkNBOzRGREhhLDJCQUEyQjtrQkFYdkMsU0FBUzsrQkFDRSxzQkFBc0IsYUFPckIsQ0FBQyxtQ0FBbUMsQ0FBQyxpQkFDakMsaUJBQWlCLENBQUMsSUFBSTtpSUFLNUIsUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBR0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0ksUUFBUTtzQkFBakIsTUFBTTtnQkFHTSxPQUFPO3NCQUFuQixLQUFLO2dCQVFJLGFBQWE7c0JBQXRCLE1BQU07Z0JBRXlDLGdCQUFnQjtzQkFBL0QsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBRXJDLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24sIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEYXRlQlJQaXBlIH0gZnJvbSAnLi4vLi4vX3BpcGVzJztcclxuXHJcbi8vIGh0dHBzOi8vbXltdGguZ2l0aHViLmlvL3ZhbmlsbGFqcy1kYXRlcGlja2VyLyMvXHJcbmRlY2xhcmUgdmFyIERhdGVwaWNrZXI6IGFueTtcclxuXHJcbnZhciB0cmFuc2xhdGlvbiA9IHtcclxuICBwdEJSOiB7XHJcbiAgICBkYXlzOiBbXCJEb21pbmdvXCIsIFwiU2VndW5kYVwiLCBcIlRlcsOnYVwiLCBcIlF1YXJ0YVwiLCBcIlF1aW50YVwiLCBcIlNleHRhXCIsIFwiU8OhYmFkb1wiXSxcclxuICAgIGRheXNTaG9ydDogW1wiRG9tXCIsIFwiU2VnXCIsIFwiVGVyXCIsIFwiUXVhXCIsIFwiUXVpXCIsIFwiU2V4XCIsIFwiU8OhYlwiXSxcclxuICAgIGRheXNNaW46IFtcIkRvXCIsIFwiU2VcIiwgXCJUZVwiLCBcIlF1XCIsIFwiUXVcIiwgXCJTZVwiLCBcIlNhXCJdLFxyXG4gICAgbW9udGhzOiBbXCJKYW5laXJvXCIsIFwiRmV2ZXJlaXJvXCIsIFwiTWFyw6dvXCIsIFwiQWJyaWxcIiwgXCJNYWlvXCIsIFwiSnVuaG9cIiwgXCJKdWxob1wiLCBcIkFnb3N0b1wiLCBcIlNldGVtYnJvXCIsIFwiT3V0dWJyb1wiLCBcIk5vdmVtYnJvXCIsIFwiRGV6ZW1icm9cIl0sXHJcbiAgICBtb250aHNTaG9ydDogW1wiSmFuXCIsIFwiRmV2XCIsIFwiTWFyXCIsIFwiQWJyXCIsIFwiTWFpXCIsIFwiSnVuXCIsIFwiSnVsXCIsIFwiQWdvXCIsIFwiU2V0XCIsIFwiT3V0XCIsIFwiTm92XCIsIFwiRGV6XCJdLFxyXG4gICAgdG9kYXk6IFwiSG9qZVwiLFxyXG4gICAgY2xlYXI6IFwiTGltcGFyXCIsXHJcbiAgICB0aXRsZUZvcm1hdDogXCJNTSB5XCIsXHJcbiAgICBmb3JtYXQ6IFwiZGQvbW0veXl5eVwiLFxyXG4gICAgd2Vla1N0YXJ0OiAwXHJcbiAgfVxyXG59O1xyXG5cclxuY29uc3QgQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcclxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUQ2xvdWRVaURhdGVwaWNrZXJDb21wb25lbnQpLFxyXG4gIG11bHRpOiB0cnVlXHJcbn07XHJcblxyXG5jb25zdCBub29wID0gKCkgPT4ge1xyXG59O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Y2xvdWQtdWktZGF0ZXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RjbG91ZC11aS1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFtcclxuICAgICcuL3RjbG91ZC11aS1kYXRlcGlja2VyLmNvbXBvbmVudC5zY3NzJyxcclxuICAgICcuL2RhdGVwaWNrZXIvY3NzL2RhdGVwaWNrZXIubWluLmNzcycsXHJcbiAgICAnLi9kYXRlcGlja2VyL2Nzcy9zdHlsZS5jc3MnLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRDbG91ZFVpRGF0ZXBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIC8vIG11bHRpcGxlIHBlcm1pdGUgc2VsZWNpb25hciBtdWx0aXBsYXMgZGF0YXNcclxuICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvLyBtYXhOdW1iZXJPZkRhdGVzIC0gTWF4aW11bSBudW1iZXIgb2YgZGF0ZXMgdXNlcnMgY2FuIHNlbGVjdC4gTm8gbGltaXQgaXMgYXBwbGllZCBpZiAwIGlzIHNldC5cclxuICAvLyBEZXBlbmRlIGRlOiBtdWx0aXBsZSBjb21vIHRydWVcclxuICBASW5wdXQoKSBtYXhOdW1iZXJPZkRhdGVzOiBudW1iZXIgPSAwO1xyXG5cclxuICAvLyBkYXlzT2ZXZWVrRGlzYWJsZWQgLSBEaWFzIGRhIHNlbWFuYSBkZXNhYmlsaWRhdG9zID0gMCBwYXJhIHNhYmFkbyBhdMOpIDYgcGFyYSBkb21pbmdvXHJcbiAgQElucHV0KCkgZGF5c09mV2Vla0Rpc2FibGVkOiBudW1iZXJbXSA9IFtdO1xyXG5cclxuICAvLyBtaW5EYXRlIC0gRGF0YSBtaW5pbWEgcGFyYSBleGliaWNhbyBkbyBjYWxlbmRhcmlvIC0gZXg6IDAxLzAxLzIwMjBcclxuICBASW5wdXQoKSBtaW5EYXRlOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLy8gbWF4RGF0ZSAtIERhdGEgbWF4aW1hIHBhcmEgZXhpYmljYW8gZG8gY2FsZW5kYXJpbyAtIGV4OiAzMS8xMi8yMDIwXHJcbiAgQElucHV0KCkgbWF4RGF0ZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8vIGRhdGVzRGlzYWJsZWQgLSBEYXRhcyBkZXNhYmlsaXRhZGFzIC0gRXg6IFsnMTIvMTAvMjAyMCcsJzI1LzEyLzIwMjAnXVxyXG4gIEBJbnB1dCgpIGRhdGVzRGlzYWJsZWQ6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIC8vIG1vZGVJbnB1dCAtIEV4aWJlIHVtIGlucHV0IHBhcmEgcXVhbmRvIGNsaWNhciBhYnJpciBvIGNhbGVuZGFyaW9cclxuICBASW5wdXQoKSBtb2RlSW5wdXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgdXNlQm9yZGVyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLy8gb25DaGFuZ2UgLSBEaXNwYXJhIGEgZGF0YSBzZWxlY2lvbmFkYVxyXG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55fHVuZGVmaW5lZD4oKTtcclxuXHJcbiAgcHJpdmF0ZSBfbmdNb2RlbDogYW55IHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHNldCBuZ01vZGVsKHY6IGFueSl7XHJcblxyXG4gICAgLy9jb25zb2xlLmxvZygnbmdNb2RlbCcsIHYpO1xyXG5cclxuICAgIGlmKCB2ICYmIHYgIT09IHRoaXMuaW5uZXJWYWx1ZSApe1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB2OyAvL3RoaXMudG9TZXRNYXNrKHYpOyBcclxuICAgIH0gXHJcbiAgfVxyXG4gIEBPdXRwdXQoKSBuZ01vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnl8dW5kZWZpbmVkPigpO1xyXG5cclxuICBAVmlld0NoaWxkKCdpbnB1dF9kYXRlcGlja2VyJywge3N0YXRpYzogZmFsc2V9KSBpbnB1dF9kYXRlcGlja2VyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIGRhdGVwaWNrZXI6IGFueSB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBjb2RlOiBzdHJpbmcgPSAndGNsb3VkLXVpLWRhdGVwaWNrZXInO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX0RhdGVCUlBpcGU6IERhdGVCUlBpcGUsXHJcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHsgfVxyXG5cclxuICBJRDogc3RyaW5nID0gJyc7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5JRCA9IHRoaXMuZ2VuZXJhdGVJRCgpO1xyXG4gICAgRGF0ZXBpY2tlci5sb2NhbGVzLnB0QlIgPSB0cmFuc2xhdGlvbi5wdEJSOyAgICBcclxuICAgIHRoaXMuc3RhcnRfZGF0ZXBpY2tlcigpO1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVJRCgpOiBzdHJpbmd7XHJcbiAgICByZXR1cm4gYHRjbG91ZC11aS1kYXRlcGlja2VyLSR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogRGF0ZS5ub3coKSkpfWA7XHJcbiAgfVxyXG5cclxuICB0b1NldE1hc2sodjogc3RyaW5nKXtcclxuICAgIHJldHVybiB0aGlzLl9EYXRlQlJQaXBlLnRyYW5zZm9ybSh2KTtcclxuICB9XHJcblxyXG4gIGdldF9vcHRpb25zKCl7XHJcbiAgICBsZXQgb3B0aW9ucyA9IHtcclxuICAgICAgbmV4dEFycm93OiBgPGkgY2xhc3M9XCJmYXMgZmEtY2FyZXQtcmlnaHRcIj48L2k+YCxcclxuICAgICAgcHJldkFycm93OiBgPGkgY2xhc3M9XCJmYXMgZmEtY2FyZXQtbGVmdFwiPjwvaT5gLFxyXG4gICAgICBmb3JtYXQ6ICdkZC9tbS95eXl5JywgICAgICBcclxuICAgICAgZGF5c09mV2Vla0hpZ2hsaWdodGVkOiBbMCw2XSxcclxuICAgICAgbGFuZ3VhZ2U6ICdwdEJSJ1xyXG4gICAgfSBhcyBhbnk7XHJcblxyXG4gICAgaWYoICh0aGlzLmRheXNPZldlZWtEaXNhYmxlZCkubGVuZ3RoID4gMCApe1xyXG4gICAgICBvcHRpb25zWydkYXlzT2ZXZWVrRGlzYWJsZWQnXSA9IHRoaXMuZGF5c09mV2Vla0Rpc2FibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCAodGhpcy5kYXRlc0Rpc2FibGVkKS5sZW5ndGggPiAwICl7XHJcbiAgICAgIG9wdGlvbnNbJ2RhdGVzRGlzYWJsZWQnXSA9IHRoaXMuZGF0ZXNEaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBpZiggdGhpcy5taW5EYXRlICE9PSAnJyApe1xyXG4gICAgICBvcHRpb25zWydtaW5EYXRlJ10gPSB0aGlzLm1pbkRhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIHRoaXMubWF4RGF0ZSAhPT0gJycgKXtcclxuICAgICAgb3B0aW9uc1snbWF4RGF0ZSddID0gdGhpcy5tYXhEYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCB0aGlzLm11bHRpcGxlICl7ICAgICAgXHJcbiAgICAgIG9wdGlvbnNbJ21heE51bWJlck9mRGF0ZXMnXSA9IHRoaXMubWF4TnVtYmVyT2ZEYXRlcztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb3B0aW9ucztcclxuICB9XHJcblxyXG4gIGNsZWFyRGF0ZSgpe1xyXG4gICAgaWYoIHRoaXMuZGF0ZXBpY2tlciApe1xyXG4gICAgICB0aGlzLmRhdGVwaWNrZXIuc2V0RGF0ZSh7Y2xlYXI6IHRydWV9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0YXJ0X2RhdGVwaWNrZXIoKXtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4geyAgICAgXHJcbiAgICAgIGNvbnN0IGlucHV0X2RhdGVwaWNrZXIgPSA8YW55PiB0aGlzLmlucHV0X2RhdGVwaWNrZXI/Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgIGlmKCBpbnB1dF9kYXRlcGlja2VyICl7XHJcblxyXG4gICAgICAgIGlucHV0X2RhdGVwaWNrZXIuc2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicsJ0REL01NL1lZWVknKTtcclxuXHJcbiAgICAgICAgaWYoICF0aGlzLnVzZUJvcmRlciApe1xyXG4gICAgICAgICAgaW5wdXRfZGF0ZXBpY2tlci5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywnYm9yZGVyOm5vbmU7IHRleHQtYWxpZ246IGNlbnRlcjsgbWF4LXdpZHRoOiAxMDVweDsgcGFkZGluZzogMDsnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcblxyXG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlciA9IG5ldyBEYXRlcGlja2VyKCBpbnB1dF9kYXRlcGlja2VyLCB0aGlzLmdldF9vcHRpb25zKCkgKTtcclxuXHJcbiAgICAgICAgaWYoIHRoaXMuaW5uZXJWYWx1ZSAmJiB0aGlzLmlubmVyVmFsdWUgIT09ICcnICl7XHJcbiAgICAgICAgICB0aGlzLnRvU2V0RGVmYXVsdERhdGUodGhpcy5pbm5lclZhbHVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlucHV0X2RhdGVwaWNrZXIuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgdiA9IChpbnB1dF9kYXRlcGlja2VyWyd2YWx1ZSddKSA/IGlucHV0X2RhdGVwaWNrZXJbJ3ZhbHVlJ10gOiAnJztcclxuICAgICAgICAgIGlucHV0X2RhdGVwaWNrZXJbJ3ZhbHVlJ10gPSB0aGlzLnRvU2V0TWFzayh2KTtcclxuXHJcbiAgICAgICAgICBpZiggKGlucHV0X2RhdGVwaWNrZXJbJ3ZhbHVlJ10pLmxlbmd0aCA+PSAxMCApe1xyXG4gICAgICAgICAgICBjb25zdCB2ID0gKGlucHV0X2RhdGVwaWNrZXJbJ3ZhbHVlJ10pLnN1YnN0cmluZygwLCAxMCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhcnRfZGF0ZSA9ICh2KS5zcGxpdCgnLycpO1xyXG4gICAgICAgICAgICBpZiggKHBhcnRfZGF0ZSkubGVuZ3RoID09PSAzICl7XHJcblxyXG4gICAgICAgICAgICAgIGxldCBkaWEgPSBwYXJ0X2RhdGVbMF07XHJcbiAgICAgICAgICAgICAgbGV0IG1lcyA9IHBhcnRfZGF0ZVsxXTtcclxuICAgICAgICAgICAgICBsZXQgYW5vID0gcGFydF9kYXRlWzJdO1xyXG5cclxuICAgICAgICAgICAgICBtZXMgPSAoKyhtZXMpIDwgMTAgKSA/IGAwJHsrbWVzfWAgOiBtZXM7ICBcclxuICAgICAgICAgICAgICBkaWEgPSAoKyhkaWEpIDwgMTAgKSA/IGAwJHsrZGlhfWAgOiBkaWE7XHJcblxyXG4gICAgICAgICAgICAgIGNvbnN0IGR0ID0gbmV3IERhdGUoYW5vKyctJyttZXMrJy0nK2RpYSk7XHJcbiAgICAgICAgICAgICAgaWYoIGR0ICl7XHJcbiAgICAgICAgICAgICAgICBpbnB1dF9kYXRlcGlja2VyPy5jaGFuZ2VEYXRlO1xyXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5JRCk/LmJsdXIoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh0aGlzLmlubmVyVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5uZ01vZGVsQ2hhbmdlLmVtaXQodGhpcy5pbm5lclZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh0aGlzLmlubmVyVmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLm5nTW9kZWxDaGFuZ2UuZW1pdCh0aGlzLmlubmVyVmFsdWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZygnaW5wdXRfZGF0ZXBpY2tlcicsIGlucHV0X2RhdGVwaWNrZXJbJ3ZhbHVlJ10gKTtcclxuICAgICAgICB9KVxyXG5cclxuXHJcbiAgICAgICAgaW5wdXRfZGF0ZXBpY2tlci5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2VEYXRlJywgKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIC8vY29uc29sZS5sb2coZXZlbnQpO1xyXG4gICAgICAgICAgaWYoIGV2ZW50Py5kZXRhaWw/LmRhdGUgKXtcclxuICAgICAgICAgICAgdGhpcy50b1NlbGVjdGVkRGF0ZSggZXZlbnQuZGV0YWlsICk7XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZygnZXZlbnQgbnVsbCcpO1xyXG4gICAgICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSAnJztcclxuICAgICAgICAgICAgdGhpcy5uZ01vZGVsQ2hhbmdlLmVtaXQodGhpcy5pbm5lclZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICB9ICAgICAgXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHRvU2V0RGF0ZSgpe1xyXG4gICAgLy8gRXggZGUgdXNvXHJcbiAgICBjb25zdCBkYXRlcyA9IFsnMTgvMTEvMjAyMiddO1xyXG4gICAgaWYoIHRoaXMuZGF0ZXBpY2tlciApe1xyXG4gICAgICB0aGlzLmRhdGVwaWNrZXIuc2V0RGF0ZShkYXRlcyk7XHJcbiAgICB9ICAgIFxyXG4gIH1cclxuXHJcbiAgdG9TZXREZWZhdWx0RGF0ZShkYXRlOiBzdHJpbmcgfCBzdHJpbmdbXSl7XHJcbiAgICBcclxuICAgIGlmKCBkYXRlID09PSB1bmRlZmluZWQgfHwgZGF0ZSA9PT0gbnVsbCB8fCBkYXRlID09PSAnJyApe1xyXG4gICAgICB0aGlzLmNsZWFyRGF0ZSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGRhdGVzID0gW10gYXMgc3RyaW5nW107XHJcblxyXG4gICAgaWYoIGRhdGUgJiYgdHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnICl7XHJcbiAgICAgIGlmKCAoZGF0ZSkuaW5jbHVkZXMoJywnKSApe1xyXG4gICAgICAgIGNvbnN0IGRhdGVzID0gKGRhdGUpLnNwbGl0KCcsJyk7XHJcbiAgICAgICAgZGF0ZSA9IGRhdGVzO1xyXG4gICAgICAgIGlmKCAhdGhpcy5tdWx0aXBsZSApe1xyXG4gICAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gZGF0ZSA9IGRhdGVzWzBdO1xyXG4gICAgICAgICAgdGhpcy5uZ01vZGVsQ2hhbmdlLmVtaXQodGhpcy5pbm5lclZhbHVlKTsgXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmKCBkYXRlICYmIHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJyApe1xyXG4gICAgICAoZGF0ZXMpLnB1c2goIGRhdGUgKTsgXHJcbiAgICB9ZWxzZXtcclxuICAgICAgZGF0ZXMgPSA8QXJyYXk8c3RyaW5nPj4gZGF0ZTtcclxuICAgIH1cclxuICAgIGlmKCB0aGlzLmRhdGVwaWNrZXIgKXtcclxuICAgICAgdGhpcy5kYXRlcGlja2VyLnNldERhdGUoZGF0ZXMpOyAgICAgIFxyXG4gICAgfSBcclxuICB9XHJcblxyXG4gIHRvU2VsZWN0ZWREYXRlKGRldGFpbDogYW55KXsgICAgXHJcbiAgICBpZiggZGV0YWlsLmRhdGVwaWNrZXIuZGF0ZXMgJiYgKGRldGFpbC5kYXRlcGlja2VyLmRhdGVzKS5sZW5ndGggPiAwICl7XHJcbiAgICAgIGlmKCB0aGlzLm11bHRpcGxlICl7XHJcbiAgICAgICAgbGV0IGRhdGVzID0gW107XHJcbiAgICAgICAgZm9yKCBsZXQgaSA9IDA7IGkgPCAoZGV0YWlsLmRhdGVwaWNrZXIuZGF0ZXMpLmxlbmd0aDsgaSsrICl7XHJcbiAgICAgICAgICBjb25zdCB0aW1lU3RhbXAgPSA8bnVtYmVyPiBkZXRhaWwuZGF0ZXBpY2tlci5kYXRlc1tpXTtcclxuICAgICAgICAgIChkYXRlcykucHVzaCggdGhpcy5mb3JtYXRfZGF0ZSggdGltZVN0YW1wICkgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gZGF0ZXM7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7ICAgICAgICBcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgY29uc3QgdGltZVN0YW1wID0gPG51bWJlcj4gZGV0YWlsLmRhdGVwaWNrZXIuZGF0ZXNbMF07XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuZm9ybWF0X2RhdGUoIHRpbWVTdGFtcCApO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdChkYXRlKTtcclxuICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSBkYXRlO1xyXG4gICAgICB9ICAgICAgXHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5jbGVhckRhdGUoKTtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gbnVsbDtcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XHJcbiAgICB9IFxyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuaW5uZXJWYWx1ZTtcclxuICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7IFxyXG4gIH1cclxuXHJcbiAgZm9ybWF0X2RhdGUodGltZVN0YW1wOiBudW1iZXIpe1xyXG4gICAgdmFyIGRhdGUgPSBuZXcgRGF0ZSh0aW1lU3RhbXApO1xyXG5cclxuICAgIGxldCBkaWEgPSBgJHtkYXRlLmdldERhdGUoKX1gO1xyXG4gICAgbGV0IG1lcyA9IGAke2RhdGUuZ2V0TW9udGgoKSsxfWA7XHJcbiAgICBsZXQgYW5vID0gYCR7ZGF0ZS5nZXRGdWxsWWVhcigpfWA7XHJcblxyXG4gICAgZGlhID0gKCsoZGlhKSA8IDEwICkgPyBgMCR7K2RpYX1gIDogZGlhO1xyXG4gICAgbWVzID0gKCsobWVzKSA8IDEwICkgPyBgMCR7K21lc31gIDogbWVzOyBcclxuXHJcbiAgICBjb25zdCBkYXRlRm9ybWF0ID0gYCR7ZGlhfS8ke21lc30vJHthbm99YDtcclxuICAgIHJldHVybiBkYXRlRm9ybWF0O1xyXG4gIH1cclxuXHJcbiAgdG9DbGlja0luKGlkOiBzdHJpbmcpe1xyXG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSBhcyBhbnk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHsgICAgICBcclxuICAgICAgZWxlbWVudD8uZGF0ZXBpY2tlcj8uc2hvdygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIGlubmVyVmFsdWU6IGFueSB8IHVuZGVmaW5lZDtcclxuICAvL1BsYWNlaG9sZGVycyBmb3IgdGhlIGNhbGxiYWNrcyB3aGljaCBhcmUgbGF0ZXIgcHJvdmlkZXNkXHJcbiAgLy9ieSB0aGUgQ29udHJvbCBWYWx1ZSBBY2Nlc3NvclxyXG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xyXG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XHJcblxyXG4gIC8vZ2V0IGFjY2Vzc29yXHJcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XHJcbiAgfTtcclxuXHJcbiAgLy9zZXQgYWNjZXNzb3IgaW5jbHVkaW5nIGNhbGwgdGhlIG9uY2hhbmdlIGNhbGxiYWNrXHJcbiAgc2V0IHZhbHVlKHY6IGFueSkge1xyXG5cclxuICAgIC8vY29uc29sZS5sb2coJ3ZhbHVlJywgdik7XHJcblxyXG4gICAgaWYgKHYgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB2OyAvLyB0aGlzLnRvU2V0TWFzayh2KTsgICAgICBcclxuICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHYpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgLy8gdGhpcy5pbm5lclZhbHVlID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL1NldCB0b3VjaGVkIG9uIGJsdXJcclxuICBvbkJsdXIoKSB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7XHJcbiAgfVxyXG5cclxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgdGhpcy50b1NldERlZmF1bHREYXRlKHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcclxuICB9XHJcblxyXG59XHJcbiIsIjwhLS0gSW5wdXQgbW9kZSAtLT5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGVJbnB1dFwiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtdGMtZGF0ZXBpY2tlclwiIFtjbGFzcy5uby1ib3JkZXJdPVwiIXVzZUJvcmRlclwiPlxyXG4gICAgPHRhYmxlIGNsYXNzPVwidGFibGUtYm94LWlucHV0XCI+XHJcbiAgICAgIDx0cj5cclxuICAgICAgICA8dGQ+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVsaW1pdGVyLXRpbWUtaWNvblwiIChjbGljayk9XCJ0b0NsaWNrSW4oSUQpXCIgPjxpIGNsYXNzPVwiZmFzIGZhLWNhbGVuZGFyLWFsdFwiPjwvaT48L2Rpdj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICAgIDx0ZD5cclxuICAgICAgICAgIDxpbnB1dCAjaW5wdXRfZGF0ZXBpY2tlciB0eXBlPVwidGV4dFwiIG5hbWU9XCJ7e0lEfX1cIiBpZD1cInt7SUR9fVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgPlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvdHI+XHJcbiAgICA8L3RhYmxlPlxyXG4gIDwvZGl2PlxyXG5cclxuICBcclxuICBcclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48IS0tIElubGluZSBtb2RlIC0tPlxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiIW1vZGVJbnB1dFwiPiAgXHJcbiAgPGRpdiAjaW5wdXRfZGF0ZXBpY2tlciBpZD1cInt7SUR9fVwiIHBhdHRlcm49XCIvXlxcZHsyfVxcL1xcZHsyfVxcL1xcZHs0fSQvXCI+PC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbjwhLS0gRVggZGUgdXNvIFxyXG4gIDx0Yy1kYXRlcGlja2VyIFxyXG4gICAgW211bHRpcGxlXT1cImZhbHNlXCJcclxuICAgIFtkYXlzT2ZXZWVrRGlzYWJsZWRdPVwiWzAsNl1cIlxyXG4gICAgW21pbkRhdGVdPVwiJzE4LzExLzIwMjEnXCJcclxuICAgIFttYXhEYXRlXT1cIicxOC8xMi8yMDIzJ1wiXHJcbiAgICBbZGF0ZXNEaXNhYmxlZF09XCJbJzEyLzEwLzIwMjInLCcyNS8xMi8yMDIyJ11cIlxyXG4gICAgW21vZGVJbnB1dF09XCJmYWxzZVwiXHJcbiAgICBbKG5nTW9kZWwpXT1cImRhdGVWYWx1ZVwiID5cclxuICA8L3RjLWRhdGVwaWNrZXI+XHJcbiAgXHJcbiAgLy8gbXVsdGlwbGUgPSBmYWxzZVxyXG4gIC8vIGRhdGVWYWx1ZSAtIHN0cmluZyAtIHBvZGUgc2VyOiAxMi8xMi8yMDIyIFxyXG5cclxuICAvLyBtdWx0aXBsZSA9IHRydWVcclxuICAvLyBkYXRlVmFsdWUgLSBzdHJpbmcgLSBwb2RlIHNlcjogMTEvMTIvMjAyMiwxMi8xMi8yMDIyIC4uLiBcclxuXHJcbiAgPHByZT5kYXRhOiB7eyBkYXRlVmFsdWUgfX08L3ByZT5cclxuLS0+XHJcbiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { TCloudUiDatepickerComponent } from './tcloud-ui-datepicker.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class TCloudUiDatepickerModule {
|
|
7
|
+
}
|
|
8
|
+
TCloudUiDatepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
TCloudUiDatepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDatepickerModule, declarations: [TCloudUiDatepickerComponent], imports: [CommonModule,
|
|
10
|
+
FormsModule,
|
|
11
|
+
ReactiveFormsModule], exports: [TCloudUiDatepickerComponent] });
|
|
12
|
+
TCloudUiDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDatepickerModule, imports: [CommonModule,
|
|
13
|
+
FormsModule,
|
|
14
|
+
ReactiveFormsModule] });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDatepickerModule, decorators: [{
|
|
16
|
+
type: NgModule,
|
|
17
|
+
args: [{
|
|
18
|
+
declarations: [
|
|
19
|
+
TCloudUiDatepickerComponent
|
|
20
|
+
],
|
|
21
|
+
exports: [
|
|
22
|
+
TCloudUiDatepickerComponent
|
|
23
|
+
],
|
|
24
|
+
imports: [
|
|
25
|
+
CommonModule,
|
|
26
|
+
FormsModule,
|
|
27
|
+
ReactiveFormsModule
|
|
28
|
+
]
|
|
29
|
+
}]
|
|
30
|
+
}] });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGVwaWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXIvdGNsb3VkLXVpLWRhdGVwaWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFpQi9FLE1BQU0sT0FBTyx3QkFBd0I7O3NIQUF4Qix3QkFBd0I7dUhBQXhCLHdCQUF3QixpQkFYakMsMkJBQTJCLGFBTTNCLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1CLGFBTG5CLDJCQUEyQjt1SEFRbEIsd0JBQXdCLFlBTGpDLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1COzRGQUdWLHdCQUF3QjtrQkFicEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjtxQkFDcEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVENsb3VkVWlEYXRlcGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi90Y2xvdWQtdWktZGF0ZXBpY2tlci5jb21wb25lbnQnO1xyXG5cclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgVENsb3VkVWlEYXRlcGlja2VyQ29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBUQ2xvdWRVaURhdGVwaWNrZXJDb21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRDbG91ZFVpRGF0ZXBpY2tlck1vZHVsZSB7IH1cclxuIl19
|