@wkly/datetime-picker 17.1.0 → 18.1.0

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.
@@ -1,20 +1,19 @@
1
- import { ApplicationRef, ComponentFactoryResolver, Directive, ElementRef, forwardRef, HostListener, Inject, Injectable, Injector, PLATFORM_ID, } from "@angular/core";
1
+ import { ApplicationRef, createComponent, Directive, ElementRef, EnvironmentInjector, effect, forwardRef, HostListener, Inject, Injectable, Injector, PLATFORM_ID, signal, untracked, } from "@angular/core";
2
2
  import { DOCUMENT, isPlatformBrowser } from "@angular/common";
3
3
  import { NG_VALIDATORS, NG_VALUE_ACCESSOR, } from "@angular/forms";
4
4
  import { validateSelection, WklyGregorianCalendarAdapter, } from "@wkly/adapters";
5
- import { coerceBoolean, INPUT_NAMES, WklyPickerInputs, WklyPickerInputsPropertyKeys, WklyPickerOutputsPropertyKeys, } from "./config";
5
+ import { WklyPickerInputsPropertyKeys, WklyPickerOutputsPropertyKeys, } from "@wkly/presentation";
6
+ import { WklyPickerInputs, unwrapWklyPickerSignalInputs, } from "./config";
6
7
  import { WklyDateTimePickerComponent } from "./picker.component";
7
8
  import * as i0 from "@angular/core";
8
9
  /** Native-dialog factory. Browser resources are allocated only by open(). */
9
10
  export class WklyDateTimePickerDialogService {
10
- resolver;
11
- injector;
11
+ environmentInjector;
12
12
  app;
13
13
  document;
14
14
  platform;
15
- constructor(resolver, injector, app, document, platform) {
16
- this.resolver = resolver;
17
- this.injector = injector;
15
+ constructor(environmentInjector, app, document, platform) {
16
+ this.environmentInjector = environmentInjector;
18
17
  this.app = app;
19
18
  this.document = document;
20
19
  this.platform = platform;
@@ -33,9 +32,10 @@ export class WklyDateTimePickerDialogService {
33
32
  maxHeight: "94vh",
34
33
  background: "transparent",
35
34
  });
36
- const component = this.resolver
37
- .resolveComponentFactory(WklyDateTimePickerComponent)
38
- .create(injector || this.injector);
35
+ const component = createComponent(WklyDateTimePickerComponent, {
36
+ environmentInjector: this.environmentInjector,
37
+ elementInjector: injector,
38
+ });
39
39
  component.instance.presentation = "transient";
40
40
  dialog.appendChild(component.location.nativeElement);
41
41
  this.document.body.appendChild(dialog);
@@ -87,13 +87,13 @@ export class WklyDateTimePickerDialogService {
87
87
  },
88
88
  };
89
89
  }
90
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WklyDateTimePickerDialogService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: i0.ApplicationRef }, { token: DOCUMENT }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
91
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WklyDateTimePickerDialogService, providedIn: "root" });
90
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WklyDateTimePickerDialogService, deps: [{ token: i0.EnvironmentInjector }, { token: i0.ApplicationRef }, { token: DOCUMENT }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
91
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WklyDateTimePickerDialogService, providedIn: "root" });
92
92
  }
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WklyDateTimePickerDialogService, decorators: [{
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WklyDateTimePickerDialogService, decorators: [{
94
94
  type: Injectable,
95
95
  args: [{ providedIn: "root" }]
96
- }], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }, { type: i0.Injector }, { type: i0.ApplicationRef }, { type: Document, decorators: [{
96
+ }], ctorParameters: () => [{ type: i0.EnvironmentInjector }, { type: i0.ApplicationRef }, { type: Document, decorators: [{
97
97
  type: Inject,
98
98
  args: [DOCUMENT]
99
99
  }] }, { type: Object, decorators: [{
@@ -109,19 +109,49 @@ export class WklyTriggerBase extends WklyPickerInputs {
109
109
  change = () => { };
110
110
  touched = () => { };
111
111
  validation = () => { };
112
+ formValue = signal(undefined);
113
+ formDisabled = signal(false);
114
+ previousInputs;
115
+ currentValue() {
116
+ return this.formValue() === undefined
117
+ ? this[WklyPickerInputsPropertyKeys.Value]()
118
+ : this.formValue();
119
+ }
120
+ isDisabled() {
121
+ return this[WklyPickerInputsPropertyKeys.Disabled]() || this.formDisabled();
122
+ }
112
123
  constructor(element) {
113
124
  super();
114
125
  this.element = element;
126
+ effect(() => {
127
+ const inputs = unwrapWklyPickerSignalInputs(this);
128
+ const previous = this.previousInputs;
129
+ this.previousInputs = inputs;
130
+ untracked(() => {
131
+ if (previous &&
132
+ !Object.is(previous[WklyPickerInputsPropertyKeys.Value], inputs[WklyPickerInputsPropertyKeys.Value]))
133
+ this.formValue.set(undefined);
134
+ if (!previous ||
135
+ Object.keys(inputs).some((key) => !Object.is(previous[key], inputs[key]))) {
136
+ this.checkValue();
137
+ this.display();
138
+ if (this.ref) {
139
+ this.copy();
140
+ this.ref.component.changeDetectorRef.detectChanges();
141
+ }
142
+ }
143
+ });
144
+ });
115
145
  }
116
146
  open() {
117
- if (this[WklyPickerInputsPropertyKeys.Disabled] || this.ref)
147
+ if (this.isDisabled() || this.ref)
118
148
  return;
119
149
  this.ref = this.create();
120
150
  const picker = this.ref.component.instance;
121
151
  this.copy();
122
152
  this.subscriptions = [
123
153
  picker[WklyPickerOutputsPropertyKeys.ValueChange].subscribe((value) => {
124
- this[WklyPickerInputsPropertyKeys.Value] = value;
154
+ this.formValue.set(value);
125
155
  this.change(value);
126
156
  this[WklyPickerOutputsPropertyKeys.ValueChange].emit(value);
127
157
  this.display();
@@ -161,55 +191,43 @@ export class WklyTriggerBase extends WklyPickerInputs {
161
191
  this.touched();
162
192
  this[WklyPickerOutputsPropertyKeys.Closed].emit(reason);
163
193
  }
164
- ngOnChanges() {
165
- [
166
- WklyPickerInputsPropertyKeys.ShowSeconds,
167
- WklyPickerInputsPropertyKeys.AllowRangeAcrossDisabled,
168
- WklyPickerInputsPropertyKeys.Required,
169
- WklyPickerInputsPropertyKeys.Disabled,
170
- WklyPickerInputsPropertyKeys.CloseOnBackdrop,
171
- ].forEach((key) => (this[key] = coerceBoolean(this[key])));
172
- this.checkValue();
173
- this.display();
174
- if (this.ref) {
175
- this.copy();
176
- this.ref.component.instance.ngOnChanges({
177
- [WklyPickerInputsPropertyKeys.Value]: true,
178
- });
179
- this.ref.component.changeDetectorRef.detectChanges();
180
- }
181
- }
182
194
  ngOnDestroy() {
183
195
  this.close();
184
196
  }
185
197
  copy() {
186
- if (this.ref)
187
- for (const name of INPUT_NAMES)
188
- this.ref.component.instance[name] = this[name];
198
+ if (!this.ref)
199
+ return;
200
+ const inputs = unwrapWklyPickerSignalInputs(this);
201
+ for (const name of Object.values(WklyPickerInputsPropertyKeys))
202
+ this.ref.component.setInput(name, name === WklyPickerInputsPropertyKeys.Value
203
+ ? this.currentValue()
204
+ : name === WklyPickerInputsPropertyKeys.Disabled
205
+ ? this.isDisabled()
206
+ : inputs[name]);
189
207
  }
190
208
  display() {
191
209
  const host = this.element.nativeElement;
192
210
  if (host.tagName === "INPUT") {
193
211
  host.readOnly = true;
194
- const value = this[WklyPickerInputsPropertyKeys.Value];
212
+ const value = this.currentValue();
195
213
  host.value =
196
214
  value === null
197
215
  ? ""
198
216
  : typeof value === "string"
199
217
  ? value
200
218
  : value.join(" — ");
201
- host.disabled = this[WklyPickerInputsPropertyKeys.Disabled];
219
+ host.disabled = this.isDisabled();
202
220
  host.setAttribute("aria-haspopup", "dialog");
203
221
  }
204
222
  }
205
223
  checkValue() {
206
- this.errors = validateSelection(this[WklyPickerInputsPropertyKeys.Value], this, this[WklyPickerInputsPropertyKeys.CalendarAdapter] ||
207
- new WklyGregorianCalendarAdapter(this[WklyPickerInputsPropertyKeys.Locale] || "en-US"));
224
+ this.errors = validateSelection(this.currentValue(), unwrapWklyPickerSignalInputs(this), this[WklyPickerInputsPropertyKeys.CalendarAdapter]() ||
225
+ new WklyGregorianCalendarAdapter(this[WklyPickerInputsPropertyKeys.Locale]() || "en-US"));
208
226
  this[WklyPickerOutputsPropertyKeys.ValidationChange].emit(this.errors);
209
227
  this.validation();
210
228
  }
211
229
  writeValue(value) {
212
- this[WklyPickerInputsPropertyKeys.Value] = value;
230
+ this.formValue.set(value);
213
231
  this.checkValue();
214
232
  this.display();
215
233
  if (this.ref)
@@ -222,7 +240,7 @@ export class WklyTriggerBase extends WklyPickerInputs {
222
240
  this.touched = fn;
223
241
  }
224
242
  setDisabledState(value) {
225
- this[WklyPickerInputsPropertyKeys.Disabled] = value;
243
+ this.formDisabled.set(value);
226
244
  this.display();
227
245
  if (this.ref)
228
246
  this.ref.component.instance.setDisabledState(value);
@@ -249,10 +267,10 @@ export class WklyTriggerBase extends WklyPickerInputs {
249
267
  this.open();
250
268
  this.ref?.component.instance.scrollToValue(value, options);
251
269
  }
252
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WklyTriggerBase, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
253
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: WklyTriggerBase, host: { listeners: { "click": "open()", "keydown": "key($event)", "blur": "blur()" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
270
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WklyTriggerBase, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
271
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: WklyTriggerBase, host: { listeners: { "click": "open()", "keydown": "key($event)", "blur": "blur()" } }, usesInheritance: true, ngImport: i0 });
254
272
  }
255
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WklyTriggerBase, decorators: [{
273
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WklyTriggerBase, decorators: [{
256
274
  type: Directive
257
275
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { open: [{
258
276
  type: HostListener,
@@ -273,10 +291,10 @@ export class WklyDateTimePickerDialogDirective extends WklyTriggerBase {
273
291
  this.triggerInjector = triggerInjector;
274
292
  }
275
293
  create() {
276
- return this.service.open(this.element.nativeElement, (reason) => this.close(reason), this[WklyPickerInputsPropertyKeys.CloseOnBackdrop], this.triggerInjector);
294
+ return this.service.open(this.element.nativeElement, (reason) => this.close(reason), this[WklyPickerInputsPropertyKeys.CloseOnBackdrop](), this.triggerInjector);
277
295
  }
278
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WklyDateTimePickerDialogDirective, deps: [{ token: i0.ElementRef }, { token: WklyDateTimePickerDialogService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
279
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: WklyDateTimePickerDialogDirective, selector: "[wklyDateTimePickerDialog]", providers: [
296
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WklyDateTimePickerDialogDirective, deps: [{ token: i0.ElementRef }, { token: WklyDateTimePickerDialogService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
297
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: WklyDateTimePickerDialogDirective, selector: "[wklyDateTimePickerDialog]", providers: [
280
298
  {
281
299
  provide: NG_VALUE_ACCESSOR,
282
300
  useExisting: forwardRef(() => WklyDateTimePickerDialogDirective),
@@ -289,10 +307,11 @@ export class WklyDateTimePickerDialogDirective extends WklyTriggerBase {
289
307
  },
290
308
  ], exportAs: ["wklyDialog"], usesInheritance: true, ngImport: i0 });
291
309
  }
292
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WklyDateTimePickerDialogDirective, decorators: [{
310
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WklyDateTimePickerDialogDirective, decorators: [{
293
311
  type: Directive,
294
312
  args: [{
295
313
  selector: "[wklyDateTimePickerDialog]",
314
+ standalone: false,
296
315
  exportAs: "wklyDialog",
297
316
  providers: [
298
317
  {
@@ -308,4 +327,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
308
327
  ],
309
328
  }]
310
329
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: WklyDateTimePickerDialogService }, { type: i0.Injector }] });
311
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2VudGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvd2tseS1kYXRldGltZS1waWNrZXIuMTcvc3JjL3ByZXNlbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsY0FBYyxFQUNkLHdCQUF3QixFQUV4QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLFVBQVUsRUFDVixRQUFRLEVBSVIsV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBRUwsYUFBYSxFQUNiLGlCQUFpQixHQUdsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsNEJBQTRCLEdBSTdCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNMLGFBQWEsRUFDYixXQUFXLEVBR1gsZ0JBQWdCLEVBQ2hCLDRCQUE0QixFQUM1Qiw2QkFBNkIsR0FDOUIsTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBS2pFLDZFQUE2RTtBQUU3RSxNQUFNLE9BQU8sK0JBQStCO0lBRWhDO0lBQ0E7SUFDQTtJQUNrQjtJQUNHO0lBTC9CLFlBQ1UsUUFBa0MsRUFDbEMsUUFBa0IsRUFDbEIsR0FBbUIsRUFDRCxRQUFrQixFQUNmLFFBQWdCO1FBSnJDLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBQ2xDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsUUFBRyxHQUFILEdBQUcsQ0FBZ0I7UUFDRCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2YsYUFBUSxHQUFSLFFBQVEsQ0FBUTtJQUM1QyxDQUFDO0lBQ0osSUFBSSxDQUNGLE9BQW9CLEVBQ3BCLFFBQTJDLEVBQzNDLFFB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LENBQUM7Z0JBQ2hFLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRjs7NEZBRVUsaUNBQWlDO2tCQWhCN0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGtDQUFrQyxDQUFDOzRCQUNoRSxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsa0NBQWtDLENBQUM7NEJBQ2hFLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXBwbGljYXRpb25SZWYsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgQ29tcG9uZW50UmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbmplY3RhYmxlLFxuICBJbmplY3RvcixcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBQTEFURk9STV9JRCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERPQ1VNRU5ULCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7XG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yLFxufSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7XG4gIHZhbGlkYXRlU2VsZWN0aW9uLFxuICBXa2x5R3JlZ29yaWFuQ2FsZW5kYXJBZGFwdGVyLFxuICBXa2x5Q2FsZW5kYXJEYXRlLFxuICBXa2x5UGlja2VyVmFsdWUsXG4gIFdrbHlWYWxpZGF0aW9uRXJyb3IsXG59IGZyb20gXCJAd2tseS9hZGFwdGVyc1wiO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7XG4gIGNvZXJjZUJvb2xlYW4sXG4gIElOUFVUX05BTUVTLFxuICBXa2x5Q2xvc2VSZWFzb24sXG4gIFdrbHlKdW1wT3B0aW9ucyxcbiAgV2tseVBpY2tlcklucHV0cyxcbiAgV2tseVBpY2tlcklucHV0c1Byb3BlcnR5S2V5cyxcbiAgV2tseVBpY2tlck91dHB1dHNQcm9wZXJ0eUtleXMsXG59IGZyb20gXCIuL2NvbmZpZ1wiO1xuaW1wb3J0IHsgV2tseURhdGVUaW1lUGlja2VyQ29tcG9uZW50IH0gZnJvbSBcIi4vcGlja2VyLmNvbXBvbmVudFwiO1xuZXhwb3J0IGludGVyZmFjZSBXa2x5UHJlc2VudGF0aW9uUmVmIHtcbiAgcmVhZG9ubHkgY29tcG9uZW50OiBDb21wb25lbnRSZWY8V2tseURhdGVUaW1lUGlja2VyQ29tcG9uZW50PjtcbiAgZGVzdHJveSgpOiB2b2lkO1xufVxuLyoqIE5hdGl2ZS1kaWFsb2cgZmFjdG9yeS4gQnJvd3NlciByZXNvdXJjZXMgYXJlIGFsbG9jYXRlZCBvbmx5IGJ5IG9wZW4oKS4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogXCJyb290XCIgfSlcbmV4cG9ydCBjbGFzcyBXa2x5RGF0ZVRpbWVQaWNrZXJEaWFsb2dTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgYXBwOiBBcHBsaWNhdGlvblJlZixcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtOiBPYmplY3QsXG4gICkge31cbiAgb3BlbihcbiAgICB0cmlnZ2VyOiBIVE1MRWxlbWVudCxcbiAgICBvbkNhbmNlbDogKHJlYXNvbjogV2tseUNsb3NlUmVhc29uKSA9PiB2b2lkLFxuICAgIGJhY2tkcm9wID0gdHJ1ZSxcbiAgICBpbmplY3Rvcj86IEluamVjdG9yLFxuICApOiBXa2x5UHJlc2VudGF0aW9uUmVmIHtcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm0pKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUGlja2VyIHByZXNlbnRhdGlvbnMgY2FuIG9ubHkgb3BlbiBpbiBhIGJyb3dzZXJcIik7XG4gICAgY29uc3QgZGlhbG9nID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgXCJkaWFsb2dcIixcbiAgICApIGFzIEhUTUxEaWFsb2dFbGVtZW50ICYge1xuICAgICAgc2hvd01vZGFsKCk6IHZvaWQ7XG4gICAgICBjbG9zZSgpOiB2b2lkO1xuICAgIH07XG4gICAgZGlhbG9nLnNldEF0dHJpYnV0ZShcImFyaWEtbGFiZWxcIiwgXCJEYXRlIGFuZCB0aW1lIHBpY2tlclwiKTtcbiAgICBPYmplY3QuYXNzaWduKGRpYWxvZy5zdHlsZSwge1xuICAgICAgcGFkZGluZzogXCIwXCIsXG4gICAgICBib3JkZXI6IFwiMFwiLFxuICAgICAgYm9yZGVyUmFkaXVzOiBcIjE0cHhcIixcbiAgICAgIHdpZHRoOiBcIm1pbigzOTBweCwgMTAwdncpXCIsXG4gICAgICBtYXhXaWR0aDogXCIxMDB2d1wiLFxuICAgICAgbWF4SGVpZ2h0OiBcIjk0dmhcIixcbiAgICAgIGJhY2tncm91bmQ6IFwidHJhbnNwYXJlbnRcIixcbiAgICB9KTtcbiAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLnJlc29sdmVyXG4gICAgICAucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoV2tseURhdGVUaW1lUGlja2VyQ29tcG9uZW50KVxuICAgICAgLmNyZWF0ZShpbmplY3RvciB8fCB0aGlzLmluamVjdG9yKTtcbiAgICBjb21wb25lbnQuaW5zdGFuY2UucHJlc2VudGF0aW9uID0gXCJ0cmFuc2llbnRcIjtcbiAgICBkaWFsb2cuYXBwZW5kQ2hpbGQoY29tcG9uZW50LmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHRoaXMuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaWFsb2cpO1xuICAgIHRoaXMuYXBwLmF0dGFjaFZpZXcoY29tcG9uZW50Lmhvc3RWaWV3KTtcbiAgICBjb25zdCBjYW5jZWwgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgb25DYW5jZWwoXCJlc2NhcGVcIik7XG4gICAgfTtcbiAgICBjb25zdCBjbGljayA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgaWYgKGJhY2tkcm9wICYmIGV2ZW50LnRhcmdldCA9PT0gZGlhbG9nKSB7XG4gICAgICAgIGNvbnN0IHIgPSBkaWFsb2cuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBldmVudC5jbGllbnRYIDwgci5sZWZ0IHx8XG4gICAgICAgICAgZXZlbnQuY2xpZW50WCA+IHIucmlnaHQgfHxcbiAgICAgICAgICBldmVudC5jbGllbnRZIDwgci50b3AgfHxcbiAgICAgICAgICBldmVudC5jbGllbnRZID4gci5ib3R0b21cbiAgICAgICAgKVxuICAgICAgICAgIG9uQ2FuY2VsKFwiYmFja2Ryb3BcIik7XG4gICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBrZXlkb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQua2V5ICE9PSBcIlRhYlwiKSByZXR1cm47XG4gICAgICBjb25zdCBjb250cm9scyA9IEFycmF5LmZyb20oXG4gICAgICAgIGRpYWxvZy5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PihcbiAgICAgICAgICAnYnV0dG9uOm5vdCg6ZGlzYWJsZWQpLGlucHV0Om5vdCg6ZGlzYWJsZWQpLFt0YWJpbmRleD1cIjBcIl0nLFxuICAgICAgICApLFxuICAgICAgKS5maWx0ZXIoXG4gICAgICAgIChlbCkgPT5cbiAgICAgICAgICBlbC50YWJJbmRleCA+PSAwICYmXG4gICAgICAgICAgZWwuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGggJiZcbiAgICAgICAgICBnZXRDb21wdXRlZFN0eWxlKGVsKS52aXNpYmlsaXR5ICE9PSBcImhpZGRlblwiLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGZpcnN0ID0gY29udHJvbHNbMF0sXG4gICAgICAgIGxhc3QgPSBjb250cm9sc1tjb250cm9scy5sZW5ndGggLSAxXTtcbiAgICAgIGlmIChcbiAgICAgICAgZmlyc3QgJiZcbiAgICAgICAgKGV2ZW50LnNoaWZ0S2V5XG4gICAgICAgICAgPyB0aGlzLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGZpcnN0XG4gICAgICAgICAgOiB0aGlzLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGxhc3QpXG4gICAgICApIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgKGV2ZW50LnNoaWZ0S2V5ID8gbGFzdCA6IGZpcnN0KS5mb2N1cygpO1xuICAgICAgfVxuICAgIH07XG4gICAgZGlhbG9nLmFkZEV2ZW50TGlzdGVuZXIoXCJjYW5jZWxcIiwgY2FuY2VsKTtcbiAgICBkaWFsb2cuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGNsaWNrKTtcbiAgICBkaWFsb2cuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwga2V5ZG93bik7XG4gICAgZGlhbG9nLnNob3dNb2RhbCgpO1xuICAgIHJldHVybiB7XG4gICAgICBjb21wb25lbnQsXG4gICAgICBkZXN0cm95OiAoKSA9PiB7XG4gICAgICAgIGRpYWxvZy5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2FuY2VsXCIsIGNhbmNlbCk7XG4gICAgICAgIGRpYWxvZy5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgY2xpY2spO1xuICAgICAgICBkaWFsb2cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwga2V5ZG93bik7XG4gICAgICAgIGRpYWxvZy5jbG9zZSgpO1xuICAgICAgICB0aGlzLmFwcC5kZXRhY2hWaWV3KGNvbXBvbmVudC5ob3N0Vmlldyk7XG4gICAgICAgIGNvbXBvbmVudC5kZXN0cm95KCk7XG4gICAgICAgIGRpYWxvZy5yZW1vdmUoKTtcbiAgICAgICAgdHJpZ2dlci5mb2N1cygpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG4vKiogU2hhcmVkIHRyaWdnZXIgbGlmZWN5Y2xlOyBvcHRpb25hbCBwcmVzZW50YXRpb24gcGFja2FnZXMgZXh0ZW5kIHRoaXMgY2xhc3MuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBXa2x5VHJpZ2dlckJhc2VcbiAgZXh0ZW5kcyBXa2x5UGlja2VySW5wdXRzXG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcbntcbiAgcHJvdGVjdGVkIHJlZjogV2tseVByZXNlbnRhdGlvblJlZiB8IG51bGwgPSBudWxsO1xuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBlcnJvcnM6IHJlYWRvbmx5IFdrbHlWYWxpZGF0aW9uRXJyb3JbXSA9IFtdO1xuICBwcml2YXRlIGNoYW5nZTogKHZhbHVlOiBXa2x5UGlja2VyVmFsdWUpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSB0b3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHByaXZhdGUgdmFsaWRhdGlvbjogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICBzdXBlcigpO1xuICB9XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBjcmVhdGUoKTogV2tseVByZXNlbnRhdGlvblJlZjtcbiAgQEhvc3RMaXN0ZW5lcihcImNsaWNrXCIpIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXNbV2tseVBpY2tlcklucHV0c1Byb3BlcnR5S2V5cy5EaXNhYmxlZF0gfHwgdGhpcy5yZWYpIHJldHVybjtcbiAgICB0aGlzLnJlZiA9IHRoaXMuY3JlYXRlKCk7XG4gICAgY29uc3QgcGlja2VyID0gdGhpcy5yZWYuY29tcG9uZW50Lmluc3RhbmNlO1xuICAgIHRoaXMuY29weSgpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtcbiAgICAgIHBpY2tlcltXa2x5UGlja2VyT3V0cHV0c1Byb3BlcnR5S2V5cy5WYWx1ZUNoYW5nZV0uc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICB0aGlzW1drbHlQaWNrZXJJbnB1dHNQcm9wZXJ0eUtleXMuVmFsdWVdID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY2hhbmdlKHZhbHVlKTtcbiAgICAgICAgdGhpc1tXa2x5UGlja2VyT3V0cHV0c1Byb3BlcnR5S2V5cy5WYWx1ZUNoYW5nZV0uZW1pdCh2YWx1ZSk7XG4gICAgICAgIHRoaXMuZGlzcGxheSgpO1xuICAgICAgfSksXG4gICAgICBwaWNrZXJbV2tseVBpY2tlck91dHB1dHNQcm9wZXJ0eUtleXMuVmFsaWRhdGlvbkNoYW5nZV0uc3Vic2NyaWJlKFxuICAgICAgICAoZXJyb3JzKSA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvcnMgPSBlcnJvcnM7XG4gICAgICAgICAgdGhpc1tXa2x5UGlja2VyT3V0cHV0c1Byb3BlcnR5S2V5cy5WYWxpZGF0aW9uQ2hhbmdlXS5lbWl0KGVycm9ycyk7XG4gICAgICAgICAgdGhpcy52YWxpZGF0aW9uKCk7XG4gICAgICAgIH0sXG4gICAgICApLFxuICAgICAgcGlja2VyW1drbHlQaWNrZXJPdXRwdXRzUHJvcGVydHlLZXlzLkNsb3NlZF0uc3Vic2NyaWJlKChyZWFzb24pID0+XG4gICAgICAgIHRoaXMuY2xvc2UocmVhc29uKSxcbiAgICAgICksXG4gICAgICBwaWNrZXJbV2tseVBpY2tlck91dHB1dHNQcm9wZXJ0eUtleXMuVmlld3BvcnRDaGFuZ2VdLnN1YnNjcmliZSgodmFsdWUpID0+XG4gICAgICAgIHRoaXNbV2tseVBpY2tlck91dHB1dHNQcm9wZXJ0eUtleXMuVmlld3BvcnRDaGFuZ2VdLmVtaXQodmFsdWUpLFxuICAgICAgKSxcbiAgICAgIHBpY2tlcltXa2x5UGlja2VyT3V0cHV0c1Byb3BlcnR5S2V5cy5WaWV3TW9kZUNoYW5nZV0uc3Vic2NyaWJlKCh2YWx1ZSkgPT5cbiAgICAgICAgdGhpc1tXa2x5UGlja2VyT3V0cHV0c1Byb3BlcnR5S2V5cy5WaWV3TW9kZUNoYW5nZV0uZW1pdCh2YWx1ZSksXG4gICAgICApLFxuICAgIF07XG4gICAgdGhpcy5yZWYuY29tcG9uZW50LmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICBwaWNrZXIuZm9jdXNEYXkoKTtcbiAgICB0aGlzW1drbHlQaWNrZXJPdXRwdXRzUHJvcGVydHlLZXlzLk9wZW5lZF0uZW1pdCgpO1xuICB9XG4gIEBIb3N0TGlzdGVuZXIoXCJrZXlkb3duXCIsIFtcIiRldmVudFwiXSkga2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgZXZlbnQua2V5ID09PSBcIkVudGVyXCIgfHxcbiAgICAgIGV2ZW50LmtleSA9PT0gXCIgXCIgfHxcbiAgICAgIGV2ZW50LmtleSA9PT0gXCJBcnJvd0Rvd25cIlxuICAgICkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH1cbiAgfVxuICBASG9zdExpc3RlbmVyKFwiYmx1clwiKSBibHVyKCk6IHZvaWQge1xuICAgIHRoaXMudG91Y2hlZCgpO1xuICB9XG4gIGNsb3NlKHJlYXNvbjogV2tseUNsb3NlUmVhc29uID0gXCJwcm9ncmFtbWF0aWNcIik6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZWYpIHJldHVybjtcbiAgICBjb25zdCByZWYgPSB0aGlzLnJlZjtcbiAgICB0aGlzLnJlZiA9IG51bGw7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goKHMpID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gICAgcmVmLmRlc3Ryb3koKTtcbiAgICB0aGlzLnRvdWNoZWQoKTtcbiAgICB0aGlzW1drbHlQaWNrZXJPdXRwdXRzUHJvcGVydHlLZXlzLkNsb3NlZF0uZW1pdChyZWFzb24pO1xuICB9XG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIFtcbiAgICAgIFdrbHlQaWNrZXJJbnB1dHNQcm9wZXJ0eUtleXMuU2hvd1NlY29uZHMsXG4gICAgICBXa2x5UGlja2VySW5wdXRzUHJvcGVydHlLZXlzLkFsbG93UmFuZ2VBY3Jvc3NEaXNhYmxlZCxcbiAgICAgIFdrbHlQaWNrZXJJbnB1dHNQcm9wZXJ0eUtleXMuUmVxdWlyZWQsXG4gICAgICBXa2x5UGlja2VySW5wdXRzUHJvcGVydHlLZXlzLkRpc2FibGVkLFxuICAgICAgV2tseVBpY2tlcklucHV0c1Byb3BlcnR5S2V5cy5DbG9zZU9uQmFja2Ryb3AsXG4gICAgXS5mb3JFYWNoKFxuICAgICAgKGtleSkgPT4gKCh0aGlzIGFzIGFueSlba2V5XSA9IGNvZXJjZUJvb2xlYW4oKHRoaXMgYXMgYW55KVtrZXldKSksXG4gICAgKTtcbiAgICB0aGlzLmNoZWNrVmFsdWUoKTtcbiAgICB0aGlzLmRpc3BsYXkoKTtcbiAgICBpZiAodGhpcy5yZWYpIHtcbiAgICAgIHRoaXMuY29weSgpO1xuICAgICAgdGhpcy5yZWYuY29tcG9uZW50Lmluc3RhbmNlLm5nT25DaGFuZ2VzKHtcbiAgICAgICAgW1drbHlQaWNrZXJJbnB1dHNQcm9wZXJ0eUtleXMuVmFsdWVdOiB0cnVlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnJlZi5jb21wb25lbnQuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cbiAgcHJpdmF0ZSBjb3B5KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlZilcbiAgICAgIGZvciAoY29uc3QgbmFtZSBvZiBJTlBVVF9OQU1FUylcbiAgICAgICAgKHRoaXMucmVmLmNvbXBvbmVudC5pbnN0YW5jZSBhcyBhbnkpW25hbWVdID0gKHRoaXMgYXMgYW55KVtuYW1lXTtcbiAgfVxuICBwcml2YXRlIGRpc3BsYXkoKTogdm9pZCB7XG4gICAgY29uc3QgaG9zdCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgaWYgKGhvc3QudGFnTmFtZSA9PT0gXCJJTlBVVFwiKSB7XG4gICAgICBob3N0LnJlYWRPbmx5ID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpc1tXa2x5UGlja2VySW5wdXRzUHJvcGVydHlLZXlzLlZhbHVlXTtcbiAgICAgIGhvc3QudmFsdWUgPVxuICAgICAgICB2YWx1ZSA9PT0gbnVsbFxuICAgICAgICAgID8gXCJcIlxuICAgICAgICAgIDogdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICA/IHZhbHVlXG4gICAgICAgICAgICA6IHZhbHVlLmpvaW4oXCIg4oCUIFwiKTtcbiAgICAgIGhvc3QuZGlzYWJsZWQgPSB0aGlzW1drbHlQaWNrZXJJbnB1dHNQcm9wZXJ0eUtleXMuRGlzYWJsZWRdO1xuICAgICAgaG9zdC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWhhc3BvcHVwXCIsIFwiZGlhbG9nXCIpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGNoZWNrVmFsdWUoKTogdm9pZCB7XG4gICAgdGhpcy5lcnJvcnMgPSB2YWxpZGF0ZVNlbGVjdGlvbihcbiAgICAgIHRoaXNbV2tseVBpY2tlcklucHV0c1Byb3BlcnR5S2V5cy5WYWx1ZV0sXG4gICAgICB0aGlzLFxuICAgICAgdGhpc1tXa2x5UGlja2VySW5wdXRzUHJvcGVydHlLZXlzLkNhbGVuZGFyQWRhcHRlcl0gfHxcbiAgICAgICAgbmV3IFdrbHlHcmVnb3JpYW5DYWxlbmRhckFkYXB0ZXIoXG4gICAgICAgICAgdGhpc1tXa2x5UGlja2VySW5wdXRzUHJvcGVydHlLZXlzLkxvY2FsZV0gfHwgXCJlbi1VU1wiLFxuICAgICAgICApLFxuICAgICk7XG4gICAgdGhpc1tXa2x5UGlja2VyT3V0cHV0c1Byb3BlcnR5S2V5cy5WYWxpZGF0aW9uQ2hhbmdlXS5lbWl0KHRoaXMuZXJyb3JzKTtcbiAgICB0aGlzLnZhbGlkYXRpb24oKTtcbiAgfVxuICB3cml0ZVZhbHVlKHZhbHVlOiBXa2x5UGlja2VyVmFsdWUpOiB2b2lkIHtcbiAgICB0aGlzW1drbHlQaWNrZXJJbnB1dHNQcm9wZXJ0eUtleXMuVmFsdWVdID0gdmFsdWU7XG4gICAgdGhpcy5jaGVja1ZhbHVlKCk7XG4gICAgdGhpcy5kaXNwbGF5KCk7XG4gICAgaWYgKHRoaXMucmVmKSB0aGlzLnJlZi5jb21wb25lbnQuaW5zdGFuY2Uud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gIH1cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBXa2x5UGlja2VyVmFsdWUpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZSA9IGZuO1xuICB9XG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy50b3VjaGVkID0gZm47XG4gIH1cbiAgc2V0RGlzYWJsZWRTdGF0ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXNbV2tseVBpY2tlcklucHV0c1Byb3BlcnR5S2V5cy5EaXNhYmxlZF0gPSB2YWx1ZTtcbiAgICB0aGlzLmRpc3BsYXkoKTtcbiAgICBpZiAodGhpcy5yZWYpIHRoaXMucmVmLmNvbXBvbmVudC5pbnN0YW5jZS5zZXREaXNhYmxlZFN0YXRlKHZhbHVlKTtcbiAgfVxuICB2YWxpZGF0ZSgpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JzLmxlbmd0aCA/IHsgd2tseTogdGhpcy5lcnJvcnMgfSA6IG51bGw7XG4gIH1cbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMudmFsaWRhdGlvbiA9IGZuO1xuICB9XG4gIHNjcm9sbFRvRXBvY2hEYXkoZGF5OiBudW1iZXIsIG9wdGlvbnM/OiBXa2x5SnVtcE9wdGlvbnMpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW4oKTtcbiAgICB0aGlzLnJlZj8uY29tcG9uZW50Lmluc3RhbmNlLnNjcm9sbFRvRXBvY2hEYXkoZGF5LCBvcHRpb25zKTtcbiAgfVxuICBzY3JvbGxUb0Fic29sdXRlV2Vlayh3ZWVrOiBudW1iZXIsIG9wdGlvbnM/OiBXa2x5SnVtcE9wdGlvbnMpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW4oKTtcbiAgICB0aGlzLnJlZj8uY29tcG9uZW50Lmluc3RhbmNlLnNjcm9sbFRvQWJzb2x1dGVXZWVrKHdlZWssIG9wdGlvbnMpO1xuICB9XG4gIHNjcm9sbFRvQ2FsZW5kYXJEYXRlKFxuICAgIGRhdGU6IFdrbHlDYWxlbmRhckRhdGUsXG4gICAgb3B0aW9ucz86IFdrbHlKdW1wT3B0aW9ucyxcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuKCk7XG4gICAgdGhpcy5yZWY/LmNvbXBvbmVudC5pbnN0YW5jZS5zY3JvbGxUb0NhbGVuZGFyRGF0ZShkYXRlLCBvcHRpb25zKTtcbiAgfVxuICBzY3JvbGxUb1ZhbHVlKHZhbHVlOiBzdHJpbmcsIG9wdGlvbnM/OiBXa2x5SnVtcE9wdGlvbnMpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW4oKTtcbiAgICB0aGlzLnJlZj8uY29tcG9uZW50Lmluc3RhbmNlLnNjcm9sbFRvVmFsdWUodmFsdWUsIG9wdGlvbnMpO1xuICB9XG59XG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW3drbHlEYXRlVGltZVBpY2tlckRpYWxvZ11cIixcbiAgZXhwb3J0QXM6IFwid2tseURpYWxvZ1wiLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFdrbHlEYXRlVGltZVBpY2tlckRpYWxvZ0RpcmVjdGl2ZSksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBXa2x5RGF0ZVRpbWVQaWNrZXJEaWFsb2dEaXJlY3RpdmUpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV2tseURhdGVUaW1lUGlja2VyRGlhbG9nRGlyZWN0aXZlIGV4dGVuZHMgV2tseVRyaWdnZXJCYXNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBXa2x5RGF0ZVRpbWVQaWNrZXJEaWFsb2dTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJpZ2dlckluamVjdG9yOiBJbmplY3RvcixcbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudCk7XG4gIH1cbiAgcHJvdGVjdGVkIGNyZWF0ZSgpOiBXa2x5UHJlc2VudGF0aW9uUmVmIHtcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLm9wZW4oXG4gICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgIChyZWFzb24pID0+IHRoaXMuY2xvc2UocmVhc29uKSxcbiAgICAgIHRoaXNbV2tseVBpY2tlcklucHV0c1Byb3BlcnR5S2V5cy5DbG9zZU9uQmFja2Ryb3BdLFxuICAgICAgdGhpcy50cmlnZ2VySW5qZWN0b3IsXG4gICAgKTtcbiAgfVxufVxuIl19
330
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2VudGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvd2tseS1kYXRldGltZS1waWNrZXIuMTgvc3JjL3ByZXNlbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsY0FBYyxFQUVkLGVBQWUsRUFDZixTQUFTLEVBQ1QsVUFBVSxFQUNWLG1CQUFtQixFQUNuQixNQUFNLEVBQ04sVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sVUFBVSxFQUNWLFFBQVEsRUFHUixXQUFXLEVBQ1gsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUVMLGFBQWEsRUFDYixpQkFBaUIsR0FHbEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLDRCQUE0QixHQUk3QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFFTCw0QkFBNEIsRUFDNUIsNkJBQTZCLEdBQzlCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUdMLGdCQUFnQixFQUNoQiw0QkFBNEIsR0FDN0IsTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBS2pFLDZFQUE2RTtBQUU3RSxNQUFNLE9BQU8sK0JBQStCO0lBRWhDO0lBQ0E7SUFDa0I7SUFDRztJQUovQixZQUNVLG1CQUF3QyxFQUN4QyxHQUFtQixFQUNELFFBQWtCLEVBQ2YsUUFBZ0I7UUFIckMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxRQUFHLEdBQUgsR0FBRyxDQUFnQjtRQUNELGFBQVEsR0FBUixRQUFRLENBQVU7UUFDZixhQUFRLEdBQVIsUUFBUSxDQUFRO0lBQzVDLENBQUM7SUFDSixJQUFJLENB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QkFBQztvQkFDVCxRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxVQUFVLEVBQUUsS0FBSztvQkFDakIsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxrQ0FBa0MsQ0FBQzs0QkFDaEUsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGtDQUFrQyxDQUFDOzRCQUNoRSxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFwcGxpY2F0aW9uUmVmLFxuICBDb21wb25lbnRSZWYsXG4gIGNyZWF0ZUNvbXBvbmVudCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFbnZpcm9ubWVudEluamVjdG9yLFxuICBlZmZlY3QsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbmplY3RhYmxlLFxuICBJbmplY3RvcixcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgUExBVEZPUk1fSUQsXG4gIHNpZ25hbCxcbiAgdW50cmFja2VkLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtcbiAgdmFsaWRhdGVTZWxlY3Rpb24sXG4gIFdrbHlHcmVnb3JpYW5DYWxlbmRhckFkYXB0ZXIsXG4gIFdrbHlDYWxlbmRhckRhdGUsXG4gIFdrbHlQaWNrZXJWYWx1ZSxcbiAgV2tseVZhbGlkYXRpb25FcnJvcixcbn0gZnJvbSBcIkB3a2x5L2FkYXB0ZXJzXCI7XG5pbXBvcnQge1xuICBXa2x5UGlja2VySW5wdXRzIGFzIFdrbHlQaWNrZXJJbnB1dHNDb250cmFjdCxcbiAgV2tseVBpY2tlcklucHV0c1Byb3BlcnR5S2V5cyxcbiAgV2tseVBpY2tlck91dHB1dHNQcm9wZXJ0eUtleXMsXG59IGZyb20gXCJAd2tseS9wcmVzZW50YXRpb25cIjtcbmltcG9ydCB7XG4gIFdrbHlDbG9zZVJlYXNvbixcbiAgV2tseUp1bXBPcHRpb25zLFxuICBXa2x5UGlja2VySW5wdXRzLFxuICB1bndyYXBXa2x5UGlja2VyU2lnbmFsSW5wdXRzLFxufSBmcm9tIFwiLi9jb25maWdcIjtcbmltcG9ydCB7IFdrbHlEYXRlVGltZVBpY2tlckNvbXBvbmVudCB9IGZyb20gXCIuL3BpY2tlci5jb21wb25lbnRcIjtcbmV4cG9ydCBpbnRlcmZhY2UgV2tseVByZXNlbnRhdGlvblJlZiB7XG4gIHJlYWRvbmx5IGNvbXBvbmVudDogQ29tcG9uZW50UmVmPFdrbHlEYXRlVGltZVBpY2tlckNvbXBvbmVudD47XG4gIGRlc3Ryb3koKTogdm9pZDtcbn1cbi8qKiBOYXRpdmUtZGlhbG9nIGZhY3RvcnkuIEJyb3dzZXIgcmVzb3VyY2VzIGFyZSBhbGxvY2F0ZWQgb25seSBieSBvcGVuKCkuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46IFwicm9vdFwiIH0pXG5leHBvcnQgY2xhc3MgV2tseURhdGVUaW1lUGlja2VyRGlhbG9nU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZW52aXJvbm1lbnRJbmplY3RvcjogRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICBwcml2YXRlIGFwcDogQXBwbGljYXRpb25SZWYsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybTogT2JqZWN0LFxuICApIHt9XG4gIG9wZW4oXG4gICAgdHJpZ2dlcjogSFRNTEVsZW1lbnQsXG4gICAgb25DYW5jZWw6IChyZWFzb246IFdrbHlDbG9zZVJlYXNvbikgPT4gdm9pZCxcbiAgICBiYWNrZHJvcCA9IHRydWUsXG4gICAgaW5qZWN0b3I/OiBJbmplY3RvcixcbiAgKTogV2tseVByZXNlbnRhdGlvblJlZiB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtKSlcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlBpY2tlciBwcmVzZW50YXRpb25zIGNhbiBvbmx5IG9wZW4gaW4gYSBicm93c2VyXCIpO1xuICAgIGNvbnN0IGRpYWxvZyA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpYWxvZ1wiKTtcbiAgICBkaWFsb2cuc2V0QXR0cmlidXRlKFwiYXJpYS1sYWJlbFwiLCBcIkRhdGUgYW5kIHRpbWUgcGlja2VyXCIpO1xuICAgIE9iamVjdC5hc3NpZ24oZGlhbG9nLnN0eWxlLCB7XG4gICAgICBwYWRkaW5nOiBcIjBcIixcbiAgICAgIGJvcmRlcjogXCIwXCIsXG4gICAgICBib3JkZXJSYWRpdXM6IFwiMTRweFwiLFxuICAgICAgd2lkdGg6IFwibWluKDM5MHB4LCAxMDB2dylcIixcbiAgICAgIG1heFdpZHRoOiBcIjEwMHZ3XCIsXG4gICAgICBtYXhIZWlnaHQ6IFwiOTR2aFwiLFxuICAgICAgYmFja2dyb3VuZDogXCJ0cmFuc3BhcmVudFwiLFxuICAgIH0pO1xuICAgIGNvbnN0IGNvbXBvbmVudCA9IGNyZWF0ZUNvbXBvbmVudChXa2x5RGF0ZVRpbWVQaWNrZXJDb21wb25lbnQsIHtcbiAgICAgIGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuZW52aXJvbm1lbnRJbmplY3RvcixcbiAgICAgIGVsZW1lbnRJbmplY3RvcjogaW5qZWN0b3IsXG4gICAgfSk7XG4gICAgY29tcG9uZW50Lmluc3RhbmNlLnByZXNlbnRhdGlvbiA9IFwidHJhbnNpZW50XCI7XG4gICAgZGlhbG9nLmFwcGVuZENoaWxkKGNvbXBvbmVudC5sb2NhdGlvbi5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGlhbG9nKTtcbiAgICB0aGlzLmFwcC5hdHRhY2hWaWV3KGNvbXBvbmVudC5ob3N0Vmlldyk7XG4gICAgY29uc3QgY2FuY2VsID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIG9uQ2FuY2VsKFwiZXNjYXBlXCIpO1xuICAgIH07XG4gICAgY29uc3QgY2xpY2sgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGlmIChiYWNrZHJvcCAmJiBldmVudC50YXJnZXQgPT09IGRpYWxvZykge1xuICAgICAgICBjb25zdCByID0gZGlhbG9nLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZXZlbnQuY2xpZW50WCA8IHIubGVmdCB8fFxuICAgICAgICAgIGV2ZW50LmNsaWVudFggPiByLnJpZ2h0IHx8XG4gICAgICAgICAgZXZlbnQuY2xpZW50WSA8IHIudG9wIHx8XG4gICAgICAgICAgZXZlbnQuY2xpZW50WSA+IHIuYm90dG9tXG4gICAgICAgIClcbiAgICAgICAgICBvbkNhbmNlbChcImJhY2tkcm9wXCIpO1xuICAgICAgfVxuICAgIH07XG4gICAgY29uc3Qga2V5ZG93biA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleSAhPT0gXCJUYWJcIikgcmV0dXJuO1xuICAgICAgY29uc3QgY29udHJvbHMgPSBBcnJheS5mcm9tKFxuICAgICAgICBkaWFsb2cucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oXG4gICAgICAgICAgJ2J1dHRvbjpub3QoOmRpc2FibGVkKSxpbnB1dDpub3QoOmRpc2FibGVkKSxbdGFiaW5kZXg9XCIwXCJdJyxcbiAgICAgICAgKSxcbiAgICAgICkuZmlsdGVyKFxuICAgICAgICAoZWwpID0+XG4gICAgICAgICAgZWwudGFiSW5kZXggPj0gMCAmJlxuICAgICAgICAgIGVsLmdldENsaWVudFJlY3RzKCkubGVuZ3RoICYmXG4gICAgICAgICAgZ2V0Q29tcHV0ZWRTdHlsZShlbCkudmlzaWJpbGl0eSAhPT0gXCJoaWRkZW5cIixcbiAgICAgICk7XG4gICAgICBjb25zdCBmaXJzdCA9IGNvbnRyb2xzWzBdLFxuICAgICAgICBsYXN0ID0gY29udHJvbHNbY29udHJvbHMubGVuZ3RoIC0gMV07XG4gICAgICBpZiAoXG4gICAgICAgIGZpcnN0ICYmXG4gICAgICAgIChldmVudC5zaGlmdEtleVxuICAgICAgICAgID8gdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBmaXJzdFxuICAgICAgICAgIDogdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBsYXN0KVxuICAgICAgKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIChldmVudC5zaGlmdEtleSA/IGxhc3QgOiBmaXJzdCkuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGRpYWxvZy5hZGRFdmVudExpc3RlbmVyKFwiY2FuY2VsXCIsIGNhbmNlbCk7XG4gICAgZGlhbG9nLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBjbGljayk7XG4gICAgZGlhbG9nLmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGtleWRvd24pO1xuICAgIGRpYWxvZy5zaG93TW9kYWwoKTtcbiAgICByZXR1cm4ge1xuICAgICAgY29tcG9uZW50LFxuICAgICAgZGVzdHJveTogKCkgPT4ge1xuICAgICAgICBkaWFsb2cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNhbmNlbFwiLCBjYW5jZWwpO1xuICAgICAgICBkaWFsb2cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGNsaWNrKTtcbiAgICAgICAgZGlhbG9nLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGtleWRvd24pO1xuICAgICAgICBkaWFsb2cuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5hcHAuZGV0YWNoVmlldyhjb21wb25lbnQuaG9zdFZpZXcpO1xuICAgICAgICBjb21wb25lbnQuZGVzdHJveSgpO1xuICAgICAgICBkaWFsb2cucmVtb3ZlKCk7XG4gICAgICAgIHRyaWdnZXIuZm9jdXMoKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuLyoqIFNoYXJlZCB0cmlnZ2VyIGxpZmVjeWNsZTsgb3B0aW9uYWwgcHJlc2VudGF0aW9uIHBhY2thZ2VzIGV4dGVuZCB0aGlzIGNsYXNzLiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgV2tseVRyaWdnZXJCYXNlXG4gIGV4dGVuZHMgV2tseVBpY2tlcklucHV0c1xuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIE9uRGVzdHJveVxue1xuICBwcm90ZWN0ZWQgcmVmOiBXa2x5UHJlc2VudGF0aW9uUmVmIHwgbnVsbCA9IG51bGw7XG4gIHByb3RlY3RlZCBzdWJzY3JpcHRpb25zOiB7IHVuc3Vic2NyaWJlKCk6IHZvaWQgfVtdID0gW107XG4gIHByaXZhdGUgZXJyb3JzOiByZWFkb25seSBXa2x5VmFsaWRhdGlvbkVycm9yW10gPSBbXTtcbiAgcHJpdmF0ZSBjaGFuZ2U6ICh2YWx1ZTogV2tseVBpY2tlclZhbHVlKSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHByaXZhdGUgdG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuICBwcml2YXRlIHZhbGlkYXRpb246ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSByZWFkb25seSBmb3JtVmFsdWUgPSBzaWduYWw8V2tseVBpY2tlclZhbHVlIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcml2YXRlIHJlYWRvbmx5IGZvcm1EaXNhYmxlZCA9IHNpZ25hbChmYWxzZSk7XG4gIHByaXZhdGUgcHJldmlvdXNJbnB1dHM/OiBXa2x5UGlja2VySW5wdXRzQ29udHJhY3Q7XG4gIHByaXZhdGUgY3VycmVudFZhbHVlKCk6IFdrbHlQaWNrZXJWYWx1ZSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVZhbHVlKCkgPT09IHVuZGVmaW5lZFxuICAgICAgPyB0aGlzW1drbHlQaWNrZXJJbnB1dHNQcm9wZXJ0eUtleXMuVmFsdWVdKClcbiAgICAgIDogdGhpcy5mb3JtVmFsdWUoKSE7XG4gIH1cbiAgcHJpdmF0ZSBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzW1drbHlQaWNrZXJJbnB1dHNQcm9wZXJ0eUtleXMuRGlzYWJsZWRdKCkgfHwgdGhpcy5mb3JtRGlzYWJsZWQoKTtcbiAgfVxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICBzdXBlcigpO1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dHMgPVxuICAgICAgICB1bndyYXBXa2x5UGlja2VyU2lnbmFsSW5wdXRzPFdrbHlQaWNrZXJJbnB1dHNDb250cmFjdD4odGhpcyk7XG4gICAgICBjb25zdCBwcmV2aW91cyA9IHRoaXMucHJldmlvdXNJbnB1dHM7XG4gICAgICB0aGlzLnByZXZpb3VzSW5wdXRzID0gaW5wdXRzO1xuICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHByZXZpb3VzICYmXG4gICAgICAgICAgIU9iamVjdC5pcyhcbiAgICAgICAgICAgIHByZXZpb3VzW1drbHlQaWNrZXJJbnB1dHNQcm9wZXJ0eUtleXMuVmFsdWVdLFxuICAgICAgICAgICAgaW5wdXRzW1drbHlQaWNrZXJJbnB1dHNQcm9wZXJ0eUtleXMuVmFsdWVdLFxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgICAgIHRoaXMuZm9ybVZhbHVlLnNldCh1bmRlZmluZWQpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIXByZXZpb3VzIHx8XG4gICAgICAgICAgT2JqZWN0LmtleXMoaW5wdXRzKS5zb21lKFxuICAgICAgICAgICAgKGtleSkgPT5cbiAgICAgICAgICAgICAgIU9iamVjdC5pcyhcbiAgICAgICAgICAgICAgICBwcmV2aW91c1trZXkgYXMga2V5b2YgdHlwZW9mIGlucHV0c10sXG4gICAgICAgICAgICAgICAgaW5wdXRzW2tleSBhcyBrZXlvZiB0eXBlb2YgaW5wdXRzXSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuY2hlY2tWYWx1ZSgpO1xuICAgICAgICAgIHRoaXMuZGlzcGxheSgpO1xuICAgICAgICAgIGlmICh0aGlzLnJlZikge1xuICAgICAgICAgICAgdGhpcy5jb3B5KCk7XG4gICAgICAgICAgICB0aGlzLnJlZi5jb21wb25lbnQuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZSgpOiBXa2x5UHJlc2VudGF0aW9uUmVmO1xuICBASG9zdExpc3RlbmVyKFwiY2xpY2tcIikgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKCkgfHwgdGhpcy5yZWYpIHJldHVybjtcbiAgICB0aGlzLnJlZiA9IHRoaXMuY3JlYXRlKCk7XG4gICAgY29uc3QgcGlja2VyID0gdGhpcy5yZWYuY29tcG9uZW50Lmluc3RhbmNlO1xuICAgIHRoaXMuY29weSgpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtcbiAgICAgIHBpY2tlcltXa2x5UGlja2VyT3V0cHV0c1Byb3BlcnR5S2V5cy5WYWx1ZUNoYW5nZV0uc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICB0aGlzLmZvcm1WYWx1ZS5zZXQodmFsdWUpO1xuICAgICAgICB0aGlzLmNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIHRoaXNbV2tseVBpY2tlck91dHB1dHNQcm9wZXJ0eUtleXMuVmFsdWVDaGFuZ2VdLmVtaXQodmFsdWUpO1xuICAgICAgICB0aGlzLmRpc3BsYXkoKTtcbiAgICAgIH0pLFxuICAgICAgcGlja2VyW1drbHlQaWNrZXJPdXRwdXRzUHJvcGVydHlLZXlzLlZhbGlkYXRpb25DaGFuZ2VdLnN1YnNjcmliZShcbiAgICAgICAgKGVycm9ycykgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JzID0gZXJyb3JzO1xuICAgICAgICAgIHRoaXNbV2tseVBpY2tlck91dHB1dHNQcm9wZXJ0eUtleXMuVmFsaWRhdGlvbkNoYW5nZV0uZW1pdChlcnJvcnMpO1xuICAgICAgICAgIHRoaXMudmFsaWRhdGlvbigpO1xuICAgICAgICB9LFxuICAgICAgKSxcbiAgICAgIHBpY2tlcltXa2x5UGlja2VyT3V0cHV0c1Byb3BlcnR5S2V5cy5DbG9zZWRdLnN1YnNjcmliZSgocmVhc29uKSA9PlxuICAgICAgICB0aGlzLmNsb3NlKHJlYXNvbiksXG4gICAgICApLFxuICAgICAgcGlja2VyW1drbHlQaWNrZXJPdXRwdXRzUHJvcGVydHlLZXlzLlZpZXdwb3J0Q2hhbmdlXS5zdWJzY3JpYmUoKHZhbHVlKSA9PlxuICAgICAgICB0aGlzW1drbHlQaWNrZXJPdXRwdXRzUHJvcGVydHlLZXlzLlZpZXdwb3J0Q2hhbmdlXS5lbWl0KHZhbHVlKSxcbiAgICAgICksXG4gICAgICBwaWNrZXJbV2tseVBpY2tlck91dHB1dHNQcm9wZXJ0eUtleXMuVmlld01vZGVDaGFuZ2VdLnN1YnNjcmliZSgodmFsdWUpID0+XG4gICAgICAgIHRoaXNbV2tseVBpY2tlck91dHB1dHNQcm9wZXJ0eUtleXMuVmlld01vZGVDaGFuZ2VdLmVtaXQodmFsdWUpLFxuICAgICAgKSxcbiAgICBdO1xuICAgIHRoaXMucmVmLmNvbXBvbmVudC5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgcGlja2VyLmZvY3VzRGF5KCk7XG4gICAgdGhpc1tXa2x5UGlja2VyT3V0cHV0c1Byb3BlcnR5S2V5cy5PcGVuZWRdLmVtaXQoKTtcbiAgfVxuICBASG9zdExpc3RlbmVyKFwia2V5ZG93blwiLCBbXCIkZXZlbnRcIl0pIGtleShldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGV2ZW50LmtleSA9PT0gXCJFbnRlclwiIHx8XG4gICAgICBldmVudC5rZXkgPT09IFwiIFwiIHx8XG4gICAgICBldmVudC5rZXkgPT09IFwiQXJyb3dEb3duXCJcbiAgICApIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLm9wZW4oKTtcbiAgICB9XG4gIH1cbiAgQEhvc3RMaXN0ZW5lcihcImJsdXJcIikgYmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLnRvdWNoZWQoKTtcbiAgfVxuICBjbG9zZShyZWFzb246IFdrbHlDbG9zZVJlYXNvbiA9IFwicHJvZ3JhbW1hdGljXCIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmVmKSByZXR1cm47XG4gICAgY29uc3QgcmVmID0gdGhpcy5yZWY7XG4gICAgdGhpcy5yZWYgPSBudWxsO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzKSA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuICAgIHJlZi5kZXN0cm95KCk7XG4gICAgdGhpcy50b3VjaGVkKCk7XG4gICAgdGhpc1tXa2x5UGlja2VyT3V0cHV0c1Byb3BlcnR5S2V5cy5DbG9zZWRdLmVtaXQocmVhc29uKTtcbiAgfVxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cbiAgcHJpdmF0ZSBjb3B5KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZWYpIHJldHVybjtcbiAgICBjb25zdCBpbnB1dHMgPSB1bndyYXBXa2x5UGlja2VyU2lnbmFsSW5wdXRzPFdrbHlQaWNrZXJJbnB1dHNDb250cmFjdD4odGhpcyk7XG4gICAgZm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC52YWx1ZXMoV2tseVBpY2tlcklucHV0c1Byb3BlcnR5S2V5cykpXG4gICAgICB0aGlzLnJlZi5jb21wb25lbnQuc2V0SW5wdXQoXG4gICAgICAgIG5hbWUsXG4gICAgICAgIG5hbWUgPT09IFdrbHlQaWNrZXJJbnB1dHNQcm9wZXJ0eUtleXMuVmFsdWVcbiAgICAgICAgICA/IHRoaXMuY3VycmVudFZhbHVlKClcbiAgICAgICAgICA6IG5hbWUgPT09IFdrbHlQaWNrZXJJbnB1dHNQcm9wZXJ0eUtleXMuRGlzYWJsZWRcbiAgICAgICAgICAgID8gdGhpcy5pc0Rpc2FibGVkKClcbiAgICAgICAgICAgIDogaW5wdXRzW25hbWVdLFxuICAgICAgKTtcbiAgfVxuICBwcml2YXRlIGRpc3BsYXkoKTogdm9pZCB7XG4gICAgY29uc3QgaG9zdCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgaWYgKGhvc3QudGFnTmFtZSA9PT0gXCJJTlBVVFwiKSB7XG4gICAgICBob3N0LnJlYWRPbmx5ID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jdXJyZW50VmFsdWUoKTtcbiAgICAgIGhvc3QudmFsdWUgPVxuICAgICAgICB2YWx1ZSA9PT0gbnVsbFxuICAgICAgICAgID8gXCJcIlxuICAgICAgICAgIDogdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICA/IHZhbHVlXG4gICAgICAgICAgICA6IHZhbHVlLmpvaW4oXCIg4oCUIFwiKTtcbiAgICAgIGhvc3QuZGlzYWJsZWQgPSB0aGlzLmlzRGlzYWJsZWQoKTtcbiAgICAgIGhvc3Quc2V0QXR0cmlidXRlKFwiYXJpYS1oYXNwb3B1cFwiLCBcImRpYWxvZ1wiKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBjaGVja1ZhbHVlKCk6IHZvaWQge1xuICAgIHRoaXMuZXJyb3JzID0gdmFsaWRhdGVTZWxlY3Rpb24oXG4gICAgICB0aGlzLmN1cnJlbnRWYWx1ZSgpLFxuICAgICAgdW53cmFwV2tseVBpY2tlclNpZ25hbElucHV0czxXa2x5UGlja2VySW5wdXRzQ29udHJhY3Q+KHRoaXMpLFxuICAgICAgdGhpc1tXa2x5UGlja2VySW5wdXRzUHJvcGVydHlLZXlzLkNhbGVuZGFyQWRhcHRlcl0oKSB8fFxuICAgICAgICBuZXcgV2tseUdyZWdvcmlhbkNhbGVuZGFyQWRhcHRlcihcbiAgICAgICAgICB0aGlzW1drbHlQaWNrZXJJbnB1dHNQcm9wZXJ0eUtleXMuTG9jYWxlXSgpIHx8IFwiZW4tVVNcIixcbiAgICAgICAgKSxcbiAgICApO1xuICAgIHRoaXNbV2tseVBpY2tlck91dHB1dHNQcm9wZXJ0eUtleXMuVmFsaWRhdGlvbkNoYW5nZV0uZW1pdCh0aGlzLmVycm9ycyk7XG4gICAgdGhpcy52YWxpZGF0aW9uKCk7XG4gIH1cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogV2tseVBpY2tlclZhbHVlKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtVmFsdWUuc2V0KHZhbHVlKTtcbiAgICB0aGlzLmNoZWNrVmFsdWUoKTtcbiAgICB0aGlzLmRpc3BsYXkoKTtcbiAgICBpZiAodGhpcy5yZWYpIHRoaXMucmVmLmNvbXBvbmVudC5pbnN0YW5jZS53cml0ZVZhbHVlKHZhbHVlKTtcbiAgfVxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IFdrbHlQaWNrZXJWYWx1ZSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlID0gZm47XG4gIH1cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLnRvdWNoZWQgPSBmbjtcbiAgfVxuICBzZXREaXNhYmxlZFN0YXRlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtRGlzYWJsZWQuc2V0KHZhbHVlKTtcbiAgICB0aGlzLmRpc3BsYXkoKTtcbiAgICBpZiAodGhpcy5yZWYpIHRoaXMucmVmLmNvbXBvbmVudC5pbnN0YW5jZS5zZXREaXNhYmxlZFN0YXRlKHZhbHVlKTtcbiAgfVxuICB2YWxpZGF0ZSgpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JzLmxlbmd0aCA/IHsgd2tseTogdGhpcy5lcnJvcnMgfSA6IG51bGw7XG4gIH1cbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMudmFsaWRhdGlvbiA9IGZuO1xuICB9XG4gIHNjcm9sbFRvRXBvY2hEYXkoZGF5OiBudW1iZXIsIG9wdGlvbnM/OiBXa2x5SnVtcE9wdGlvbnMpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW4oKTtcbiAgICB0aGlzLnJlZj8uY29tcG9uZW50Lmluc3RhbmNlLnNjcm9sbFRvRXBvY2hEYXkoZGF5LCBvcHRpb25zKTtcbiAgfVxuICBzY3JvbGxUb0Fic29sdXRlV2Vlayh3ZWVrOiBudW1iZXIsIG9wdGlvbnM/OiBXa2x5SnVtcE9wdGlvbnMpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW4oKTtcbiAgICB0aGlzLnJlZj8uY29tcG9uZW50Lmluc3RhbmNlLnNjcm9sbFRvQWJzb2x1dGVXZWVrKHdlZWssIG9wdGlvbnMpO1xuICB9XG4gIHNjcm9sbFRvQ2FsZW5kYXJEYXRlKFxuICAgIGRhdGU6IFdrbHlDYWxlbmRhckRhdGUsXG4gICAgb3B0aW9ucz86IFdrbHlKdW1wT3B0aW9ucyxcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuKCk7XG4gICAgdGhpcy5yZWY/LmNvbXBvbmVudC5pbnN0YW5jZS5zY3JvbGxUb0NhbGVuZGFyRGF0ZShkYXRlLCBvcHRpb25zKTtcbiAgfVxuICBzY3JvbGxUb1ZhbHVlKHZhbHVlOiBzdHJpbmcsIG9wdGlvbnM/OiBXa2x5SnVtcE9wdGlvbnMpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW4oKTtcbiAgICB0aGlzLnJlZj8uY29tcG9uZW50Lmluc3RhbmNlLnNjcm9sbFRvVmFsdWUodmFsdWUsIG9wdGlvbnMpO1xuICB9XG59XG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW3drbHlEYXRlVGltZVBpY2tlckRpYWxvZ11cIixcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGV4cG9ydEFzOiBcIndrbHlEaWFsb2dcIixcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBXa2x5RGF0ZVRpbWVQaWNrZXJEaWFsb2dEaXJlY3RpdmUpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV2tseURhdGVUaW1lUGlja2VyRGlhbG9nRGlyZWN0aXZlKSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdrbHlEYXRlVGltZVBpY2tlckRpYWxvZ0RpcmVjdGl2ZSBleHRlbmRzIFdrbHlUcmlnZ2VyQmFzZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgc2VydmljZTogV2tseURhdGVUaW1lUGlja2VyRGlhbG9nU2VydmljZSxcbiAgICBwcml2YXRlIHRyaWdnZXJJbmplY3RvcjogSW5qZWN0b3IsXG4gICkge1xuICAgIHN1cGVyKGVsZW1lbnQpO1xuICB9XG4gIHByb3RlY3RlZCBjcmVhdGUoKTogV2tseVByZXNlbnRhdGlvblJlZiB7XG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS5vcGVuKFxuICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAocmVhc29uKSA9PiB0aGlzLmNsb3NlKHJlYXNvbiksXG4gICAgICB0aGlzW1drbHlQaWNrZXJJbnB1dHNQcm9wZXJ0eUtleXMuQ2xvc2VPbkJhY2tkcm9wXSgpLFxuICAgICAgdGhpcy50cmlnZ2VySW5qZWN0b3IsXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -9,13 +9,13 @@ export { WklyDateTimePickerComponent } from "./picker.component";
9
9
  export { WklyDateTimePickerDialogService, WklyTriggerBase, WklyDateTimePickerDialogDirective, } from "./presentation";
10
10
  export { WklyFieldComponent } from "./field.component";
11
11
  export class WklyDateTimePickerModule {
12
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WklyDateTimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: WklyDateTimePickerModule, declarations: [WklyDateTimePickerComponent,
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WklyDateTimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: WklyDateTimePickerModule, declarations: [WklyDateTimePickerComponent,
14
14
  WklyDateTimePickerDialogDirective,
15
15
  WklyFieldComponent], imports: [CommonModule], exports: [WklyDateTimePickerComponent, WklyDateTimePickerDialogDirective] });
16
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WklyDateTimePickerModule, imports: [CommonModule] });
16
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WklyDateTimePickerModule, imports: [CommonModule] });
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WklyDateTimePickerModule, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WklyDateTimePickerModule, decorators: [{
19
19
  type: NgModule,
20
20
  args: [{
21
21
  imports: [CommonModule],
@@ -27,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
27
27
  exports: [WklyDateTimePickerComponent, WklyDateTimePickerDialogDirective],
28
28
  }]
29
29
  }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3drbHktZGF0ZXRpbWUtcGlja2VyLjE3L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUN2RCxjQUFjLFVBQVUsQ0FBQztBQUN6QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRSxPQUFPLEVBRUwsK0JBQStCLEVBQy9CLGVBQWUsRUFDZixpQ0FBaUMsR0FDbEMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQTBCdkQsTUFBTSxPQUFPLHdCQUF3Qjt3R0FBeEIsd0JBQXdCO3lHQUF4Qix3QkFBd0IsaUJBTmpDLDJCQUEyQjtZQUMzQixpQ0FBaUM7WUFDakMsa0JBQWtCLGFBSlYsWUFBWSxhQU1aLDJCQUEyQixFQUFFLGlDQUFpQzt5R0FFN0Qsd0JBQXdCLFlBUnpCLFlBQVk7OzRGQVFYLHdCQUF3QjtrQkFUcEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFlBQVksRUFBRTt3QkFDWiwyQkFBMkI7d0JBQzNCLGlDQUFpQzt3QkFDakMsa0JBQWtCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQywyQkFBMkIsRUFBRSxpQ0FBaUMsQ0FBQztpQkFDMUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBXa2x5RGF0ZVRpbWVQaWNrZXJDb21wb25lbnQgfSBmcm9tIFwiLi9waWNrZXIuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBXa2x5RGF0ZVRpbWVQaWNrZXJEaWFsb2dEaXJlY3RpdmUgfSBmcm9tIFwiLi9wcmVzZW50YXRpb25cIjtcbmltcG9ydCB7IFdrbHlGaWVsZENvbXBvbmVudCB9IGZyb20gXCIuL2ZpZWxkLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29uZmlnXCI7XG5leHBvcnQgeyBXa2x5RGF0ZVRpbWVQaWNrZXJDb21wb25lbnQgfSBmcm9tIFwiLi9waWNrZXIuY29tcG9uZW50XCI7XG5leHBvcnQge1xuICBXa2x5UHJlc2VudGF0aW9uUmVmLFxuICBXa2x5RGF0ZVRpbWVQaWNrZXJEaWFsb2dTZXJ2aWNlLFxuICBXa2x5VHJpZ2dlckJhc2UsXG4gIFdrbHlEYXRlVGltZVBpY2tlckRpYWxvZ0RpcmVjdGl2ZSxcbn0gZnJvbSBcIi4vcHJlc2VudGF0aW9uXCI7XG5leHBvcnQgeyBXa2x5RmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9maWVsZC5jb21wb25lbnRcIjtcbmV4cG9ydCB7XG4gIFdrbHlQaWNrZXJWYWx1ZSxcbiAgV2tseUlzb1N0cmluZyxcbiAgV2tseVJhbmdlVmFsdWUsXG4gIFdrbHlTZWxlY3Rpb25Nb2RlLFxuICBXa2x5VmFsaWRhdGlvbkVycm9yLFxuICBXa2x5VmFsaWRhdGlvbkVycm9yQ29kZSxcbiAgV2tseVZpZXdwb3J0UHJlc2V0LFxuICBXa2x5SG91ckN5Y2xlLFxuICBXa2x5RW5kcG9pbnQsXG4gIFdrbHlEaXNhYmxlZERhdGVQcmVkaWNhdGUsXG4gIFdrbHlEaXNhYmxlZFRpbWVQcmVkaWNhdGUsXG4gIFdrbHlSYW5nZVZhbGlkYXRvcixcbiAgV2tseVdlZWtMYWJlbE1vZGUsXG4gIFdrbHlXZWVrTGFiZWxGb3JtYXR0ZXIsXG59IGZyb20gXCJAd2tseS9hZGFwdGVyc1wiO1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFdrbHlEYXRlVGltZVBpY2tlckNvbXBvbmVudCxcbiAgICBXa2x5RGF0ZVRpbWVQaWNrZXJEaWFsb2dEaXJlY3RpdmUsXG4gICAgV2tseUZpZWxkQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbV2tseURhdGVUaW1lUGlja2VyQ29tcG9uZW50LCBXa2x5RGF0ZVRpbWVQaWNrZXJEaWFsb2dEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBXa2x5RGF0ZVRpbWVQaWNrZXJNb2R1bGUge31cbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3drbHktZGF0ZXRpbWUtcGlja2VyLjE4L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUN2RCxjQUFjLFVBQVUsQ0FBQztBQUN6QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRSxPQUFPLEVBRUwsK0JBQStCLEVBQy9CLGVBQWUsRUFDZixpQ0FBaUMsR0FDbEMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQTBCdkQsTUFBTSxPQUFPLHdCQUF3Qjt3R0FBeEIsd0JBQXdCO3lHQUF4Qix3QkFBd0IsaUJBTmpDLDJCQUEyQjtZQUMzQixpQ0FBaUM7WUFDakMsa0JBQWtCLGFBSlYsWUFBWSxhQU1aLDJCQUEyQixFQUFFLGlDQUFpQzt5R0FFN0Qsd0JBQXdCLFlBUnpCLFlBQVk7OzRGQVFYLHdCQUF3QjtrQkFUcEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFlBQVksRUFBRTt3QkFDWiwyQkFBMkI7d0JBQzNCLGlDQUFpQzt3QkFDakMsa0JBQWtCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQywyQkFBMkIsRUFBRSxpQ0FBaUMsQ0FBQztpQkFDMUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBXa2x5RGF0ZVRpbWVQaWNrZXJDb21wb25lbnQgfSBmcm9tIFwiLi9waWNrZXIuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBXa2x5RGF0ZVRpbWVQaWNrZXJEaWFsb2dEaXJlY3RpdmUgfSBmcm9tIFwiLi9wcmVzZW50YXRpb25cIjtcbmltcG9ydCB7IFdrbHlGaWVsZENvbXBvbmVudCB9IGZyb20gXCIuL2ZpZWxkLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29uZmlnXCI7XG5leHBvcnQgeyBXa2x5RGF0ZVRpbWVQaWNrZXJDb21wb25lbnQgfSBmcm9tIFwiLi9waWNrZXIuY29tcG9uZW50XCI7XG5leHBvcnQge1xuICBXa2x5UHJlc2VudGF0aW9uUmVmLFxuICBXa2x5RGF0ZVRpbWVQaWNrZXJEaWFsb2dTZXJ2aWNlLFxuICBXa2x5VHJpZ2dlckJhc2UsXG4gIFdrbHlEYXRlVGltZVBpY2tlckRpYWxvZ0RpcmVjdGl2ZSxcbn0gZnJvbSBcIi4vcHJlc2VudGF0aW9uXCI7XG5leHBvcnQgeyBXa2x5RmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9maWVsZC5jb21wb25lbnRcIjtcbmV4cG9ydCB7XG4gIFdrbHlQaWNrZXJWYWx1ZSxcbiAgV2tseUlzb1N0cmluZyxcbiAgV2tseVJhbmdlVmFsdWUsXG4gIFdrbHlTZWxlY3Rpb25Nb2RlLFxuICBXa2x5VmFsaWRhdGlvbkVycm9yLFxuICBXa2x5VmFsaWRhdGlvbkVycm9yQ29kZSxcbiAgV2tseVZpZXdwb3J0UHJlc2V0LFxuICBXa2x5SG91ckN5Y2xlLFxuICBXa2x5RW5kcG9pbnQsXG4gIFdrbHlEaXNhYmxlZERhdGVQcmVkaWNhdGUsXG4gIFdrbHlEaXNhYmxlZFRpbWVQcmVkaWNhdGUsXG4gIFdrbHlSYW5nZVZhbGlkYXRvcixcbiAgV2tseVdlZWtMYWJlbE1vZGUsXG4gIFdrbHlXZWVrTGFiZWxGb3JtYXR0ZXIsXG59IGZyb20gXCJAd2tseS9hZGFwdGVyc1wiO1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFdrbHlEYXRlVGltZVBpY2tlckNvbXBvbmVudCxcbiAgICBXa2x5RGF0ZVRpbWVQaWNrZXJEaWFsb2dEaXJlY3RpdmUsXG4gICAgV2tseUZpZWxkQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbV2tseURhdGVUaW1lUGlja2VyQ29tcG9uZW50LCBXa2x5RGF0ZVRpbWVQaWNrZXJEaWFsb2dEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBXa2x5RGF0ZVRpbWVQaWNrZXJNb2R1bGUge31cbiJdfQ==
@@ -2,4 +2,4 @@
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
4
  export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2tseS1kYXRldGltZS1waWNrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy93a2x5LWRhdGV0aW1lLXBpY2tlci4xNy9zcmMvd2tseS1kYXRldGltZS1waWNrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2tseS1kYXRldGltZS1waWNrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy93a2x5LWRhdGV0aW1lLXBpY2tlci4xOC9zcmMvd2tseS1kYXRldGltZS1waWNrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -75,10 +75,10 @@ class WklyDateTimePickerOverlayService {
75
75
  },
76
76
  };
77
77
  }
78
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WklyDateTimePickerOverlayService, deps: [{ token: i1.Overlay }, { token: i0.Injector }, { token: i2.FocusTrapFactory }], target: i0.ɵɵFactoryTarget.Injectable });
79
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WklyDateTimePickerOverlayService, providedIn: "root" });
78
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WklyDateTimePickerOverlayService, deps: [{ token: i1.Overlay }, { token: i0.Injector }, { token: i2.FocusTrapFactory }], target: i0.ɵɵFactoryTarget.Injectable });
79
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WklyDateTimePickerOverlayService, providedIn: "root" });
80
80
  }
81
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WklyDateTimePickerOverlayService, decorators: [{
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WklyDateTimePickerOverlayService, decorators: [{
82
82
  type: Injectable,
83
83
  args: [{ providedIn: "root" }]
84
84
  }], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.Injector }, { type: i2.FocusTrapFactory }] });
@@ -91,10 +91,10 @@ class WklyDateTimePickerOverlayDirective extends WklyTriggerBase {
91
91
  this.triggerInjector = triggerInjector;
92
92
  }
93
93
  create() {
94
- return this.service.open(this.element.nativeElement, (reason) => this.close(reason), this[WklyPickerInputsPropertyKeys.CloseOnBackdrop], this.triggerInjector);
94
+ return this.service.open(this.element.nativeElement, (reason) => this.close(reason), this[WklyPickerInputsPropertyKeys.CloseOnBackdrop](), this.triggerInjector);
95
95
  }
96
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WklyDateTimePickerOverlayDirective, deps: [{ token: i0.ElementRef }, { token: WklyDateTimePickerOverlayService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
97
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: WklyDateTimePickerOverlayDirective, selector: "[wklyDateTimePickerOverlay]", providers: [
96
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WklyDateTimePickerOverlayDirective, deps: [{ token: i0.ElementRef }, { token: WklyDateTimePickerOverlayService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
97
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: WklyDateTimePickerOverlayDirective, selector: "[wklyDateTimePickerOverlay]", providers: [
98
98
  {
99
99
  provide: NG_VALUE_ACCESSOR,
100
100
  useExisting: forwardRef(() => WklyDateTimePickerOverlayDirective),
@@ -107,10 +107,11 @@ class WklyDateTimePickerOverlayDirective extends WklyTriggerBase {
107
107
  },
108
108
  ], exportAs: ["wklyOverlay"], usesInheritance: true, ngImport: i0 });
109
109
  }
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WklyDateTimePickerOverlayDirective, decorators: [{
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WklyDateTimePickerOverlayDirective, decorators: [{
111
111
  type: Directive,
112
112
  args: [{
113
113
  selector: "[wklyDateTimePickerOverlay]",
114
+ standalone: false,
114
115
  exportAs: "wklyOverlay",
115
116
  providers: [
116
117
  {
@@ -127,11 +128,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
127
128
  }]
128
129
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: WklyDateTimePickerOverlayService }, { type: i0.Injector }] });
129
130
  class WklyDateTimePickerOverlayModule {
130
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WklyDateTimePickerOverlayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
131
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: WklyDateTimePickerOverlayModule, declarations: [WklyDateTimePickerOverlayDirective], imports: [OverlayModule, WklyDateTimePickerModule], exports: [WklyDateTimePickerOverlayDirective] });
132
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WklyDateTimePickerOverlayModule, imports: [OverlayModule, WklyDateTimePickerModule] });
131
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WklyDateTimePickerOverlayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
132
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: WklyDateTimePickerOverlayModule, declarations: [WklyDateTimePickerOverlayDirective], imports: [OverlayModule, WklyDateTimePickerModule], exports: [WklyDateTimePickerOverlayDirective] });
133
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WklyDateTimePickerOverlayModule, imports: [OverlayModule, WklyDateTimePickerModule] });
133
134
  }
134
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WklyDateTimePickerOverlayModule, decorators: [{
135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WklyDateTimePickerOverlayModule, decorators: [{
135
136
  type: NgModule,
136
137
  args: [{
137
138
  imports: [OverlayModule, WklyDateTimePickerModule],
@@ -1 +1 @@
1
- {"version":3,"file":"wkly-datetime-picker-cdk-overlay.mjs","sources":["../../../projects/wkly-datetime-picker.17/cdk-overlay/public-api.ts","../../../projects/wkly-datetime-picker.17/cdk-overlay/wkly-datetime-picker-cdk-overlay.ts"],"sourcesContent":["import {\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n forwardRef,\n Injectable,\n Injector,\n NgModule,\n} from \"@angular/core\";\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { Overlay, OverlayModule } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { FocusTrapFactory } from \"@angular/cdk/a11y\";\nimport {\n WklyDateTimePickerComponent,\n WklyDateTimePickerModule,\n WklyCloseReason,\n WklyPresentationRef,\n WklyTriggerBase,\n WklyPickerInputsPropertyKeys,\n} from \"@wkly/datetime-picker\";\n@Injectable({ providedIn: \"root\" })\nexport class WklyDateTimePickerOverlayService {\n constructor(\n private overlay: Overlay,\n private injector: Injector,\n private traps: FocusTrapFactory,\n ) {}\n open(\n trigger: HTMLElement,\n onCancel: (reason: WklyCloseReason) => void,\n backdrop = true,\n injector?: Injector,\n ): WklyPresentationRef {\n const overlay = this.overlay.create({\n width: \"390px\",\n maxWidth: \"100vw\",\n maxHeight: \"94vh\",\n hasBackdrop: true,\n backdropClass: \"cdk-overlay-transparent-backdrop\",\n scrollStrategy: this.overlay.scrollStrategies.block(),\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(trigger)\n .withPush(true)\n .withFlexibleDimensions(false)\n .withLockedPosition(true)\n .withPositions([\n {\n originX: \"start\",\n originY: \"bottom\",\n overlayX: \"start\",\n overlayY: \"top\",\n offsetY: 6,\n },\n {\n originX: \"start\",\n originY: \"top\",\n overlayX: \"start\",\n overlayY: \"bottom\",\n offsetY: -6,\n },\n ]),\n });\n const component = overlay.attach(\n new ComponentPortal(\n WklyDateTimePickerComponent,\n null,\n injector || this.injector,\n ),\n );\n component.instance.presentation = \"transient\";\n overlay.overlayElement.setAttribute(\"role\", \"dialog\");\n overlay.overlayElement.setAttribute(\"aria-modal\", \"true\");\n overlay.overlayElement.setAttribute(\"aria-label\", \"Date and time picker\");\n overlay.overlayElement.style.overflow = \"auto\";\n const trap = this.traps.create(overlay.overlayElement);\n const sub = overlay.backdropClick().subscribe(() => {\n if (backdrop) onCancel(\"backdrop\");\n });\n const key = overlay.keydownEvents().subscribe((event) => {\n if (event.key === \"Escape\") {\n event.preventDefault();\n onCancel(\"escape\");\n }\n });\n return {\n component,\n destroy: () => {\n sub.unsubscribe();\n key.unsubscribe();\n trap.destroy();\n overlay.dispose();\n trigger.focus();\n },\n };\n }\n}\n@Directive({\n selector: \"[wklyDateTimePickerOverlay]\",\n exportAs: \"wklyOverlay\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => WklyDateTimePickerOverlayDirective),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => WklyDateTimePickerOverlayDirective),\n multi: true,\n },\n ],\n})\nexport class WklyDateTimePickerOverlayDirective extends WklyTriggerBase {\n constructor(\n element: ElementRef<HTMLElement>,\n private service: WklyDateTimePickerOverlayService,\n private triggerInjector: Injector,\n ) {\n super(element);\n }\n protected create(): WklyPresentationRef {\n return this.service.open(\n this.element.nativeElement,\n (reason) => this.close(reason),\n this[WklyPickerInputsPropertyKeys.CloseOnBackdrop],\n this.triggerInjector,\n );\n }\n}\n@NgModule({\n imports: [OverlayModule, WklyDateTimePickerModule],\n declarations: [WklyDateTimePickerOverlayDirective],\n exports: [WklyDateTimePickerOverlayDirective],\n})\nexport class WklyDateTimePickerOverlayModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wkly-datetime-picker-cdk-overlay.mjs","sources":["../../../projects/wkly-datetime-picker.18/cdk-overlay/public-api.ts","../../../projects/wkly-datetime-picker.18/cdk-overlay/wkly-datetime-picker-cdk-overlay.ts"],"sourcesContent":["import {\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n forwardRef,\n Injectable,\n Injector,\n NgModule,\n} from \"@angular/core\";\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { Overlay, OverlayModule } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { FocusTrapFactory } from \"@angular/cdk/a11y\";\nimport {\n WklyDateTimePickerComponent,\n WklyDateTimePickerModule,\n WklyCloseReason,\n WklyPresentationRef,\n WklyTriggerBase,\n WklyPickerInputsPropertyKeys,\n} from \"@wkly/datetime-picker\";\n@Injectable({ providedIn: \"root\" })\nexport class WklyDateTimePickerOverlayService {\n constructor(\n private overlay: Overlay,\n private injector: Injector,\n private traps: FocusTrapFactory,\n ) {}\n open(\n trigger: HTMLElement,\n onCancel: (reason: WklyCloseReason) => void,\n backdrop = true,\n injector?: Injector,\n ): WklyPresentationRef {\n const overlay = this.overlay.create({\n width: \"390px\",\n maxWidth: \"100vw\",\n maxHeight: \"94vh\",\n hasBackdrop: true,\n backdropClass: \"cdk-overlay-transparent-backdrop\",\n scrollStrategy: this.overlay.scrollStrategies.block(),\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(trigger)\n .withPush(true)\n .withFlexibleDimensions(false)\n .withLockedPosition(true)\n .withPositions([\n {\n originX: \"start\",\n originY: \"bottom\",\n overlayX: \"start\",\n overlayY: \"top\",\n offsetY: 6,\n },\n {\n originX: \"start\",\n originY: \"top\",\n overlayX: \"start\",\n overlayY: \"bottom\",\n offsetY: -6,\n },\n ]),\n });\n const component = overlay.attach(\n new ComponentPortal(\n WklyDateTimePickerComponent,\n null,\n injector || this.injector,\n ),\n );\n component.instance.presentation = \"transient\";\n overlay.overlayElement.setAttribute(\"role\", \"dialog\");\n overlay.overlayElement.setAttribute(\"aria-modal\", \"true\");\n overlay.overlayElement.setAttribute(\"aria-label\", \"Date and time picker\");\n overlay.overlayElement.style.overflow = \"auto\";\n const trap = this.traps.create(overlay.overlayElement);\n const sub = overlay.backdropClick().subscribe(() => {\n if (backdrop) onCancel(\"backdrop\");\n });\n const key = overlay.keydownEvents().subscribe((event) => {\n if (event.key === \"Escape\") {\n event.preventDefault();\n onCancel(\"escape\");\n }\n });\n return {\n component,\n destroy: () => {\n sub.unsubscribe();\n key.unsubscribe();\n trap.destroy();\n overlay.dispose();\n trigger.focus();\n },\n };\n }\n}\n@Directive({\n selector: \"[wklyDateTimePickerOverlay]\",\n standalone: false,\n exportAs: \"wklyOverlay\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => WklyDateTimePickerOverlayDirective),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => WklyDateTimePickerOverlayDirective),\n multi: true,\n },\n ],\n})\nexport class WklyDateTimePickerOverlayDirective extends WklyTriggerBase {\n constructor(\n element: ElementRef<HTMLElement>,\n private service: WklyDateTimePickerOverlayService,\n private triggerInjector: Injector,\n ) {\n super(element);\n }\n protected create(): WklyPresentationRef {\n return this.service.open(\n this.element.nativeElement,\n (reason) => this.close(reason),\n this[WklyPickerInputsPropertyKeys.CloseOnBackdrop](),\n this.triggerInjector,\n );\n }\n}\n@NgModule({\n imports: [OverlayModule, WklyDateTimePickerModule],\n declarations: [WklyDateTimePickerOverlayDirective],\n exports: [WklyDateTimePickerOverlayDirective],\n})\nexport class WklyDateTimePickerOverlayModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}