@sapphire-ion/framework 0.30.17 → 1.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/esm2022/lib/classes/inputs/table-field.mjs +8 -2
- package/esm2022/lib/components/default/default-list/list.mjs +1 -1
- package/esm2022/lib/components/default/default-table/default-table.component.mjs +18 -6
- package/esm2022/lib/components/default/default-table/th-filter/th-filter.component.mjs +12 -11
- package/esm2022/lib/components/default/default-view/default-view.component.mjs +10 -10
- package/esm2022/lib/components/default/default.module.mjs +12 -4
- package/esm2022/lib/components/filter/filter.component.mjs +2 -2
- package/esm2022/lib/components/inputs/custom-input.mjs +57 -49
- package/esm2022/lib/components/inputs/input-bool/input-bool.component.mjs +31 -34
- package/esm2022/lib/components/inputs/input-bool/input-bool.configuration.mjs +4 -4
- package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.mjs +33 -46
- package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.mjs +2 -2
- package/esm2022/lib/components/inputs/input-date/input-date.component.mjs +86 -97
- package/esm2022/lib/components/inputs/input-decimal/input-decimal.component.mjs +158 -190
- package/esm2022/lib/components/inputs/input-decimal/input-decimal.configuration.mjs +6 -1
- package/esm2022/lib/components/inputs/input-file/download-button/download-button.component.mjs +12 -10
- package/esm2022/lib/components/inputs/input-file/input-file.component.mjs +60 -98
- package/esm2022/lib/components/inputs/input-file/input-file.configuration.mjs +18 -5
- package/esm2022/lib/components/inputs/input-provider-factory.mjs +4 -7
- package/esm2022/lib/components/inputs/input-select/directives/sion-label-template.directive.mjs +16 -0
- package/esm2022/lib/components/inputs/input-select/directives/sion-option-template.directive.mjs +18 -0
- package/esm2022/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.mjs +16 -0
- package/esm2022/lib/components/inputs/input-select/input-select.component.mjs +233 -264
- package/esm2022/lib/components/inputs/input-select/input.select.configuration.mjs +45 -29
- package/esm2022/lib/components/inputs/input-string/input-string.component.mjs +27 -42
- package/esm2022/lib/components/inputs/input-string/input-string.configuration.mjs +1 -1
- package/esm2022/lib/components/inputs/input-textarea/input-textarea.component.mjs +26 -38
- package/esm2022/lib/components/inputs/input-textarea/input-textarea.configuration.mjs +7 -0
- package/esm2022/lib/components/inputs/inputs.module.mjs +72 -81
- package/esm2022/lib/components/login/login-admin/login-admin.component.mjs +1 -1
- package/esm2022/lib/components/popover/sion-popover/sion-popover.component.mjs +132 -0
- package/esm2022/lib/components/popover/sion-popover.module.mjs +23 -0
- package/esm2022/lib/components/popover/sion-popover.service.mjs +33 -0
- package/esm2022/lib/components/stepper/step/step.component.mjs +3 -3
- package/esm2022/lib/components/stepper/stepper.component.mjs +13 -13
- package/esm2022/lib/guards/error.interceptor.mjs +2 -2
- package/esm2022/lib/index.mjs +10 -6
- package/esm2022/lib/services/utils.service.mjs +3 -3
- package/esm2022/lib/services/web/api-url-provider.service.mjs +2 -2
- package/esm2022/lib/services/web/http.ativo.service.mjs +2 -2
- package/fesm2022/sapphire-ion-framework.mjs +1200 -1737
- package/fesm2022/sapphire-ion-framework.mjs.map +1 -1
- package/lib/classes/inputs/table-field.d.ts +1 -0
- package/lib/components/default/default.module.d.ts +3 -1
- package/lib/components/inputs/custom-input.d.ts +26 -22
- package/lib/components/inputs/input-bool/input-bool.component.d.ts +13 -16
- package/lib/components/inputs/input-bool/input-bool.configuration.d.ts +2 -2
- package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.d.ts +13 -18
- package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.d.ts +1 -1
- package/lib/components/inputs/input-date/input-date.component.d.ts +21 -24
- package/lib/components/inputs/input-decimal/input-decimal.component.d.ts +21 -36
- package/lib/components/inputs/input-decimal/input-decimal.configuration.d.ts +3 -0
- package/lib/components/inputs/input-file/download-button/download-button.component.d.ts +2 -1
- package/lib/components/inputs/input-file/input-file.component.d.ts +20 -32
- package/lib/components/inputs/input-file/input-file.configuration.d.ts +2 -5
- package/lib/components/inputs/input-provider-factory.d.ts +1 -1
- package/lib/components/inputs/input-select/directives/sion-label-template.directive.d.ts +12 -0
- package/lib/components/inputs/input-select/directives/sion-option-template.directive.d.ts +11 -0
- package/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.d.ts +12 -0
- package/lib/components/inputs/input-select/input-select.component.d.ts +60 -58
- package/lib/components/inputs/input-select/input.select.configuration.d.ts +11 -9
- package/lib/components/inputs/input-string/input-string.component.d.ts +11 -16
- package/lib/components/inputs/input-textarea/input-textarea.component.d.ts +11 -15
- package/lib/components/inputs/input-textarea/input-textarea.configuration.d.ts +4 -0
- package/lib/components/inputs/inputs.module.d.ts +18 -21
- package/lib/components/popover/sion-popover/sion-popover.component.d.ts +30 -0
- package/lib/components/popover/sion-popover.module.d.ts +8 -0
- package/lib/components/popover/sion-popover.service.d.ts +12 -0
- package/lib/components/stepper/step/step.component.d.ts +1 -1
- package/lib/components/stepper/stepper.component.d.ts +3 -6
- package/lib/index.d.ts +5 -4
- package/lib/services/utils.service.d.ts +1 -1
- package/package.json +2 -1
- package/themes/compiled-styles.scss +157 -4
- package/themes/components/default/default-table/default-table.component.scss +0 -13
- package/themes/components/default/default-table/th-filter/th-filter.component.scss +0 -3
- package/themes/components/inputs/input-bool/input-bool.component.scss +2 -13
- package/themes/components/inputs/input-date/input-date.component.scss +33 -34
- package/themes/components/inputs/input-decimal/input-decimal.component.scss +8 -42
- package/themes/components/inputs/input-file/input-file.component.scss +16 -2
- package/themes/components/inputs/input-select/input-select.component.scss +47 -24
- package/themes/components/inputs/input-textarea/input-textarea.component.scss +7 -0
- package/themes/components/inputs/inputs.scss +103 -49
- package/themes/components/inputs_old/inputs.scss +67 -0
- package/themes/components/popover/sion-popover/sion-popover.component.scss +48 -0
- package/themes/styles/components.scss +34 -0
- package/themes/styles/ionic/ion-datetime.scss +3 -2
- package/esm2022/lib/components/inputs/custom-signal-input.mjs +0 -74
- package/esm2022/lib/components/inputs/input-color/input-color.component.mjs +0 -487
- package/esm2022/lib/components/inputs/input-loading/input-loading.component.mjs +0 -16
- package/esm2022/lib/components/inputs/input-select/ISelect.mjs +0 -11
- package/esm2022/lib/components/inputs/input-select/input-select-internal-option/input-select-internal-option.component.mjs +0 -42
- package/esm2022/lib/components/inputs/input-select/input-select-option/input-select-option.component.mjs +0 -46
- package/esm2022/lib/components/inputs/input-select/input-select-template.directive.mjs +0 -16
- package/lib/components/inputs/custom-signal-input.d.ts +0 -38
- package/lib/components/inputs/input-color/input-color.component.d.ts +0 -80
- package/lib/components/inputs/input-loading/input-loading.component.d.ts +0 -7
- package/lib/components/inputs/input-select/ISelect.d.ts +0 -21
- package/lib/components/inputs/input-select/input-select-internal-option/input-select-internal-option.component.d.ts +0 -18
- package/lib/components/inputs/input-select/input-select-option/input-select-option.component.d.ts +0 -24
- package/lib/components/inputs/input-select/input-select-template.directive.d.ts +0 -8
- package/themes/components/inputs/input-loading/input-loading.component.scss +0 -0
- package/themes/components/inputs/input-select/input-select-internal-option/input-select-internal-option.component.scss +0 -0
- package/themes/components/inputs/input-select/input-select-option/input-select-option.component.scss +0 -0
- /package/themes/components/{inputs → inputs_old}/input-color/input-color.component.scss +0 -0
|
@@ -1,122 +1,111 @@
|
|
|
1
|
-
import { Component, ElementRef,
|
|
2
|
-
import {
|
|
1
|
+
import { Component, ElementRef, input, ViewChild } from '@angular/core';
|
|
2
|
+
import { maskitoDateTimeOptionsGenerator } from '@maskito/kit';
|
|
3
|
+
import { maskitoDateOptionsGenerator } from '@maskito/kit';
|
|
4
|
+
import { maskitoTimeOptionsGenerator } from '@maskito/kit';
|
|
3
5
|
import moment from 'moment';
|
|
4
6
|
import { InputDateConfiguration } from './input-date.configuration';
|
|
5
7
|
import { InputProviderFactory } from '../input-provider-factory';
|
|
6
8
|
import { CustomInput } from '../custom-input';
|
|
7
|
-
import {
|
|
9
|
+
import { IonDatetime } from '@ionic/angular';
|
|
8
10
|
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@angular
|
|
11
|
+
import * as i1 from "@ionic/angular";
|
|
10
12
|
import * as i2 from "@angular/common";
|
|
11
|
-
import * as i3 from "@
|
|
12
|
-
import * as i4 from "
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
import * as i3 from "@angular/forms";
|
|
14
|
+
import * as i4 from "@maskito/angular";
|
|
15
|
+
import * as i5 from "../../popover/sion-popover/sion-popover.component";
|
|
16
|
+
export class NewInputDateComponent extends CustomInput {
|
|
17
|
+
focus(event) {
|
|
18
|
+
if (this.input && event.target == this.inputContainer.nativeElement) {
|
|
19
|
+
this.input.nativeElement.focus();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
constructor(elementRef) {
|
|
15
23
|
super();
|
|
16
|
-
this.controlContainer = controlContainer;
|
|
17
24
|
this.elementRef = elementRef;
|
|
18
|
-
this.configuration = new InputDateConfiguration();
|
|
25
|
+
this.configuration = input(new InputDateConfiguration());
|
|
26
|
+
this.dtValue = null;
|
|
19
27
|
this.presentation = "date-time";
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
this.presentation = this.elementRef.nativeElement.tagName.toLowerCase().replace('input-', '');
|
|
29
|
+
if (this.presentation == "date-time") {
|
|
30
|
+
this.momentFormat = 'DD/MM/YYYY HH:mm';
|
|
31
|
+
this.options = maskitoDateTimeOptionsGenerator({
|
|
32
|
+
dateMode: 'dd/mm/yyyy',
|
|
33
|
+
timeMode: 'HH:MM',
|
|
34
|
+
dateSeparator: '/',
|
|
35
|
+
dateTimeSeparator: ' ',
|
|
36
|
+
timeStep: 1,
|
|
37
|
+
});
|
|
30
38
|
}
|
|
31
|
-
if (
|
|
32
|
-
this.
|
|
39
|
+
else if (this.presentation == "date") {
|
|
40
|
+
this.momentFormat = 'DD/MM/YYYY';
|
|
41
|
+
this.options = maskitoDateOptionsGenerator({ mode: 'dd/mm/yyyy', separator: '/' });
|
|
33
42
|
}
|
|
34
|
-
if (
|
|
35
|
-
this.
|
|
43
|
+
else if (this.presentation == "time") {
|
|
44
|
+
this.momentFormat = 'HH:mm';
|
|
45
|
+
this.options = maskitoTimeOptionsGenerator({
|
|
46
|
+
mode: 'HH:MM',
|
|
47
|
+
step: 1,
|
|
48
|
+
});
|
|
36
49
|
}
|
|
37
50
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
+
SetValue(value, fromDateTime = false) {
|
|
52
|
+
if (fromDateTime) {
|
|
53
|
+
this.dtValue = moment(value, moment.ISO_8601, true).format(this.momentFormat.toString());
|
|
54
|
+
this.value.set(value);
|
|
55
|
+
this.runValidation();
|
|
56
|
+
this.propagateChange(this.value());
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
value = value.replace('Z', '');
|
|
60
|
+
if (['date-time', 'date'].includes(this.presentation)) {
|
|
61
|
+
const date = moment(value, this.momentFormat, true).utc(false);
|
|
62
|
+
if (date.isValid() || !value) {
|
|
63
|
+
if (value) {
|
|
64
|
+
this.value.set(date.format().replace('Z', ''));
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
this.value.set(null);
|
|
68
|
+
}
|
|
69
|
+
this.runValidation();
|
|
70
|
+
this.propagateChange(this.value());
|
|
51
71
|
}
|
|
52
72
|
}
|
|
53
|
-
else {
|
|
54
|
-
this.
|
|
55
|
-
this.
|
|
73
|
+
else if (value.length == 5) {
|
|
74
|
+
this.value.set(value);
|
|
75
|
+
this.runValidation();
|
|
76
|
+
this.propagateChange(this.value());
|
|
56
77
|
}
|
|
57
78
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
return null; }
|
|
63
|
-
set model(value) { this._model = value; this.propagateChange(this._model); }
|
|
64
|
-
setModel(value) {
|
|
65
|
-
this._model = value;
|
|
79
|
+
writeValue(obj) {
|
|
80
|
+
this.value.set(obj);
|
|
81
|
+
this.dtValue = moment(this.value(), moment.ISO_8601, true).format(this.momentFormat.toString());
|
|
82
|
+
this.runValidation();
|
|
66
83
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
Open() { if (!this.disabled) {
|
|
71
|
-
this.modal.present();
|
|
72
|
-
} }
|
|
73
|
-
Clear() {
|
|
74
|
-
this.dateModel = null;
|
|
75
|
-
this.DateTimeChange();
|
|
76
|
-
}
|
|
77
|
-
DateTimeChange() {
|
|
78
|
-
if (this.dateModel) {
|
|
79
|
-
if (this.presentation == 'time') {
|
|
80
|
-
if (this.dateModel.includes('T')) {
|
|
81
|
-
this.dateModel = this.dateModel.split('T')[1];
|
|
82
|
-
}
|
|
83
|
-
this.model = this.dateModel;
|
|
84
|
-
}
|
|
85
|
-
else if (this.presentation == 'date') {
|
|
86
|
-
this.model = this.dateModel.split('T')[0] + "T00:00:00";
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
this.model = this.dateModel;
|
|
90
|
-
}
|
|
84
|
+
async Present(modal, popover, event) {
|
|
85
|
+
if (window.innerWidth > window.innerHeight) {
|
|
86
|
+
return popover.present(event);
|
|
91
87
|
}
|
|
92
88
|
else {
|
|
93
|
-
|
|
89
|
+
return modal.present();
|
|
94
90
|
}
|
|
95
91
|
}
|
|
96
|
-
|
|
97
|
-
|
|
92
|
+
ChangeDate(v) {
|
|
93
|
+
this.SetValue(v.toString(), true);
|
|
94
|
+
}
|
|
95
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NewInputDateComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
96
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: NewInputDateComponent, selector: "input-date, input-date-time, input-time", inputs: { configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: true, isRequired: false, transformFunction: null } }, providers: [...InputProviderFactory.GetProviders(NewInputDateComponent)], 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)=\"focus($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 />\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\" 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 1px 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:transform;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", "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", "visibleChange"] }] }); }
|
|
98
97
|
}
|
|
99
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type:
|
|
98
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NewInputDateComponent, decorators: [{
|
|
100
99
|
type: Component,
|
|
101
|
-
args: [{ selector: 'input-date, input-date-time, input-time', providers: InputProviderFactory.
|
|
102
|
-
}], ctorParameters: () => [{ type:
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
type:
|
|
100
|
+
args: [{ selector: 'input-date, input-date-time, input-time', providers: [...InputProviderFactory.GetProviders(NewInputDateComponent)], template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"focus($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 />\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\" 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 1px 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:transform;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"] }]
|
|
101
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { input: [{
|
|
102
|
+
type: ViewChild,
|
|
103
|
+
args: ['input']
|
|
104
|
+
}], inputContainer: [{
|
|
105
|
+
type: ViewChild,
|
|
106
|
+
args: ['inputContainer']
|
|
107
|
+
}], datetime: [{
|
|
108
|
+
type: ViewChild,
|
|
109
|
+
args: [IonDatetime]
|
|
110
110
|
}] } });
|
|
111
|
-
const TimeTransform = ((v) => {
|
|
112
|
-
if (!v) {
|
|
113
|
-
return null;
|
|
114
|
-
}
|
|
115
|
-
if (v.split(':').length == 2) {
|
|
116
|
-
return v;
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
return v.split(':')[0] + ":" + v.split(':')[1];
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWRhdGUvaW5wdXQtZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWRhdGUvaW5wdXQtZGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEQsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7OztBQVF4RCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsV0FBbUI7SUFJekQsWUFFVyxnQkFBbUMsRUFDbkMsVUFBNkI7UUFDcEMsS0FBSyxFQUFFLENBQUM7UUFGRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ25DLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBTC9CLGtCQUFhLEdBQTJCLElBQUksc0JBQXNCLEVBQUUsQ0FBQztRQVF2RSxpQkFBWSxHQUEyQyxXQUFXLENBQUE7UUFDakUsY0FBUyxHQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FB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OEdBRmxCLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxpRENkakUsOG1FQXVDMkY7OzRGRHZCOUUsa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLHlDQUF5QyxhQUd4QyxvQkFBb0IsQ0FBQyxXQUFXLG9CQUFvQjs7MEJBTzVELFFBQVE7OzBCQUFJLElBQUk7OzBCQUFJLFFBQVE7a0VBSHRCLGFBQWE7c0JBQXJCLEtBQUs7O0FBd0VSLE1BQU0sYUFBYSxHQUFhLENBQUMsQ0FBQyxDQUFTLEVBQVUsRUFBRTtJQUNyRCxJQUFHLENBQUMsQ0FBQyxFQUFDLENBQUM7UUFBQyxPQUFPLElBQUksQ0FBQztJQUFDLENBQUM7SUFDdEIsSUFBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUMsQ0FBQztRQUMzQixPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7U0FBSSxDQUFDO1FBQ0osT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2hELENBQUM7QUFDSCxDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIFNraXBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IElvbk1vZGFsIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcblxyXG5pbXBvcnQgeyBJbnB1dERhdGVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9pbnB1dC1kYXRlLmNvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBJbnB1dFByb3ZpZGVyRmFjdG9yeSB9IGZyb20gJy4uL2lucHV0LXByb3ZpZGVyLWZhY3RvcnknO1xyXG5pbXBvcnQgeyBDdXN0b21JbnB1dCB9IGZyb20gJy4uL2N1c3RvbS1pbnB1dCc7XHJcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXRpbHMuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lucHV0LWRhdGUsIGlucHV0LWRhdGUtdGltZSwgaW5wdXQtdGltZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWRhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lucHV0LWRhdGUuY29tcG9uZW50LnNjc3MnLCAnLi4vaW5wdXRzLnNjc3MnXSxcclxuICBwcm92aWRlcnM6IElucHV0UHJvdmlkZXJGYWN0b3J5LkdldFByb3ZpZGVyKElucHV0RGF0ZUNvbXBvbmVudClcclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0RGF0ZUNvbXBvbmVudCBleHRlbmRzIEN1c3RvbUlucHV0PHN0cmluZz4gaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBjb25maWd1cmF0aW9uOiBJbnB1dERhdGVDb25maWd1cmF0aW9uID0gbmV3IElucHV0RGF0ZUNvbmZpZ3VyYXRpb24oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBAT3B0aW9uYWwoKSBASG9zdCgpIEBTa2lwU2VsZigpXHJcbiAgICBvdmVycmlkZSBjb250cm9sQ29udGFpbmVyIDogQ29udHJvbENvbnRhaW5lcixcclxuICAgIG92ZXJyaWRlIGVsZW1lbnRSZWYgICAgICAgOiBFbGVtZW50UmVmLFxyXG4gICkgeyBzdXBlcigpOyB0aGlzLkhhbmRsZVNlbGVjdG9yKCk7IH1cclxuXHJcbiAgcHVibGljIHByZXNlbnRhdGlvbjogXCJkYXRlLXRpbWVcIiB8IFwiZGF0ZVwiIHwgXCJ0aW1lXCIgfCBzdHJpbmcgPSBcImRhdGUtdGltZVwiXHJcbiAgcHJpdmF0ZSB0cmFuc2Zvcm06IEZ1bmN0aW9uID0gKCh2KSA9PiB7IGNvbnNvbGUud2FybihcIlsgQ29tcG9uZW50IGlzbid0IHJlYWR5IF1cIik7IH0pXHJcblxyXG4gIEhhbmRsZVNlbGVjdG9yKCl7XHJcbiAgICBjb25zdCBzZWxlY3Rvcjogc3RyaW5nID0gKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKSBhcyBzdHJpbmcpLnJlcGxhY2UoJ2lucHV0LScsICcnKTtcclxuICAgIHRoaXMucHJlc2VudGF0aW9uID0gc2VsZWN0b3I7XHJcbiAgICBcclxuICAgIGlmKHNlbGVjdG9yID09IFwiZGF0ZS10aW1lXCIpeyB0aGlzLnRyYW5zZm9ybSA9IFV0aWxzLkRhdGVJU09Ub0RETU1ZWVlZSEhNTSB9XHJcbiAgICBpZihzZWxlY3RvciA9PSBcImRhdGVcIikgICAgIHsgdGhpcy50cmFuc2Zvcm0gPSBVdGlscy5EYXRlSVNPVG9ERE1NWVlZWSB9XHJcbiAgICBpZihzZWxlY3RvciA9PSBcInRpbWVcIikgICAgIHsgdGhpcy50cmFuc2Zvcm0gPSBUaW1lVHJhbnNmb3JtIH1cclxuICB9XHJcblxyXG4gIGlkX21vZGFsOiBzdHJpbmcgPSBcIlwiO1xyXG4gIG92ZXJyaWRlIGFzeW5jIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIHRoaXMuaWRfbW9kYWwgPSBgJHt0aGlzLmZvcm1Db250cm9sTmFtZX0ke3RoaXMuaWR9JHtVdGlscy5HZW5lcmF0ZUdVSUQoKX0ke3RoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKX1gXHJcbiAgfVxyXG5cclxuICBkYXRlTW9kZWw6IHN0cmluZyB8IG51bGwgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCl7XHJcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgIGlmKFsnZGF0ZS10aW1lJywgJ2RhdGUnXS5pbmNsdWRlcyh0aGlzLnByZXNlbnRhdGlvbikpe1xyXG4gICAgICAgIHRoaXMuZGF0ZU1vZGVsID0gbW9tZW50KHZhbHVlKS50b0lTT1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuc2V0TW9kZWwodmFsdWUpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmRhdGVNb2RlbCA9IHRoaXMudHJhbnNmb3JtKHZhbHVlKTtcclxuICAgICAgICB0aGlzLnNldE1vZGVsKHRoaXMudHJhbnNmb3JtKHZhbHVlKSk7XHJcbiAgICAgIH1cclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmRhdGVNb2RlbCA9IG51bGw7XHJcbiAgICAgIHRoaXMuc2V0TW9kZWwobnVsbClcclxuICAgIH1cclxuICB9XHJcbiAgb3ZlcnJpZGUgZ2V0IG1vZGVsKCk6IHN0cmluZyAgICAgIHsgIGlmKHRoaXMuX21vZGVsICE9IG51bGwpeyByZXR1cm4gdGhpcy50cmFuc2Zvcm0odGhpcy5fbW9kZWwpOyB9IGVsc2UgcmV0dXJuIG51bGw7IH1cclxuICBvdmVycmlkZSBzZXQgbW9kZWwodmFsdWU6IHN0cmluZykgeyB0aGlzLl9tb2RlbCA9IHZhbHVlOyB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLl9tb2RlbCk7IH1cclxuICBzZXRNb2RlbCh2YWx1ZTogc3RyaW5nKXtcclxuICAgIHRoaXMuX21vZGVsID0gdmFsdWU7IFxyXG4gIH1cclxuICBcclxuICBnZXQgX3ZhbCgpICB7IHJldHVybiB0aGlzLm1vZGVsOyB9XHJcbiAgc2V0IF92YWwodikgeyB9XHJcblxyXG4gIGdldCBtb2RhbCgpeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pZF9tb2RhbCkgYXMgYW55IGFzIElvbk1vZGFsfVxyXG4gIE9wZW4oKXsgaWYoIXRoaXMuZGlzYWJsZWQpeyB0aGlzLm1vZGFsLnByZXNlbnQoKTsgfSB9XHJcblxyXG4gIENsZWFyKCl7IFxyXG4gICAgdGhpcy5kYXRlTW9kZWwgPSBudWxsO1xyXG4gICAgdGhpcy5EYXRlVGltZUNoYW5nZSgpO1xyXG4gIH1cclxuICBEYXRlVGltZUNoYW5nZSgpOiB2b2lke1xyXG4gICAgaWYodGhpcy5kYXRlTW9kZWwpe1xyXG4gICAgICBpZih0aGlzLnByZXNlbnRhdGlvbiA9PSAndGltZScpIHsgXHJcbiAgICAgICAgaWYodGhpcy5kYXRlTW9kZWwuaW5jbHVkZXMoJ1QnKSl7XHJcbiAgICAgICAgICB0aGlzLmRhdGVNb2RlbCA9IHRoaXMuZGF0ZU1vZGVsLnNwbGl0KCdUJylbMV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubW9kZWwgPSB0aGlzLmRhdGVNb2RlbDsgXHJcbiAgICAgIH0gZWxzZVxyXG4gICAgICBpZih0aGlzLnByZXNlbnRhdGlvbiA9PSAnZGF0ZScpIHsgdGhpcy5tb2RlbCA9IHRoaXMuZGF0ZU1vZGVsLnNwbGl0KCdUJylbMF0gKyBcIlQwMDowMDowMFwiIH0gZWxzZSB7IHRoaXMubW9kZWwgPSB0aGlzLmRhdGVNb2RlbCB9XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5tb2RlbCA9IHRoaXMuZGF0ZU1vZGVsXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5jb25zdCBUaW1lVHJhbnNmb3JtOiBGdW5jdGlvbiA9ICgodjogc3RyaW5nKTogc3RyaW5nID0+IHsgXHJcbiAgaWYoIXYpeyByZXR1cm4gbnVsbDsgfVxyXG4gIGlmKHYuc3BsaXQoJzonKS5sZW5ndGggPT0gMil7IFxyXG4gICAgcmV0dXJuIHY7IFxyXG4gIH1lbHNleyBcclxuICAgIHJldHVybiB2LnNwbGl0KCc6JylbMF0gKyBcIjpcIiArIHYuc3BsaXQoJzonKVsxXVxyXG4gIH0gICBcclxufSkiLCI8ZGl2IGNsYXNzPVwiZmxleCByZWxhdGl2ZSBvdmVyZmxvdy1oaWRkZW5cIj5cclxuICA8aW9uLWNhcmQgY2xhc3M9XCJmb2N1cy13aXRoaW46b24tZm9jdXMgaW9uLWNhcmQtaW5wdXRcIiBbZGlzYWJsZWRdPVwibG9hZGluZyB8fCBkaXNhYmxlZFwiXHJcbiAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICdpbnZhbGlkJyAgOiBpbnZhbGlkLFxyXG4gICAgICAnc3VibWl0dGVkJzogc3VibWl0dGVkLFxyXG4gICAgICAnZGlzYWJsZWQnIDogZGlzYWJsZWQsXHJcbiAgICAgICchYm9yZGVyLXItMCAhcm91bmRlZC1yLW5vbmUnOiBjb25maWd1cmF0aW9uLmNsZWFyYWJsZVxyXG4gICAgfVwiXHJcbiAgPlxyXG4gICAgPGlvbi1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDxpb24taXRlbSBsaW5lcz1cIm5vbmVcIiBjbGFzcz1cInctZnVsbCBkZWZhdWx0LXRyYW5zaXRpb25cIj5cclxuICAgICAgICA8aW9uLWlucHV0IChjbGljayk9XCJPcGVuKClcIiBbcmVhZG9ubHldPVwidHJ1ZVwiIGxhYmVsUGxhY2VtZW50PVwic3RhY2tlZFwiIGNsYXNzPVwiIW9wYWNpdHktMTAwXCIgWyhuZ01vZGVsKV09XCJfdmFsXCI+XHJcbiAgICAgICAgICA8aW9uLXRleHQgaWQ9XCJsYWJlbFwiIFtuZ0NsYXNzXT1cInsncmVxdWlyZWQnOiByZXF1aXJlZH1cIiBzbG90PVwibGFiZWxcIj4ge3tsYWJlbH19PC9pb24tdGV4dD5cclxuICAgICAgICA8L2lvbi1pbnB1dD5cclxuICAgICAgPC9pb24taXRlbT5cclxuICAgIDwvaW9uLWNhcmQtY29udGVudD5cclxuICA8L2lvbi1jYXJkPlxyXG4gIDxkaXYgY2xhc3M9XCJ3LTEyIHNocmluay0wXCIgW2hpZGRlbl09XCIhY29uZmlndXJhdGlvbi5jbGVhcmFibGVcIj4gXHJcbiAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiQ2xlYXIoKVwiW2Rpc2FibGVkXT1cImxvYWRpbmcgfHwgZGlzYWJsZWRcIiBjbGFzcz1cIm0tMCBoLWZ1bGwgdy1mdWxsIHJvdW5kZWQtci0yeGwgb24taG92ZXJcIiBzdHlsZT1cIi0tYm9yZGVyLXdpZHRoOiAxcHggMXB4IDJweCAxcHg7XCIgc2l6ZT1cInNtYWxsXCIgY29sb3I9XCJtZWRpdW1cIiBmaWxsPVwib3V0bGluZVwiPiBcclxuICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiYmFja3NwYWNlXCI+PC9pb24taWNvbj4gXHJcbiAgICA8L2lvbi1idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPGlucHV0LWxvYWRpbmcgW2xvYWRpbmddPVwibG9hZGluZ1wiPjwvaW5wdXQtbG9hZGluZz5cclxuPC9kaXY+XHJcblxyXG48aW9uLW1vZGFsIFtpZF09XCJpZF9tb2RhbFwiIFtrZWVwQ29udGVudHNNb3VudGVkXT1cInRydWVcIiBjbGFzcz1cImJnLXRyYW5zcGFyZW50XCI+XHJcbiAgPG5nLXRlbXBsYXRlPlxyXG4gICAgPGlvbi1kYXRldGltZSBbcHJlc2VudGF0aW9uXT1cInByZXNlbnRhdGlvblwiICNkYXRldGltZSBpZD1cInt7aWRfbW9kYWx9fS1kYXRldGltZVwiIGxvY2FsZT1cInB0LUJSXCIgWyhuZ01vZGVsKV09XCJkYXRlTW9kZWxcIiAobmdNb2RlbENoYW5nZSk9XCJEYXRlVGltZUNoYW5nZSgpXCI+XHJcbiAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiYnV0dG9uc1wiPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIGZpbGw9XCJjbGVhclwiIChjbGljayk9XCJkYXRldGltZS5jYW5jZWwoKTsgbW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjbG9zZS1jaXJjbGVcIj48L2lvbi1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBmaWxsPVwiY2xlYXJcIiAoY2xpY2spPVwiZGF0ZXRpbWUuY29uZmlybSgpOyBtb2RhbC5kaXNtaXNzKClcIj5cclxuICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNoZWNrbWFyay1jaXJjbGVcIj48L2lvbi1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgPC9pb24tYnV0dG9ucz5cclxuICAgIDwvaW9uLWRhdGV0aW1lPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvaW9uLW1vZGFsPlxyXG48aW9uLWRhdGV0aW1lLWJ1dHRvbiBjbGFzcz1cImhpZGRlblwiIGRhdGV0aW1lPVwie3tpZF9tb2RhbH19LWRhdGV0aW1lXCI+PC9pb24tZGF0ZXRpbWUtYnV0dG9uPiJdfQ==
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWRhdGUvaW5wdXQtZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWRhdGUvaW5wdXQtZGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQXVCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0QsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUzRCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQXdCLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFTbkUsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFdBQW1CO0lBS25ELEtBQUssQ0FBQyxLQUFpQjtRQUM5QixJQUFHLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFBQyxDQUFDO0lBQzNHLENBQUM7SUFNRCxZQUNXLFVB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QUFyQixxQkFBcUIsOE5BRnJCLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQyx3UEF5RTdELFdBQVcsdUVDMUZ4Qiw2c0ZBdUVjOzs0RkRwREQscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLHlDQUF5QyxhQUd4QyxDQUFDLEdBQUcsb0JBQW9CLENBQUMsWUFBWSx1QkFBdUIsQ0FBQzsrRUFLcEQsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQUNXLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQW1FSCxRQUFRO3NCQUEvQixTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGlucHV0LCBJbnB1dFNpZ25hbCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbWFza2l0b0RhdGVUaW1lT3B0aW9uc0dlbmVyYXRvciB9IGZyb20gJ0BtYXNraXRvL2tpdCc7XHJcbmltcG9ydCB7IG1hc2tpdG9EYXRlT3B0aW9uc0dlbmVyYXRvciB9IGZyb20gJ0BtYXNraXRvL2tpdCc7XHJcbmltcG9ydCB7IG1hc2tpdG9UaW1lT3B0aW9uc0dlbmVyYXRvciB9IGZyb20gJ0BtYXNraXRvL2tpdCc7XHJcbmltcG9ydCB7IE1hc2tpdG9PcHRpb25zIH0gZnJvbSAnQG1hc2tpdG8vY29yZSc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuXHJcbmltcG9ydCB7IElucHV0RGF0ZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuL2lucHV0LWRhdGUuY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IElucHV0UHJvdmlkZXJGYWN0b3J5IH0gZnJvbSAnLi4vaW5wdXQtcHJvdmlkZXItZmFjdG9yeSc7XHJcbmltcG9ydCB7IEN1c3RvbUlucHV0IH0gZnJvbSAnLi4vY3VzdG9tLWlucHV0JztcclxuaW1wb3J0IHsgSW9uRGF0ZXRpbWUsIElvbk1vZGFsLCBJb25Qb3BvdmVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBTSW9uUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BvcG92ZXIvc2lvbi1wb3BvdmVyL3Npb24tcG9wb3Zlci5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpbnB1dC1kYXRlLCBpbnB1dC1kYXRlLXRpbWUsIGlucHV0LXRpbWUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1kYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC1kYXRlLmNvbXBvbmVudC5zY3NzJywgJy4uL2lucHV0cy5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbLi4uSW5wdXRQcm92aWRlckZhY3RvcnkuR2V0UHJvdmlkZXJzKE5ld0lucHV0RGF0ZUNvbXBvbmVudCldLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmV3SW5wdXREYXRlQ29tcG9uZW50IGV4dGVuZHMgQ3VzdG9tSW5wdXQ8c3RyaW5nPiB7XHJcblxyXG4gIGNvbmZpZ3VyYXRpb246IElucHV0U2lnbmFsPElucHV0RGF0ZUNvbmZpZ3VyYXRpb24+ID0gaW5wdXQ8SW5wdXREYXRlQ29uZmlndXJhdGlvbj4obmV3IElucHV0RGF0ZUNvbmZpZ3VyYXRpb24oKSk7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdpbnB1dENvbnRhaW5lcicpIGlucHV0Q29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuICBvdmVycmlkZSBmb2N1cyhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5pbnB1dCAmJiBldmVudC50YXJnZXQgPT0gdGhpcy5pbnB1dENvbnRhaW5lci5uYXRpdmVFbGVtZW50KSB7IHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpOyB9ICAgICAgXHJcbiAgfVxyXG4gIFxyXG4gIG9wdGlvbnM6IE1hc2tpdG9PcHRpb25zO1xyXG4gIGR0VmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIG1vbWVudEZvcm1hdDogbW9tZW50Lk1vbWVudEZvcm1hdFNwZWNpZmljYXRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgb3ZlcnJpZGUgZWxlbWVudFJlZjogRWxlbWVudFJlZlxyXG4gICkgeyBcclxuICAgIHN1cGVyKCk7IFxyXG4gICAgdGhpcy5wcmVzZW50YXRpb24gPSAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpIGFzIHN0cmluZykucmVwbGFjZSgnaW5wdXQtJywgJycpO1xyXG5cclxuICAgIGlmKHRoaXMucHJlc2VudGF0aW9uID09IFwiZGF0ZS10aW1lXCIpeyBcclxuICAgICAgdGhpcy5tb21lbnRGb3JtYXQgPSAnREQvTU0vWVlZWSBISDptbSc7XHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IG1hc2tpdG9EYXRlVGltZU9wdGlvbnNHZW5lcmF0b3Ioe1xyXG4gICAgICAgIGRhdGVNb2RlOiAnZGQvbW0veXl5eScsXHJcbiAgICAgICAgdGltZU1vZGU6ICdISDpNTScsXHJcbiAgICAgICAgZGF0ZVNlcGFyYXRvcjogJy8nLFxyXG4gICAgICAgIGRhdGVUaW1lU2VwYXJhdG9yOiAnICcsXHJcbiAgICAgICAgdGltZVN0ZXA6IDEsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlXHJcbiAgICBpZih0aGlzLnByZXNlbnRhdGlvbiA9PSBcImRhdGVcIikgeyBcclxuICAgICAgdGhpcy5tb21lbnRGb3JtYXQgPSAnREQvTU0vWVlZWSc7XHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IG1hc2tpdG9EYXRlT3B0aW9uc0dlbmVyYXRvcih7IG1vZGU6ICdkZC9tbS95eXl5Jywgc2VwYXJhdG9yOiAnLyd9KTtcclxuICAgIH0gZWxzZVxyXG4gICAgaWYodGhpcy5wcmVzZW50YXRpb24gPT0gXCJ0aW1lXCIpIHtcclxuICAgICAgdGhpcy5tb21lbnRGb3JtYXQgPSAnSEg6bW0nOyBcclxuICAgICAgdGhpcy5vcHRpb25zID0gbWFza2l0b1RpbWVPcHRpb25zR2VuZXJhdG9yKHtcclxuICAgICAgICBtb2RlOiAnSEg6TU0nLFxyXG4gICAgICAgIHN0ZXA6IDEsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBwdWJsaWMgcHJlc2VudGF0aW9uOiBcImRhdGUtdGltZVwiIHwgXCJkYXRlXCIgfCBcInRpbWVcIiB8IHN0cmluZyA9IFwiZGF0ZS10aW1lXCJcclxuXHJcbiAgb3ZlcnJpZGUgU2V0VmFsdWUodmFsdWU6IHN0cmluZywgZnJvbURhdGVUaW1lOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcclxuICAgIGlmKGZyb21EYXRlVGltZSl7XHJcbiAgICAgIHRoaXMuZHRWYWx1ZSA9IG1vbWVudCh2YWx1ZSwgbW9tZW50LklTT184NjAxLCB0cnVlKS5mb3JtYXQodGhpcy5tb21lbnRGb3JtYXQudG9TdHJpbmcoKSk7XHJcbiAgICAgIHRoaXMudmFsdWUuc2V0KHZhbHVlKTtcclxuICAgICAgdGhpcy5ydW5WYWxpZGF0aW9uKCk7XHJcbiAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUoKSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoJ1onLCAnJyk7XHJcbiAgICBpZihbJ2RhdGUtdGltZScsICdkYXRlJ10uaW5jbHVkZXModGhpcy5wcmVzZW50YXRpb24pKXtcclxuICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudCh2YWx1ZSwgdGhpcy5tb21lbnRGb3JtYXQsIHRydWUpLnV0YyhmYWxzZSk7XHJcbiAgICAgIGlmKGRhdGUuaXNWYWxpZCgpIHx8ICF2YWx1ZSl7XHJcbiAgICAgICAgaWYodmFsdWUpe1xyXG4gICAgICAgICAgdGhpcy52YWx1ZS5zZXQoZGF0ZS5mb3JtYXQoKS5yZXBsYWNlKCdaJywgJycpKTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHRoaXMudmFsdWUuc2V0KG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJ1blZhbGlkYXRpb24oKTtcclxuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKCkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmKHZhbHVlLmxlbmd0aCA9PSA1KXtcclxuICAgICAgdGhpcy52YWx1ZS5zZXQodmFsdWUpO1xyXG4gICAgICB0aGlzLnJ1blZhbGlkYXRpb24oKTtcclxuICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy52YWx1ZSgpKTtcclxuICAgIH1cclxuICB9XHJcbiAgQFZpZXdDaGlsZChJb25EYXRldGltZSkgZGF0ZXRpbWU6IElvbkRhdGV0aW1lO1xyXG4gIFxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUob2JqOiBzdHJpbmcpOiB2b2lkIHwgUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnZhbHVlLnNldChvYmopO1xyXG4gICAgdGhpcy5kdFZhbHVlID0gbW9tZW50KHRoaXMudmFsdWUoKSwgbW9tZW50LklTT184NjAxLCB0cnVlKS5mb3JtYXQodGhpcy5tb21lbnRGb3JtYXQudG9TdHJpbmcoKSk7XHJcbiAgICB0aGlzLnJ1blZhbGlkYXRpb24oKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIFByZXNlbnQobW9kYWw6IElvbk1vZGFsLCBwb3BvdmVyOiBTSW9uUG9wb3ZlckNvbXBvbmVudCwgZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA+IHdpbmRvdy5pbm5lckhlaWdodCkge1xyXG4gICAgICByZXR1cm4gcG9wb3Zlci5wcmVzZW50KGV2ZW50KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBtb2RhbC5wcmVzZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBDaGFuZ2VEYXRlKHY6IHN0cmluZyB8IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLlNldFZhbHVlKHYudG9TdHJpbmcoKSwgdHJ1ZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgXHJcbiAgI2lucHV0Q29udGFpbmVyXHJcbiAgY2xhc3M9XCJpbnB1dC1jb250YWluZXJcIiBcclxuICAoY2xpY2spPVwiZm9jdXMoJGV2ZW50KVwiXHJcbiAgW2NsYXNzLnJlcXVpcmVkXT1cInJlcXVpcmVkKClcIiBcclxuICBbY2xhc3Muc3VibWl0dGVkXT1cInN1Ym1pdHRlZCgpXCIgXHJcbiAgW2NsYXNzLmludmFsaWRdPVwiaW52YWxpZFwiIFxyXG4gIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZCgpIHx8IGxvYWRpbmcoKVwiXHJcbiAgW2NsYXNzLmxvYWRpbmddPVwibG9hZGluZygpXCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJpbnB1dC1sYWJlbFwiPiBcclxuICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGVcIj5cclxuICAgICAge3tsYWJlbCgpfX0gXHJcbiAgICA8L3NwYW4+XHJcbiAgPC9kaXY+XHJcbiAgXHJcbiAgPGlucHV0ICNpbnB1dFxyXG4gICAgW25nTW9kZWxdPVwiZHRWYWx1ZVwiIFxyXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwiU2V0VmFsdWUoJGV2ZW50KVwiXHJcbiAgICBbbWFza2l0b109XCJvcHRpb25zXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpIHx8IGxvYWRpbmcoKVwiXHJcbiAgLz5cclxuICBcclxuICA8aW9uLWJ1dHRvbiB0YWJpbmRleD1cIi0xXCIgY2xhc3M9XCJhYnNvbHV0ZSByaWdodC0xIGJvdHRvbS0xXCIgKGNsaWNrKT1cIlByZXNlbnQobW9kYWwsIHBvcG92ZXIsICRldmVudClcIiBjb2xvcj1cIm1lZGl1bVwiIHNpemU9XCJzbWFsbFwiIGZpbGw9XCJjbGVhclwiIHN0eWxlPVwiLS1ib3JkZXItcmFkaXVzOiAuNXJlbVwiPlxyXG4gICAgPGlvbi1pY29uIFtuYW1lXT1cInByZXNlbnRhdGlvbiA9PSAndGltZScgPyAndGltZScgOiAnY2FsZW5kYXInXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XHJcbiAgPC9pb24tYnV0dG9uPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwibG9hZGluZy1jb250YWluZXJcIiBbY2xhc3MubG9hZGluZ109XCJsb2FkaW5nKClcIj5cclxuICAgIDxpb24tc3Bpbm5lcj48L2lvbi1zcGlubmVyPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxzaW9uLXBvcG92ZXJcclxuICBbYW5jaG9yXT1cImlucHV0Q29udGFpbmVyXCJcclxuICAjcG9wb3ZlciBcclxuICBbY2xhc3MudGltZV09XCJwcmVzZW50YXRpb24gPT0gJ3RpbWUnXCIgXHJcbiAgW2NsYXNzLmRhdGVdPVwicHJlc2VudGF0aW9uID09ICdkYXRlJ1wiIFxyXG4gIFtjbGFzcy5kYXRldGltZV09XCJwcmVzZW50YXRpb24gPT0gJ2RhdGUtdGltZSdcIlxyXG4+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRhdGV0aW1lVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBwb3BvdmVyIH1cIj48L25nLWNvbnRhaW5lcj5cclxuPC9zaW9uLXBvcG92ZXI+XHJcblxyXG48aW9uLW1vZGFsIFxyXG4gICNtb2RhbFxyXG4gIFtjbGFzcy50aW1lXT1cInByZXNlbnRhdGlvbiA9PSAndGltZSdcIiBcclxuICBbY2xhc3MuZGF0ZV09XCJwcmVzZW50YXRpb24gPT0gJ2RhdGUnXCIgXHJcbiAgW2NsYXNzLmRhdGV0aW1lXT1cInByZXNlbnRhdGlvbiA9PSAnZGF0ZS10aW1lJ1wiXHJcbj5cclxuICA8bmctdGVtcGxhdGU+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0ZXRpbWVUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IG1vZGFsIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2lvbi1tb2RhbD5cclxuXHJcblxyXG48bmctdGVtcGxhdGUgI2RhdGV0aW1lVGVtcGxhdGUgbGV0LXBhcmVudD5cclxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYmctWy0taW9uLWNvbG9yLWxpZ2h0XSByb3VuZGVkLXhsXCIgdGFiaW5kZXg9XCItMVwiPlxyXG4gICAgQGlmKHByZXNlbnRhdGlvbi5pbmNsdWRlcygnZGF0ZScpKSB7XHJcbiAgICAgIDxpb24tZGF0ZXRpbWUgdGFiaW5kZXg9XCItMVwiIFtuZ01vZGVsXT1cInZhbHVlKClcIiBjbGFzcz1cImRhdGVcIiBwcmVzZW50YXRpb249XCJkYXRlXCIgKGlvbkNoYW5nZSk9XCJDaGFuZ2VEYXRlKCRldmVudC50YXJnZXQudmFsdWUpO1wiPjwvaW9uLWRhdGV0aW1lPlxyXG4gICAgfVxyXG4gICAgQGlmKHByZXNlbnRhdGlvbiA9PSAnZGF0ZS10aW1lJykge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHktMTIgaC1bMjFyZW1dXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImgtZnVsbCBib3JkZXItci0yIGJvcmRlci1wcmltYXJ5IG1hc2steS8zMFwiPjwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICAgIEBpZihwcmVzZW50YXRpb24uaW5jbHVkZXMoJ3RpbWUnKSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiaC1bMjFyZW1dIGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgPGlvbi1pY29uIGNsYXNzPVwidGV4dC0yeGxcIiBuYW1lPVwiYWxhcm1cIj48L2lvbi1pY29uPlxyXG4gICAgICAgIDxpb24tZGF0ZXRpbWUgdGFiaW5kZXg9XCItMVwiIFtuZ01vZGVsXT1cInZhbHVlKClcIiBjbGFzcz1cInRpbWVcIiBwcmVzZW50YXRpb249XCJ0aW1lXCIgaG91ckN5Y2xlPVwiaDI0XCIgKGlvbkNoYW5nZSk9XCJDaGFuZ2VEYXRlKCRldmVudC50YXJnZXQudmFsdWUpXCI+PC9pb24tZGF0ZXRpbWU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
|