@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.
Files changed (105) hide show
  1. package/esm2022/lib/classes/inputs/table-field.mjs +8 -2
  2. package/esm2022/lib/components/default/default-list/list.mjs +1 -1
  3. package/esm2022/lib/components/default/default-table/default-table.component.mjs +18 -6
  4. package/esm2022/lib/components/default/default-table/th-filter/th-filter.component.mjs +12 -11
  5. package/esm2022/lib/components/default/default-view/default-view.component.mjs +10 -10
  6. package/esm2022/lib/components/default/default.module.mjs +12 -4
  7. package/esm2022/lib/components/filter/filter.component.mjs +2 -2
  8. package/esm2022/lib/components/inputs/custom-input.mjs +57 -49
  9. package/esm2022/lib/components/inputs/input-bool/input-bool.component.mjs +31 -34
  10. package/esm2022/lib/components/inputs/input-bool/input-bool.configuration.mjs +4 -4
  11. package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.mjs +33 -46
  12. package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.mjs +2 -2
  13. package/esm2022/lib/components/inputs/input-date/input-date.component.mjs +86 -97
  14. package/esm2022/lib/components/inputs/input-decimal/input-decimal.component.mjs +158 -190
  15. package/esm2022/lib/components/inputs/input-decimal/input-decimal.configuration.mjs +6 -1
  16. package/esm2022/lib/components/inputs/input-file/download-button/download-button.component.mjs +12 -10
  17. package/esm2022/lib/components/inputs/input-file/input-file.component.mjs +60 -98
  18. package/esm2022/lib/components/inputs/input-file/input-file.configuration.mjs +18 -5
  19. package/esm2022/lib/components/inputs/input-provider-factory.mjs +4 -7
  20. package/esm2022/lib/components/inputs/input-select/directives/sion-label-template.directive.mjs +16 -0
  21. package/esm2022/lib/components/inputs/input-select/directives/sion-option-template.directive.mjs +18 -0
  22. package/esm2022/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.mjs +16 -0
  23. package/esm2022/lib/components/inputs/input-select/input-select.component.mjs +233 -264
  24. package/esm2022/lib/components/inputs/input-select/input.select.configuration.mjs +45 -29
  25. package/esm2022/lib/components/inputs/input-string/input-string.component.mjs +27 -42
  26. package/esm2022/lib/components/inputs/input-string/input-string.configuration.mjs +1 -1
  27. package/esm2022/lib/components/inputs/input-textarea/input-textarea.component.mjs +26 -38
  28. package/esm2022/lib/components/inputs/input-textarea/input-textarea.configuration.mjs +7 -0
  29. package/esm2022/lib/components/inputs/inputs.module.mjs +72 -81
  30. package/esm2022/lib/components/login/login-admin/login-admin.component.mjs +1 -1
  31. package/esm2022/lib/components/popover/sion-popover/sion-popover.component.mjs +132 -0
  32. package/esm2022/lib/components/popover/sion-popover.module.mjs +23 -0
  33. package/esm2022/lib/components/popover/sion-popover.service.mjs +33 -0
  34. package/esm2022/lib/components/stepper/step/step.component.mjs +3 -3
  35. package/esm2022/lib/components/stepper/stepper.component.mjs +13 -13
  36. package/esm2022/lib/guards/error.interceptor.mjs +2 -2
  37. package/esm2022/lib/index.mjs +10 -6
  38. package/esm2022/lib/services/utils.service.mjs +3 -3
  39. package/esm2022/lib/services/web/api-url-provider.service.mjs +2 -2
  40. package/esm2022/lib/services/web/http.ativo.service.mjs +2 -2
  41. package/fesm2022/sapphire-ion-framework.mjs +1200 -1737
  42. package/fesm2022/sapphire-ion-framework.mjs.map +1 -1
  43. package/lib/classes/inputs/table-field.d.ts +1 -0
  44. package/lib/components/default/default.module.d.ts +3 -1
  45. package/lib/components/inputs/custom-input.d.ts +26 -22
  46. package/lib/components/inputs/input-bool/input-bool.component.d.ts +13 -16
  47. package/lib/components/inputs/input-bool/input-bool.configuration.d.ts +2 -2
  48. package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.d.ts +13 -18
  49. package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.d.ts +1 -1
  50. package/lib/components/inputs/input-date/input-date.component.d.ts +21 -24
  51. package/lib/components/inputs/input-decimal/input-decimal.component.d.ts +21 -36
  52. package/lib/components/inputs/input-decimal/input-decimal.configuration.d.ts +3 -0
  53. package/lib/components/inputs/input-file/download-button/download-button.component.d.ts +2 -1
  54. package/lib/components/inputs/input-file/input-file.component.d.ts +20 -32
  55. package/lib/components/inputs/input-file/input-file.configuration.d.ts +2 -5
  56. package/lib/components/inputs/input-provider-factory.d.ts +1 -1
  57. package/lib/components/inputs/input-select/directives/sion-label-template.directive.d.ts +12 -0
  58. package/lib/components/inputs/input-select/directives/sion-option-template.directive.d.ts +11 -0
  59. package/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.d.ts +12 -0
  60. package/lib/components/inputs/input-select/input-select.component.d.ts +60 -58
  61. package/lib/components/inputs/input-select/input.select.configuration.d.ts +11 -9
  62. package/lib/components/inputs/input-string/input-string.component.d.ts +11 -16
  63. package/lib/components/inputs/input-textarea/input-textarea.component.d.ts +11 -15
  64. package/lib/components/inputs/input-textarea/input-textarea.configuration.d.ts +4 -0
  65. package/lib/components/inputs/inputs.module.d.ts +18 -21
  66. package/lib/components/popover/sion-popover/sion-popover.component.d.ts +30 -0
  67. package/lib/components/popover/sion-popover.module.d.ts +8 -0
  68. package/lib/components/popover/sion-popover.service.d.ts +12 -0
  69. package/lib/components/stepper/step/step.component.d.ts +1 -1
  70. package/lib/components/stepper/stepper.component.d.ts +3 -6
  71. package/lib/index.d.ts +5 -4
  72. package/lib/services/utils.service.d.ts +1 -1
  73. package/package.json +2 -1
  74. package/themes/compiled-styles.scss +157 -4
  75. package/themes/components/default/default-table/default-table.component.scss +0 -13
  76. package/themes/components/default/default-table/th-filter/th-filter.component.scss +0 -3
  77. package/themes/components/inputs/input-bool/input-bool.component.scss +2 -13
  78. package/themes/components/inputs/input-date/input-date.component.scss +33 -34
  79. package/themes/components/inputs/input-decimal/input-decimal.component.scss +8 -42
  80. package/themes/components/inputs/input-file/input-file.component.scss +16 -2
  81. package/themes/components/inputs/input-select/input-select.component.scss +47 -24
  82. package/themes/components/inputs/input-textarea/input-textarea.component.scss +7 -0
  83. package/themes/components/inputs/inputs.scss +103 -49
  84. package/themes/components/inputs_old/inputs.scss +67 -0
  85. package/themes/components/popover/sion-popover/sion-popover.component.scss +48 -0
  86. package/themes/styles/components.scss +34 -0
  87. package/themes/styles/ionic/ion-datetime.scss +3 -2
  88. package/esm2022/lib/components/inputs/custom-signal-input.mjs +0 -74
  89. package/esm2022/lib/components/inputs/input-color/input-color.component.mjs +0 -487
  90. package/esm2022/lib/components/inputs/input-loading/input-loading.component.mjs +0 -16
  91. package/esm2022/lib/components/inputs/input-select/ISelect.mjs +0 -11
  92. package/esm2022/lib/components/inputs/input-select/input-select-internal-option/input-select-internal-option.component.mjs +0 -42
  93. package/esm2022/lib/components/inputs/input-select/input-select-option/input-select-option.component.mjs +0 -46
  94. package/esm2022/lib/components/inputs/input-select/input-select-template.directive.mjs +0 -16
  95. package/lib/components/inputs/custom-signal-input.d.ts +0 -38
  96. package/lib/components/inputs/input-color/input-color.component.d.ts +0 -80
  97. package/lib/components/inputs/input-loading/input-loading.component.d.ts +0 -7
  98. package/lib/components/inputs/input-select/ISelect.d.ts +0 -21
  99. package/lib/components/inputs/input-select/input-select-internal-option/input-select-internal-option.component.d.ts +0 -18
  100. package/lib/components/inputs/input-select/input-select-option/input-select-option.component.d.ts +0 -24
  101. package/lib/components/inputs/input-select/input-select-template.directive.d.ts +0 -8
  102. package/themes/components/inputs/input-loading/input-loading.component.scss +0 -0
  103. package/themes/components/inputs/input-select/input-select-internal-option/input-select-internal-option.component.scss +0 -0
  104. package/themes/components/inputs/input-select/input-select-option/input-select-option.component.scss +0 -0
  105. /package/themes/components/{inputs → inputs_old}/input-color/input-color.component.scss +0 -0
@@ -1,122 +1,111 @@
1
- import { Component, ElementRef, Host, Input, Optional, SkipSelf } from '@angular/core';
2
- import { ControlContainer } from '@angular/forms';
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 { Utils } from '../../../services/utils.service';
9
+ import { IonDatetime } from '@ionic/angular';
8
10
  import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/forms";
11
+ import * as i1 from "@ionic/angular";
10
12
  import * as i2 from "@angular/common";
11
- import * as i3 from "@ionic/angular";
12
- import * as i4 from "../input-loading/input-loading.component";
13
- export class InputDateComponent extends CustomInput {
14
- constructor(controlContainer, elementRef) {
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.transform = ((v) => { console.warn("[ Component isn't ready ]"); });
21
- this.id_modal = "";
22
- this.dateModel = new Date().toISOString();
23
- this.HandleSelector();
24
- }
25
- HandleSelector() {
26
- const selector = this.elementRef.nativeElement.tagName.toLowerCase().replace('input-', '');
27
- this.presentation = selector;
28
- if (selector == "date-time") {
29
- this.transform = Utils.DateISOToDDMMYYYYHHMM;
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 (selector == "date") {
32
- this.transform = Utils.DateISOToDDMMYYYY;
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 (selector == "time") {
35
- this.transform = TimeTransform;
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
- async ngOnInit() {
39
- super.ngOnInit();
40
- this.id_modal = `${this.formControlName}${this.id}${Utils.GenerateGUID()}${this.elementRef.nativeElement.tagName.toLowerCase()}`;
41
- }
42
- writeValue(value) {
43
- if (value !== undefined && value != null) {
44
- if (['date-time', 'date'].includes(this.presentation)) {
45
- this.dateModel = moment(value).toISOString();
46
- this.setModel(value);
47
- }
48
- else {
49
- this.dateModel = this.transform(value);
50
- this.setModel(this.transform(value));
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.dateModel = null;
55
- this.setModel(null);
73
+ else if (value.length == 5) {
74
+ this.value.set(value);
75
+ this.runValidation();
76
+ this.propagateChange(this.value());
56
77
  }
57
78
  }
58
- get model() { if (this._model != null) {
59
- return this.transform(this._model);
60
- }
61
- else
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
- get _val() { return this.model; }
68
- set _val(v) { }
69
- get modal() { return document.getElementById(this.id_modal); }
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
- this.model = this.dateModel;
89
+ return modal.present();
94
90
  }
95
91
  }
96
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputDateComponent, deps: [{ token: i1.ControlContainer, host: true, optional: true, skipSelf: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
97
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: InputDateComponent, selector: "input-date, input-date-time, input-time", inputs: { configuration: "configuration" }, providers: InputProviderFactory.GetProvider(InputDateComponent), usesInheritance: true, ngImport: i0, template: "<div class=\"flex relative overflow-hidden\">\r\n <ion-card class=\"focus-within:on-focus ion-card-input\" [disabled]=\"loading || disabled\"\r\n [ngClass]=\"{\r\n 'invalid' : invalid,\r\n 'submitted': submitted,\r\n 'disabled' : disabled,\r\n '!border-r-0 !rounded-r-none': configuration.clearable\r\n }\"\r\n >\r\n <ion-card-content>\r\n <ion-item lines=\"none\" class=\"w-full default-transition\">\r\n <ion-input (click)=\"Open()\" [readonly]=\"true\" labelPlacement=\"stacked\" class=\"!opacity-100\" [(ngModel)]=\"_val\">\r\n <ion-text id=\"label\" [ngClass]=\"{'required': required}\" slot=\"label\"> {{label}}</ion-text>\r\n </ion-input>\r\n </ion-item>\r\n </ion-card-content>\r\n </ion-card>\r\n <div class=\"w-12 shrink-0\" [hidden]=\"!configuration.clearable\"> \r\n <ion-button (click)=\"Clear()\"[disabled]=\"loading || disabled\" class=\"m-0 h-full w-full rounded-r-2xl on-hover\" style=\"--border-width: 1px 1px 2px 1px;\" size=\"small\" color=\"medium\" fill=\"outline\"> \r\n <ion-icon slot=\"icon-only\" name=\"backspace\"></ion-icon> \r\n </ion-button>\r\n </div>\r\n <input-loading [loading]=\"loading\"></input-loading>\r\n</div>\r\n\r\n<ion-modal [id]=\"id_modal\" [keepContentsMounted]=\"true\" class=\"bg-transparent\">\r\n <ng-template>\r\n <ion-datetime [presentation]=\"presentation\" #datetime id=\"{{id_modal}}-datetime\" locale=\"pt-BR\" [(ngModel)]=\"dateModel\" (ngModelChange)=\"DateTimeChange()\">\r\n <ion-buttons slot=\"buttons\">\r\n <ion-button color=\"primary\" fill=\"clear\" (click)=\"datetime.cancel(); modal.dismiss()\">\r\n <ion-icon slot=\"icon-only\" name=\"close-circle\"></ion-icon>\r\n </ion-button>\r\n <ion-button color=\"primary\" fill=\"clear\" (click)=\"datetime.confirm(); modal.dismiss()\">\r\n <ion-icon slot=\"icon-only\" name=\"checkmark-circle\"></ion-icon>\r\n </ion-button>\r\n </ion-buttons>\r\n </ion-datetime>\r\n </ng-template>\r\n</ion-modal>\r\n<ion-datetime-button class=\"hidden\" datetime=\"{{id_modal}}-datetime\"></ion-datetime-button>", styles: ["ion-input{-webkit-user-select:none;user-select:none;white-space:nowrap;text-align:center}.rounded-2xl,.\\!rounded-2xl{--border-radius: 1rem}.rounded-r-2xl,.\\!rounded-r-2xl{--border-radius: 0rem 1rem 1rem 0rem}.rounded-l-2xl,.\\!rounded-l-2xl{--border-radius: 1rem 0rem 0rem 1rem}.rounded-tr-none,.\\!rounded-tr-none{--border-radius: 0rem 0rem 1rem 0rem}.border-right-danger::part(native){border-right-color:var(--ion-color-danger)!important}.border-y-danger::part(native){border-top-color:var(--ion-color-danger)!important;border-bottom-color:var(--ion-color-danger)!important}\n", ".on-hover{background:color-mix(in srgb,var(--ion-color-light) 97%,transparent 3%)}.on-hover:hover{transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.ion-card-input{margin:0;display:flex;height:100%;width:100%;align-items:center;justify-content:center;overflow:hidden;border-radius:1rem;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-light) 97%,transparent 3%);border-bottom-color:var(--ion-color-medium);border-right-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-top-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-left-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-width:1px 1px 2px 1px;min-height:58px;max-height:58px;height:58px}ion-card.ion-card-input:hover{background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.ion-card-input.submitted.invalid{border-color:color-mix(in srgb,var(--ion-color-danger) 75%,transparent 25%)!important}ion-card.ion-card-input.disabled{background-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%)!important}ion-card.ion-card-input ion-card-content{width:100%;height:100%;background-color:transparent;padding:0}ion-item{--background: transparent}ion-text#label.required:after{content:\"*\";color:var(--ion-color-danger);vertical-align:text-bottom;font-size:small}ion-text#label:not(.required):after{content:var(--input-opcional-label, \"(Opcional)\");color:var(--ion-color-medium);vertical-align:text-bottom;font-size:small}.on-focus{border-bottom-color:var(--ion-color-primary)}.focus-within\\:on-focus:focus-within{border-bottom-color:var(--ion-color-primary)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.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: i3.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.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: i3.IonDatetimeButton, selector: "ion-datetime-button", inputs: ["color", "datetime", "disabled", "mode"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i3.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonModal, selector: "ion-modal" }, { kind: "directive", type: i3.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "directive", type: i3.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.InputLoadingComponent, selector: "input-loading", inputs: ["loading"] }] }); }
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: InputDateComponent, decorators: [{
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.GetProvider(InputDateComponent), template: "<div class=\"flex relative overflow-hidden\">\r\n <ion-card class=\"focus-within:on-focus ion-card-input\" [disabled]=\"loading || disabled\"\r\n [ngClass]=\"{\r\n 'invalid' : invalid,\r\n 'submitted': submitted,\r\n 'disabled' : disabled,\r\n '!border-r-0 !rounded-r-none': configuration.clearable\r\n }\"\r\n >\r\n <ion-card-content>\r\n <ion-item lines=\"none\" class=\"w-full default-transition\">\r\n <ion-input (click)=\"Open()\" [readonly]=\"true\" labelPlacement=\"stacked\" class=\"!opacity-100\" [(ngModel)]=\"_val\">\r\n <ion-text id=\"label\" [ngClass]=\"{'required': required}\" slot=\"label\"> {{label}}</ion-text>\r\n </ion-input>\r\n </ion-item>\r\n </ion-card-content>\r\n </ion-card>\r\n <div class=\"w-12 shrink-0\" [hidden]=\"!configuration.clearable\"> \r\n <ion-button (click)=\"Clear()\"[disabled]=\"loading || disabled\" class=\"m-0 h-full w-full rounded-r-2xl on-hover\" style=\"--border-width: 1px 1px 2px 1px;\" size=\"small\" color=\"medium\" fill=\"outline\"> \r\n <ion-icon slot=\"icon-only\" name=\"backspace\"></ion-icon> \r\n </ion-button>\r\n </div>\r\n <input-loading [loading]=\"loading\"></input-loading>\r\n</div>\r\n\r\n<ion-modal [id]=\"id_modal\" [keepContentsMounted]=\"true\" class=\"bg-transparent\">\r\n <ng-template>\r\n <ion-datetime [presentation]=\"presentation\" #datetime id=\"{{id_modal}}-datetime\" locale=\"pt-BR\" [(ngModel)]=\"dateModel\" (ngModelChange)=\"DateTimeChange()\">\r\n <ion-buttons slot=\"buttons\">\r\n <ion-button color=\"primary\" fill=\"clear\" (click)=\"datetime.cancel(); modal.dismiss()\">\r\n <ion-icon slot=\"icon-only\" name=\"close-circle\"></ion-icon>\r\n </ion-button>\r\n <ion-button color=\"primary\" fill=\"clear\" (click)=\"datetime.confirm(); modal.dismiss()\">\r\n <ion-icon slot=\"icon-only\" name=\"checkmark-circle\"></ion-icon>\r\n </ion-button>\r\n </ion-buttons>\r\n </ion-datetime>\r\n </ng-template>\r\n</ion-modal>\r\n<ion-datetime-button class=\"hidden\" datetime=\"{{id_modal}}-datetime\"></ion-datetime-button>", styles: ["ion-input{-webkit-user-select:none;user-select:none;white-space:nowrap;text-align:center}.rounded-2xl,.\\!rounded-2xl{--border-radius: 1rem}.rounded-r-2xl,.\\!rounded-r-2xl{--border-radius: 0rem 1rem 1rem 0rem}.rounded-l-2xl,.\\!rounded-l-2xl{--border-radius: 1rem 0rem 0rem 1rem}.rounded-tr-none,.\\!rounded-tr-none{--border-radius: 0rem 0rem 1rem 0rem}.border-right-danger::part(native){border-right-color:var(--ion-color-danger)!important}.border-y-danger::part(native){border-top-color:var(--ion-color-danger)!important;border-bottom-color:var(--ion-color-danger)!important}\n", ".on-hover{background:color-mix(in srgb,var(--ion-color-light) 97%,transparent 3%)}.on-hover:hover{transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.ion-card-input{margin:0;display:flex;height:100%;width:100%;align-items:center;justify-content:center;overflow:hidden;border-radius:1rem;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-light) 97%,transparent 3%);border-bottom-color:var(--ion-color-medium);border-right-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-top-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-left-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-width:1px 1px 2px 1px;min-height:58px;max-height:58px;height:58px}ion-card.ion-card-input:hover{background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.ion-card-input.submitted.invalid{border-color:color-mix(in srgb,var(--ion-color-danger) 75%,transparent 25%)!important}ion-card.ion-card-input.disabled{background-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%)!important}ion-card.ion-card-input ion-card-content{width:100%;height:100%;background-color:transparent;padding:0}ion-item{--background: transparent}ion-text#label.required:after{content:\"*\";color:var(--ion-color-danger);vertical-align:text-bottom;font-size:small}ion-text#label:not(.required):after{content:var(--input-opcional-label, \"(Opcional)\");color:var(--ion-color-medium);vertical-align:text-bottom;font-size:small}.on-focus{border-bottom-color:var(--ion-color-primary)}.focus-within\\:on-focus:focus-within{border-bottom-color:var(--ion-color-primary)}\n"] }]
102
- }], ctorParameters: () => [{ type: i1.ControlContainer, decorators: [{
103
- type: Optional
104
- }, {
105
- type: Host
106
- }, {
107
- type: SkipSelf
108
- }] }, { type: i0.ElementRef }], propDecorators: { configuration: [{
109
- type: Input
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWRhdGUvaW5wdXQtZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWRhdGUvaW5wdXQtZGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEQsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7OztBQVF4RCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsV0FBbUI7SUFJekQsWUFFVyxnQkFBbUMsRUFDbkMsVUFBNkI7UUFDcEMsS0FBSyxFQUFFLENBQUM7UUFGRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ25DLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBTC9CLGtCQUFhLEdBQTJCLElBQUksc0JBQXNCLEVBQUUsQ0FBQztRQVF2RSxpQkFBWSxHQUEyQyxXQUFXLENBQUE7UUFDakUsY0FBUyxHQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBV3JGLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFNdEIsY0FBUyxHQUFrQixJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBcEJ2QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFBQyxDQUFDO0lBS3JDLGNBQWM7UUFDWixNQUFNLFFBQVEsR0FBWSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFhLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMvRyxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQztRQUU3QixJQUFHLFFBQVEsSUFBSSxXQUFXLEVBQUMsQ0FBQztZQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLHFCQUFxQixDQUFBO1FBQUMsQ0FBQztRQUMzRSxJQUFHLFFBQVEsSUFBSSxNQUFNLEVBQU0sQ0FBQztZQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixDQUFBO1FBQUMsQ0FBQztRQUN2RSxJQUFHLFFBQVEsSUFBSSxNQUFNLEVBQU0sQ0FBQztZQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUFBO1FBQUMsQ0FBQztJQUMvRCxDQUFDO0lBR1EsS0FBSyxDQUFDLFFBQVE7UUFDckIsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFBO0lBQ2xJLENBQUM7SUFHUSxVQUFVLENBQUMsS0FBb0I7UUFDdEMsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN6QyxJQUFHLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUMsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzdDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkIsQ0FBQztpQkFBSSxDQUFDO2dCQUNKLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDdkMsQ0FBQztRQUNILENBQUM7YUFBSSxDQUFDO1lBQ0osSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUNELElBQWEsS0FBSyxLQUFtQixJQUFHLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFDLENBQUM7UUFBQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQUMsQ0FBQzs7UUFBTSxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdkgsSUFBYSxLQUFLLENBQUMsS0FBYSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdGLFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLElBQUksS0FBTSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDO0lBRWYsSUFBSSxLQUFLLEtBQUksT0FBTyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQW9CLENBQUEsQ0FBQSxDQUFDO0lBQzlFLElBQUksS0FBSSxJQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBQyxDQUFDO1FBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXJELEtBQUs7UUFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUNELGNBQWM7UUFDWixJQUFHLElBQUksQ0FBQyxTQUFTLEVBQUMsQ0FBQztZQUNqQixJQUFHLElBQUksQ0FBQyxZQUFZLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQy9CLElBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQztvQkFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDaEQsQ0FBQztnQkFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDOUIsQ0FBQztpQkFDRCxJQUFHLElBQUksQ0FBQyxZQUFZLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUE7WUFBQyxDQUFDO2lCQUFNLENBQUM7Z0JBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFBO1lBQUMsQ0FBQztRQUNsSSxDQUFDO2FBQUksQ0FBQztZQUNKLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQTtRQUM3QixDQUFDO0lBQ0gsQ0FBQzsrR0F2RVUsa0JBQWtCO21HQUFsQixrQkFBa0IsOEdBRmxCLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxpRENkakUsOG1FQXVDMkY7OzRGRHZCOUUsa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLHlDQUF5QyxhQUd4QyxvQkFBb0IsQ0FBQyxXQUFXLG9CQUFvQjs7MEJBTzVELFFBQVE7OzBCQUFJLElBQUk7OzBCQUFJLFFBQVE7a0VBSHRCLGFBQWE7c0JBQXJCLEtBQUs7O0FBd0VSLE1BQU0sYUFBYSxHQUFhLENBQUMsQ0FBQyxDQUFTLEVBQVUsRUFBRTtJQUNyRCxJQUFHLENBQUMsQ0FBQyxFQUFDLENBQUM7UUFBQyxPQUFPLElBQUksQ0FBQztJQUFDLENBQUM7SUFDdEIsSUFBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUMsQ0FBQztRQUMzQixPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7U0FBSSxDQUFDO1FBQ0osT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2hELENBQUM7QUFDSCxDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIFNraXBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IElvbk1vZGFsIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcblxyXG5pbXBvcnQgeyBJbnB1dERhdGVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9pbnB1dC1kYXRlLmNvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBJbnB1dFByb3ZpZGVyRmFjdG9yeSB9IGZyb20gJy4uL2lucHV0LXByb3ZpZGVyLWZhY3RvcnknO1xyXG5pbXBvcnQgeyBDdXN0b21JbnB1dCB9IGZyb20gJy4uL2N1c3RvbS1pbnB1dCc7XHJcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXRpbHMuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lucHV0LWRhdGUsIGlucHV0LWRhdGUtdGltZSwgaW5wdXQtdGltZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWRhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lucHV0LWRhdGUuY29tcG9uZW50LnNjc3MnLCAnLi4vaW5wdXRzLnNjc3MnXSxcclxuICBwcm92aWRlcnM6IElucHV0UHJvdmlkZXJGYWN0b3J5LkdldFByb3ZpZGVyKElucHV0RGF0ZUNvbXBvbmVudClcclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0RGF0ZUNvbXBvbmVudCBleHRlbmRzIEN1c3RvbUlucHV0PHN0cmluZz4gaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBjb25maWd1cmF0aW9uOiBJbnB1dERhdGVDb25maWd1cmF0aW9uID0gbmV3IElucHV0RGF0ZUNvbmZpZ3VyYXRpb24oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBAT3B0aW9uYWwoKSBASG9zdCgpIEBTa2lwU2VsZigpXHJcbiAgICBvdmVycmlkZSBjb250cm9sQ29udGFpbmVyIDogQ29udHJvbENvbnRhaW5lcixcclxuICAgIG92ZXJyaWRlIGVsZW1lbnRSZWYgICAgICAgOiBFbGVtZW50UmVmLFxyXG4gICkgeyBzdXBlcigpOyB0aGlzLkhhbmRsZVNlbGVjdG9yKCk7IH1cclxuXHJcbiAgcHVibGljIHByZXNlbnRhdGlvbjogXCJkYXRlLXRpbWVcIiB8IFwiZGF0ZVwiIHwgXCJ0aW1lXCIgfCBzdHJpbmcgPSBcImRhdGUtdGltZVwiXHJcbiAgcHJpdmF0ZSB0cmFuc2Zvcm06IEZ1bmN0aW9uID0gKCh2KSA9PiB7IGNvbnNvbGUud2FybihcIlsgQ29tcG9uZW50IGlzbid0IHJlYWR5IF1cIik7IH0pXHJcblxyXG4gIEhhbmRsZVNlbGVjdG9yKCl7XHJcbiAgICBjb25zdCBzZWxlY3Rvcjogc3RyaW5nID0gKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKSBhcyBzdHJpbmcpLnJlcGxhY2UoJ2lucHV0LScsICcnKTtcclxuICAgIHRoaXMucHJlc2VudGF0aW9uID0gc2VsZWN0b3I7XHJcbiAgICBcclxuICAgIGlmKHNlbGVjdG9yID09IFwiZGF0ZS10aW1lXCIpeyB0aGlzLnRyYW5zZm9ybSA9IFV0aWxzLkRhdGVJU09Ub0RETU1ZWVlZSEhNTSB9XHJcbiAgICBpZihzZWxlY3RvciA9PSBcImRhdGVcIikgICAgIHsgdGhpcy50cmFuc2Zvcm0gPSBVdGlscy5EYXRlSVNPVG9ERE1NWVlZWSB9XHJcbiAgICBpZihzZWxlY3RvciA9PSBcInRpbWVcIikgICAgIHsgdGhpcy50cmFuc2Zvcm0gPSBUaW1lVHJhbnNmb3JtIH1cclxuICB9XHJcblxyXG4gIGlkX21vZGFsOiBzdHJpbmcgPSBcIlwiO1xyXG4gIG92ZXJyaWRlIGFzeW5jIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIHRoaXMuaWRfbW9kYWwgPSBgJHt0aGlzLmZvcm1Db250cm9sTmFtZX0ke3RoaXMuaWR9JHtVdGlscy5HZW5lcmF0ZUdVSUQoKX0ke3RoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKX1gXHJcbiAgfVxyXG5cclxuICBkYXRlTW9kZWw6IHN0cmluZyB8IG51bGwgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCl7XHJcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgIGlmKFsnZGF0ZS10aW1lJywgJ2RhdGUnXS5pbmNsdWRlcyh0aGlzLnByZXNlbnRhdGlvbikpe1xyXG4gICAgICAgIHRoaXMuZGF0ZU1vZGVsID0gbW9tZW50KHZhbHVlKS50b0lTT1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuc2V0TW9kZWwodmFsdWUpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmRhdGVNb2RlbCA9IHRoaXMudHJhbnNmb3JtKHZhbHVlKTtcclxuICAgICAgICB0aGlzLnNldE1vZGVsKHRoaXMudHJhbnNmb3JtKHZhbHVlKSk7XHJcbiAgICAgIH1cclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmRhdGVNb2RlbCA9IG51bGw7XHJcbiAgICAgIHRoaXMuc2V0TW9kZWwobnVsbClcclxuICAgIH1cclxuICB9XHJcbiAgb3ZlcnJpZGUgZ2V0IG1vZGVsKCk6IHN0cmluZyAgICAgIHsgIGlmKHRoaXMuX21vZGVsICE9IG51bGwpeyByZXR1cm4gdGhpcy50cmFuc2Zvcm0odGhpcy5fbW9kZWwpOyB9IGVsc2UgcmV0dXJuIG51bGw7IH1cclxuICBvdmVycmlkZSBzZXQgbW9kZWwodmFsdWU6IHN0cmluZykgeyB0aGlzLl9tb2RlbCA9IHZhbHVlOyB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLl9tb2RlbCk7IH1cclxuICBzZXRNb2RlbCh2YWx1ZTogc3RyaW5nKXtcclxuICAgIHRoaXMuX21vZGVsID0gdmFsdWU7IFxyXG4gIH1cclxuICBcclxuICBnZXQgX3ZhbCgpICB7IHJldHVybiB0aGlzLm1vZGVsOyB9XHJcbiAgc2V0IF92YWwodikgeyB9XHJcblxyXG4gIGdldCBtb2RhbCgpeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pZF9tb2RhbCkgYXMgYW55IGFzIElvbk1vZGFsfVxyXG4gIE9wZW4oKXsgaWYoIXRoaXMuZGlzYWJsZWQpeyB0aGlzLm1vZGFsLnByZXNlbnQoKTsgfSB9XHJcblxyXG4gIENsZWFyKCl7IFxyXG4gICAgdGhpcy5kYXRlTW9kZWwgPSBudWxsO1xyXG4gICAgdGhpcy5EYXRlVGltZUNoYW5nZSgpO1xyXG4gIH1cclxuICBEYXRlVGltZUNoYW5nZSgpOiB2b2lke1xyXG4gICAgaWYodGhpcy5kYXRlTW9kZWwpe1xyXG4gICAgICBpZih0aGlzLnByZXNlbnRhdGlvbiA9PSAndGltZScpIHsgXHJcbiAgICAgICAgaWYodGhpcy5kYXRlTW9kZWwuaW5jbHVkZXMoJ1QnKSl7XHJcbiAgICAgICAgICB0aGlzLmRhdGVNb2RlbCA9IHRoaXMuZGF0ZU1vZGVsLnNwbGl0KCdUJylbMV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubW9kZWwgPSB0aGlzLmRhdGVNb2RlbDsgXHJcbiAgICAgIH0gZWxzZVxyXG4gICAgICBpZih0aGlzLnByZXNlbnRhdGlvbiA9PSAnZGF0ZScpIHsgdGhpcy5tb2RlbCA9IHRoaXMuZGF0ZU1vZGVsLnNwbGl0KCdUJylbMF0gKyBcIlQwMDowMDowMFwiIH0gZWxzZSB7IHRoaXMubW9kZWwgPSB0aGlzLmRhdGVNb2RlbCB9XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5tb2RlbCA9IHRoaXMuZGF0ZU1vZGVsXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5jb25zdCBUaW1lVHJhbnNmb3JtOiBGdW5jdGlvbiA9ICgodjogc3RyaW5nKTogc3RyaW5nID0+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==