@sapphire-ion/framework 1.2.22 → 1.2.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/default/default-table/th-filter/th-filter.component.mjs +12 -5
- package/esm2022/lib/components/default/default.module.mjs +6 -3
- package/esm2022/lib/components/inputs/input-date/input-date.component.mjs +116 -44
- package/esm2022/lib/components/inputs/inputs.module.mjs +22 -5
- package/esm2022/lib/services/utils.service.mjs +21 -1
- package/fesm2022/sapphire-ion-framework.mjs +166 -49
- package/fesm2022/sapphire-ion-framework.mjs.map +1 -1
- package/lib/components/default/default-table/th-filter/th-filter.component.d.ts +4 -1
- package/lib/components/default/default.module.d.ts +2 -1
- package/lib/components/inputs/input-date/input-date.component.d.ts +39 -7
- package/lib/components/inputs/inputs.module.d.ts +3 -1
- package/lib/components/stepper/step/step.component.d.ts +1 -1
- package/lib/services/utils.service.d.ts +7 -0
- package/package.json +2 -2
- package/themes/compiled-styles.scss +0 -4
- package/themes/components/inputs/input-date/input-date.component.scss +3 -32
- package/themes/styles/core.styles.scss +45 -9
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ElementRef, forwardRef, input, ViewChild } from '@angular/core';
|
|
1
|
+
import { Component, computed, ElementRef, forwardRef, HostListener, input, signal, ViewChild } from '@angular/core';
|
|
2
2
|
import { maskitoDateTimeOptionsGenerator } from '@maskito/kit';
|
|
3
3
|
import { maskitoDateOptionsGenerator } from '@maskito/kit';
|
|
4
4
|
import { maskitoTimeOptionsGenerator } from '@maskito/kit';
|
|
@@ -6,27 +6,50 @@ import moment from 'moment';
|
|
|
6
6
|
import { InputDateConfiguration } from './input-date.configuration';
|
|
7
7
|
import { InputProviderFactory } from '../input-provider-factory';
|
|
8
8
|
import { CustomInput } from '../custom-input';
|
|
9
|
-
import { IonDatetime } from '@ionic/angular';
|
|
9
|
+
import { IonDatetime, IonModal } from '@ionic/angular';
|
|
10
|
+
import { SIonPopoverComponent } from '../../popover/sion-popover/sion-popover.component';
|
|
11
|
+
import { MatCalendar } from '@angular/material/datepicker';
|
|
10
12
|
import * as i0 from "@angular/core";
|
|
11
13
|
import * as i1 from "@ionic/angular";
|
|
12
14
|
import * as i2 from "@angular/common";
|
|
13
15
|
import * as i3 from "@angular/forms";
|
|
14
16
|
import * as i4 from "@maskito/angular";
|
|
15
17
|
import * as i5 from "../../popover/sion-popover/sion-popover.component";
|
|
18
|
+
import * as i6 from "@angular/material/datepicker";
|
|
16
19
|
export class InputDateComponent extends CustomInput {
|
|
20
|
+
static { this.FormatISO = 'YYYY-MM-DDThh:mm:ss'; }
|
|
17
21
|
setFocus(event) {
|
|
18
22
|
if (this.input && (event == null || event.target == this.inputContainer.nativeElement)) {
|
|
19
23
|
this.input.nativeElement.focus();
|
|
20
24
|
}
|
|
21
25
|
}
|
|
26
|
+
onResize(event) { this.windowSize.set(window.innerWidth); }
|
|
22
27
|
constructor(elementRef) {
|
|
23
28
|
super();
|
|
24
29
|
this.elementRef = elementRef;
|
|
25
30
|
this.configuration = input(new InputDateConfiguration());
|
|
26
|
-
|
|
27
|
-
this.
|
|
28
|
-
|
|
29
|
-
|
|
31
|
+
// Formato do input html (string)
|
|
32
|
+
this.momentFormat = 'DD/MM/YYYY HH:mm';
|
|
33
|
+
//Handle input interface
|
|
34
|
+
this.windowSize = signal(window.innerWidth);
|
|
35
|
+
this.interface = computed(() => {
|
|
36
|
+
return this.windowSize() > window.innerHeight ? DateInterfaces.Popover : DateInterfaces.Modal;
|
|
37
|
+
});
|
|
38
|
+
this.DateInterfaces = DateInterfaces;
|
|
39
|
+
this.presentation = DatePresentation.DateTime;
|
|
40
|
+
this.readableValue = '';
|
|
41
|
+
this.DatePresentation = DatePresentation;
|
|
42
|
+
this.lstHours = lstHours;
|
|
43
|
+
this.lstMinutes = lstMinutes;
|
|
44
|
+
this.hour = '00';
|
|
45
|
+
this.minute = '00';
|
|
46
|
+
const presentation = this.elementRef.nativeElement.tagName.toLowerCase().replace('input-', '');
|
|
47
|
+
this.presentation = {
|
|
48
|
+
'date-time': DatePresentation.DateTime,
|
|
49
|
+
'input-date': DatePresentation.Date,
|
|
50
|
+
'input-time': DatePresentation.Time,
|
|
51
|
+
}[presentation] ?? DatePresentation.DateTime;
|
|
52
|
+
if (this.presentation == DatePresentation.DateTime) {
|
|
30
53
|
this.momentFormat = 'DD/MM/YYYY HH:mm';
|
|
31
54
|
this.options = maskitoDateTimeOptionsGenerator({
|
|
32
55
|
dateMode: 'dd/mm/yyyy',
|
|
@@ -36,11 +59,11 @@ export class InputDateComponent extends CustomInput {
|
|
|
36
59
|
timeStep: 1,
|
|
37
60
|
});
|
|
38
61
|
}
|
|
39
|
-
else if (this.presentation ==
|
|
62
|
+
else if (this.presentation == DatePresentation.Date) {
|
|
40
63
|
this.momentFormat = 'DD/MM/YYYY';
|
|
41
64
|
this.options = maskitoDateOptionsGenerator({ mode: 'dd/mm/yyyy', separator: '/' });
|
|
42
65
|
}
|
|
43
|
-
else if (this.presentation ==
|
|
66
|
+
else if (this.presentation == DatePresentation.Time) {
|
|
44
67
|
this.momentFormat = 'HH:mm';
|
|
45
68
|
this.options = maskitoTimeOptionsGenerator({
|
|
46
69
|
mode: 'HH:MM',
|
|
@@ -48,70 +71,119 @@ export class InputDateComponent extends CustomInput {
|
|
|
48
71
|
});
|
|
49
72
|
}
|
|
50
73
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
74
|
+
SetValueFromReadable(value) {
|
|
75
|
+
const m = moment(value, this.momentFormat, true).format(InputDateComponent.FormatISO);
|
|
76
|
+
this.SetValue(m);
|
|
77
|
+
}
|
|
78
|
+
SetValueFromMoment(value) {
|
|
79
|
+
this.SetValue(value.format(InputDateComponent.FormatISO));
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* @param obj String in ISO format (YYYY-MM-DDThh:mm:ss)
|
|
83
|
+
*/
|
|
84
|
+
SetValue(obj) {
|
|
85
|
+
this.value.set(obj);
|
|
86
|
+
this.momentValue = moment(this.value(), InputDateComponent.FormatISO, true);
|
|
87
|
+
this.readableValue = this.momentValue.format(this.momentFormat.toString());
|
|
88
|
+
this.calendar.activeDate = this.momentValue; // set the active date to the selected date
|
|
89
|
+
this.calendar.updateTodaysDate(); // update calendar state
|
|
90
|
+
this.hour = this.momentValue.get('hour').toString().padStart(2, '0');
|
|
91
|
+
this.minute = this.momentValue.get('minute').toString().padStart(2, '0');
|
|
92
|
+
this.runValidation();
|
|
93
|
+
if (this.momentValue.isValid()) {
|
|
94
|
+
this.propagateChange(obj);
|
|
72
95
|
}
|
|
73
|
-
else
|
|
74
|
-
this.
|
|
75
|
-
this.runValidation();
|
|
76
|
-
this.propagateChange(this.value());
|
|
96
|
+
else {
|
|
97
|
+
this.propagateChange(null);
|
|
77
98
|
}
|
|
78
99
|
}
|
|
79
100
|
writeValue(obj) {
|
|
80
101
|
this.value.set(obj);
|
|
81
|
-
this.
|
|
102
|
+
this.momentValue = moment(this.value(), InputDateComponent.FormatISO, true);
|
|
103
|
+
this.readableValue = this.momentValue.format(this.momentFormat.toString());
|
|
104
|
+
this.hour = this.momentValue.get('hour').toString().padStart(2, '0');
|
|
105
|
+
this.minute = this.momentValue.get('minute').toString().padStart(2, '0');
|
|
82
106
|
this.runValidation();
|
|
83
107
|
}
|
|
84
|
-
async Present(
|
|
85
|
-
if (
|
|
86
|
-
return popover.present(event);
|
|
108
|
+
async Present(event) {
|
|
109
|
+
if (this.interface() == DateInterfaces.Popover) {
|
|
110
|
+
return this.popover.present(event);
|
|
87
111
|
}
|
|
88
112
|
else {
|
|
89
|
-
return modal.present();
|
|
113
|
+
return this.modal.present();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
async Dismiss() {
|
|
117
|
+
if (this.popover) {
|
|
118
|
+
this.popover.dismiss();
|
|
119
|
+
}
|
|
120
|
+
if (this.modal) {
|
|
121
|
+
this.modal.dismiss();
|
|
90
122
|
}
|
|
91
123
|
}
|
|
92
|
-
|
|
93
|
-
this.
|
|
124
|
+
OnChangeHour(event) {
|
|
125
|
+
if (event == this.hour) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
this.hour = event;
|
|
129
|
+
this.momentValue.set('hour', Number(event));
|
|
130
|
+
console.log(this.momentValue);
|
|
131
|
+
this.SetValueFromMoment(this.momentValue);
|
|
132
|
+
}
|
|
133
|
+
OnChangeMinute(event) {
|
|
134
|
+
if (event == this.minute) {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
this.minute = event;
|
|
138
|
+
this.momentValue.set('minute', Number(event));
|
|
139
|
+
console.log(this.momentValue);
|
|
140
|
+
this.SetValueFromMoment(this.momentValue);
|
|
94
141
|
}
|
|
95
142
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputDateComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
96
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: InputDateComponent, selector: "input-date, input-date-time, input-time", inputs: { configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
143
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: InputDateComponent, selector: "input-date, input-date-time, input-time", inputs: { configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:resize": "onResize($event)" } }, providers: [
|
|
97
144
|
...InputProviderFactory.GetProviders(InputDateComponent),
|
|
98
145
|
{ provide: CustomInput, useExisting: forwardRef(() => InputDateComponent) },
|
|
99
|
-
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "inputContainer", first: true, predicate: ["inputContainer"], descendants: true }, { propertyName: "datetime", first: true, predicate: IonDatetime, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n \r\n <input #input\r\n [ngModel]=\"dtValue\" \r\n (ngModelChange)=\"SetValue($event)\"\r\n [maskito]=\"options\"\r\n [disabled]=\"disabled() || loading()\"\r\n (blur)=\"blur.emit($event)\"\r\n />\r\n \r\n <ion-button tabindex=\"-1\" class=\"absolute right-1 bottom-1\" (click)=\"Present(modal, popover, $event)\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\">\r\n <ion-icon [name]=\"presentation == 'time' ? 'time' : 'calendar'\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>\r\n\r\n<sion-popover\r\n [anchor]=\"inputContainer\"\r\n #popover \r\n [class.time]=\"presentation == 'time'\" \r\n [class.date]=\"presentation == 'date'\" \r\n [class.datetime]=\"presentation == 'date-time'\"\r\n>\r\n <ng-container *ngTemplateOutlet=\"datetimeTemplate; context: { $implicit: popover }\"></ng-container>\r\n</sion-popover>\r\n\r\n<ion-modal \r\n #modal\r\n [class.time]=\"presentation == 'time'\" \r\n [class.date]=\"presentation == 'date'\" \r\n [class.datetime]=\"presentation == 'date-time'\"\r\n>\r\n <ng-template>\r\n <ng-container *ngTemplateOutlet=\"datetimeTemplate; context: { $implicit: modal }\"></ng-container>\r\n </ng-template>\r\n</ion-modal>\r\n\r\n\r\n<ng-template #datetimeTemplate let-parent>\r\n <div class=\"flex items-center justify-center bg-[--ion-color-light] rounded-xl\" tabindex=\"-1\">\r\n @if(presentation.includes('date')) {\r\n <ion-datetime tabindex=\"-1\" [ngModel]=\"value()\" class=\"date\" [showAdjacentDays]=\"true\" presentation=\"date\" (ionChange)=\"ChangeDate($event.target.value);\"></ion-datetime>\r\n }\r\n @if(presentation == 'date-time') {\r\n <div class=\"flex flex-col items-center justify-center py-12 h-[21rem]\">\r\n <div class=\"h-full border-r-2 border-primary mask-y/30\"></div>\r\n </div>\r\n }\r\n @if(presentation.includes('time')) {\r\n <div class=\"h-[21rem] flex flex-col items-center justify-center gap-2\">\r\n <ion-icon class=\"text-2xl\" name=\"alarm\"></ion-icon>\r\n <ion-datetime tabindex=\"-1\" [ngModel]=\"value()\" class=\"time\" presentation=\"time\" hourCycle=\"h24\" (ionChange)=\"ChangeDate($event.target.value)\"></ion-datetime>\r\n </div>\r\n }\r\n </div>\r\n</ng-template>", styles: [".input-container{position:relative!important}.input-container input{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}ion-popover{--height: auto}ion-popover.time{--width: 8rem}ion-popover.date{--width: 21.5rem}ion-popover.datetime{--width: 29rem}ion-modal{--height: auto}ion-modal.time{--width: 8rem}ion-modal.date{--width: 21.5rem}ion-modal.datetime{--width: 29rem}ion-datetime{--wheel-highlight-background: var(--ion-color-primary) !important}ion-datetime.date{width:21.5rem}ion-datetime.time{width:8rem}\n", "@property --input-color{syntax: \"<color>\"; initial-value: transparent; inherits: false;}.input-container{position:relative;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:text;border-radius:.75rem;padding:.25rem .75rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition:--input-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out,filter .2s ease-in-out;--color: var(--ion-color-dark);--input-color: var(--input-background, var(--ion-color-step-250));--shadow: 0 3px 4px -1px rgb(0 0 0 / .1);--inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;--focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);box-shadow:var(--inset-shadow),var(--shadow);will-change:box-shadow,filter opacity;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:radial-gradient(ellipse at 0px top,hsl(from var(--input-color) h s l/.5),hsl(from var(--input-color) h s l/.4)),hsl(from var(--ion-color-light) h s l/.8)}.input-container:hover{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container:focus-within,.input-container:focus,.input-container.manual-focus{box-shadow:var(--inset-shadow),var(--shadow),var(--focused-shadow);--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container .input-label{pointer-events:none;display:flex;height:1rem;width:100%;min-width:0px;max-width:100%;align-items:center;justify-content:flex-start;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;color:var(--color)}.input-container input,.input-container textarea{height:1.5rem;width:100%;border-radius:.375rem;background-color:transparent;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}.input-container.loading{cursor:wait!important}.input-container.required .input-label:after{content:\"*\";color:var(--ion-color-danger);vertical-align:bottom}.input-container.submitted.invalid{--input-color: color-mix(in srgb, var(--ion-color-danger) 50%, transparent)}.input-container.disabled{cursor:not-allowed;opacity:.5;--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container.disabled *{pointer-events:none}.loading-container{position:absolute;pointer-events:none;width:100%;height:100%;top:0;left:0;display:flex;justify-content:end;align-items:center;padding-right:.5rem;will-change:opacity;transition:opacity .2s ease-in-out;overflow:hidden;opacity:0;z-index:10}.loading-container ion-spinner{will-change:auto;transition:transform .2s ease-in-out;transform:translateY(-100%)}.loading-container.loading{opacity:1}.loading-container.loading ion-spinner{transform:translateY(0)}ion-modal::part(content){border-radius:.75rem;border:1px solid var(--ion-color-step-250)}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonDatetime, selector: "ion-datetime", inputs: ["cancelText", "clearText", "color", "dayValues", "disabled", "doneText", "firstDayOfWeek", "formatOptions", "highlightedDates", "hourCycle", "hourValues", "isDateEnabled", "locale", "max", "min", "minuteValues", "mode", "monthValues", "multiple", "name", "preferWheel", "presentation", "readonly", "showAdjacentDays", "showClearButton", "showDefaultButtons", "showDefaultTimeLabel", "showDefaultTitle", "size", "titleSelectedDatesFormatter", "value", "yearValues"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: i1.IonModal, selector: "ion-modal" }, { kind: "directive", type: i1.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "component", type: i5.SIonPopoverComponent, selector: "sion-popover", inputs: ["fill", "arrow", "flip", "placement", "height", "width", "anchor"], outputs: ["onWillPresent", "onDidPresent", "onWillDismiss", "onDidDismiss"] }] }); }
|
|
146
|
+
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "inputContainer", first: true, predicate: ["inputContainer"], descendants: true }, { propertyName: "calendar", first: true, predicate: ["calendar"], descendants: true }, { propertyName: "datetime", first: true, predicate: IonDatetime, descendants: true }, { propertyName: "popover", first: true, predicate: SIonPopoverComponent, descendants: true }, { propertyName: "modal", first: true, predicate: IonModal, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n \r\n <input #input\r\n [ngModel]=\"readableValue\" \r\n (ngModelChange)=\"SetValueFromReadable($event);\"\r\n [maskito]=\"options\"\r\n [disabled]=\"disabled() || loading()\"\r\n (blur)=\"blur.emit($event)\"\r\n />\r\n \r\n <ion-button tabindex=\"-1\" class=\"absolute right-1 bottom-1\" (click)=\"Present($event)\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\">\r\n <ion-icon [name]=\"presentation == DatePresentation.Time ? 'time' : 'calendar'\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>\r\n\r\n@if (interface() == DateInterfaces.Popover) {\r\n <sion-popover\r\n #popover \r\n [anchor]=\"inputContainer\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"datetimeTemplate;\"></ng-container>\r\n </sion-popover>\r\n}\r\n@else {\r\n <ion-modal \r\n #modal\r\n [class.time]=\"presentation == DatePresentation.Time\" \r\n [class.date]=\"presentation == DatePresentation.Date\" \r\n [class.datetime]=\"presentation == DatePresentation.DateTime\"\r\n >\r\n <ng-template>\r\n <ng-container *ngTemplateOutlet=\"datetimeTemplate;\"></ng-container>\r\n </ng-template>\r\n </ion-modal>\r\n}\r\n\r\n\r\n<ng-template #datetimeTemplate>\r\n <div class=\"flex items-center justify-center bg-[--ion-color-light] rounded-xl\" tabindex=\"-1\">\r\n \r\n @if ([DatePresentation.DateTime, DatePresentation.Date].includes(presentation)) {\r\n <mat-calendar #calendar class=\"w-72 text-dark\" \r\n [(selected)]=\"momentValue\" \r\n (selectedChange)=\"SetValueFromMoment($event)\"\r\n ></mat-calendar>\r\n }\r\n @if ([DatePresentation.DateTime, DatePresentation.Time].includes(presentation)) {\r\n <div class=\"flex h-full mask-y/30 items-center justify-center\">\r\n <ion-picker>\r\n <ion-picker-column (ionChange)=\"OnChangeHour($event.target.value.toString())\" [value]=\"hour\">\r\n @for (item of lstHours; track $index) {\r\n <ion-picker-column-option [value]=\"item\">{{item}}</ion-picker-column-option>\r\n }\r\n </ion-picker-column>\r\n <ion-picker-column (ionChange)=\"OnChangeMinute($event.target.value.toString())\" [value]=\"minute\">\r\n @for (item of lstMinutes; track $index) {\r\n <ion-picker-column-option [value]=\"item\">{{item}}</ion-picker-column-option>\r\n }\r\n </ion-picker-column>\r\n </ion-picker>\r\n </div>\r\n }\r\n\r\n </div>\r\n</ng-template>\r\n", styles: [".input-container{position:relative!important}.input-container input{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}ion-picker{height:100%;--fade-background-rgb: transparent }\n", "@property --input-color{syntax: \"<color>\"; initial-value: transparent; inherits: false;}.input-container{position:relative;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:text;border-radius:.75rem;padding:.25rem .75rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition:--input-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out,filter .2s ease-in-out;--color: var(--ion-color-dark);--input-color: var(--input-background, var(--ion-color-step-250));--shadow: 0 3px 4px -1px rgb(0 0 0 / .1);--inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;--focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);box-shadow:var(--inset-shadow),var(--shadow);will-change:box-shadow,filter opacity;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:radial-gradient(ellipse at 0px top,hsl(from var(--input-color) h s l/.5),hsl(from var(--input-color) h s l/.4)),hsl(from var(--ion-color-light) h s l/.8)}.input-container:hover{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container:focus-within,.input-container:focus,.input-container.manual-focus{box-shadow:var(--inset-shadow),var(--shadow),var(--focused-shadow);--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container .input-label{pointer-events:none;display:flex;height:1rem;width:100%;min-width:0px;max-width:100%;align-items:center;justify-content:flex-start;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;color:var(--color)}.input-container input,.input-container textarea{height:1.5rem;width:100%;border-radius:.375rem;background-color:transparent;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}.input-container.loading{cursor:wait!important}.input-container.required .input-label:after{content:\"*\";color:var(--ion-color-danger);vertical-align:bottom}.input-container.submitted.invalid{--input-color: color-mix(in srgb, var(--ion-color-danger) 50%, transparent)}.input-container.disabled{cursor:not-allowed;opacity:.5;--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container.disabled *{pointer-events:none}.loading-container{position:absolute;pointer-events:none;width:100%;height:100%;top:0;left:0;display:flex;justify-content:end;align-items:center;padding-right:.5rem;will-change:opacity;transition:opacity .2s ease-in-out;overflow:hidden;opacity:0;z-index:10}.loading-container ion-spinner{will-change:auto;transition:transform .2s ease-in-out;transform:translateY(-100%)}.loading-container.loading{opacity:1}.loading-container.loading ion-spinner{transform:translateY(0)}ion-modal::part(content){border-radius:.75rem;border:1px solid var(--ion-color-step-250)}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonPicker, selector: "ion-picker", inputs: ["mode"] }, { kind: "component", type: i1.IonPickerColumn, selector: "ion-picker-column", inputs: ["color", "disabled", "mode", "value"] }, { kind: "component", type: i1.IonPickerColumnOption, selector: "ion-picker-column-option", inputs: ["color", "disabled", "value"] }, { kind: "component", type: i1.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: i1.IonModal, selector: "ion-modal" }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "component", type: i5.SIonPopoverComponent, selector: "sion-popover", inputs: ["fill", "arrow", "flip", "placement", "height", "width", "anchor"], outputs: ["onWillPresent", "onDidPresent", "onWillDismiss", "onDidDismiss"] }, { kind: "component", type: i6.MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection", "_userDragDrop"], exportAs: ["matCalendar"] }] }); }
|
|
100
147
|
}
|
|
101
148
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputDateComponent, decorators: [{
|
|
102
149
|
type: Component,
|
|
103
150
|
args: [{ selector: 'input-date, input-date-time, input-time', providers: [
|
|
104
151
|
...InputProviderFactory.GetProviders(InputDateComponent),
|
|
105
152
|
{ provide: CustomInput, useExisting: forwardRef(() => InputDateComponent) },
|
|
106
|
-
], template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n \r\n <input #input\r\n [ngModel]=\"
|
|
153
|
+
], template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n \r\n <input #input\r\n [ngModel]=\"readableValue\" \r\n (ngModelChange)=\"SetValueFromReadable($event);\"\r\n [maskito]=\"options\"\r\n [disabled]=\"disabled() || loading()\"\r\n (blur)=\"blur.emit($event)\"\r\n />\r\n \r\n <ion-button tabindex=\"-1\" class=\"absolute right-1 bottom-1\" (click)=\"Present($event)\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\">\r\n <ion-icon [name]=\"presentation == DatePresentation.Time ? 'time' : 'calendar'\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>\r\n\r\n@if (interface() == DateInterfaces.Popover) {\r\n <sion-popover\r\n #popover \r\n [anchor]=\"inputContainer\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"datetimeTemplate;\"></ng-container>\r\n </sion-popover>\r\n}\r\n@else {\r\n <ion-modal \r\n #modal\r\n [class.time]=\"presentation == DatePresentation.Time\" \r\n [class.date]=\"presentation == DatePresentation.Date\" \r\n [class.datetime]=\"presentation == DatePresentation.DateTime\"\r\n >\r\n <ng-template>\r\n <ng-container *ngTemplateOutlet=\"datetimeTemplate;\"></ng-container>\r\n </ng-template>\r\n </ion-modal>\r\n}\r\n\r\n\r\n<ng-template #datetimeTemplate>\r\n <div class=\"flex items-center justify-center bg-[--ion-color-light] rounded-xl\" tabindex=\"-1\">\r\n \r\n @if ([DatePresentation.DateTime, DatePresentation.Date].includes(presentation)) {\r\n <mat-calendar #calendar class=\"w-72 text-dark\" \r\n [(selected)]=\"momentValue\" \r\n (selectedChange)=\"SetValueFromMoment($event)\"\r\n ></mat-calendar>\r\n }\r\n @if ([DatePresentation.DateTime, DatePresentation.Time].includes(presentation)) {\r\n <div class=\"flex h-full mask-y/30 items-center justify-center\">\r\n <ion-picker>\r\n <ion-picker-column (ionChange)=\"OnChangeHour($event.target.value.toString())\" [value]=\"hour\">\r\n @for (item of lstHours; track $index) {\r\n <ion-picker-column-option [value]=\"item\">{{item}}</ion-picker-column-option>\r\n }\r\n </ion-picker-column>\r\n <ion-picker-column (ionChange)=\"OnChangeMinute($event.target.value.toString())\" [value]=\"minute\">\r\n @for (item of lstMinutes; track $index) {\r\n <ion-picker-column-option [value]=\"item\">{{item}}</ion-picker-column-option>\r\n }\r\n </ion-picker-column>\r\n </ion-picker>\r\n </div>\r\n }\r\n\r\n </div>\r\n</ng-template>\r\n", styles: [".input-container{position:relative!important}.input-container input{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}ion-picker{height:100%;--fade-background-rgb: transparent }\n", "@property --input-color{syntax: \"<color>\"; initial-value: transparent; inherits: false;}.input-container{position:relative;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:text;border-radius:.75rem;padding:.25rem .75rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition:--input-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out,filter .2s ease-in-out;--color: var(--ion-color-dark);--input-color: var(--input-background, var(--ion-color-step-250));--shadow: 0 3px 4px -1px rgb(0 0 0 / .1);--inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;--focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);box-shadow:var(--inset-shadow),var(--shadow);will-change:box-shadow,filter opacity;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:radial-gradient(ellipse at 0px top,hsl(from var(--input-color) h s l/.5),hsl(from var(--input-color) h s l/.4)),hsl(from var(--ion-color-light) h s l/.8)}.input-container:hover{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container:focus-within,.input-container:focus,.input-container.manual-focus{box-shadow:var(--inset-shadow),var(--shadow),var(--focused-shadow);--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container .input-label{pointer-events:none;display:flex;height:1rem;width:100%;min-width:0px;max-width:100%;align-items:center;justify-content:flex-start;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;color:var(--color)}.input-container input,.input-container textarea{height:1.5rem;width:100%;border-radius:.375rem;background-color:transparent;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}.input-container.loading{cursor:wait!important}.input-container.required .input-label:after{content:\"*\";color:var(--ion-color-danger);vertical-align:bottom}.input-container.submitted.invalid{--input-color: color-mix(in srgb, var(--ion-color-danger) 50%, transparent)}.input-container.disabled{cursor:not-allowed;opacity:.5;--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container.disabled *{pointer-events:none}.loading-container{position:absolute;pointer-events:none;width:100%;height:100%;top:0;left:0;display:flex;justify-content:end;align-items:center;padding-right:.5rem;will-change:opacity;transition:opacity .2s ease-in-out;overflow:hidden;opacity:0;z-index:10}.loading-container ion-spinner{will-change:auto;transition:transform .2s ease-in-out;transform:translateY(-100%)}.loading-container.loading{opacity:1}.loading-container.loading ion-spinner{transform:translateY(0)}ion-modal::part(content){border-radius:.75rem;border:1px solid var(--ion-color-step-250)}\n"] }]
|
|
107
154
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { input: [{
|
|
108
155
|
type: ViewChild,
|
|
109
156
|
args: ['input']
|
|
110
157
|
}], inputContainer: [{
|
|
111
158
|
type: ViewChild,
|
|
112
159
|
args: ['inputContainer']
|
|
160
|
+
}], onResize: [{
|
|
161
|
+
type: HostListener,
|
|
162
|
+
args: ['window:resize', ['$event']]
|
|
163
|
+
}], calendar: [{
|
|
164
|
+
type: ViewChild,
|
|
165
|
+
args: ['calendar']
|
|
113
166
|
}], datetime: [{
|
|
114
167
|
type: ViewChild,
|
|
115
168
|
args: [IonDatetime]
|
|
169
|
+
}], popover: [{
|
|
170
|
+
type: ViewChild,
|
|
171
|
+
args: [SIonPopoverComponent]
|
|
172
|
+
}], modal: [{
|
|
173
|
+
type: ViewChild,
|
|
174
|
+
args: [IonModal]
|
|
116
175
|
}] } });
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWRhdGUvaW5wdXQtZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWRhdGUvaW5wdXQtZGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUF1QixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQy9ELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFM0QsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUF3QixNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBWW5FLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxXQUFtQjtJQUtoRCxRQUFRLENBQUMsS0FBd0I7UUFDeEMsSUFBRyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssRUFB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QUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7K0dBekZVLGtCQUFrQjttR0FBbEIsa0JBQWtCLDhOQUxsQjtZQUNULEdBQUcsb0JBQW9CLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDO1lBQ3hELEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7U0FDNUUsd1BBeUVVLFdBQVcsdUVDN0Z4QixneEZBd0VjOzs0RkRsREQsa0JBQWtCO2tCQVQ5QixTQUFTOytCQUNFLHlDQUF5QyxhQUd4Qzt3QkFDVCxHQUFHLG9CQUFvQixDQUFDLFlBQVksb0JBQW9CO3dCQUN4RCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUMsRUFBRTtxQkFDNUU7K0VBS21CLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFDVyxjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQjtnQkFtRUgsUUFBUTtzQkFBL0IsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBpbnB1dCwgSW5wdXRTaWduYWwsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IG1hc2tpdG9EYXRlVGltZU9wdGlvbnNHZW5lcmF0b3IgfSBmcm9tICdAbWFza2l0by9raXQnO1xyXG5pbXBvcnQgeyBtYXNraXRvRGF0ZU9wdGlvbnNHZW5lcmF0b3IgfSBmcm9tICdAbWFza2l0by9raXQnO1xyXG5pbXBvcnQgeyBtYXNraXRvVGltZU9wdGlvbnNHZW5lcmF0b3IgfSBmcm9tICdAbWFza2l0by9raXQnO1xyXG5pbXBvcnQgeyBNYXNraXRvT3B0aW9ucyB9IGZyb20gJ0BtYXNraXRvL2NvcmUnO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcblxyXG5pbXBvcnQgeyBJbnB1dERhdGVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9pbnB1dC1kYXRlLmNvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBJbnB1dFByb3ZpZGVyRmFjdG9yeSB9IGZyb20gJy4uL2lucHV0LXByb3ZpZGVyLWZhY3RvcnknO1xyXG5pbXBvcnQgeyBDdXN0b21JbnB1dCB9IGZyb20gJy4uL2N1c3RvbS1pbnB1dCc7XHJcbmltcG9ydCB7IElvbkRhdGV0aW1lLCBJb25Nb2RhbCwgSW9uUG9wb3ZlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgU0lvblBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wb3BvdmVyL3Npb24tcG9wb3Zlci9zaW9uLXBvcG92ZXIuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaW5wdXQtZGF0ZSwgaW5wdXQtZGF0ZS10aW1lLCBpbnB1dC10aW1lJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtZGF0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtZGF0ZS5jb21wb25lbnQuc2NzcycsICcuLi9pbnB1dHMuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgLi4uSW5wdXRQcm92aWRlckZhY3RvcnkuR2V0UHJvdmlkZXJzKElucHV0RGF0ZUNvbXBvbmVudCksXHJcbiAgICB7IHByb3ZpZGU6IEN1c3RvbUlucHV0LCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnB1dERhdGVDb21wb25lbnQpIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0RGF0ZUNvbXBvbmVudCBleHRlbmRzIEN1c3RvbUlucHV0PHN0cmluZz4ge1xyXG5cclxuICBjb25maWd1cmF0aW9uOiBJbnB1dFNpZ25hbDxJbnB1dERhdGVDb25maWd1cmF0aW9uPiA9IGlucHV0PElucHV0RGF0ZUNvbmZpZ3VyYXRpb24+KG5ldyBJbnB1dERhdGVDb25maWd1cmF0aW9uKCkpO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRDb250YWluZXInKSBpbnB1dENvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcbiAgb3ZlcnJpZGUgc2V0Rm9jdXMoZXZlbnQ6IE1vdXNlRXZlbnQgfCBudWxsKTogdm9pZCB7XHJcbiAgICBpZih0aGlzLmlucHV0ICYmIChldmVudCA9PSBudWxsIHx8IGV2ZW50LnRhcmdldCA9PSB0aGlzLmlucHV0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpKSB7IHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpOyB9ICAgICAgXHJcbiAgfVxyXG4gIFxyXG4gIG9wdGlvbnM6IE1hc2tpdG9PcHRpb25zO1xyXG4gIGR0VmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIG1vbWVudEZvcm1hdDogbW9tZW50Lk1vbWVudEZvcm1hdFNwZWNpZmljYXRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgb3ZlcnJpZGUgZWxlbWVudFJlZjogRWxlbWVudFJlZlxyXG4gICkgeyBcclxuICAgIHN1cGVyKCk7IFxyXG4gICAgdGhpcy5wcmVzZW50YXRpb24gPSAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpIGFzIHN0cmluZykucmVwbGFjZSgnaW5wdXQtJywgJycpO1xyXG5cclxuICAgIGlmKHRoaXMucHJlc2VudGF0aW9uID09IFwiZGF0ZS10aW1lXCIpeyBcclxuICAgICAgdGhpcy5tb21lbnRGb3JtYXQgPSAnREQvTU0vWVlZWSBISDptbSc7XHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IG1hc2tpdG9EYXRlVGltZU9wdGlvbnNHZW5lcmF0b3Ioe1xyXG4gICAgICAgIGRhdGVNb2RlOiAnZGQvbW0veXl5eScsXHJcbiAgICAgICAgdGltZU1vZGU6ICdISDpNTScsXHJcbiAgICAgICAgZGF0ZVNlcGFyYXRvcjogJy8nLFxyXG4gICAgICAgIGRhdGVUaW1lU2VwYXJhdG9yOiAnICcsXHJcbiAgICAgICAgdGltZVN0ZXA6IDEsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlXHJcbiAgICBpZih0aGlzLnByZXNlbnRhdGlvbiA9PSBcImRhdGVcIikgeyBcclxuICAgICAgdGhpcy5tb21lbnRGb3JtYXQgPSAnREQvTU0vWVlZWSc7XHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IG1hc2tpdG9EYXRlT3B0aW9uc0dlbmVyYXRvcih7IG1vZGU6ICdkZC9tbS95eXl5Jywgc2VwYXJhdG9yOiAnLyd9KTtcclxuICAgIH0gZWxzZVxyXG4gICAgaWYodGhpcy5wcmVzZW50YXRpb24gPT0gXCJ0aW1lXCIpIHtcclxuICAgICAgdGhpcy5tb21lbnRGb3JtYXQgPSAnSEg6bW0nOyBcclxuICAgICAgdGhpcy5vcHRpb25zID0gbWFza2l0b1RpbWVPcHRpb25zR2VuZXJhdG9yKHtcclxuICAgICAgICBtb2RlOiAnSEg6TU0nLFxyXG4gICAgICAgIHN0ZXA6IDEsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBwdWJsaWMgcHJlc2VudGF0aW9uOiBcImRhdGUtdGltZVwiIHwgXCJkYXRlXCIgfCBcInRpbWVcIiB8IHN0cmluZyA9IFwiZGF0ZS10aW1lXCJcclxuXHJcbiAgb3ZlcnJpZGUgU2V0VmFsdWUodmFsdWU6IHN0cmluZywgZnJvbURhdGVUaW1lOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcclxuICAgIGlmKGZyb21EYXRlVGltZSl7XHJcbiAgICAgIHRoaXMuZHRWYWx1ZSA9IG1vbWVudCh2YWx1ZSwgbW9tZW50LklTT184NjAxLCB0cnVlKS5mb3JtYXQodGhpcy5tb21lbnRGb3JtYXQudG9TdHJpbmcoKSk7XHJcbiAgICAgIHRoaXMudmFsdWUuc2V0KHZhbHVlKTtcclxuICAgICAgdGhpcy5ydW5WYWxpZGF0aW9uKCk7XHJcbiAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUoKSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoJ1onLCAnJyk7XHJcbiAgICBpZihbJ2RhdGUtdGltZScsICdkYXRlJ10uaW5jbHVkZXModGhpcy5wcmVzZW50YXRpb24pKXtcclxuICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudCh2YWx1ZSwgdGhpcy5tb21lbnRGb3JtYXQsIHRydWUpLnV0YyhmYWxzZSk7XHJcbiAgICAgIGlmKGRhdGUuaXNWYWxpZCgpIHx8ICF2YWx1ZSl7XHJcbiAgICAgICAgaWYodmFsdWUpe1xyXG4gICAgICAgICAgdGhpcy52YWx1ZS5zZXQoZGF0ZS5mb3JtYXQoKS5yZXBsYWNlKCdaJywgJycpKTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHRoaXMudmFsdWUuc2V0KG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJ1blZhbGlkYXRpb24oKTtcclxuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKCkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmKHZhbHVlLmxlbmd0aCA9PSA1KXtcclxuICAgICAgdGhpcy52YWx1ZS5zZXQodmFsdWUpO1xyXG4gICAgICB0aGlzLnJ1blZhbGlkYXRpb24oKTtcclxuICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy52YWx1ZSgpKTtcclxuICAgIH1cclxuICB9XHJcbiAgQFZpZXdDaGlsZChJb25EYXRldGltZSkgZGF0ZXRpbWU6IElvbkRhdGV0aW1lO1xyXG4gIFxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUob2JqOiBzdHJpbmcpOiB2b2lkIHwgUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnZhbHVlLnNldChvYmopO1xyXG4gICAgdGhpcy5kdFZhbHVlID0gbW9tZW50KHRoaXMudmFsdWUoKSwgbW9tZW50LklTT184NjAxLCB0cnVlKS5mb3JtYXQodGhpcy5tb21lbnRGb3JtYXQudG9TdHJpbmcoKSk7XHJcbiAgICB0aGlzLnJ1blZhbGlkYXRpb24oKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIFByZXNlbnQobW9kYWw6IElvbk1vZGFsLCBwb3BvdmVyOiBTSW9uUG9wb3ZlckNvbXBvbmVudCwgZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA+IHdpbmRvdy5pbm5lckhlaWdodCkge1xyXG4gICAgICByZXR1cm4gcG9wb3Zlci5wcmVzZW50KGV2ZW50KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBtb2RhbC5wcmVzZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBDaGFuZ2VEYXRlKHY6IHN0cmluZyB8IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLlNldFZhbHVlKHYudG9TdHJpbmcoKSwgdHJ1ZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgXHJcbiAgI2lucHV0Q29udGFpbmVyXHJcbiAgY2xhc3M9XCJpbnB1dC1jb250YWluZXJcIiBcclxuICAoY2xpY2spPVwic2V0Rm9jdXMoJGV2ZW50KVwiXHJcbiAgW2NsYXNzLnJlcXVpcmVkXT1cInJlcXVpcmVkKClcIiBcclxuICBbY2xhc3Muc3VibWl0dGVkXT1cInN1Ym1pdHRlZCgpXCIgXHJcbiAgW2NsYXNzLmludmFsaWRdPVwiaW52YWxpZFwiIFxyXG4gIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZCgpIHx8IGxvYWRpbmcoKVwiXHJcbiAgW2NsYXNzLmxvYWRpbmddPVwibG9hZGluZygpXCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJpbnB1dC1sYWJlbFwiPiBcclxuICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGVcIj5cclxuICAgICAge3tsYWJlbCgpfX0gXHJcbiAgICA8L3NwYW4+XHJcbiAgPC9kaXY+XHJcbiAgXHJcbiAgPGlucHV0ICNpbnB1dFxyXG4gICAgW25nTW9kZWxdPVwiZHRWYWx1ZVwiIFxyXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwiU2V0VmFsdWUoJGV2ZW50KVwiXHJcbiAgICBbbWFza2l0b109XCJvcHRpb25zXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpIHx8IGxvYWRpbmcoKVwiXHJcbiAgICAoYmx1cik9XCJibHVyLmVtaXQoJGV2ZW50KVwiXHJcbiAgLz5cclxuICBcclxuICA8aW9uLWJ1dHRvbiB0YWJpbmRleD1cIi0xXCIgY2xhc3M9XCJhYnNvbHV0ZSByaWdodC0xIGJvdHRvbS0xXCIgKGNsaWNrKT1cIlByZXNlbnQobW9kYWwsIHBvcG92ZXIsICRldmVudClcIiBjb2xvcj1cIm1lZGl1bVwiIHNpemU9XCJzbWFsbFwiIGZpbGw9XCJjbGVhclwiIHN0eWxlPVwiLS1ib3JkZXItcmFkaXVzOiAuNXJlbVwiPlxyXG4gICAgPGlvbi1pY29uIFtuYW1lXT1cInByZXNlbnRhdGlvbiA9PSAndGltZScgPyAndGltZScgOiAnY2FsZW5kYXInXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XHJcbiAgPC9pb24tYnV0dG9uPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwibG9hZGluZy1jb250YWluZXJcIiBbY2xhc3MubG9hZGluZ109XCJsb2FkaW5nKClcIj5cclxuICAgIDxpb24tc3Bpbm5lcj48L2lvbi1zcGlubmVyPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxzaW9uLXBvcG92ZXJcclxuICBbYW5jaG9yXT1cImlucHV0Q29udGFpbmVyXCJcclxuICAjcG9wb3ZlciBcclxuICBbY2xhc3MudGltZV09XCJwcmVzZW50YXRpb24gPT0gJ3RpbWUnXCIgXHJcbiAgW2NsYXNzLmRhdGVdPVwicHJlc2VudGF0aW9uID09ICdkYXRlJ1wiIFxyXG4gIFtjbGFzcy5kYXRldGltZV09XCJwcmVzZW50YXRpb24gPT0gJ2RhdGUtdGltZSdcIlxyXG4+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRhdGV0aW1lVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBwb3BvdmVyIH1cIj48L25nLWNvbnRhaW5lcj5cclxuPC9zaW9uLXBvcG92ZXI+XHJcblxyXG48aW9uLW1vZGFsIFxyXG4gICNtb2RhbFxyXG4gIFtjbGFzcy50aW1lXT1cInByZXNlbnRhdGlvbiA9PSAndGltZSdcIiBcclxuICBbY2xhc3MuZGF0ZV09XCJwcmVzZW50YXRpb24gPT0gJ2RhdGUnXCIgXHJcbiAgW2NsYXNzLmRhdGV0aW1lXT1cInByZXNlbnRhdGlvbiA9PSAnZGF0ZS10aW1lJ1wiXHJcbj5cclxuICA8bmctdGVtcGxhdGU+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0ZXRpbWVUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IG1vZGFsIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2lvbi1tb2RhbD5cclxuXHJcblxyXG48bmctdGVtcGxhdGUgI2RhdGV0aW1lVGVtcGxhdGUgbGV0LXBhcmVudD5cclxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYmctWy0taW9uLWNvbG9yLWxpZ2h0XSByb3VuZGVkLXhsXCIgdGFiaW5kZXg9XCItMVwiPlxyXG4gICAgQGlmKHByZXNlbnRhdGlvbi5pbmNsdWRlcygnZGF0ZScpKSB7XHJcbiAgICAgIDxpb24tZGF0ZXRpbWUgdGFiaW5kZXg9XCItMVwiIFtuZ01vZGVsXT1cInZhbHVlKClcIiBjbGFzcz1cImRhdGVcIiBbc2hvd0FkamFjZW50RGF5c109XCJ0cnVlXCIgcHJlc2VudGF0aW9uPVwiZGF0ZVwiIChpb25DaGFuZ2UpPVwiQ2hhbmdlRGF0ZSgkZXZlbnQudGFyZ2V0LnZhbHVlKTtcIj48L2lvbi1kYXRldGltZT5cclxuICAgIH1cclxuICAgIEBpZihwcmVzZW50YXRpb24gPT0gJ2RhdGUtdGltZScpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB5LTEyIGgtWzIxcmVtXVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoLWZ1bGwgYm9yZGVyLXItMiBib3JkZXItcHJpbWFyeSBtYXNrLXkvMzBcIj48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICBAaWYocHJlc2VudGF0aW9uLmluY2x1ZGVzKCd0aW1lJykpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cImgtWzIxcmVtXSBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgIDxpb24taWNvbiBjbGFzcz1cInRleHQtMnhsXCIgbmFtZT1cImFsYXJtXCI+PC9pb24taWNvbj5cclxuICAgICAgICA8aW9uLWRhdGV0aW1lIHRhYmluZGV4PVwiLTFcIiBbbmdNb2RlbF09XCJ2YWx1ZSgpXCIgY2xhc3M9XCJ0aW1lXCIgcHJlc2VudGF0aW9uPVwidGltZVwiIGhvdXJDeWNsZT1cImgyNFwiIChpb25DaGFuZ2UpPVwiQ2hhbmdlRGF0ZSgkZXZlbnQudGFyZ2V0LnZhbHVlKVwiPjwvaW9uLWRhdGV0aW1lPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
176
|
+
var DatePresentation;
|
|
177
|
+
(function (DatePresentation) {
|
|
178
|
+
DatePresentation[DatePresentation["DateTime"] = 1] = "DateTime";
|
|
179
|
+
DatePresentation[DatePresentation["Date"] = 2] = "Date";
|
|
180
|
+
DatePresentation[DatePresentation["Time"] = 3] = "Time";
|
|
181
|
+
})(DatePresentation || (DatePresentation = {}));
|
|
182
|
+
var DateInterfaces;
|
|
183
|
+
(function (DateInterfaces) {
|
|
184
|
+
DateInterfaces[DateInterfaces["Popover"] = 1] = "Popover";
|
|
185
|
+
DateInterfaces[DateInterfaces["Modal"] = 2] = "Modal";
|
|
186
|
+
})(DateInterfaces || (DateInterfaces = {}));
|
|
187
|
+
const lstHours = Array.from(Array(24).keys()).map(i => i.toString().padStart(2, '0'));
|
|
188
|
+
const lstMinutes = Array.from(Array(60).keys()).map(i => i.toString().padStart(2, '0'));
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWRhdGUvaW5wdXQtZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWRhdGUvaW5wdXQtZGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQStCLE1BQU0sRUFBRSxTQUFTLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQ2pLLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDM0QsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTNELE9BQU8sTUFBa0IsTUFBTSxRQUFRLENBQUM7QUFFeEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDekYsT0FBTyxFQUFFLFdBQVcsRUFBaUIsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7QUFZMUUsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFdBQW1CO2FBQ2xELGNBQVMsR0FBRyxxQkFBcUIsQUFBeEIsQ0FBeUI7SUFLaEMsUUFBUSxDQUFD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QixnQkFBZ0IsUUFJcEI7QUFDRCxJQUFLLGNBR0o7QUFIRCxXQUFLLGNBQWM7SUFDakIseURBQVcsQ0FBQTtJQUNYLHFEQUFXLENBQUE7QUFDYixDQUFDLEVBSEksY0FBYyxLQUFkLGNBQWMsUUFHbEI7QUFFRCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDckYsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSG9zdExpc3RlbmVyLCBpbnB1dCwgSW5wdXRTaWduYWwsIE9uSW5pdCwgU2lnbmFsLCBzaWduYWwsIFZpZXdDaGlsZCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbWFza2l0b0RhdGVUaW1lT3B0aW9uc0dlbmVyYXRvciB9IGZyb20gJ0BtYXNraXRvL2tpdCc7XHJcbmltcG9ydCB7IG1hc2tpdG9EYXRlT3B0aW9uc0dlbmVyYXRvciB9IGZyb20gJ0BtYXNraXRvL2tpdCc7XHJcbmltcG9ydCB7IG1hc2tpdG9UaW1lT3B0aW9uc0dlbmVyYXRvciB9IGZyb20gJ0BtYXNraXRvL2tpdCc7XHJcbmltcG9ydCB7IE1hc2tpdG9PcHRpb25zIH0gZnJvbSAnQG1hc2tpdG8vY29yZSc7XHJcbmltcG9ydCBtb21lbnQsIHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcclxuXHJcbmltcG9ydCB7IElucHV0RGF0ZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuL2lucHV0LWRhdGUuY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IElucHV0UHJvdmlkZXJGYWN0b3J5IH0gZnJvbSAnLi4vaW5wdXQtcHJvdmlkZXItZmFjdG9yeSc7XHJcbmltcG9ydCB7IEN1c3RvbUlucHV0IH0gZnJvbSAnLi4vY3VzdG9tLWlucHV0JztcclxuaW1wb3J0IHsgSW9uRGF0ZXRpbWUsIElvbk1vZGFsLCBJb25Qb3BvdmVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBTSW9uUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BvcG92ZXIvc2lvbi1wb3BvdmVyL3Npb24tcG9wb3Zlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRDYWxlbmRhciwgTWF0RGF0ZXBpY2tlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaW5wdXQtZGF0ZSwgaW5wdXQtZGF0ZS10aW1lLCBpbnB1dC10aW1lJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtZGF0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtZGF0ZS5jb21wb25lbnQuc2NzcycsICcuLi9pbnB1dHMuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgLi4uSW5wdXRQcm92aWRlckZhY3RvcnkuR2V0UHJvdmlkZXJzKElucHV0RGF0ZUNvbXBvbmVudCksXHJcbiAgICB7IHByb3ZpZGU6IEN1c3RvbUlucHV0LCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnB1dERhdGVDb21wb25lbnQpIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0RGF0ZUNvbXBvbmVudCBleHRlbmRzIEN1c3RvbUlucHV0PHN0cmluZz4ge1xyXG4gIHN0YXRpYyBGb3JtYXRJU08gPSAnWVlZWS1NTS1ERFRoaDptbTpzcyc7XHJcbiAgXHJcbiAgY29uZmlndXJhdGlvbjogSW5wdXRTaWduYWw8SW5wdXREYXRlQ29uZmlndXJhdGlvbj4gPSBpbnB1dDxJbnB1dERhdGVDb25maWd1cmF0aW9uPihuZXcgSW5wdXREYXRlQ29uZmlndXJhdGlvbigpKTtcclxuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0Q29udGFpbmVyJykgaW5wdXRDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG4gIG92ZXJyaWRlIHNldEZvY3VzKGV2ZW50OiBNb3VzZUV2ZW50IHwgbnVsbCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5pbnB1dCAmJiAoZXZlbnQgPT0gbnVsbCB8fCBldmVudC50YXJnZXQgPT0gdGhpcy5pbnB1dENvbnRhaW5lci5uYXRpdmVFbGVtZW50KSkgeyB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTsgfSAgICAgIFxyXG4gIH1cclxuICBcclxuICBvcHRpb25zOiBNYXNraXRvT3B0aW9ucztcclxuICAvLyBGb3JtYXRvIGRvIGlucHV0IGh0bWwgKHN0cmluZylcclxuICBtb21lbnRGb3JtYXQ6ICdERC9NTS9ZWVlZIEhIOm1tJyB8ICdERC9NTS9ZWVlZJyB8ICdISDptbScgPSAnREQvTU0vWVlZWSBISDptbSc7XHJcblxyXG5cclxuICAvL0hhbmRsZSBpbnB1dCBpbnRlcmZhY2VcclxuICB3aW5kb3dTaXplOiBXcml0YWJsZVNpZ25hbDxudW1iZXI+ID0gc2lnbmFsPG51bWJlcj4od2luZG93LmlubmVyV2lkdGgpO1xyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIG9uUmVzaXplKGV2ZW50OiBhbnkpIHsgdGhpcy53aW5kb3dTaXplLnNldCh3aW5kb3cuaW5uZXJXaWR0aCk7IH1cclxuICBpbnRlcmZhY2U6IFNpZ25hbDxEYXRlSW50ZXJmYWNlcz4gPSBjb21wdXRlZDxEYXRlSW50ZXJmYWNlcz4oKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMud2luZG93U2l6ZSgpID4gd2luZG93LmlubmVySGVpZ2h0ID8gRGF0ZUludGVyZmFjZXMuUG9wb3ZlciA6IERhdGVJbnRlcmZhY2VzLk1vZGFsO1xyXG4gIH0pO1xyXG4gIERhdGVJbnRlcmZhY2VzID0gRGF0ZUludGVyZmFjZXM7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIG92ZXJyaWRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcclxuICApIHsgXHJcbiAgICBzdXBlcigpOyBcclxuICAgIGNvbnN0IHByZXNlbnRhdGlvbiA9ICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgYXMgc3RyaW5nKS5yZXBsYWNlKCdpbnB1dC0nLCAnJyk7XHJcbiAgICB0aGlzLnByZXNlbnRhdGlvbiA9IHtcclxuICAgICAgJ2RhdGUtdGltZSc6IERhdGVQcmVzZW50YXRpb24uRGF0ZVRpbWUsXHJcbiAgICAgICdpbnB1dC1kYXRlJzogRGF0ZVByZXNlbnRhdGlvbi5EYXRlLFxyXG4gICAgICAnaW5wdXQtdGltZSc6IERhdGVQcmVzZW50YXRpb24uVGltZSxcclxuICAgIH1bcHJlc2VudGF0aW9uXSA/PyBEYXRlUHJlc2VudGF0aW9uLkRhdGVUaW1lO1xyXG5cclxuICAgIGlmKHRoaXMucHJlc2VudGF0aW9uID09IERhdGVQcmVzZW50YXRpb24uRGF0ZVRpbWUpeyBcclxuICAgICAgdGhpcy5tb21lbnRGb3JtYXQgPSAnREQvTU0vWVlZWSBISDptbSc7XHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IG1hc2tpdG9EYXRlVGltZU9wdGlvbnNHZW5lcmF0b3Ioe1xyXG4gICAgICAgIGRhdGVNb2RlOiAnZGQvbW0veXl5eScsXHJcbiAgICAgICAgdGltZU1vZGU6ICdISDpNTScsXHJcbiAgICAgICAgZGF0ZVNlcGFyYXRvcjogJy8nLFxyXG4gICAgICAgIGRhdGVUaW1lU2VwYXJhdG9yOiAnICcsXHJcbiAgICAgICAgdGltZVN0ZXA6IDEsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlXHJcbiAgICBpZih0aGlzLnByZXNlbnRhdGlvbiA9PSBEYXRlUHJlc2VudGF0aW9uLkRhdGUpIHtcclxuICAgICAgdGhpcy5tb21lbnRGb3JtYXQgPSAnREQvTU0vWVlZWSc7XHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IG1hc2tpdG9EYXRlT3B0aW9uc0dlbmVyYXRvcih7IG1vZGU6ICdkZC9tbS95eXl5Jywgc2VwYXJhdG9yOiAnLyd9KTtcclxuICAgIH0gZWxzZVxyXG4gICAgaWYodGhpcy5wcmVzZW50YXRpb24gPT0gRGF0ZVByZXNlbnRhdGlvbi5UaW1lKSB7XHJcbiAgICAgIHRoaXMubW9tZW50Rm9ybWF0ID0gJ0hIOm1tJzsgXHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IG1hc2tpdG9UaW1lT3B0aW9uc0dlbmVyYXRvcih7XHJcbiAgICAgICAgbW9kZTogJ0hIOk1NJyxcclxuICAgICAgICBzdGVwOiAxLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgcHVibGljIHByZXNlbnRhdGlvbjogRGF0ZVByZXNlbnRhdGlvbiA9IERhdGVQcmVzZW50YXRpb24uRGF0ZVRpbWU7XHJcbiAgXHJcbiAgcmVhZGFibGVWYWx1ZTogc3RyaW5nID0gJyc7XHJcbiAgU2V0VmFsdWVGcm9tUmVhZGFibGUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgbSA9IG1vbWVudCh2YWx1ZSwgdGhpcy5tb21lbnRGb3JtYXQsIHRydWUpLmZvcm1hdChJbnB1dERhdGVDb21wb25lbnQuRm9ybWF0SVNPKTsgIFxyXG4gICAgdGhpcy5TZXRWYWx1ZShtKTtcclxuICB9XHJcbiAgU2V0VmFsdWVGcm9tTW9tZW50KHZhbHVlOiBtb21lbnQuTW9tZW50IHwgbnVsbCk6IHZvaWQge1xyXG4gICAgdGhpcy5TZXRWYWx1ZSh2YWx1ZS5mb3JtYXQoSW5wdXREYXRlQ29tcG9uZW50LkZvcm1hdElTTykpO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZCgnY2FsZW5kYXInKSBjYWxlbmRhcjogTWF0Q2FsZW5kYXI8bW9tZW50Lk1vbWVudD47XHJcbiAgLyoqXHJcbiAgICogQHBhcmFtIG9iaiBTdHJpbmcgaW4gSVNPIGZvcm1hdCAoWVlZWS1NTS1ERFRoaDptbTpzcylcclxuICAgKi9cclxuICBvdmVycmlkZSBTZXRWYWx1ZShvYmo6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZS5zZXQob2JqKTtcclxuICAgIHRoaXMubW9tZW50VmFsdWUgICA9IG1vbWVudCh0aGlzLnZhbHVlKCksIElucHV0RGF0ZUNvbXBvbmVudC5Gb3JtYXRJU08sIHRydWUpO1xyXG4gICAgdGhpcy5yZWFkYWJsZVZhbHVlID0gdGhpcy5tb21lbnRWYWx1ZS5mb3JtYXQodGhpcy5tb21lbnRGb3JtYXQudG9TdHJpbmcoKSk7XHJcbiAgICB0aGlzLmNhbGVuZGFyLmFjdGl2ZURhdGUgPSB0aGlzLm1vbWVudFZhbHVlOyAvLyBzZXQgdGhlIGFjdGl2ZSBkYXRlIHRvIHRoZSBzZWxlY3RlZCBkYXRlXHJcbiAgICB0aGlzLmNhbGVuZGFyLnVwZGF0ZVRvZGF5c0RhdGUoKTsgLy8gdXBkYXRlIGNhbGVuZGFyIHN0YXRlXHJcbiAgICB0aGlzLmhvdXIgICA9IHRoaXMubW9tZW50VmFsdWUuZ2V0KCdob3VyJykudG9TdHJpbmcoKS5wYWRTdGFydCgyLCcwJyk7XHJcbiAgICB0aGlzLm1pbnV0ZSA9IHRoaXMubW9tZW50VmFsdWUuZ2V0KCdtaW51dGUnKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsJzAnKTtcclxuICAgIHRoaXMucnVuVmFsaWRhdGlvbigpO1xyXG4gICAgaWYodGhpcy5tb21lbnRWYWx1ZS5pc1ZhbGlkKCkpe1xyXG4gICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZShvYmopO1xyXG4gICAgfSBlbHNle1xyXG4gICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZShudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1vbWVudFZhbHVlPzogbW9tZW50Lk1vbWVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChJb25EYXRldGltZSkgZGF0ZXRpbWU6IElvbkRhdGV0aW1lO1xyXG4gIFxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUob2JqOiBzdHJpbmcpOiB2b2lkIHwgUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnZhbHVlLnNldChvYmopO1xyXG5cclxuICAgIHRoaXMubW9tZW50VmFsdWUgICA9IG1vbWVudCh0aGlzLnZhbHVlKCksIElucHV0RGF0ZUNvbXBvbmVudC5Gb3JtYXRJU08sIHRydWUpO1xyXG4gICAgdGhpcy5yZWFkYWJsZVZhbHVlID0gdGhpcy5tb21lbnRWYWx1ZS5mb3JtYXQodGhpcy5tb21lbnRGb3JtYXQudG9TdHJpbmcoKSk7XHJcbiAgICB0aGlzLmhvdXIgICA9IHRoaXMubW9tZW50VmFsdWUuZ2V0KCdob3VyJykudG9TdHJpbmcoKS5wYWRTdGFydCgyLCcwJyk7XHJcbiAgICB0aGlzLm1pbnV0ZSA9IHRoaXMubW9tZW50VmFsdWUuZ2V0KCdtaW51dGUnKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsJzAnKTtcclxuICAgIHRoaXMucnVuVmFsaWRhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZChTSW9uUG9wb3ZlckNvbXBvbmVudCkgcG9wb3ZlcjogU0lvblBvcG92ZXJDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChJb25Nb2RhbCkgbW9kYWw6IElvbk1vZGFsO1xyXG4gIGFzeW5jIFByZXNlbnQoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmKHRoaXMuaW50ZXJmYWNlKCkgPT0gRGF0ZUludGVyZmFjZXMuUG9wb3Zlcil7XHJcbiAgICAgIHJldHVybiB0aGlzLnBvcG92ZXIucHJlc2VudChldmVudCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5tb2RhbC5wcmVzZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBEaXNtaXNzKCkge1xyXG4gICAgaWYodGhpcy5wb3BvdmVyKXtcclxuICAgICAgdGhpcy5wb3BvdmVyLmRpc21pc3MoKTtcclxuICAgIH1cclxuICAgIGlmKHRoaXMubW9kYWwpe1xyXG4gICAgICB0aGlzLm1vZGFsLmRpc21pc3MoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIERhdGVQcmVzZW50YXRpb24gPSBEYXRlUHJlc2VudGF0aW9uO1xyXG5cclxuICBsc3RIb3VycyA9IGxzdEhvdXJzO1xyXG4gIGxzdE1pbnV0ZXMgPSBsc3RNaW51dGVzO1xyXG5cclxuICBob3VyICA6IHN0cmluZyA9ICcwMCc7XHJcbiAgbWludXRlOiBzdHJpbmcgPSAnMDAnO1xyXG5cclxuICBPbkNoYW5nZUhvdXIoZXZlbnQ6IHN0cmluZykge1xyXG4gICAgaWYoZXZlbnQgPT0gdGhpcy5ob3VyKSB7IHJldHVybjsgfVxyXG4gICAgdGhpcy5ob3VyID0gZXZlbnQ7XHJcbiAgICB0aGlzLm1vbWVudFZhbHVlLnNldCgnaG91cicsIE51bWJlcihldmVudCkpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5tb21lbnRWYWx1ZSk7XHJcbiAgICB0aGlzLlNldFZhbHVlRnJvbU1vbWVudCh0aGlzLm1vbWVudFZhbHVlKTtcclxuICB9XHJcbiAgT25DaGFuZ2VNaW51dGUoZXZlbnQ6IHN0cmluZykge1xyXG4gICAgaWYoZXZlbnQgPT0gdGhpcy5taW51dGUpIHsgcmV0dXJuOyB9XHJcbiAgICB0aGlzLm1pbnV0ZSA9IGV2ZW50O1xyXG4gICAgdGhpcy5tb21lbnRWYWx1ZS5zZXQoJ21pbnV0ZScsIE51bWJlcihldmVudCkpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5tb21lbnRWYWx1ZSk7XHJcbiAgICB0aGlzLlNldFZhbHVlRnJvbU1vbWVudCh0aGlzLm1vbWVudFZhbHVlKTtcclxuICB9XHJcbn1cclxuXHJcblxyXG5lbnVtIERhdGVQcmVzZW50YXRpb24ge1xyXG4gIERhdGVUaW1lID0gMSxcclxuICBEYXRlICAgICA9IDIsXHJcbiAgVGltZSAgICAgPSAzXHJcbn1cclxuZW51bSBEYXRlSW50ZXJmYWNlc3tcclxuICBQb3BvdmVyID0gMSxcclxuICBNb2RhbCAgID0gMixcclxufVxyXG5cclxuY29uc3QgbHN0SG91cnMgPSBBcnJheS5mcm9tKEFycmF5KDI0KS5rZXlzKCkpLm1hcChpID0+IGkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCcwJykpO1xyXG5jb25zdCBsc3RNaW51dGVzID0gQXJyYXkuZnJvbShBcnJheSg2MCkua2V5cygpKS5tYXAoaSA9PiBpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwnMCcpKTsiLCI8ZGl2IFxyXG4gICNpbnB1dENvbnRhaW5lclxyXG4gIGNsYXNzPVwiaW5wdXQtY29udGFpbmVyXCIgXHJcbiAgKGNsaWNrKT1cInNldEZvY3VzKCRldmVudClcIlxyXG4gIFtjbGFzcy5yZXF1aXJlZF09XCJyZXF1aXJlZCgpXCIgXHJcbiAgW2NsYXNzLnN1Ym1pdHRlZF09XCJzdWJtaXR0ZWQoKVwiIFxyXG4gIFtjbGFzcy5pbnZhbGlkXT1cImludmFsaWRcIiBcclxuICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWQoKSB8fCBsb2FkaW5nKClcIlxyXG4gIFtjbGFzcy5sb2FkaW5nXT1cImxvYWRpbmcoKVwiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtbGFiZWxcIj4gXHJcbiAgICA8c3BhbiBjbGFzcz1cInRydW5jYXRlXCI+XHJcbiAgICAgIHt7bGFiZWwoKX19IFxyXG4gICAgPC9zcGFuPlxyXG4gIDwvZGl2PlxyXG4gIFxyXG4gIDxpbnB1dCAjaW5wdXRcclxuICAgIFtuZ01vZGVsXT1cInJlYWRhYmxlVmFsdWVcIiBcclxuICAgIChuZ01vZGVsQ2hhbmdlKT1cIlNldFZhbHVlRnJvbVJlYWRhYmxlKCRldmVudCk7XCJcclxuICAgIFttYXNraXRvXT1cIm9wdGlvbnNcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKCkgfHwgbG9hZGluZygpXCJcclxuICAgIChibHVyKT1cImJsdXIuZW1pdCgkZXZlbnQpXCJcclxuICAvPlxyXG4gIFxyXG4gIDxpb24tYnV0dG9uIHRhYmluZGV4PVwiLTFcIiBjbGFzcz1cImFic29sdXRlIHJpZ2h0LTEgYm90dG9tLTFcIiAoY2xpY2spPVwiUHJlc2VudCgkZXZlbnQpXCIgY29sb3I9XCJtZWRpdW1cIiBzaXplPVwic21hbGxcIiBmaWxsPVwiY2xlYXJcIiBzdHlsZT1cIi0tYm9yZGVyLXJhZGl1czogLjVyZW1cIj5cclxuICAgIDxpb24taWNvbiBbbmFtZV09XCJwcmVzZW50YXRpb24gPT0gRGF0ZVByZXNlbnRhdGlvbi5UaW1lID8gJ3RpbWUnIDogJ2NhbGVuZGFyJ1wiIHNsb3Q9XCJpY29uLW9ubHlcIj48L2lvbi1pY29uPlxyXG4gIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImxvYWRpbmctY29udGFpbmVyXCIgW2NsYXNzLmxvYWRpbmddPVwibG9hZGluZygpXCI+XHJcbiAgICA8aW9uLXNwaW5uZXI+PC9pb24tc3Bpbm5lcj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG5AaWYgKGludGVyZmFjZSgpID09IERhdGVJbnRlcmZhY2VzLlBvcG92ZXIpIHtcclxuICA8c2lvbi1wb3BvdmVyXHJcbiAgICAjcG9wb3ZlciBcclxuICAgIFthbmNob3JdPVwiaW5wdXRDb250YWluZXJcIlxyXG4gID5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRldGltZVRlbXBsYXRlO1wiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvc2lvbi1wb3BvdmVyPlxyXG59XHJcbkBlbHNlIHtcclxuICA8aW9uLW1vZGFsIFxyXG4gICAgI21vZGFsXHJcbiAgICBbY2xhc3MudGltZV09XCJwcmVzZW50YXRpb24gPT0gRGF0ZVByZXNlbnRhdGlvbi5UaW1lXCIgXHJcbiAgICBbY2xhc3MuZGF0ZV09XCJwcmVzZW50YXRpb24gPT0gRGF0ZVByZXNlbnRhdGlvbi5EYXRlXCIgXHJcbiAgICBbY2xhc3MuZGF0ZXRpbWVdPVwicHJlc2VudGF0aW9uID09IERhdGVQcmVzZW50YXRpb24uRGF0ZVRpbWVcIlxyXG4gID5cclxuICAgIDxuZy10ZW1wbGF0ZT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRhdGV0aW1lVGVtcGxhdGU7XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvaW9uLW1vZGFsPlxyXG59XHJcblxyXG5cclxuPG5nLXRlbXBsYXRlICNkYXRldGltZVRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBiZy1bLS1pb24tY29sb3ItbGlnaHRdIHJvdW5kZWQteGxcIiB0YWJpbmRleD1cIi0xXCI+XHJcbiAgICBcclxuICAgIEBpZiAoW0RhdGVQcmVzZW50YXRpb24uRGF0ZVRpbWUsIERhdGVQcmVzZW50YXRpb24uRGF0ZV0uaW5jbHVkZXMocHJlc2VudGF0aW9uKSkge1xyXG4gICAgICA8bWF0LWNhbGVuZGFyICNjYWxlbmRhciBjbGFzcz1cInctNzIgdGV4dC1kYXJrXCIgXHJcbiAgICAgICAgWyhzZWxlY3RlZCldPVwibW9tZW50VmFsdWVcIiBcclxuICAgICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwiU2V0VmFsdWVGcm9tTW9tZW50KCRldmVudClcIlxyXG4gICAgICA+PC9tYXQtY2FsZW5kYXI+XHJcbiAgICB9XHJcbiAgICBAaWYgKFtEYXRlUHJlc2VudGF0aW9uLkRhdGVUaW1lLCBEYXRlUHJlc2VudGF0aW9uLlRpbWVdLmluY2x1ZGVzKHByZXNlbnRhdGlvbikpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaC1mdWxsIG1hc2steS8zMCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cclxuICAgICAgICA8aW9uLXBpY2tlcj5cclxuICAgICAgICAgIDxpb24tcGlja2VyLWNvbHVtbiAoaW9uQ2hhbmdlKT1cIk9uQ2hhbmdlSG91cigkZXZlbnQudGFyZ2V0LnZhbHVlLnRvU3RyaW5nKCkpXCIgW3ZhbHVlXT1cImhvdXJcIj5cclxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBsc3RIb3VyczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgPGlvbi1waWNrZXItY29sdW1uLW9wdGlvbiBbdmFsdWVdPVwiaXRlbVwiPnt7aXRlbX19PC9pb24tcGlja2VyLWNvbHVtbi1vcHRpb24+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvaW9uLXBpY2tlci1jb2x1bW4+XHJcbiAgICAgICAgICA8aW9uLXBpY2tlci1jb2x1bW4gKGlvbkNoYW5nZSk9XCJPbkNoYW5nZU1pbnV0ZSgkZXZlbnQudGFyZ2V0LnZhbHVlLnRvU3RyaW5nKCkpXCIgW3ZhbHVlXT1cIm1pbnV0ZVwiPlxyXG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIGxzdE1pbnV0ZXM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgIDxpb24tcGlja2VyLWNvbHVtbi1vcHRpb24gW3ZhbHVlXT1cIml0ZW1cIj57e2l0ZW19fTwvaW9uLXBpY2tlci1jb2x1bW4tb3B0aW9uPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2lvbi1waWNrZXItY29sdW1uPlxyXG4gICAgICAgIDwvaW9uLXBpY2tlcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcblxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
@@ -24,6 +24,10 @@ import { InputCepComponent } from './input-cep/input-cep.component';
|
|
|
24
24
|
import { InputTelefoneComponent } from './input-telefone/input-telefone.component';
|
|
25
25
|
import { InputIconComponent } from './input-icon/input-icon.component';
|
|
26
26
|
import { OverlayModule } from '@angular/cdk/overlay';
|
|
27
|
+
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
28
|
+
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
|
|
29
|
+
import { MAT_MOMENT_DATE_FORMATS, MomentDateAdapter } from '@angular/material-moment-adapter';
|
|
30
|
+
import { MatCardModule } from '@angular/material/card';
|
|
27
31
|
import * as i0 from "@angular/core";
|
|
28
32
|
const lstComponents = [
|
|
29
33
|
InputBoolComponent,
|
|
@@ -69,7 +73,9 @@ export class InputsModule {
|
|
|
69
73
|
SIonPopoverModule,
|
|
70
74
|
LoadingComponent,
|
|
71
75
|
NgVarDirective,
|
|
72
|
-
OverlayModule
|
|
76
|
+
OverlayModule,
|
|
77
|
+
MatDatepickerModule,
|
|
78
|
+
MatCardModule], exports: [InputBoolComponent,
|
|
73
79
|
InputCepComponent,
|
|
74
80
|
InputColorComponent,
|
|
75
81
|
InputCpfCnpjComponent,
|
|
@@ -85,14 +91,19 @@ export class InputsModule {
|
|
|
85
91
|
InputTelefoneComponent,
|
|
86
92
|
InputTextareaComponent,
|
|
87
93
|
DownloadButtonComponent] }); }
|
|
88
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputsModule,
|
|
94
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputsModule, providers: [
|
|
95
|
+
{ provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },
|
|
96
|
+
{ provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },
|
|
97
|
+
], imports: [IonicModule,
|
|
89
98
|
CommonModule,
|
|
90
99
|
ReactiveFormsModule,
|
|
91
100
|
FormsModule,
|
|
92
101
|
ImageComponent,
|
|
93
102
|
SIonPopoverModule,
|
|
94
103
|
LoadingComponent,
|
|
95
|
-
OverlayModule
|
|
104
|
+
OverlayModule,
|
|
105
|
+
MatDatepickerModule,
|
|
106
|
+
MatCardModule] }); }
|
|
96
107
|
}
|
|
97
108
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputsModule, decorators: [{
|
|
98
109
|
type: NgModule,
|
|
@@ -109,8 +120,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
109
120
|
SIonPopoverModule,
|
|
110
121
|
LoadingComponent,
|
|
111
122
|
NgVarDirective,
|
|
112
|
-
OverlayModule
|
|
123
|
+
OverlayModule,
|
|
124
|
+
MatDatepickerModule,
|
|
125
|
+
MatCardModule
|
|
126
|
+
],
|
|
127
|
+
providers: [
|
|
128
|
+
{ provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },
|
|
129
|
+
{ provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },
|
|
113
130
|
]
|
|
114
131
|
}]
|
|
115
132
|
}] });
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNyRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFB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QUU7b0JBQ2xDLE9BQU8sRUFBTyxDQUFFLEdBQUcsYUFBYSxDQUFFO29CQUNsQyxPQUFPLEVBQUU7d0JBQ1AsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLGFBQWE7cUJBQ2Q7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULEVBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUM7d0JBQzVFLEVBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSx1QkFBdUIsRUFBQztxQkFDL0Q7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWFza2l0b0RpcmVjdGl2ZSB9IGZyb20gJ0BtYXNraXRvL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IElucHV0VGV4dGFyZWFDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LXRleHRhcmVhL2lucHV0LXRleHRhcmVhLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElucHV0U3RyaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC1zdHJpbmcvaW5wdXQtc3RyaW5nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElucHV0RGVjaW1hbENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtZGVjaW1hbC9pbnB1dC1kZWNpbWFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElucHV0Qm9vbENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtYm9vbC9pbnB1dC1ib29sLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElucHV0RmlsZUNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtZmlsZS9pbnB1dC1maWxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5wdXREYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC1kYXRlL2lucHV0LWRhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5wdXRTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LXNlbGVjdC9pbnB1dC1zZWxlY3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU0lvblBvcG92ZXJNb2R1bGUgfSBmcm9tICcuLi9wb3BvdmVyL3Npb24tcG9wb3Zlci5tb2R1bGUnO1xyXG5pbXBvcnQgeyBTSW9uTGFiZWxUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vaW5wdXQtc2VsZWN0L2RpcmVjdGl2ZXMvc2lvbi1sYWJlbC10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTSW9uT3B0aW9uVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuL2lucHV0LXNlbGVjdC9kaXJlY3RpdmVzL3Npb24tb3B0aW9uLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNJb25QbGFjZWhvbGRlclRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9pbnB1dC1zZWxlY3QvZGlyZWN0aXZlcy9zaW9uLXBsYWNlaG9sZGVyLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IElucHV0Q3BmQ25wakNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtY3BmLWNucGovaW5wdXQtY3BmLWNucGouY29tcG9uZW50JztcclxuaW1wb3J0IHsgRG93bmxvYWRCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2lucHV0LWZpbGUvZG93bmxvYWQtYnV0dG9uL2Rvd25sb2FkLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5nVmFyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9uZy12YXIuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSW5wdXRDb2xvckNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtY29sb3IvaW5wdXQtY29sb3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5wdXRDZXBDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LWNlcC9pbnB1dC1jZXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5wdXRUZWxlZm9uZUNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtdGVsZWZvbmUvaW5wdXQtdGVsZWZvbmUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5wdXRJY29uQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC1pY29uL2lucHV0LWljb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgT3ZlcmxheU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xyXG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUywgTUFUX0RBVEVfTE9DQUxFIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE1BVF9NT01FTlRfREFURV9GT1JNQVRTLCBNb21lbnREYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyJztcclxuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xyXG5cclxuY29uc3QgbHN0Q29tcG9uZW50cyA9IFtcclxuICBJbnB1dEJvb2xDb21wb25lbnQsXHJcbiAgSW5wdXRDZXBDb21wb25lbnQsXHJcbiAgSW5wdXRDb2xvckNvbXBvbmVudCxcclxuICBJbnB1dENwZkNucGpDb21wb25lbnQsXHJcbiAgSW5wdXREYXRlQ29tcG9uZW50LFxyXG4gIElucHV0RGVjaW1hbENvbXBvbmVudCxcclxuICBJbnB1dEZpbGVDb21wb25lbnQsXHJcbiAgSW5wdXRJY29uQ29tcG9uZW50LFxyXG4gIElucHV0U2VsZWN0Q29tcG9uZW50LFxyXG4gICAgU0lvbkxhYmVsVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgICBTSW9uT3B0aW9uVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgICBTSW9uUGxhY2Vob2xkZXJUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBJbnB1dFN0cmluZ0NvbXBvbmVudCxcclxuICBJbnB1dFRlbGVmb25lQ29tcG9uZW50LFxyXG4gIElucHV0VGV4dGFyZWFDb21wb25lbnQsXHJcbiAgRG93bmxvYWRCdXR0b25Db21wb25lbnQsXHJcbl1cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbIC4uLmxzdENvbXBvbmVudHMgXSxcclxuICBleHBvcnRzICAgICA6IFsgLi4ubHN0Q29tcG9uZW50cyBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIElvbmljTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgSW1hZ2VDb21wb25lbnQsXHJcbiAgICBNYXNraXRvRGlyZWN0aXZlLFxyXG4gICAgU0lvblBvcG92ZXJNb2R1bGUsXHJcbiAgICBMb2FkaW5nQ29tcG9uZW50LFxyXG4gICAgTmdWYXJEaXJlY3RpdmUsXHJcbiAgICBPdmVybGF5TW9kdWxlLFxyXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcclxuICAgIE1hdENhcmRNb2R1bGVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge3Byb3ZpZGU6IERhdGVBZGFwdGVyLCB1c2VDbGFzczogTW9tZW50RGF0ZUFkYXB0ZXIsIGRlcHM6IFtNQVRfREFURV9MT0NBTEVdfSxcclxuICAgIHtwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogTUFUX01PTUVOVF9EQVRFX0ZPUk1BVFN9LFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0c01vZHVsZSB7IH1cclxuIl19
|