@dev-tcloud/tcloud-ui 4.2.2 → 5.0.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/README.md +106 -105
- package/datepicker/js/_info.txt +3 -3
- package/fesm2022/dev-tcloud-tcloud-ui.mjs +432 -365
- package/fesm2022/dev-tcloud-tcloud-ui.mjs.map +1 -1
- package/lib/_interfaces/theme.service.interface.d.ts +3 -0
- package/lib/_modules/tcloud-ui-accordion/tcloud-ui-accordion.component.d.ts +1 -0
- package/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.component.d.ts +1 -1
- package/lib/_services/tcloud-ui-theme.services.d.ts +12 -0
- package/lib/tcloud-ui.config.d.ts +1 -0
- package/package.json +3 -5
- package/scss/components/custom/el-copy.scss +17 -17
- package/scss/components/custom/loading-transitions.scss +27 -27
- package/scss/components/custom/loading.scss +2 -2
- package/scss/components/custom/tab-menu.scss +57 -57
- package/scss/components/custom/table.scss +98 -98
- package/scss/components/custom/tooltip.scss +89 -89
- package/scss/components/custom/ui-datepicker.scss +15 -15
- package/scss/components/custom/validation.scss +7 -7
- package/scss/components/custom/variables.scss +32 -32
- package/scss/components/styles.scss +9 -9
- package/scss/tcloud/custom/alerts.scss +38 -37
- package/scss/tcloud/custom/buttons.scss +1002 -1002
- package/scss/tcloud/custom/card.scss +51 -51
- package/scss/tcloud/custom/colors.scss +97 -97
- package/scss/tcloud/custom/forms.scss +81 -81
- package/scss/tcloud/custom/layout.scss +5 -5
- package/scss/tcloud/custom/left-navigation.scss +47 -47
- package/scss/tcloud/custom/mixins.scss +318 -318
- package/scss/tcloud/custom/tcloud-prime.scss +4519 -4519
- package/scss/tcloud/custom/tcloud-standard.scss +121 -121
- package/scss/tcloud/custom/text.scss +57 -57
- package/scss/tcloud/custom/top-navigation.scss +59 -59
- package/scss/tcloud/custom/variables.scss +60 -60
- package/scss/tcloud/disaster-recovery/colors.scss +14 -14
- package/scss/tcloud/disaster-recovery/layout.scss +13 -13
- package/scss/tcloud/disaster-recovery/styles.scss +2 -2
- package/scss/tcloud/prime/cards-products.scss +333 -331
- package/scss/tcloud/prime/left-navigation.scss +329 -327
- package/scss/tcloud/prime/styles.scss +3 -3
- package/scss/tcloud/prime/tcloud-prime.scss +3874 -3872
- package/scss/tcloud/standard/left-navigation.scss +47 -47
- package/scss/tcloud/standard/styles.scss +3 -3
- package/scss/tcloud/standard/tcloud-standard.scss +125 -125
- package/scss/tcloud/standard/top-navigation.scss +61 -61
- package/scss/tcloud/styles.scss +19 -19
- package/scss/tcloud/tcloud-ui.scss +7 -7
- package/esm2022/dev-tcloud-tcloud-ui.mjs +0 -5
- package/esm2022/lib/_directives/align/align.directive.mjs +0 -42
- package/esm2022/lib/_directives/currency/currency.directive.mjs +0 -160
- package/esm2022/lib/_directives/directives.module.mjs +0 -76
- package/esm2022/lib/_directives/el-copy/el-copy.directive.mjs +0 -68
- package/esm2022/lib/_directives/hover-parent/hover-parent.directive.mjs +0 -58
- package/esm2022/lib/_directives/tcloud-access/tcloud-ui-check-access.directive.mjs +0 -66
- package/esm2022/lib/_directives/tcloud-access/tcloud-ui-ng-check-access.directive.mjs +0 -50
- package/esm2022/lib/_directives/tcloud-access/tcloud-ui-ng-feature-flags.directive.mjs +0 -44
- package/esm2022/lib/_directives/tcloud-ui-digit-only.directive.mjs +0 -64
- package/esm2022/lib/_directives/tcloud-ui-highlight.diretive.mjs +0 -36
- package/esm2022/lib/_directives/tcloud-ui-ip-mask.directive.mjs +0 -54
- package/esm2022/lib/_directives/tooltip/tooltip.directive.mjs +0 -196
- package/esm2022/lib/_interfaces/user.service.interface.mjs +0 -2
- package/esm2022/lib/_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-body/tcloud-ui-accordion-body.component.mjs +0 -35
- package/esm2022/lib/_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-title/tcloud-ui-accordion-title.component.mjs +0 -54
- package/esm2022/lib/_modules/tcloud-ui-accordion/services/tcloud-ui-accordion.service.mjs +0 -38
- package/esm2022/lib/_modules/tcloud-ui-accordion/tcloud-ui-accordion.component.mjs +0 -75
- package/esm2022/lib/_modules/tcloud-ui-accordion/tcloud-ui-accordion.module.mjs +0 -35
- package/esm2022/lib/_modules/tcloud-ui-choice-issues/tcloud-ui-choice-issues.component.mjs +0 -87
- package/esm2022/lib/_modules/tcloud-ui-choice-issues/tcloud-ui-choice-issues.module.mjs +0 -32
- package/esm2022/lib/_modules/tcloud-ui-data-list/services/data-list.service.mjs +0 -38
- package/esm2022/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list-option/tcloud-ui-data-list-option.component.mjs +0 -65
- package/esm2022/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.component.mjs +0 -317
- package/esm2022/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.mjs +0 -3
- package/esm2022/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.module.mjs +0 -37
- package/esm2022/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.component.mjs +0 -440
- package/esm2022/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.module.mjs +0 -32
- package/esm2022/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component.mjs +0 -320
- package/esm2022/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.module.mjs +0 -40
- package/esm2022/lib/_modules/tcloud-ui-filters/components/range-date/range-date.component.mjs +0 -213
- package/esm2022/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.component.mjs +0 -537
- package/esm2022/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.mjs +0 -20
- package/esm2022/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.module.mjs +0 -45
- package/esm2022/lib/_modules/tcloud-ui-input-password/tcloud-ui-input-password.component.mjs +0 -142
- package/esm2022/lib/_modules/tcloud-ui-input-password/tcloud-ui-input-password.module.mjs +0 -32
- package/esm2022/lib/_modules/tcloud-ui-input-search/tcloud-ui-input-search.component.mjs +0 -66
- package/esm2022/lib/_modules/tcloud-ui-input-search/tcloud-ui-input-search.module.mjs +0 -32
- package/esm2022/lib/_modules/tcloud-ui-label-token/tcloud-ui-label-token.component.mjs +0 -36
- package/esm2022/lib/_modules/tcloud-ui-label-token/tcloud-ui-label-token.module.mjs +0 -31
- package/esm2022/lib/_modules/tcloud-ui-line-step-circle/tcloud-ui-line-step-circle.component.mjs +0 -93
- package/esm2022/lib/_modules/tcloud-ui-line-step-circle/tcloud-ui-line-step-circle.module.mjs +0 -25
- package/esm2022/lib/_modules/tcloud-ui-line-step-title/tcloud-ui-line-step-title.component.mjs +0 -43
- package/esm2022/lib/_modules/tcloud-ui-line-step-title/tcloud-ui-line-step-title.mjs +0 -2
- package/esm2022/lib/_modules/tcloud-ui-line-step-title/tcloud-ui-line-step-title.module.mjs +0 -19
- package/esm2022/lib/_modules/tcloud-ui-linha-logo/tcloud-ui-linha-logo.component.mjs +0 -65
- package/esm2022/lib/_modules/tcloud-ui-linha-logo/tcloud-ui-linha-logo.module.mjs +0 -25
- package/esm2022/lib/_modules/tcloud-ui-loading/components/tcloud-ui-cubes/tcloud-ui-cubes.component.mjs +0 -11
- package/esm2022/lib/_modules/tcloud-ui-loading/tcloud-ui-loading.component.mjs +0 -29
- package/esm2022/lib/_modules/tcloud-ui-loading/tcloud-ui-loading.module.mjs +0 -21
- package/esm2022/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-body/tcloud-ui-modal-body.component.mjs +0 -14
- package/esm2022/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-footer/tcloud-ui-modal-footer.component.mjs +0 -61
- package/esm2022/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-header/tcloud-ui-modal-header.component.mjs +0 -24
- package/esm2022/lib/_modules/tcloud-ui-modal/services/tcloud-modal.service.mjs +0 -63
- package/esm2022/lib/_modules/tcloud-ui-modal/tcloud-ui-modal.component.mjs +0 -203
- package/esm2022/lib/_modules/tcloud-ui-modal/tcloud-ui-modal.mjs +0 -2
- package/esm2022/lib/_modules/tcloud-ui-modal/tcloud-ui-modal.module.mjs +0 -47
- package/esm2022/lib/_modules/tcloud-ui-multi-input/tcloud-ui-multi-input.component.mjs +0 -155
- package/esm2022/lib/_modules/tcloud-ui-multi-input/tcloud-ui-multi-input.module.mjs +0 -28
- package/esm2022/lib/_modules/tcloud-ui-multi-select/tcloud-ui-multi-select.component.mjs +0 -170
- package/esm2022/lib/_modules/tcloud-ui-multi-select/tcloud-ui-multi-select.module.mjs +0 -28
- package/esm2022/lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.component.mjs +0 -348
- package/esm2022/lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.module.mjs +0 -36
- package/esm2022/lib/_modules/tcloud-ui-not-found/tcloud-ui-not-found.component.mjs +0 -20
- package/esm2022/lib/_modules/tcloud-ui-not-found/tcloud-ui-not-found.module.mjs +0 -25
- package/esm2022/lib/_modules/tcloud-ui-number-step/tcloud-ui-number-step.component.mjs +0 -33
- package/esm2022/lib/_modules/tcloud-ui-number-step/tcloud-ui-number-step.module.mjs +0 -28
- package/esm2022/lib/_modules/tcloud-ui-progress-bar/tcloud-ui-progress-bar.component.mjs +0 -165
- package/esm2022/lib/_modules/tcloud-ui-progress-bar/tcloud-ui-progress-bar.module.mjs +0 -21
- package/esm2022/lib/_modules/tcloud-ui-reorder-items/tcloud-ui-reorder-items.component.mjs +0 -105
- package/esm2022/lib/_modules/tcloud-ui-reorder-items/tcloud-ui-reorder-items.mjs +0 -2
- package/esm2022/lib/_modules/tcloud-ui-reorder-items/tcloud-ui-reorder-items.module.mjs +0 -24
- package/esm2022/lib/_modules/tcloud-ui-scroll-box/tcloud-ui-scroll-box.component.mjs +0 -46
- package/esm2022/lib/_modules/tcloud-ui-scroll-box/tcloud-ui-scroll-box.module.mjs +0 -25
- package/esm2022/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-content/tcloud-ui-tab-content.component.mjs +0 -36
- package/esm2022/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-head/tcloud-ui-tab-head.component.mjs +0 -85
- package/esm2022/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-subtitle/tcloud-ui-tab-subtitle.component.mjs +0 -69
- package/esm2022/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-title/tcloud-ui-tab-title.component.mjs +0 -71
- package/esm2022/lib/_modules/tcloud-ui-tab-menu/services/tab-menu.service.mjs +0 -104
- package/esm2022/lib/_modules/tcloud-ui-tab-menu/tcloud-ui-tab-menu.component.mjs +0 -64
- package/esm2022/lib/_modules/tcloud-ui-tab-menu/tcloud-ui-tab-menu.mjs +0 -2
- package/esm2022/lib/_modules/tcloud-ui-tab-menu/tcloud-ui-tab-menu.module.mjs +0 -45
- package/esm2022/lib/_modules/tcloud-ui-table/tcloud-ui-table.component.mjs +0 -21
- package/esm2022/lib/_modules/tcloud-ui-table/tcloud-ui-table.module.mjs +0 -25
- package/esm2022/lib/_modules/tcloud-ui-welcome/tcloud-ui-welcome.component.mjs +0 -37
- package/esm2022/lib/_modules/tcloud-ui-welcome/tcloud-ui-welcome.module.mjs +0 -25
- package/esm2022/lib/_pipes/array-to-text.mjs +0 -29
- package/esm2022/lib/_pipes/bytes.mjs +0 -31
- package/esm2022/lib/_pipes/cnpj.mjs +0 -37
- package/esm2022/lib/_pipes/cpf.mjs +0 -37
- package/esm2022/lib/_pipes/datebr.mjs +0 -102
- package/esm2022/lib/_pipes/index.mjs +0 -9
- package/esm2022/lib/_pipes/monthname.mjs +0 -25
- package/esm2022/lib/_pipes/respective.mjs +0 -73
- package/esm2022/lib/_pipes/statusinfo.mjs +0 -78
- package/esm2022/lib/_pipes/tcloud-pipes.module.mjs +0 -75
- package/esm2022/lib/_services/loading-transitions.service.mjs +0 -52
- package/esm2022/lib/_services/search-in-object.service.mjs +0 -99
- package/esm2022/lib/_services/tcloud-ui-check-access.service.mjs +0 -170
- package/esm2022/lib/tcloud-ui.config.mjs +0 -2
- package/esm2022/lib/tcloud-ui.module.mjs +0 -235
- package/esm2022/public-api.mjs +0 -116
|
@@ -1,440 +0,0 @@
|
|
|
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
|
-
set ngModel(v) {
|
|
29
|
-
if (v && v !== this.innerValue) {
|
|
30
|
-
this.innerValue = v; //this.toSetMask(v);
|
|
31
|
-
this.default_innerValue = v;
|
|
32
|
-
this.default_innerValue_convertida = this.convertDates(v);
|
|
33
|
-
if (this.multiple) {
|
|
34
|
-
this.default_qtd_innerValue = (v).length;
|
|
35
|
-
}
|
|
36
|
-
this.onChange.emit(v);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
constructor(_DateBRPipe) {
|
|
40
|
-
this._DateBRPipe = _DateBRPipe;
|
|
41
|
-
// multiple permite selecionar multiplas datas
|
|
42
|
-
this.multiple = false;
|
|
43
|
-
// maxNumberOfDates - Maximum number of dates users can select. No limit is applied if 0 is set.
|
|
44
|
-
// Depende de: multiple como true
|
|
45
|
-
this.maxNumberOfDates = 0;
|
|
46
|
-
// daysOfWeekDisabled - Dias da semana desabilidatos = 0 para sabado até 6 para domingo
|
|
47
|
-
this.daysOfWeekDisabled = [];
|
|
48
|
-
// minDate - Data minima para exibicao do calendario - ex: 01/01/2020
|
|
49
|
-
this.minDate = '';
|
|
50
|
-
// maxDate - Data maxima para exibicao do calendario - ex: 31/12/2020
|
|
51
|
-
this.maxDate = '';
|
|
52
|
-
// datesDisabled - Datas desabilitadas - Ex: ['12/10/2020','25/12/2020']
|
|
53
|
-
this.datesDisabled = [];
|
|
54
|
-
// modeInput - Exibe um input para quando clicar abrir o calendario
|
|
55
|
-
this.modeInput = false;
|
|
56
|
-
this.useBorder = true;
|
|
57
|
-
this.childInputDateTime = false;
|
|
58
|
-
this.startViewInMinDate = false;
|
|
59
|
-
this.startViewInMaxDate = false;
|
|
60
|
-
this.disabled = false;
|
|
61
|
-
// onChange - Dispara a data selecionada
|
|
62
|
-
this.onChange = new EventEmitter();
|
|
63
|
-
this.default_qtd_innerValue = 0;
|
|
64
|
-
this.ngModelChange = new EventEmitter();
|
|
65
|
-
this.onCheckDate = new EventEmitter();
|
|
66
|
-
this.code = 'tcloud-ui-datepicker';
|
|
67
|
-
this.ID = '';
|
|
68
|
-
//Placeholders for the callbacks which are later providesd
|
|
69
|
-
//by the Control Value Accessor
|
|
70
|
-
this.onTouchedCallback = noop;
|
|
71
|
-
this.onChangeCallback = noop;
|
|
72
|
-
}
|
|
73
|
-
ngOnInit() {
|
|
74
|
-
this.ID = this.generateID();
|
|
75
|
-
Datepicker.locales.ptBR = translation.ptBR;
|
|
76
|
-
this.start_datepicker();
|
|
77
|
-
}
|
|
78
|
-
generateID() {
|
|
79
|
-
return `tcloud-ui-datepicker-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}`;
|
|
80
|
-
}
|
|
81
|
-
toSetMask(v) {
|
|
82
|
-
return this._DateBRPipe.transform(v);
|
|
83
|
-
}
|
|
84
|
-
parseDateLocal(dateString, _split) {
|
|
85
|
-
if (!_split) {
|
|
86
|
-
_split = '-';
|
|
87
|
-
}
|
|
88
|
-
const [day, month, year] = dateString.split(_split);
|
|
89
|
-
return new Date(year, month - 1, day); // Subtrai 1 porque os meses são indexados a partir de 0
|
|
90
|
-
}
|
|
91
|
-
formatDateLocal(date) {
|
|
92
|
-
const year = date.getFullYear();
|
|
93
|
-
const month = String(date.getMonth() + 1).padStart(2, '0'); // Adiciona 1 porque os meses são indexados a partir de 0
|
|
94
|
-
const day = String(date.getDate()).padStart(2, '0');
|
|
95
|
-
return `${day}/${month}/${year}`;
|
|
96
|
-
}
|
|
97
|
-
get_options() {
|
|
98
|
-
// Função para formatar uma data no fuso horário local
|
|
99
|
-
const formatDateLocal = (date) => {
|
|
100
|
-
const year = date.getFullYear();
|
|
101
|
-
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
102
|
-
const day = String(date.getDate()).padStart(2, '0');
|
|
103
|
-
return `${year}-${month}-${day}`;
|
|
104
|
-
};
|
|
105
|
-
// Função para analisar uma data no fuso horário local
|
|
106
|
-
const parseDateLocal = (dateString) => {
|
|
107
|
-
const [year, month, day] = dateString.split('-');
|
|
108
|
-
return new Date(year, month - 1, day);
|
|
109
|
-
};
|
|
110
|
-
let options = {
|
|
111
|
-
nextArrow: `<i class="fas fa-caret-right"></i>`,
|
|
112
|
-
prevArrow: `<i class="fas fa-caret-left"></i>`,
|
|
113
|
-
format: 'dd/mm/yyyy',
|
|
114
|
-
daysOfWeekHighlighted: [0, 6],
|
|
115
|
-
language: 'ptBR',
|
|
116
|
-
formatter: {
|
|
117
|
-
date: formatDateLocal,
|
|
118
|
-
},
|
|
119
|
-
parser: {
|
|
120
|
-
date: parseDateLocal,
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
if ((this.daysOfWeekDisabled).length > 0) {
|
|
124
|
-
options['daysOfWeekDisabled'] = this.daysOfWeekDisabled;
|
|
125
|
-
}
|
|
126
|
-
if ((this.datesDisabled).length > 0) {
|
|
127
|
-
options['datesDisabled'] = this.datesDisabled;
|
|
128
|
-
}
|
|
129
|
-
if (this.minDate !== '') {
|
|
130
|
-
options['minDate'] = this.minDate;
|
|
131
|
-
}
|
|
132
|
-
if (this.maxDate !== '') {
|
|
133
|
-
options['maxDate'] = this.maxDate;
|
|
134
|
-
}
|
|
135
|
-
if (this.multiple) {
|
|
136
|
-
options['multiple'] = true;
|
|
137
|
-
options['autohide'] = false;
|
|
138
|
-
options['maxNumberOfDates'] = this.maxNumberOfDates;
|
|
139
|
-
}
|
|
140
|
-
return options;
|
|
141
|
-
}
|
|
142
|
-
clearDate() {
|
|
143
|
-
if (this.datepicker) {
|
|
144
|
-
this.datepicker.setDate({ clear: true });
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
start_datepicker() {
|
|
148
|
-
setTimeout(() => {
|
|
149
|
-
const input_datepicker = this.input_datepicker?.nativeElement;
|
|
150
|
-
if (input_datepicker) {
|
|
151
|
-
input_datepicker.setAttribute('placeholder', 'DD/MM/YYYY');
|
|
152
|
-
if (!this.useBorder) {
|
|
153
|
-
input_datepicker.setAttribute('style', 'border:none; text-align: center; max-width: 105px; padding: 0;');
|
|
154
|
-
}
|
|
155
|
-
this.datepicker = new Datepicker(input_datepicker, this.get_options());
|
|
156
|
-
if (this.innerValue && this.innerValue !== '') {
|
|
157
|
-
this.toSetDefaultDate(this.innerValue);
|
|
158
|
-
}
|
|
159
|
-
input_datepicker.addEventListener('keyup', (event) => {
|
|
160
|
-
const v = (input_datepicker['value']) ? input_datepicker['value'] : '';
|
|
161
|
-
input_datepicker['value'] = this.toSetMask(v);
|
|
162
|
-
if ((input_datepicker['value']).length >= 10) {
|
|
163
|
-
const v = (input_datepicker['value']).substring(0, 10);
|
|
164
|
-
const part_date = (v).split('/');
|
|
165
|
-
if ((part_date).length === 3) {
|
|
166
|
-
let dia = part_date[0];
|
|
167
|
-
let mes = part_date[1];
|
|
168
|
-
let ano = part_date[2];
|
|
169
|
-
mes = (+(mes) < 10) ? `0${+mes}` : mes;
|
|
170
|
-
dia = (+(dia) < 10) ? `0${+dia}` : dia;
|
|
171
|
-
const dt = new Date(ano + '-' + mes + '-' + dia);
|
|
172
|
-
if (dt) {
|
|
173
|
-
input_datepicker?.changeDate;
|
|
174
|
-
document.getElementById(this.ID)?.blur();
|
|
175
|
-
this.onChange.emit(this.innerValue);
|
|
176
|
-
this.ngModelChange.emit(this.innerValue);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
else {
|
|
181
|
-
this.innerValue = undefined;
|
|
182
|
-
this.onChange.emit(this.innerValue);
|
|
183
|
-
this.ngModelChange.emit(this.innerValue);
|
|
184
|
-
}
|
|
185
|
-
});
|
|
186
|
-
input_datepicker.addEventListener('changeDate', (event) => {
|
|
187
|
-
if (event?.detail?.date) {
|
|
188
|
-
let qtd = (event.detail.date).length;
|
|
189
|
-
if (this.disabled) {
|
|
190
|
-
if (!this.multiple) {
|
|
191
|
-
let dt = this.formatDateLocal(event.detail?.date);
|
|
192
|
-
if (this.default_innerValue && this.default_innerValue[0] && (`${this.default_innerValue[0]}` !== `${dt}`)) {
|
|
193
|
-
qtd = 1;
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
this.datepicker.setDate(this.default_innerValue_convertida, { clear: true, render: true });
|
|
197
|
-
if (qtd > this.default_qtd_innerValue) {
|
|
198
|
-
this.date_changed = event?.detail.viewDate;
|
|
199
|
-
this.datepicker.setFocusedDate(this.date_changed, { resetView: false });
|
|
200
|
-
this.onCheckDate.emit({
|
|
201
|
-
value: this.formatDateLocal(this.date_changed),
|
|
202
|
-
date: this.date_changed,
|
|
203
|
-
checked: true,
|
|
204
|
-
disabled: this.disabled
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
else {
|
|
208
|
-
if (this.multiple) {
|
|
209
|
-
const so = this.findDifferences(this.default_innerValue, this.formatArrayDates(event.detail.date));
|
|
210
|
-
if (so && (so).length > 0) {
|
|
211
|
-
this.date_changed = this.parseDateLocal(so[0], '/');
|
|
212
|
-
this.onCheckDate.emit({
|
|
213
|
-
value: so[0],
|
|
214
|
-
date: this.date_changed,
|
|
215
|
-
checked: false,
|
|
216
|
-
disabled: this.disabled
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
this.datepicker.setFocusedDate(this.date_changed, { resetView: false });
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
else {
|
|
224
|
-
this.toSelectedDate(event.detail);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
else {
|
|
228
|
-
this.innerValue = '';
|
|
229
|
-
this.ngModelChange.emit(this.innerValue);
|
|
230
|
-
}
|
|
231
|
-
});
|
|
232
|
-
}
|
|
233
|
-
});
|
|
234
|
-
}
|
|
235
|
-
toSetDefaultDate(date) {
|
|
236
|
-
if (date === undefined || date === null || date === '') {
|
|
237
|
-
this.clearDate();
|
|
238
|
-
return;
|
|
239
|
-
}
|
|
240
|
-
let dates = [];
|
|
241
|
-
if (date && typeof date === 'string') {
|
|
242
|
-
if ((date).includes(',')) {
|
|
243
|
-
const dates = (date).split(',');
|
|
244
|
-
date = dates;
|
|
245
|
-
if (!this.multiple) {
|
|
246
|
-
this.innerValue = date = dates[0];
|
|
247
|
-
this.ngModelChange.emit(this.innerValue);
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
if (date && typeof date === 'string') {
|
|
252
|
-
(dates).push(date);
|
|
253
|
-
}
|
|
254
|
-
else {
|
|
255
|
-
dates = date;
|
|
256
|
-
}
|
|
257
|
-
if (this.datepicker) {
|
|
258
|
-
if (dates && dates.length > 0 && this.multiple) {
|
|
259
|
-
if (this.startViewInMinDate) {
|
|
260
|
-
dates = this.sortDatesDescending(dates);
|
|
261
|
-
}
|
|
262
|
-
else if (this.startViewInMaxDate) {
|
|
263
|
-
dates = this.sortDatesAscending(dates);
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
this.datepicker.setDate(dates);
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
convertDates(arrayDeDatas) {
|
|
270
|
-
const formatDate = (dateString) => {
|
|
271
|
-
const [day, month, year] = dateString.split('/');
|
|
272
|
-
return new Date(year, month - 1, day);
|
|
273
|
-
};
|
|
274
|
-
if (arrayDeDatas && Array.isArray(arrayDeDatas)) {
|
|
275
|
-
const datasOrdenadas = arrayDeDatas.map((data) => ({ original: data, convertida: formatDate(data) }));
|
|
276
|
-
return datasOrdenadas.map(item => item.convertida);
|
|
277
|
-
}
|
|
278
|
-
else {
|
|
279
|
-
return [arrayDeDatas];
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
sortDatesDescending(arrayDeDatas) {
|
|
283
|
-
const formatDate = (dateString) => {
|
|
284
|
-
const [day, month, year] = dateString.split('/');
|
|
285
|
-
return new Date(year, month - 1, day);
|
|
286
|
-
};
|
|
287
|
-
const datasOrdenadas = arrayDeDatas.map((data) => ({ original: data, convertida: formatDate(data) })).sort((a, b) => b.convertida - a.convertida);
|
|
288
|
-
const datasOrdenadasFormatadas = datasOrdenadas.map(item => item.original);
|
|
289
|
-
return datasOrdenadasFormatadas;
|
|
290
|
-
}
|
|
291
|
-
sortDatesAscending(arrayDeDatas) {
|
|
292
|
-
const formatDate = (dateString) => {
|
|
293
|
-
const [day, month, year] = dateString.split('/');
|
|
294
|
-
return new Date(year, month - 1, day);
|
|
295
|
-
};
|
|
296
|
-
const datasOrdenadas = arrayDeDatas.map((data) => ({ original: data, convertida: formatDate(data) })).sort((a, b) => a.convertida - b.convertida);
|
|
297
|
-
const datasOrdenadasFormatadas = datasOrdenadas.map(item => item.original);
|
|
298
|
-
return datasOrdenadasFormatadas;
|
|
299
|
-
}
|
|
300
|
-
toSelectedDate(detail) {
|
|
301
|
-
if (detail.datepicker.dates && (detail.datepicker.dates).length > 0) {
|
|
302
|
-
if (this.multiple) {
|
|
303
|
-
let dates = [];
|
|
304
|
-
for (let i = 0; i < (detail.datepicker.dates).length; i++) {
|
|
305
|
-
const timeStamp = detail.datepicker.dates[i];
|
|
306
|
-
(dates).push(this.format_date(timeStamp));
|
|
307
|
-
}
|
|
308
|
-
this.innerValue = dates;
|
|
309
|
-
this.onChange.emit(this.innerValue);
|
|
310
|
-
}
|
|
311
|
-
else {
|
|
312
|
-
const timeStamp = detail.datepicker.dates[0];
|
|
313
|
-
const date = this.format_date(timeStamp);
|
|
314
|
-
this.onChange.emit(date);
|
|
315
|
-
this.innerValue = date;
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
else {
|
|
319
|
-
this.clearDate();
|
|
320
|
-
this.innerValue = null;
|
|
321
|
-
this.onChange.emit(this.innerValue);
|
|
322
|
-
}
|
|
323
|
-
this.value = this.innerValue;
|
|
324
|
-
this.ngModelChange.emit(this.innerValue);
|
|
325
|
-
}
|
|
326
|
-
format_date(timeStamp) {
|
|
327
|
-
var date = new Date(timeStamp);
|
|
328
|
-
let dia = `${date.getDate()}`;
|
|
329
|
-
let mes = `${date.getMonth() + 1}`;
|
|
330
|
-
let ano = `${date.getFullYear()}`;
|
|
331
|
-
dia = (+(dia) < 10) ? `0${+dia}` : dia;
|
|
332
|
-
mes = (+(mes) < 10) ? `0${+mes}` : mes;
|
|
333
|
-
const dateFormat = `${dia}/${mes}/${ano}`;
|
|
334
|
-
return dateFormat;
|
|
335
|
-
}
|
|
336
|
-
toClickIn(id) {
|
|
337
|
-
const element = document.getElementById(id);
|
|
338
|
-
setTimeout(() => {
|
|
339
|
-
element?.datepicker?.show();
|
|
340
|
-
});
|
|
341
|
-
}
|
|
342
|
-
findDifferences(array1, array2) {
|
|
343
|
-
const conjuntoComum = new Set([...array1, ...array2]);
|
|
344
|
-
return Array.from(conjuntoComum).filter(item => !(array1.includes(item) && array2.includes(item)));
|
|
345
|
-
}
|
|
346
|
-
formatArrayDates(array_dates) {
|
|
347
|
-
let formateds = [];
|
|
348
|
-
if (array_dates && (array_dates).length > 0) {
|
|
349
|
-
const formatDateLocal = (date) => {
|
|
350
|
-
const year = date.getFullYear();
|
|
351
|
-
const month = String(date.getMonth() + 1).padStart(2, '0'); // Adiciona 1 porque os meses são indexados a partir de 0
|
|
352
|
-
const day = String(date.getDate()).padStart(2, '0');
|
|
353
|
-
return `${day}/${month}/${year}`;
|
|
354
|
-
};
|
|
355
|
-
for (let i = 0; i < (array_dates).length; i++) {
|
|
356
|
-
const dt = array_dates[i];
|
|
357
|
-
(formateds).push(formatDateLocal(dt));
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
return formateds;
|
|
361
|
-
}
|
|
362
|
-
//get accessor
|
|
363
|
-
get value() {
|
|
364
|
-
return this.innerValue;
|
|
365
|
-
}
|
|
366
|
-
;
|
|
367
|
-
//set accessor including call the onchange callback
|
|
368
|
-
set value(v) {
|
|
369
|
-
if (v !== this.innerValue) {
|
|
370
|
-
this.innerValue = v; // this.toSetMask(v);
|
|
371
|
-
this.onChangeCallback(v);
|
|
372
|
-
}
|
|
373
|
-
else {
|
|
374
|
-
// this.innerValue = '';
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
//Set touched on blur
|
|
378
|
-
onBlur() {
|
|
379
|
-
this.onTouchedCallback();
|
|
380
|
-
}
|
|
381
|
-
//From ControlValueAccessor interface
|
|
382
|
-
writeValue(value) {
|
|
383
|
-
if (value !== this.innerValue) {
|
|
384
|
-
this.innerValue = value;
|
|
385
|
-
this.toSetDefaultDate(value);
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
//From ControlValueAccessor interface
|
|
389
|
-
registerOnChange(fn) {
|
|
390
|
-
this.onChangeCallback = fn;
|
|
391
|
-
}
|
|
392
|
-
//From ControlValueAccessor interface
|
|
393
|
-
registerOnTouched(fn) {
|
|
394
|
-
this.onTouchedCallback = fn;
|
|
395
|
-
}
|
|
396
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TCloudUiDatepickerComponent, deps: [{ token: i1.DateBRPipe }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
397
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TCloudUiDatepickerComponent, selector: "tcloud-ui-datepicker", inputs: { multiple: "multiple", maxNumberOfDates: "maxNumberOfDates", daysOfWeekDisabled: "daysOfWeekDisabled", minDate: "minDate", maxDate: "maxDate", datesDisabled: "datesDisabled", modeInput: "modeInput", useBorder: "useBorder", childInputDateTime: "childInputDateTime", startViewInMinDate: "startViewInMinDate", startViewInMaxDate: "startViewInMaxDate", disabled: "disabled", ngModel: "ngModel", code: "code" }, outputs: { onChange: "onChange", ngModelChange: "ngModelChange", onCheckDate: "onCheckDate" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "input_datepicker", first: true, predicate: ["input_datepicker"], descendants: true }], ngImport: i0, template: "<!-- Input mode -->\n<ng-container *ngIf=\"modeInput\">\n\n <div class=\"tcloud-ui-datepicker input-tc-datepicker\" [class.no-border]=\"!useBorder\" [class.child-input-date-time]=\"childInputDateTime\" >\n <table class=\"table-box-input\">\n <tr>\n <td class=\"td-icon\">\n <div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div>\n </td>\n <td class=\"td-date\">\n <input #input_datepicker type=\"text\" name=\"{{ID}}\" id=\"{{ID}}\" class=\"form-control\" [title]=\"innerValue\" >\n </td>\n </tr>\n </table>\n </div>\n</ng-container>\n\n<!-- Inline mode -->\n<ng-container *ngIf=\"!modeInput\"> \n <div class=\"tcloud-ui-datepicker tcloud-ui-datepicker-second\" #input_datepicker id=\"{{ID}}\" pattern=\"/^\\d{2}\\/\\d{2}\\/\\d{4}$/\" [title]=\"innerValue\"></div>\n</ng-container>\n\n<!-- EX de uso \n <tc-datepicker \n [multiple]=\"false\"\n [daysOfWeekDisabled]=\"[0,6]\"\n [minDate]=\"'18/11/2021'\"\n [maxDate]=\"'18/12/2023'\"\n [datesDisabled]=\"['12/10/2022','25/12/2022']\"\n [modeInput]=\"false\"\n (onChange)=\"($event)\"\n (onCheckDate)=\"onCheckDate($event)\"\n [(ngModel)]=\"dateValue\" >\n </tc-datepicker>\n \n // multiple = false\n // dateValue - string - pode ser: 12/12/2022 \n\n // multiple = true\n // dateValue - string - pode ser: 11/12/2022,12/12/2022 ... \n\n <pre>data: {{ dateValue }}</pre>\n-->\n", styles: [".input_datepicker{width:100%;max-width:290px}.input-tc-datepicker{background-color:#fff;border:1px solid var(--tc-gray-300);border-radius:3px;height:40px}.input-tc-datepicker.no-border{border:none!important}.input-tc-datepicker .table-box-input{width:100%}.input-tc-datepicker .table-box-input .td-icon{width:14px}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon{text-align:center;cursor:pointer}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon i{position:relative;left:1px;opacity:.5}.input-tc-datepicker .table-box-input .td-date{min-width:30px;width:101px input;width-width:100%}.input-tc-datepicker .table-box-input input{border:none;margin-top:2px;font-size:13px!important}.child-input-date-time{height:28px!important}\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;-moz-user-select:none;-ms-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", ".tcloud-ui-datepicker .datepicker-cell.focused:not(.selected){background-color:inherit!important}.tcloud-ui-datepicker .datepicker-cell.highlighted:not(.selected){background-color:#f5f5f5!important}.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 }); }
|
|
398
|
-
}
|
|
399
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TCloudUiDatepickerComponent, decorators: [{
|
|
400
|
-
type: Component,
|
|
401
|
-
args: [{ selector: 'tcloud-ui-datepicker', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], encapsulation: ViewEncapsulation.None, template: "<!-- Input mode -->\n<ng-container *ngIf=\"modeInput\">\n\n <div class=\"tcloud-ui-datepicker input-tc-datepicker\" [class.no-border]=\"!useBorder\" [class.child-input-date-time]=\"childInputDateTime\" >\n <table class=\"table-box-input\">\n <tr>\n <td class=\"td-icon\">\n <div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div>\n </td>\n <td class=\"td-date\">\n <input #input_datepicker type=\"text\" name=\"{{ID}}\" id=\"{{ID}}\" class=\"form-control\" [title]=\"innerValue\" >\n </td>\n </tr>\n </table>\n </div>\n</ng-container>\n\n<!-- Inline mode -->\n<ng-container *ngIf=\"!modeInput\"> \n <div class=\"tcloud-ui-datepicker tcloud-ui-datepicker-second\" #input_datepicker id=\"{{ID}}\" pattern=\"/^\\d{2}\\/\\d{2}\\/\\d{4}$/\" [title]=\"innerValue\"></div>\n</ng-container>\n\n<!-- EX de uso \n <tc-datepicker \n [multiple]=\"false\"\n [daysOfWeekDisabled]=\"[0,6]\"\n [minDate]=\"'18/11/2021'\"\n [maxDate]=\"'18/12/2023'\"\n [datesDisabled]=\"['12/10/2022','25/12/2022']\"\n [modeInput]=\"false\"\n (onChange)=\"($event)\"\n (onCheckDate)=\"onCheckDate($event)\"\n [(ngModel)]=\"dateValue\" >\n </tc-datepicker>\n \n // multiple = false\n // dateValue - string - pode ser: 12/12/2022 \n\n // multiple = true\n // dateValue - string - pode ser: 11/12/2022,12/12/2022 ... \n\n <pre>data: {{ dateValue }}</pre>\n-->\n", styles: [".input_datepicker{width:100%;max-width:290px}.input-tc-datepicker{background-color:#fff;border:1px solid var(--tc-gray-300);border-radius:3px;height:40px}.input-tc-datepicker.no-border{border:none!important}.input-tc-datepicker .table-box-input{width:100%}.input-tc-datepicker .table-box-input .td-icon{width:14px}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon{text-align:center;cursor:pointer}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon i{position:relative;left:1px;opacity:.5}.input-tc-datepicker .table-box-input .td-date{min-width:30px;width:101px input;width-width:100%}.input-tc-datepicker .table-box-input input{border:none;margin-top:2px;font-size:13px!important}.child-input-date-time{height:28px!important}\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;-moz-user-select:none;-ms-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", ".tcloud-ui-datepicker .datepicker-cell.focused:not(.selected){background-color:inherit!important}.tcloud-ui-datepicker .datepicker-cell.highlighted:not(.selected){background-color:#f5f5f5!important}.datepicker-picker{border:1px solid #ccc;padding:10px 15px}\n"] }]
|
|
402
|
-
}], ctorParameters: () => [{ type: i1.DateBRPipe }], propDecorators: { multiple: [{
|
|
403
|
-
type: Input
|
|
404
|
-
}], maxNumberOfDates: [{
|
|
405
|
-
type: Input
|
|
406
|
-
}], daysOfWeekDisabled: [{
|
|
407
|
-
type: Input
|
|
408
|
-
}], minDate: [{
|
|
409
|
-
type: Input
|
|
410
|
-
}], maxDate: [{
|
|
411
|
-
type: Input
|
|
412
|
-
}], datesDisabled: [{
|
|
413
|
-
type: Input
|
|
414
|
-
}], modeInput: [{
|
|
415
|
-
type: Input
|
|
416
|
-
}], useBorder: [{
|
|
417
|
-
type: Input
|
|
418
|
-
}], childInputDateTime: [{
|
|
419
|
-
type: Input
|
|
420
|
-
}], startViewInMinDate: [{
|
|
421
|
-
type: Input
|
|
422
|
-
}], startViewInMaxDate: [{
|
|
423
|
-
type: Input
|
|
424
|
-
}], disabled: [{
|
|
425
|
-
type: Input
|
|
426
|
-
}], onChange: [{
|
|
427
|
-
type: Output
|
|
428
|
-
}], ngModel: [{
|
|
429
|
-
type: Input
|
|
430
|
-
}], ngModelChange: [{
|
|
431
|
-
type: Output
|
|
432
|
-
}], onCheckDate: [{
|
|
433
|
-
type: Output
|
|
434
|
-
}], input_datepicker: [{
|
|
435
|
-
type: ViewChild,
|
|
436
|
-
args: ['input_datepicker', { static: false }]
|
|
437
|
-
}], code: [{
|
|
438
|
-
type: Input
|
|
439
|
-
}] } });
|
|
440
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXIvdGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXIvdGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWMsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JJLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBTW5ELElBQUksV0FBVyxHQUFHO0lBQ2hCLElBQUksRUFBRTtRQUNKLElBQUksRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQztRQUM1RSxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUM7UUFDNUQsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1FBQ25ELE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFF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QkFPTSxPQUFPO3NCQUFuQixLQUFLO2dCQWFJLGFBQWE7c0JBQXRCLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTTtnQkFFeUMsZ0JBQWdCO3NCQUEvRCxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFFckMsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRlQlJQaXBlIH0gZnJvbSAnLi4vLi4vX3BpcGVzJztcblxuLy8gaHR0cHM6Ly9teW10aC5naXRodWIuaW8vdmFuaWxsYWpzLWRhdGVwaWNrZXIvIy9cbmRlY2xhcmUgdmFyIERhdGVwaWNrZXI6IGFueTtcblxudmFyIHRyYW5zbGF0aW9uID0ge1xuICBwdEJSOiB7XG4gICAgZGF5czogW1wiRG9taW5nb1wiLCBcIlNlZ3VuZGFcIiwgXCJUZXLDp2FcIiwgXCJRdWFydGFcIiwgXCJRdWludGFcIiwgXCJTZXh0YVwiLCBcIlPDoWJhZG9cIl0sXG4gICAgZGF5c1Nob3J0OiBbXCJEb21cIiwgXCJTZWdcIiwgXCJUZXJcIiwgXCJRdWFcIiwgXCJRdWlcIiwgXCJTZXhcIiwgXCJTw6FiXCJdLFxuICAgIGRheXNNaW46IFtcIkRvXCIsIFwiU2VcIiwgXCJUZVwiLCBcIlF1XCIsIFwiUXVcIiwgXCJTZVwiLCBcIlNhXCJdLFxuICAgIG1vbnRoczogW1wiSmFuZWlyb1wiLCBcIkZldmVyZWlyb1wiLCBcIk1hcsOnb1wiLCBcIkFicmlsXCIsIFwiTWFpb1wiLCBcIkp1bmhvXCIsIFwiSnVsaG9cIiwgXCJBZ29zdG9cIiwgXCJTZXRlbWJyb1wiLCBcIk91dHVicm9cIiwgXCJOb3ZlbWJyb1wiLCBcIkRlemVtYnJvXCJdLFxuICAgIG1vbnRoc1Nob3J0OiBbXCJKYW5cIiwgXCJGZXZcIiwgXCJNYXJcIiwgXCJBYnJcIiwgXCJNYWlcIiwgXCJKdW5cIiwgXCJKdWxcIiwgXCJBZ29cIiwgXCJTZXRcIiwgXCJPdXRcIiwgXCJOb3ZcIiwgXCJEZXpcIl0sXG4gICAgdG9kYXk6IFwiSG9qZVwiLFxuICAgIGNsZWFyOiBcIkxpbXBhclwiLFxuICAgIHRpdGxlRm9ybWF0OiBcIk1NIHlcIixcbiAgICBmb3JtYXQ6IFwiZGQvbW0veXl5eVwiLFxuICAgIHdlZWtTdGFydDogMFxuICB9XG59O1xuXG5jb25zdCBDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVENsb3VkVWlEYXRlcGlja2VyQ29tcG9uZW50KSxcbiAgbXVsdGk6IHRydWVcbn07XG5cbmNvbnN0IG5vb3AgPSAoKSA9PiB7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0Y2xvdWQtdWktZGF0ZXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90Y2xvdWQtdWktZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW1xuICAgICcuL3RjbG91ZC11aS1kYXRlcGlja2VyLmNvbXBvbmVudC5zY3NzJyxcbiAgICAnLi9kYXRlcGlja2VyL2Nzcy9kYXRlcGlja2VyLm1pbi5jc3MnLFxuICAgICcuL2RhdGVwaWNrZXIvY3NzL3N0eWxlLmNzcycsXG4gIF0sXG4gIHByb3ZpZGVyczogW0NVU1RPTV9JTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBUQ2xvdWRVaURhdGVwaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8vIG11bHRpcGxlIHBlcm1pdGUgc2VsZWNpb25hciBtdWx0aXBsYXMgZGF0YXNcbiAgQElucHV0KCkgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBtYXhOdW1iZXJPZkRhdGVzIC0gTWF4aW11bSBudW1iZXIgb2YgZGF0ZXMgdXNlcnMgY2FuIHNlbGVjdC4gTm8gbGltaXQgaXMgYXBwbGllZCBpZiAwIGlzIHNldC5cbiAgLy8gRGVwZW5kZSBkZTogbXVsdGlwbGUgY29tbyB0cnVlXG4gIEBJbnB1dCgpIG1heE51bWJlck9mRGF0ZXM6IG51bWJlciA9IDA7XG5cbiAgLy8gZGF5c09mV2Vla0Rpc2FibGVkIC0gRGlhcyBkYSBzZW1hbmEgZGVzYWJpbGlkYXRvcyA9IDAgcGFyYSBzYWJhZG8gYXTDqSA2IHBhcmEgZG9taW5nb1xuICBASW5wdXQoKSBkYXlzT2ZXZWVrRGlzYWJsZWQ6IG51bWJlcltdID0gW107XG5cbiAgLy8gbWluRGF0ZSAtIERhdGEgbWluaW1hIHBhcmEgZXhpYmljYW8gZG8gY2FsZW5kYXJpbyAtIGV4OiAwMS8wMS8yMDIwXG4gIEBJbnB1dCgpIG1pbkRhdGU6IHN0cmluZyA9ICcnO1xuXG4gIC8vIG1heERhdGUgLSBEYXRhIG1heGltYSBwYXJhIGV4aWJpY2FvIGRvIGNhbGVuZGFyaW8gLSBleDogMzEvMTIvMjAyMFxuICBASW5wdXQoKSBtYXhEYXRlOiBzdHJpbmcgPSAnJztcblxuICAvLyBkYXRlc0Rpc2FibGVkIC0gRGF0YXMgZGVzYWJpbGl0YWRhcyAtIEV4OiBbJzEyLzEwLzIwMjAnLCcyNS8xMi8yMDIwJ11cbiAgQElucHV0KCkgZGF0ZXNEaXNhYmxlZDogc3RyaW5nW10gPSBbXTtcblxuICAvLyBtb2RlSW5wdXQgLSBFeGliZSB1bSBpbnB1dCBwYXJhIHF1YW5kbyBjbGljYXIgYWJyaXIgbyBjYWxlbmRhcmlvXG4gIEBJbnB1dCgpIG1vZGVJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHVzZUJvcmRlcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgQElucHV0KCkgY2hpbGRJbnB1dERhdGVUaW1lOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc3RhcnRWaWV3SW5NaW5EYXRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc3RhcnRWaWV3SW5NYXhEYXRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBvbkNoYW5nZSAtIERpc3BhcmEgYSBkYXRhIHNlbGVjaW9uYWRhXG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55fHVuZGVmaW5lZD4oKTtcblxuICBkZWZhdWx0X2lubmVyVmFsdWU6IGFueSB8IHVuZGVmaW5lZDtcbiAgZGVmYXVsdF9pbm5lclZhbHVlX2NvbnZlcnRpZGE6IGFueSB8IHVuZGVmaW5lZDtcbiAgZGVmYXVsdF9xdGRfaW5uZXJWYWx1ZTogbnVtYmVyID0gMDtcbiAgZGF0ZV9jaGFuZ2VkOiBhbnkgfCB1bmRlZmluZWQ7XG5cbiAgQElucHV0KCkgc2V0IG5nTW9kZWwodjogYW55KXtcblxuICAgIGlmKCB2ICYmIHYgIT09IHRoaXMuaW5uZXJWYWx1ZSApe1xuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdjsgLy90aGlzLnRvU2V0TWFzayh2KTsgXG4gICAgICB0aGlzLmRlZmF1bHRfaW5uZXJWYWx1ZSA9IHY7XG4gICAgICB0aGlzLmRlZmF1bHRfaW5uZXJWYWx1ZV9jb252ZXJ0aWRhID0gdGhpcy5jb252ZXJ0RGF0ZXModik7XG4gICAgICBpZiggdGhpcy5tdWx0aXBsZSApe1xuICAgICAgICB0aGlzLmRlZmF1bHRfcXRkX2lubmVyVmFsdWUgPSAodikubGVuZ3RoO1xuICAgICAgfSAgICAgIFxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHYpO1xuICAgIH0gXG4gIH1cblxuICBAT3V0cHV0KCkgbmdNb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55fHVuZGVmaW5lZD4oKTtcblxuICBAT3V0cHV0KCkgb25DaGVja0RhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAVmlld0NoaWxkKCdpbnB1dF9kYXRlcGlja2VyJywge3N0YXRpYzogZmFsc2V9KSBpbnB1dF9kYXRlcGlja2VyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBkYXRlcGlja2VyOiBhbnkgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGNvZGU6IHN0cmluZyA9ICd0Y2xvdWQtdWktZGF0ZXBpY2tlcic7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfRGF0ZUJSUGlwZTogRGF0ZUJSUGlwZVxuICApIHsgfVxuXG4gIElEOiBzdHJpbmcgPSAnJztcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLklEID0gdGhpcy5nZW5lcmF0ZUlEKCk7XG4gICAgRGF0ZXBpY2tlci5sb2NhbGVzLnB0QlIgPSB0cmFuc2xhdGlvbi5wdEJSOyAgICBcbiAgICB0aGlzLnN0YXJ0X2RhdGVwaWNrZXIoKTtcbiAgfVxuXG4gIGdlbmVyYXRlSUQoKTogc3RyaW5ne1xuICAgIHJldHVybiBgdGNsb3VkLXVpLWRhdGVwaWNrZXItJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBEYXRlLm5vdygpKSl9YDtcbiAgfVxuXG4gIHRvU2V0TWFzayh2OiBzdHJpbmcpe1xuICAgIHJldHVybiB0aGlzLl9EYXRlQlJQaXBlLnRyYW5zZm9ybSh2KTtcbiAgfVxuXG4gIHBhcnNlRGF0ZUxvY2FsKGRhdGVTdHJpbmc6IGFueSwgX3NwbGl0Pzogc3RyaW5nKXtcbiAgICBpZiggIV9zcGxpdCApeyBfc3BsaXQgPSAnLSc7IH1cbiAgICBjb25zdCBbZGF5ICwgbW9udGgsIHllYXJdID0gZGF0ZVN0cmluZy5zcGxpdChfc3BsaXQpO1xuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSk7IC8vIFN1YnRyYWkgMSBwb3JxdWUgb3MgbWVzZXMgc8OjbyBpbmRleGFkb3MgYSBwYXJ0aXIgZGUgMFxuICB9XG5cbiAgZm9ybWF0RGF0ZUxvY2FsKGRhdGU6IGFueSl7XG4gICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICBjb25zdCBtb250aCA9IFN0cmluZyhkYXRlLmdldE1vbnRoKCkgKyAxKS5wYWRTdGFydCgyLCAnMCcpOyAvLyBBZGljaW9uYSAxIHBvcnF1ZSBvcyBtZXNlcyBzw6NvIGluZGV4YWRvcyBhIHBhcnRpciBkZSAwXG4gICAgY29uc3QgZGF5ID0gU3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpO1xuICAgIHJldHVybiBgJHtkYXl9LyR7bW9udGh9LyR7IHllYXJ9YDtcbiAgfVxuXG4gIGdldF9vcHRpb25zKCl7XG4gICAgLy8gRnVuw6fDo28gcGFyYSBmb3JtYXRhciB1bWEgZGF0YSBubyBmdXNvIGhvcsOhcmlvIGxvY2FsXG4gICAgY29uc3QgZm9ybWF0RGF0ZUxvY2FsID0gKGRhdGU6IGFueSkgPT4ge1xuICAgICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICAgIGNvbnN0IG1vbnRoID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyk7XG4gICAgICBjb25zdCBkYXkgPSBTdHJpbmcoZGF0ZS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJyk7XG4gICAgICByZXR1cm4gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9YDtcbiAgICB9XG5cbiAgICAvLyBGdW7Dp8OjbyBwYXJhIGFuYWxpc2FyIHVtYSBkYXRhIG5vIGZ1c28gaG9yw6FyaW8gbG9jYWxcbiAgICBjb25zdCBwYXJzZURhdGVMb2NhbCA9IChkYXRlU3RyaW5nOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IFt5ZWFyLCBtb250aCwgZGF5XSA9IGRhdGVTdHJpbmcuc3BsaXQoJy0nKTtcbiAgICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSk7XG4gICAgfVxuXG4gICAgbGV0IG9wdGlvbnMgPSB7XG4gICAgICBuZXh0QXJyb3c6IGA8aSBjbGFzcz1cImZhcyBmYS1jYXJldC1yaWdodFwiPjwvaT5gLFxuICAgICAgcHJldkFycm93OiBgPGkgY2xhc3M9XCJmYXMgZmEtY2FyZXQtbGVmdFwiPjwvaT5gLFxuICAgICAgZm9ybWF0OiAnZGQvbW0veXl5eScsICAgICAgXG4gICAgICBkYXlzT2ZXZWVrSGlnaGxpZ2h0ZWQ6IFswLDZdLFxuICAgICAgbGFuZ3VhZ2U6ICdwdEJSJyxcbiAgICAgIGZvcm1hdHRlcjoge1xuICAgICAgICBkYXRlOiBmb3JtYXREYXRlTG9jYWwsXG4gICAgICB9LFxuICAgICAgcGFyc2VyOiB7XG4gICAgICAgIGRhdGU6IHBhcnNlRGF0ZUxvY2FsLFxuICAgICAgfSAgICAgXG4gICAgfSBhcyBhbnk7XG5cbiAgICBpZiggKHRoaXMuZGF5c09mV2Vla0Rpc2FibGVkKS5sZW5ndGggPiAwICl7XG4gICAgICBvcHRpb25zWydkYXlzT2ZXZWVrRGlzYWJsZWQnXSA9IHRoaXMuZGF5c09mV2Vla0Rpc2FibGVkO1xuICAgIH1cblxuICAgIGlmKCAodGhpcy5kYXRlc0Rpc2FibGVkKS5sZW5ndGggPiAwICl7XG4gICAgICBvcHRpb25zWydkYXRlc0Rpc2FibGVkJ10gPSB0aGlzLmRhdGVzRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgaWYoIHRoaXMubWluRGF0ZSAhPT0gJycgKXtcbiAgICAgIG9wdGlvbnNbJ21pbkRhdGUnXSA9IHRoaXMubWluRGF0ZTtcbiAgICB9XG5cbiAgICBpZiggdGhpcy5tYXhEYXRlICE9PSAnJyApe1xuICAgICAgb3B0aW9uc1snbWF4RGF0ZSddID0gdGhpcy5tYXhEYXRlO1xuICAgIH1cblxuICAgIGlmKCB0aGlzLm11bHRpcGxlICl7ICBcbiAgICAgIG9wdGlvbnNbJ211bHRpcGxlJ10gPSB0cnVlOyAgXG4gICAgICBvcHRpb25zWydhdXRvaGlkZSddID0gZmFsc2U7IFxuICAgICAgb3B0aW9uc1snbWF4TnVtYmVyT2ZEYXRlcyddID0gdGhpcy5tYXhOdW1iZXJPZkRhdGVzO1xuICAgIH1cbiAgICBcbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxuXG4gIGNsZWFyRGF0ZSgpe1xuICAgIGlmKCB0aGlzLmRhdGVwaWNrZXIgKXsgdGhpcy5kYXRlcGlja2VyLnNldERhdGUoe2NsZWFyOiB0cnVlfSk7IH1cbiAgfVxuXG4gIHN0YXJ0X2RhdGVwaWNrZXIoKXtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHsgICAgIFxuICAgICAgY29uc3QgaW5wdXRfZGF0ZXBpY2tlciA9IDxhbnk+IHRoaXMuaW5wdXRfZGF0ZXBpY2tlcj8ubmF0aXZlRWxlbWVudDtcbiAgICAgIGlmKCBpbnB1dF9kYXRlcGlja2VyICl7XG4gICAgICAgIGlucHV0X2RhdGVwaWNrZXIuc2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicsJ0REL01NL1lZWVknKTtcblxuICAgICAgICBpZiggIXRoaXMudXNlQm9yZGVyICl7XG4gICAgICAgICAgaW5wdXRfZGF0ZXBpY2tlci5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywnYm9yZGVyOm5vbmU7IHRleHQtYWxpZ246IGNlbnRlcjsgbWF4LXdpZHRoOiAxMDVweDsgcGFkZGluZzogMDsnKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyID0gbmV3IERhdGVwaWNrZXIoIGlucHV0X2RhdGVwaWNrZXIsIHRoaXMuZ2V0X29wdGlvbnMoKSApOyAgICAgICAgXG4gICAgICAgIGlmKCB0aGlzLmlubmVyVmFsdWUgJiYgdGhpcy5pbm5lclZhbHVlICE9PSAnJyApe1xuICAgICAgICAgIHRoaXMudG9TZXREZWZhdWx0RGF0ZSh0aGlzLmlubmVyVmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXRfZGF0ZXBpY2tlci5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgdiA9IChpbnB1dF9kYXRlcGlja2VyWyd2YWx1ZSddKSA/IGlucHV0X2RhdGVwaWNrZXJbJ3ZhbHVlJ10gOiAnJztcbiAgICAgICAgICBpbnB1dF9kYXRlcGlja2VyWyd2YWx1ZSddID0gdGhpcy50b1NldE1hc2sodik7XG4gICAgICAgICAgaWYoIChpbnB1dF9kYXRlcGlja2VyWyd2YWx1ZSddKS5sZW5ndGggPj0gMTAgKXtcbiAgICAgICAgICAgIGNvbnN0IHYgPSAoaW5wdXRfZGF0ZXBpY2tlclsndmFsdWUnXSkuc3Vic3RyaW5nKDAsIDEwKTtcbiAgICAgICAgICAgIGNvbnN0IHBhcnRfZGF0ZSA9ICh2KS5zcGxpdCgnLycpO1xuICAgICAgICAgICAgaWYoIChwYXJ0X2RhdGUpLmxlbmd0aCA9PT0gMyApe1xuXG4gICAgICAgICAgICAgIGxldCBkaWEgPSBwYXJ0X2RhdGVbMF07XG4gICAgICAgICAgICAgIGxldCBtZXMgPSBwYXJ0X2RhdGVbMV07XG4gICAgICAgICAgICAgIGxldCBhbm8gPSBwYXJ0X2RhdGVbMl07XG5cbiAgICAgICAgICAgICAgbWVzID0gKCsobWVzKSA8IDEwICkgPyBgMCR7K21lc31gIDogbWVzOyAgXG4gICAgICAgICAgICAgIGRpYSA9ICgrKGRpYSkgPCAxMCApID8gYDAkeytkaWF9YCA6IGRpYTtcblxuICAgICAgICAgICAgICBjb25zdCBkdCA9IG5ldyBEYXRlKGFubysnLScrbWVzKyctJytkaWEpO1xuICAgICAgICAgICAgICBpZiggZHQgKXtcbiAgICAgICAgICAgICAgICBpbnB1dF9kYXRlcGlja2VyPy5jaGFuZ2VEYXRlO1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuSUQpPy5ibHVyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5uZ01vZGVsQ2hhbmdlLmVtaXQodGhpcy5pbm5lclZhbHVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLm5nTW9kZWxDaGFuZ2UuZW1pdCh0aGlzLmlubmVyVmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcblxuICAgICAgIFxuICAgICAgICBpbnB1dF9kYXRlcGlja2VyLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZURhdGUnLCAoZXZlbnQ6IGFueSkgPT4ge1xuXG4gICAgICAgICAgaWYoIGV2ZW50Py5kZXRhaWw/LmRhdGUgKXtcblxuICAgICAgICAgICAgbGV0IHF0ZCA9IChldmVudC5kZXRhaWwuZGF0ZSkubGVuZ3RoOyAgXG5cbiAgICAgICAgICAgIGlmKCB0aGlzLmRpc2FibGVkICl7XG5cbiAgICAgICAgICAgICAgaWYoICF0aGlzLm11bHRpcGxlICl7XG4gICAgICAgICAgICAgICAgbGV0IGR0ID0gdGhpcy5mb3JtYXREYXRlTG9jYWwoZXZlbnQuZGV0YWlsPy5kYXRlKTtcbiAgICAgICAgICAgICAgICBpZiggdGhpcy5kZWZhdWx0X2lubmVyVmFsdWUgJiYgdGhpcy5kZWZhdWx0X2lubmVyVmFsdWVbMF0gJiYgKCBgJHt0aGlzLmRlZmF1bHRfaW5uZXJWYWx1ZVswXX1gICE9PSBgJHtkdH1gICkgKXtcbiAgICAgICAgICAgICAgICAgIHF0ZCA9IDFcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgdGhpcy5kYXRlcGlja2VyLnNldERhdGUoIHRoaXMuZGVmYXVsdF9pbm5lclZhbHVlX2NvbnZlcnRpZGEsIHtjbGVhcjogdHJ1ZSwgcmVuZGVyOiB0cnVlfSk7XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICBpZiggcXRkID4gdGhpcy5kZWZhdWx0X3F0ZF9pbm5lclZhbHVlICl7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlX2NoYW5nZWQgPSBldmVudD8uZGV0YWlsLnZpZXdEYXRlO1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlci5zZXRGb2N1c2VkRGF0ZSggdGhpcy5kYXRlX2NoYW5nZWQsIHtyZXNldFZpZXc6IGZhbHNlfSApO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoZWNrRGF0ZS5lbWl0KHtcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLmZvcm1hdERhdGVMb2NhbCh0aGlzLmRhdGVfY2hhbmdlZCksIFxuICAgICAgICAgICAgICAgICAgZGF0ZTogdGhpcy5kYXRlX2NoYW5nZWQsIFxuICAgICAgICAgICAgICAgICAgY2hlY2tlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1lbHNle1xuXG4gICAgICAgICAgICAgICAgaWYoIHRoaXMubXVsdGlwbGUgKXtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHNvID0gdGhpcy5maW5kRGlmZmVyZW5jZXMoIHRoaXMuZGVmYXVsdF9pbm5lclZhbHVlLCB0aGlzLmZvcm1hdEFycmF5RGF0ZXMoZXZlbnQuZGV0YWlsLmRhdGUpICk7XG4gICAgICAgICAgICAgICAgICBpZiggc28gJiYgKHNvKS5sZW5ndGggPiAwICl7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlX2NoYW5nZWQgPSB0aGlzLnBhcnNlRGF0ZUxvY2FsKHNvWzBdLCAnLycpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uQ2hlY2tEYXRlLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIDpzb1swXSwgXG4gICAgICAgICAgICAgICAgICAgICAgZGF0ZTogdGhpcy5kYXRlX2NoYW5nZWQsXG4gICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWRcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlcGlja2VyLnNldEZvY3VzZWREYXRlKCB0aGlzLmRhdGVfY2hhbmdlZCwge3Jlc2V0VmlldzogZmFsc2V9ICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1lbHNle1xuXG5cbiAgICAgICAgICAgICAgdGhpcy50b1NlbGVjdGVkRGF0ZSggZXZlbnQuZGV0YWlsICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSAnJztcbiAgICAgICAgICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfSAgICAgIFxuICAgIH0pO1xuICB9XG5cblxuICB0b1NldERlZmF1bHREYXRlKGRhdGU6IHN0cmluZyB8IHN0cmluZ1tdKXtcbiAgICBcbiAgICBpZiggZGF0ZSA9PT0gdW5kZWZpbmVkIHx8IGRhdGUgPT09IG51bGwgfHwgZGF0ZSA9PT0gJycgKXtcbiAgICAgIHRoaXMuY2xlYXJEYXRlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGRhdGVzID0gW10gYXMgc3RyaW5nW107XG5cbiAgICBpZiggZGF0ZSAmJiB0eXBlb2YgZGF0ZSA9PT0gJ3N0cmluZycgKXtcbiAgICAgIGlmKCAoZGF0ZSkuaW5jbHVkZXMoJywnKSApe1xuICAgICAgICBjb25zdCBkYXRlcyA9IChkYXRlKS5zcGxpdCgnLCcpO1xuICAgICAgICBkYXRlID0gZGF0ZXM7XG4gICAgICAgIGlmKCAhdGhpcy5tdWx0aXBsZSApe1xuICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IGRhdGUgPSBkYXRlc1swXTtcbiAgICAgICAgICB0aGlzLm5nTW9kZWxDaGFuZ2UuZW1pdCh0aGlzLmlubmVyVmFsdWUpOyBcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBpZiggZGF0ZSAmJiB0eXBlb2YgZGF0ZSA9PT0gJ3N0cmluZycgKXtcbiAgICAgIChkYXRlcykucHVzaCggZGF0ZSApOyBcbiAgICB9ZWxzZXtcbiAgICAgIGRhdGVzID0gPEFycmF5PHN0cmluZz4+IGRhdGU7XG4gICAgfVxuICAgIGlmKCB0aGlzLmRhdGVwaWNrZXIgKXtcblxuICAgICAgaWYoIGRhdGVzICYmIGRhdGVzLmxlbmd0aCA+IDAgJiYgdGhpcy5tdWx0aXBsZSApe1xuICAgICAgICBpZiggdGhpcy5zdGFydFZpZXdJbk1pbkRhdGUgKXsgICAgICAgICAgXG4gICAgICAgICAgZGF0ZXMgPSB0aGlzLnNvcnREYXRlc0Rlc2NlbmRpbmcoZGF0ZXMpOyAgICAgICAgICBcbiAgICAgICAgfWVsc2UgaWYodGhpcy5zdGFydFZpZXdJbk1heERhdGUpe1xuICAgICAgICAgIGRhdGVzID0gdGhpcy5zb3J0RGF0ZXNBc2NlbmRpbmcoZGF0ZXMpOyBcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5kYXRlcGlja2VyLnNldERhdGUoZGF0ZXMpOyAgICAgIFxuICAgIH0gXG4gIH1cblxuICBjb252ZXJ0RGF0ZXMoYXJyYXlEZURhdGFzOiBhbnlbXSkge1xuICAgIGNvbnN0IGZvcm1hdERhdGUgPSAoZGF0ZVN0cmluZzogYW55KSA9PiB7XG4gICAgICBjb25zdCBbZGF5LCBtb250aCwgeWVhcl0gPSBkYXRlU3RyaW5nLnNwbGl0KCcvJyk7XG4gICAgICByZXR1cm4gbmV3IERhdGUoeWVhciwgbW9udGggLSAxLCBkYXkpOyBcbiAgICB9XG4gICAgaWYoIGFycmF5RGVEYXRhcyAmJiBBcnJheS5pc0FycmF5KGFycmF5RGVEYXRhcykgKXtcbiAgICAgIGNvbnN0IGRhdGFzT3JkZW5hZGFzID0gYXJyYXlEZURhdGFzLm1hcCgoZGF0YTogYW55KSA9PiAoeyBvcmlnaW5hbDogZGF0YSwgY29udmVydGlkYTogZm9ybWF0RGF0ZShkYXRhKSB9KSk7XG4gICAgICByZXR1cm4gZGF0YXNPcmRlbmFkYXMubWFwKGl0ZW0gPT4gaXRlbS5jb252ZXJ0aWRhKTsgXG4gICAgfWVsc2V7XG4gICAgICByZXR1cm4gW2FycmF5RGVEYXRhc107XG4gICAgfVxuICB9XG5cbiAgc29ydERhdGVzRGVzY2VuZGluZyhhcnJheURlRGF0YXM6IGFueVtdKSB7XG4gICAgY29uc3QgZm9ybWF0RGF0ZSA9IChkYXRlU3RyaW5nOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IFtkYXksIG1vbnRoLCB5ZWFyXSA9IGRhdGVTdHJpbmcuc3BsaXQoJy8nKTtcbiAgICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSk7IFxuICAgIH1cbiAgICBjb25zdCBkYXRhc09yZGVuYWRhcyA9IGFycmF5RGVEYXRhcy5tYXAoKGRhdGE6IGFueSkgPT4gKHsgb3JpZ2luYWw6IGRhdGEsIGNvbnZlcnRpZGE6IGZvcm1hdERhdGUoZGF0YSkgfSkpLnNvcnQoKGE6YW55LCBiOiBhbnkpID0+IGIuY29udmVydGlkYSAtIGEuY29udmVydGlkYSk7XG4gICAgY29uc3QgZGF0YXNPcmRlbmFkYXNGb3JtYXRhZGFzID0gZGF0YXNPcmRlbmFkYXMubWFwKGl0ZW0gPT4gaXRlbS5vcmlnaW5hbCk7IFxuICAgIHJldHVybiBkYXRhc09yZGVuYWRhc0Zvcm1hdGFkYXM7XG4gIH1cbiAgXG4gIHNvcnREYXRlc0FzY2VuZGluZyhhcnJheURlRGF0YXM6IGFueVtdKSB7XG4gICAgY29uc3QgZm9ybWF0RGF0ZSA9IChkYXRlU3RyaW5nOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IFtkYXksIG1vbnRoLCB5ZWFyXSA9IGRhdGVTdHJpbmcuc3BsaXQoJy8nKTtcbiAgICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSk7IFxuICAgIH1cbiAgICBjb25zdCBkYXRhc09yZGVuYWRhcyA9IGFycmF5RGVEYXRhcy5tYXAoKGRhdGE6IGFueSkgPT4gKHsgb3JpZ2luYWw6IGRhdGEsIGNvbnZlcnRpZGE6IGZvcm1hdERhdGUoZGF0YSkgfSkpLnNvcnQoKGE6YW55LCBiOiBhbnkpID0+IGEuY29udmVydGlkYSAtIGIuY29udmVydGlkYSk7XG4gICAgY29uc3QgZGF0YXNPcmRlbmFkYXNGb3JtYXRhZGFzID0gZGF0YXNPcmRlbmFkYXMubWFwKGl0ZW0gPT4gaXRlbS5vcmlnaW5hbCk7XG4gICAgcmV0dXJuIGRhdGFzT3JkZW5hZGFzRm9ybWF0YWRhcztcbiAgfVxuXG4gIHRvU2VsZWN0ZWREYXRlKGRldGFpbDogYW55KXsgICAgXG4gICAgaWYoIGRldGFpbC5kYXRlcGlja2VyLmRhdGVzICYmIChkZXRhaWwuZGF0ZXBpY2tlci5kYXRlcykubGVuZ3RoID4gMCApe1xuICAgICAgaWYoIHRoaXMubXVsdGlwbGUgKXtcbiAgICAgICAgbGV0IGRhdGVzID0gW107XG4gICAgICAgIGZvciggbGV0IGkgPSAwOyBpIDwgKGRldGFpbC5kYXRlcGlja2VyLmRhdGVzKS5sZW5ndGg7IGkrKyApe1xuICAgICAgICAgIGNvbnN0IHRpbWVTdGFtcCA9IDxudW1iZXI+IGRldGFpbC5kYXRlcGlja2VyLmRhdGVzW2ldO1xuICAgICAgICAgIChkYXRlcykucHVzaCggdGhpcy5mb3JtYXRfZGF0ZSggdGltZVN0YW1wICkgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSBkYXRlcztcbiAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7ICAgICAgICBcbiAgICAgIH1lbHNle1xuICAgICAgICBjb25zdCB0aW1lU3RhbXAgPSA8bnVtYmVyPiBkZXRhaWwuZGF0ZXBpY2tlci5kYXRlc1swXTtcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuZm9ybWF0X2RhdGUoIHRpbWVTdGFtcCApO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoZGF0ZSk7XG4gICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IGRhdGU7XG4gICAgICB9ICAgICAgXG4gICAgfWVsc2V7XG4gICAgICB0aGlzLmNsZWFyRGF0ZSgpO1xuICAgICAgdGhpcy5pbm5lclZhbHVlID0gbnVsbDtcbiAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh0aGlzLmlubmVyVmFsdWUpO1xuICAgIH0gXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuaW5uZXJWYWx1ZTtcbiAgICB0aGlzLm5nTW9kZWxDaGFuZ2UuZW1pdCh0aGlzLmlubmVyVmFsdWUpOyBcbiAgfVxuXG4gIGZvcm1hdF9kYXRlKHRpbWVTdGFtcDogbnVtYmVyKXtcbiAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKHRpbWVTdGFtcCk7XG5cbiAgICBsZXQgZGlhID0gYCR7ZGF0ZS5nZXREYXRlKCl9YDtcbiAgICBsZXQgbWVzID0gYCR7ZGF0ZS5nZXRNb250aCgpKzF9YDtcbiAgICBsZXQgYW5vID0gYCR7ZGF0ZS5nZXRGdWxsWWVhcigpfWA7XG5cbiAgICBkaWEgPSAoKyhkaWEpIDwgMTAgKSA/IGAwJHsrZGlhfWAgOiBkaWE7XG4gICAgbWVzID0gKCsobWVzKSA8IDEwICkgPyBgMCR7K21lc31gIDogbWVzOyBcblxuICAgIGNvbnN0IGRhdGVGb3JtYXQgPSBgJHtkaWF9LyR7bWVzfS8ke2Fub31gO1xuICAgIHJldHVybiBkYXRlRm9ybWF0O1xuICB9XG5cbiAgdG9DbGlja0luKGlkOiBzdHJpbmcpe1xuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkgYXMgYW55O1xuICAgIHNldFRpbWVvdXQoKCkgPT4geyAgICAgIFxuICAgICAgZWxlbWVudD8uZGF0ZXBpY2tlcj8uc2hvdygpO1xuICAgIH0pO1xuICB9XG5cblxuXG4gIGZpbmREaWZmZXJlbmNlcyhhcnJheTE6IGFueSwgYXJyYXkyOiBhbnkpIHtcbiAgICBjb25zdCBjb25qdW50b0NvbXVtID0gbmV3IFNldChbLi4uYXJyYXkxLCAuLi5hcnJheTJdKTtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShjb25qdW50b0NvbXVtKS5maWx0ZXIoaXRlbSA9PiAhKGFycmF5MS5pbmNsdWRlcyhpdGVtKSAmJiBhcnJheTIuaW5jbHVkZXMoaXRlbSkpKTtcbiAgfVxuXG5cblxuICBmb3JtYXRBcnJheURhdGVzKGFycmF5X2RhdGVzOiBhbnkpe1xuICAgIGxldCBmb3JtYXRlZHMgPSBbXTtcbiAgICBpZiggYXJyYXlfZGF0ZXMgJiYgKGFycmF5X2RhdGVzKS5sZW5ndGggPiAwICl7XG4gICAgICBjb25zdCBmb3JtYXREYXRlTG9jYWwgPSAoZGF0ZTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgICAgIGNvbnN0IG1vbnRoID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyk7IC8vIEFkaWNpb25hIDEgcG9ycXVlIG9zIG1lc2VzIHPDo28gaW5kZXhhZG9zIGEgcGFydGlyIGRlIDBcbiAgICAgICAgY29uc3QgZGF5ID0gU3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpO1xuICAgICAgICByZXR1cm4gYCR7ZGF5fS8ke21vbnRofS8ke3llYXJ9YDtcbiAgICAgIH1cbiAgICAgIGZvciggbGV0IGkgPSAwOyBpIDwgKGFycmF5X2RhdGVzKS5sZW5ndGg7IGkrKyApe1xuICAgICAgICBjb25zdCBkdCA9IGFycmF5X2RhdGVzW2ldO1xuICAgICAgICAoZm9ybWF0ZWRzKS5wdXNoKCBmb3JtYXREYXRlTG9jYWwoZHQpIClcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZvcm1hdGVkcztcbiAgfVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4gIGlubmVyVmFsdWU6IGFueSB8IHVuZGVmaW5lZDtcbiAgLy9QbGFjZWhvbGRlcnMgZm9yIHRoZSBjYWxsYmFja3Mgd2hpY2ggYXJlIGxhdGVyIHByb3ZpZGVzZFxuICAvL2J5IHRoZSBDb250cm9sIFZhbHVlIEFjY2Vzc29yXG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xuICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSBub29wO1xuXG4gIC8vZ2V0IGFjY2Vzc29yXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgICAgcmV0dXJuIHRoaXMuaW5uZXJWYWx1ZTtcbiAgfTtcblxuICAvL3NldCBhY2Nlc3NvciBpbmNsdWRpbmcgY2FsbCB0aGUgb25jaGFuZ2UgY2FsbGJhY2tcbiAgc2V0IHZhbHVlKHY6IGFueSkge1xuXG4gICAgaWYgKHYgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdjsgLy8gdGhpcy50b1NldE1hc2sodik7ICAgICAgXG4gICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodik7XG4gICAgfWVsc2V7XG4gICAgIC8vIHRoaXMuaW5uZXJWYWx1ZSA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIC8vU2V0IHRvdWNoZWQgb24gYmx1clxuICBvbkJsdXIoKSB7XG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xuICB9XG5cbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLnRvU2V0RGVmYXVsdERhdGUodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XG4gIH1cblxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XG4gIH1cblxufVxuIiwiPCEtLSBJbnB1dCBtb2RlIC0tPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGVJbnB1dFwiPlxuXG4gIDxkaXYgY2xhc3M9XCJ0Y2xvdWQtdWktZGF0ZXBpY2tlciBpbnB1dC10Yy1kYXRlcGlja2VyXCIgW2NsYXNzLm5vLWJvcmRlcl09XCIhdXNlQm9yZGVyXCIgW2NsYXNzLmNoaWxkLWlucHV0LWRhdGUtdGltZV09XCJjaGlsZElucHV0RGF0ZVRpbWVcIiA+XG4gICAgPHRhYmxlIGNsYXNzPVwidGFibGUtYm94LWlucHV0XCI+XG4gICAgICA8dHI+XG4gICAgICAgIDx0ZCBjbGFzcz1cInRkLWljb25cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVsaW1pdGVyLXRpbWUtaWNvblwiIChjbGljayk9XCJ0b0NsaWNrSW4oSUQpXCIgPjxpIGNsYXNzPVwiZmFzIGZhLWNhbGVuZGFyLWFsdFwiPjwvaT48L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGNsYXNzPVwidGQtZGF0ZVwiPlxuICAgICAgICAgIDxpbnB1dCAjaW5wdXRfZGF0ZXBpY2tlciB0eXBlPVwidGV4dFwiIG5hbWU9XCJ7e0lEfX1cIiBpZD1cInt7SUR9fVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW3RpdGxlXT1cImlubmVyVmFsdWVcIiA+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgIDwvdGFibGU+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjwhLS0gSW5saW5lIG1vZGUgLS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwiIW1vZGVJbnB1dFwiPiAgXG4gIDxkaXYgY2xhc3M9XCJ0Y2xvdWQtdWktZGF0ZXBpY2tlciB0Y2xvdWQtdWktZGF0ZXBpY2tlci1zZWNvbmRcIiAjaW5wdXRfZGF0ZXBpY2tlciBpZD1cInt7SUR9fVwiIHBhdHRlcm49XCIvXlxcZHsyfVxcL1xcZHsyfVxcL1xcZHs0fSQvXCIgW3RpdGxlXT1cImlubmVyVmFsdWVcIj48L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48IS0tIEVYIGRlIHVzbyBcbiAgPHRjLWRhdGVwaWNrZXIgXG4gICAgW211bHRpcGxlXT1cImZhbHNlXCJcbiAgICBbZGF5c09mV2Vla0Rpc2FibGVkXT1cIlswLDZdXCJcbiAgICBbbWluRGF0ZV09XCInMTgvMTEvMjAyMSdcIlxuICAgIFttYXhEYXRlXT1cIicxOC8xMi8yMDIzJ1wiXG4gICAgW2RhdGVzRGlzYWJsZWRdPVwiWycxMi8xMC8yMDIyJywnMjUvMTIvMjAyMiddXCJcbiAgICBbbW9kZUlucHV0XT1cImZhbHNlXCJcbiAgICAob25DaGFuZ2UpPVwiKCRldmVudClcIlxuICAgIChvbkNoZWNrRGF0ZSk9XCJvbkNoZWNrRGF0ZSgkZXZlbnQpXCJcbiAgICBbKG5nTW9kZWwpXT1cImRhdGVWYWx1ZVwiID5cbiAgPC90Yy1kYXRlcGlja2VyPlxuICBcbiAgLy8gbXVsdGlwbGUgPSBmYWxzZVxuICAvLyBkYXRlVmFsdWUgLSBzdHJpbmcgLSBwb2RlIHNlcjogMTIvMTIvMjAyMiBcblxuICAvLyBtdWx0aXBsZSA9IHRydWVcbiAgLy8gZGF0ZVZhbHVlIC0gc3RyaW5nIC0gcG9kZSBzZXI6IDExLzEyLzIwMjIsMTIvMTIvMjAyMiAuLi4gXG5cbiAgPHByZT5kYXRhOiB7eyBkYXRlVmFsdWUgfX08L3ByZT5cbi0tPlxuIl19
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
-
import { TCloudUiDatepickerComponent } from './tcloud-ui-datepicker.component';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class TCloudUiDatepickerModule {
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TCloudUiDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TCloudUiDatepickerModule, declarations: [TCloudUiDatepickerComponent], imports: [CommonModule,
|
|
9
|
-
FormsModule,
|
|
10
|
-
ReactiveFormsModule], exports: [TCloudUiDatepickerComponent] }); }
|
|
11
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TCloudUiDatepickerModule, imports: [CommonModule,
|
|
12
|
-
FormsModule,
|
|
13
|
-
ReactiveFormsModule] }); }
|
|
14
|
-
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", 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
|
-
schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA]
|
|
30
|
-
}]
|
|
31
|
-
}] });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGVwaWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXIvdGNsb3VkLXVpLWRhdGVwaWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFrQi9FLE1BQU0sT0FBTyx3QkFBd0I7K0dBQXhCLHdCQUF3QjtnSEFBeEIsd0JBQXdCLGlCQVpqQywyQkFBMkIsYUFNM0IsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUIsYUFMbkIsMkJBQTJCO2dIQVNsQix3QkFBd0IsWUFOakMsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7OzRGQUlWLHdCQUF3QjtrQkFkcEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFLENBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLENBQUM7aUJBQ3JEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRDbG91ZFVpRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vdGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50JztcblxuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFRDbG91ZFVpRGF0ZXBpY2tlckNvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgVENsb3VkVWlEYXRlcGlja2VyQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZVxuICBdLFxuICBzY2hlbWFzOiBbIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE5PX0VSUk9SU19TQ0hFTUFdXG59KVxuZXhwb3J0IGNsYXNzIFRDbG91ZFVpRGF0ZXBpY2tlck1vZHVsZSB7IH1cbiJdfQ==
|