@dereekb/dbx-form 9.25.2 → 9.25.4

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.
@@ -67,8 +67,8 @@ export class DbxFormCalendarDateScheduleRangeFieldComponent extends FieldType {
67
67
  get exclusions() {
68
68
  return this.props.exclusions;
69
69
  }
70
- get timezone() {
71
- return this.props.timezone;
70
+ get outputTimezone() {
71
+ return this.props.outputTimezone || this.props.timezone;
72
72
  }
73
73
  get initialSelectionState() {
74
74
  return this.props.initialSelectionState;
@@ -93,7 +93,7 @@ export class DbxFormCalendarDateScheduleRangeFieldComponent extends FieldType {
93
93
  this._valueSub.subscription = this.dbxCalendarScheduleSelectionStore.currentDateCellScheduleRangeValue$.subscribe((x) => {
94
94
  this.formControl.setValue(x);
95
95
  });
96
- const { timezone, minMaxDateRange, filter, exclusions, defaultScheduleDays } = this;
96
+ const { outputTimezone, minMaxDateRange, filter, exclusions, defaultScheduleDays } = this;
97
97
  if (filter != null) {
98
98
  this._filterSub.subscription = this.dbxCalendarScheduleSelectionStore.setFilter(asObservable(filter));
99
99
  }
@@ -106,8 +106,8 @@ export class DbxFormCalendarDateScheduleRangeFieldComponent extends FieldType {
106
106
  if (exclusions != null) {
107
107
  this._exclusionsSub.subscription = this.dbxCalendarScheduleSelectionStore.setExclusions(asObservable(exclusions));
108
108
  }
109
- if (timezone != null) {
110
- this.dbxCalendarScheduleSelectionStore.setTimezone(asObservable(this.timezone));
109
+ if (outputTimezone != null) {
110
+ this.dbxCalendarScheduleSelectionStore.setOutputTimezone(asObservable(this.outputTimezone));
111
111
  }
112
112
  if (this.initialSelectionState !== undefined) {
113
113
  this.dbxCalendarScheduleSelectionStore.setInitialSelectionState(this.initialSelectionState);
@@ -155,4 +155,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
155
155
  }], ctorParameters: function () { return [{ type: i1.CompactContextStore, decorators: [{
156
156
  type: Optional
157
157
  }] }, { type: i2.DbxCalendarScheduleSelectionStore }, { type: i0.NgZone }]; } });
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc2NoZWR1bGUuZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vY2FsZW5kYXIvc3JjL2xpYi9maWVsZC9zY2hlZHVsZS9jYWxlbmRhci5zY2hlZHVsZS5maWVsZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBZ0IsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxXQUFXLEVBQXFCLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQTZCLCtCQUErQixFQUE0RyxNQUFNLGVBQWUsQ0FBQztBQUNyTSxPQUFPLEVBQWtDLGlDQUFpQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDNUgsT0FBTyxFQUFFLDBEQUEwRCxFQUFFLE1BQU0saURBQWlELENBQUM7Ozs7Ozs7O0FBa0U3SCxNQUFNLE9BQU8sOENBQTBKLFNBQVEsU0FBNkI7SUF1QjFNLFlBQWlDLE9BQTRCLEVBQVcsaUNBQW9FLEVBQVcsTUFBYztRQUNuSyxLQUFLLEVBQUUsQ0FBQztRQUR1QixZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUFXLHNDQUFpQyxHQUFqQyxpQ0FBaUMsQ0FBbUM7UUFBVyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBdEI3SixhQUFRLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3BDLGNBQVMsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDckMsaUJBQVksR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDeEMsd0JBQW1CLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQy9DLG9CQUFlLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQzNDLGVBQVUsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDdEMsbUJBQWMsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFFMUMsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBeUIsU0FBUyxDQUFDLENBQUM7UUFDeEUsaUJBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRXhELFdBQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDdEMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFDM0UsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7UUFFTyxzQkFBaUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDM0MsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQzlELG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBSUYsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFhLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLElBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLG9CQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEtBQUssSUFBSSxDQUFDLENBQUMsNkJBQTZCO0lBQzFFLENBQUM7SUFFRCxJQUFJLDhCQUE4QjtRQUNoQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsOEJBQThCLElBQUksS0FBSyxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBSSxzQ0FBc0M7UUFDeEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNyQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDO0lBQ3ZDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLCtCQUErQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNuSCxJQUFJLENBQUMsaUNBQWlDLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEUsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsaUNBQWlDLENBQUMsa0NBQWtDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDdEgsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRXBGLElBQUksTUFBTSxJQUFJLElBQUksRUFBRTtZQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsaUNBQWlDLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBaUIsQ0FBQztTQUN2SDtRQUVELElBQUksbUJBQW1CLElBQUksSUFBSSxFQUFFO1lBQy9CLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsQ0FBaUIsQ0FBQztTQUN0SjtRQUVELElBQUksZUFBZSxJQUFJLElBQUksRUFBRTtZQUMzQixJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQWlCLENBQUM7U0FDbEo7UUFFRCxJQUFJLFVBQVUsSUFBSSxJQUFJLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQWlCLENBQUM7U0FDbkk7UUFFRCxJQUFJLFFBQVEsSUFBSSxJQUFJLEVBQUU7WUFDcEIsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7U0FDakY7UUFFRCxJQUFJLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxTQUFTLEVBQUU7WUFDNUMsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQzdGO1FBRUQsSUFBSSxJQUFJLENBQUMsc0NBQXNDLElBQUksSUFBSSxFQUFFO1lBQ3ZELElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyx5Q0FBeUMsQ0FBQyxJQUFJLENBQUMsc0NBQXNDLENBQUMsQ0FBQztTQUMvSDtRQUVELElBQUksSUFBSSxDQUFDLGtCQUFrQixJQUFJLElBQUksRUFBRTtZQUNuQyxJQUFJLENBQUMsaUNBQWlDLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7U0FDdkY7SUFDSCxDQUFDO0lBRVEsV0FBVztRQUNsQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7OzRJQTFKVSw4Q0FBOEM7Z0lBQTlDLDhDQUE4Qyx1Q0FGOUMsQ0FBQywwREFBMEQsRUFBRSxDQUFDLGlEQVIvRDs7Ozs7OztHQU9UOzRGQUdVLDhDQUE4QztrQkFYMUQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7R0FPVDtvQkFDRCxTQUFTLEVBQUUsQ0FBQywwREFBMEQsRUFBRSxDQUFDO2lCQUMxRTs7MEJBd0JjLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbXBhY3RDb250ZXh0U3RvcmUgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcbmltcG9ydCB7IENvbXBvbmVudCwgTmdab25lLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpZWxkVHlwZUNvbmZpZywgRm9ybWx5RmllbGRQcm9wcyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgQXJyYXlPclZhbHVlLCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzaGFyZVJlcGxheSwgc3RhcnRXaXRoLCBTdWJzY3JpcHRpb24sIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyTWF5YmUsIE9ic2VydmFibGVPclZhbHVlLCBTdWJzY3JpcHRpb25PYmplY3QsIGFzT2JzZXJ2YWJsZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgRGF0ZVJhbmdlLCBUaW1lem9uZVN0cmluZywgaXNTYW1lRGF0ZUNlbGxTY2hlZHVsZURhdGVSYW5nZSwgRGF0ZUNlbGxTY2hlZHVsZURhdGVGaWx0ZXJDb25maWcsIERhdGVDZWxsU2NoZWR1bGVEYXlDb2RlLCBEYXRlT3JEYXRlUmFuZ2VPckRhdGVDZWxsSW5kZXhPckRhdGVDZWxsUmFuZ2UgfSBmcm9tICdAZGVyZWVrYi9kYXRlJztcbmltcG9ydCB7IENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdGF0ZSwgRGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlIH0gZnJvbSAnLi4vLi4vY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLnN0b3JlJztcbmltcG9ydCB7IHByb3ZpZGVDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmVJZlBhcmVudElzVW5hdmFpbGFibGUgfSBmcm9tICcuLi8uLi9jYWxlbmRhci5zY2hlZHVsZS5zZWxlY3Rpb24uc3RvcmUucHJvdmlkZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRBcHBlYXJhbmNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVBvcHVwQ29udGVudENvbmZpZyB9IGZyb20gJy4uLy4uL2NhbGVuZGFyLnNjaGVkdWxlLnNlbGVjdGlvbi5kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZyB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGb3JtQ2FsZW5kYXJEYXRlQ2VsbFNjaGVkdWxlUmFuZ2VGaWVsZFByb3BzIGV4dGVuZHMgUGljazxGb3JtbHlGaWVsZFByb3BzLCAnbGFiZWwnIHwgJ2Rlc2NyaXB0aW9uJyB8ICdyZWFkb25seScgfCAncmVxdWlyZWQnPiwgUGljazxDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RhdGUsICdjb21wdXRlU2VsZWN0aW9uUmVzdWx0UmVsYXRpdmVUb0ZpbHRlcicgfCAnaW5pdGlhbFNlbGVjdGlvblN0YXRlJz4sIFBhcnRpYWw8UGljazxDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RhdGUsICdjZWxsQ29udGVudEZhY3RvcnknPj4ge1xuICBhcHBlYXJhbmNlPzogTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZTtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGFsbG93IGlucHV0dGluZyBjdXN0b20gdGV4dCBpbnRvIHRoZSBwaWNrZXIuXG4gICAqXG4gICAqIElmIGZhbHNlLCB3aGVuIHRoZSBpbnB1dCB0ZXh0IGlzIHBpY2tlZCB0aGUgZGF0ZSBwaWNrZXIgd2lsbCBvcGVuLlxuICAgKlxuICAgKiBJcyBmYWxzZSBieSBkZWZhdWx0LlxuICAgKi9cbiAgYWxsb3dUZXh0SW5wdXQ/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gaGlkZSB0aGUgY3VzdG9taXplIGJ1dHRvbi4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAqL1xuICBoaWRlQ3VzdG9taXplPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGFsbG93IGN1c3RvbWl6aW5nIGJlZm9yZSBwaWNraW5nIGEgZGF0ZSByYW5nZSB0byBjdXN0b21pemUuXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgKi9cbiAgYWxsb3dDdXN0b21pemVXaXRob3V0RGF0ZVJhbmdlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgVGltZXpvbmUgdG8gdXNlIGZvciB0aGUgb3V0cHV0IHN0YXJ0IGRhdGUuXG4gICAqL1xuICB0aW1lem9uZT86IE9ic2VydmFibGVPclZhbHVlPE1heWJlPFRpbWV6b25lU3RyaW5nPj47XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIERlZmF1bHQgc2NoZWR1bGUgZGF5cyB0byBhbGxvdy5cbiAgICovXG4gIGRlZmF1bHRTY2hlZHVsZURheXM/OiBPYnNlcnZhYmxlT3JWYWx1ZTxNYXliZTxJdGVyYWJsZTxEYXRlQ2VsbFNjaGVkdWxlRGF5Q29kZT4+PjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIG1pbi9tYXggZGF0ZSByYW5nZSB0byBmaWx0ZXIgb24uIFdvcmtzIGluIGNvbmp1Y3Rpb24gd2l0aCB0aGUgZmlsdGVyLlxuICAgKi9cbiAgbWluTWF4RGF0ZVJhbmdlPzogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8UGFydGlhbDxEYXRlUmFuZ2U+Pj47XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIE9ic2VydmFibGUgd2l0aCBhIGZpbHRlciB2YWx1ZSB0byBhcHBseSB0byB0aGUgZGF0ZSByYW5nZS5cbiAgICovXG4gIGZpbHRlcj86IE9ic2VydmFibGVPclZhbHVlPE1heWJlPERhdGVDZWxsU2NoZWR1bGVEYXRlRmlsdGVyQ29uZmlnPj47XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIE9ic2VydmFibGUgd2l0aCBkYXlzIGFuZCB2YWx1ZXMgdG8gZXhjbHVkZSBmcm9tIHRoZSBkYXRlIHJhbmdlLlxuICAgKi9cbiAgZXhjbHVzaW9ucz86IE9ic2VydmFibGVPclZhbHVlPE1heWJlPEFycmF5T3JWYWx1ZTxEYXRlT3JEYXRlUmFuZ2VPckRhdGVDZWxsSW5kZXhPckRhdGVDZWxsUmFuZ2U+Pj47XG4gIC8qKlxuICAgKiBDdXN0b20gZGlhbG9nIGNvbnRlbnQgY29uZmlnIGZvciB0aGUgcG9wdXBcbiAgICovXG4gIGRpYWxvZ0NvbnRlbnRDb25maWc/OiBNYXliZTxEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVBvcHVwQ29udGVudENvbmZpZz47XG4gIC8qKlxuICAgKiBDdXN0b20gZGV0YWlscyBjb25maWcgZm9yIHRoZSBkYXRlIHJhbmdlXG4gICAqL1xuICBjdXN0b21EZXRhaWxzQ29uZmlnPzogTWF5YmU8RGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnPjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImRieC1zY2hlZHVsZS1zZWxlY3Rpb24tZmllbGRcIj5cbiAgICAgIDxkYngtc2NoZWR1bGUtc2VsZWN0aW9uLWNhbGVuZGFyLWRhdGUtcmFuZ2UgW29wZW5QaWNrZXJPblRleHRDbGlja109XCJvcGVuUGlja2VyT25UZXh0Q2xpY2tcIiBbc2hvd0N1c3RvbWl6ZV09XCJzaG93Q3VzdG9taXplXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW2Rpc2FibGVkXT1cImlzUmVhZG9ubHlPckRpc2FibGVkXCIgW2xhYmVsXT1cImxhYmVsXCIgW2hpbnRdPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgPGRieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXItZGF0ZS1kaWFsb2ctYnV0dG9uIGN1c3RvbWl6ZUJ1dHRvbiBbZGlzYWJsZWRdPVwiZGlzYWJsZUN1c3RvbWl6ZSQgfCBhc3luY1wiIFtjb250ZW50Q29uZmlnXT1cImRpYWxvZ0NvbnRlbnRDb25maWdcIj48L2RieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXItZGF0ZS1kaWFsb2ctYnV0dG9uPlxuICAgICAgICA8ZGJ4LWluamVjdGlvbiBbY29uZmlnXT1cImN1c3RvbURldGFpbHNDb25maWdcIj48L2RieC1pbmplY3Rpb24+XG4gICAgICA8L2RieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXItZGF0ZS1yYW5nZT5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgcHJvdmlkZXJzOiBbcHJvdmlkZUNhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdG9yZUlmUGFyZW50SXNVbmF2YWlsYWJsZSgpXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGb3JtQ2FsZW5kYXJEYXRlU2NoZWR1bGVSYW5nZUZpZWxkQ29tcG9uZW50PFQgZXh0ZW5kcyBEYnhGb3JtQ2FsZW5kYXJEYXRlQ2VsbFNjaGVkdWxlUmFuZ2VGaWVsZFByb3BzID0gRGJ4Rm9ybUNhbGVuZGFyRGF0ZUNlbGxTY2hlZHVsZVJhbmdlRmllbGRQcm9wcz4gZXh0ZW5kcyBGaWVsZFR5cGU8RmllbGRUeXBlQ29uZmlnPFQ+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfc3luY1N1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcbiAgcHJpdmF0ZSBfdmFsdWVTdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG4gIHByaXZhdGUgX3RpbWV6b25lU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuICBwcml2YXRlIF9taW5NYXhEYXRlUmFuZ2VTdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG4gIHByaXZhdGUgX2RlZmF1bHRXZWVrU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuICBwcml2YXRlIF9maWx0ZXJTdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG4gIHByaXZhdGUgX2V4Y2x1c2lvbnNTdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG5cbiAgcHJpdmF0ZSBfZm9ybUNvbnRyb2xPYnMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPEFic3RyYWN0Q29udHJvbD4+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGZvcm1Db250cm9sJCA9IHRoaXMuX2Zvcm1Db250cm9sT2JzLnBpcGUoZmlsdGVyTWF5YmUoKSk7XG5cbiAgcmVhZG9ubHkgdmFsdWUkID0gdGhpcy5mb3JtQ29udHJvbCQucGlwZShcbiAgICBzd2l0Y2hNYXAoKGNvbnRyb2wpID0+IGNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKGNvbnRyb2wudmFsdWUpKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkaXNhYmxlQ3VzdG9taXplJCA9IHRoaXMudmFsdWUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiAodGhpcy5hbGxvd0N1c3RvbWl6ZVdpdGhvdXREYXRlUmFuZ2UgPyBmYWxzZSA6ICF4KSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHJlYWRvbmx5IGNvbXBhY3Q6IENvbXBhY3RDb250ZXh0U3RvcmUsIHJlYWRvbmx5IGRieENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdG9yZTogRGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLCByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBnZXQgZm9ybUdyb3VwTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLmtleSBhcyBzdHJpbmc7XG4gIH1cblxuICBnZXQgZm9ybUdyb3VwKCk6IEZvcm1Hcm91cCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybSBhcyBGb3JtR3JvdXA7XG4gIH1cblxuICBnZXQgbGFiZWwoKTogTWF5YmU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQucHJvcHM/LmxhYmVsO1xuICB9XG5cbiAgZ2V0IGRlc2NyaXB0aW9uKCk6IE1heWJlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmRlc2NyaXB0aW9uO1xuICB9XG5cbiAgZ2V0IGlzUmVhZG9ubHlPckRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnJlYWRvbmx5IHx8IHRoaXMuZGlzYWJsZWQ7XG4gIH1cblxuICBnZXQgb3BlblBpY2tlck9uVGV4dENsaWNrKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmFsbG93VGV4dElucHV0ICE9PSB0cnVlOyAvLyBPcHBvc2l0ZSBvZiBhbGxvd1RleHRJbnB1dFxuICB9XG5cbiAgZ2V0IGFsbG93Q3VzdG9taXplV2l0aG91dERhdGVSYW5nZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5hbGxvd0N1c3RvbWl6ZVdpdGhvdXREYXRlUmFuZ2UgPz8gZmFsc2U7XG4gIH1cblxuICBnZXQgc2hvd0N1c3RvbWl6ZSgpIHtcbiAgICByZXR1cm4gIXRoaXMucHJvcHMuaGlkZUN1c3RvbWl6ZTtcbiAgfVxuXG4gIGdldCBkZWZhdWx0U2NoZWR1bGVEYXlzKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmRlZmF1bHRTY2hlZHVsZURheXM7XG4gIH1cblxuICBnZXQgbWluTWF4RGF0ZVJhbmdlKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLm1pbk1heERhdGVSYW5nZTtcbiAgfVxuXG4gIGdldCBmaWx0ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZmlsdGVyO1xuICB9XG5cbiAgZ2V0IGV4Y2x1c2lvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZXhjbHVzaW9ucztcbiAgfVxuXG4gIGdldCB0aW1lem9uZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy50aW1lem9uZTtcbiAgfVxuXG4gIGdldCBpbml0aWFsU2VsZWN0aW9uU3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuaW5pdGlhbFNlbGVjdGlvblN0YXRlO1xuICB9XG5cbiAgZ2V0IGNvbXB1dGVTZWxlY3Rpb25SZXN1bHRSZWxhdGl2ZVRvRmlsdGVyKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmNvbXB1dGVTZWxlY3Rpb25SZXN1bHRSZWxhdGl2ZVRvRmlsdGVyO1xuICB9XG5cbiAgZ2V0IGRpYWxvZ0NvbnRlbnRDb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZGlhbG9nQ29udGVudENvbmZpZztcbiAgfVxuXG4gIGdldCBjdXN0b21EZXRhaWxzQ29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmN1c3RvbURldGFpbHNDb25maWc7XG4gIH1cblxuICBnZXQgY2VsbENvbnRlbnRGYWN0b3J5KCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmNlbGxDb250ZW50RmFjdG9yeTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2Zvcm1Db250cm9sT2JzLm5leHQodGhpcy5mb3JtQ29udHJvbCk7XG5cbiAgICB0aGlzLl9zeW5jU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMudmFsdWUkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoaXNTYW1lRGF0ZUNlbGxTY2hlZHVsZURhdGVSYW5nZSkpLnN1YnNjcmliZSgoeCkgPT4ge1xuICAgICAgdGhpcy5kYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUuc2V0RGF0ZVNjaGVkdWxlUmFuZ2VWYWx1ZSh4KTtcbiAgICB9KTtcblxuICAgIHRoaXMuX3ZhbHVlU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMuZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLmN1cnJlbnREYXRlQ2VsbFNjaGVkdWxlUmFuZ2VWYWx1ZSQuc3Vic2NyaWJlKCh4KSA9PiB7XG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHgpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgeyB0aW1lem9uZSwgbWluTWF4RGF0ZVJhbmdlLCBmaWx0ZXIsIGV4Y2x1c2lvbnMsIGRlZmF1bHRTY2hlZHVsZURheXMgfSA9IHRoaXM7XG5cbiAgICBpZiAoZmlsdGVyICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX2ZpbHRlclN1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLmRieENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdG9yZS5zZXRGaWx0ZXIoYXNPYnNlcnZhYmxlKGZpbHRlcikpIGFzIFN1YnNjcmlwdGlvbjtcbiAgICB9XG5cbiAgICBpZiAoZGVmYXVsdFNjaGVkdWxlRGF5cyAhPSBudWxsKSB7XG4gICAgICB0aGlzLl9kZWZhdWx0V2Vla1N1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLmRieENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdG9yZS5zZXREZWZhdWx0U2NoZWR1bGVEYXlzKGFzT2JzZXJ2YWJsZShkZWZhdWx0U2NoZWR1bGVEYXlzKSkgYXMgU3Vic2NyaXB0aW9uO1xuICAgIH1cblxuICAgIGlmIChtaW5NYXhEYXRlUmFuZ2UgIT0gbnVsbCkge1xuICAgICAgdGhpcy5fbWluTWF4RGF0ZVJhbmdlU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMuZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLnNldE1pbk1heERhdGVSYW5nZShhc09ic2VydmFibGUobWluTWF4RGF0ZVJhbmdlKSkgYXMgU3Vic2NyaXB0aW9uO1xuICAgIH1cblxuICAgIGlmIChleGNsdXNpb25zICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX2V4Y2x1c2lvbnNTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy5kYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUuc2V0RXhjbHVzaW9ucyhhc09ic2VydmFibGUoZXhjbHVzaW9ucykpIGFzIFN1YnNjcmlwdGlvbjtcbiAgICB9XG5cbiAgICBpZiAodGltZXpvbmUgIT0gbnVsbCkge1xuICAgICAgdGhpcy5kYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUuc2V0VGltZXpvbmUoYXNPYnNlcnZhYmxlKHRoaXMudGltZXpvbmUpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pbml0aWFsU2VsZWN0aW9uU3RhdGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5kYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUuc2V0SW5pdGlhbFNlbGVjdGlvblN0YXRlKHRoaXMuaW5pdGlhbFNlbGVjdGlvblN0YXRlKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb21wdXRlU2VsZWN0aW9uUmVzdWx0UmVsYXRpdmVUb0ZpbHRlciAhPSBudWxsKSB7XG4gICAgICB0aGlzLmRieENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdG9yZS5zZXRDb21wdXRlU2VsZWN0aW9uUmVzdWx0UmVsYXRpdmVUb0ZpbHRlcih0aGlzLmNvbXB1dGVTZWxlY3Rpb25SZXN1bHRSZWxhdGl2ZVRvRmlsdGVyKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jZWxsQ29udGVudEZhY3RvcnkgIT0gbnVsbCkge1xuICAgICAgdGhpcy5kYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUuc2V0Q2VsbENvbnRlbnRGYWN0b3J5KHRoaXMuY2VsbENvbnRlbnRGYWN0b3J5KTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuX3N5bmNTdWIuZGVzdHJveSgpO1xuICAgIHRoaXMuX3ZhbHVlU3ViLmRlc3Ryb3koKTtcbiAgICB0aGlzLl9maWx0ZXJTdWIuZGVzdHJveSgpO1xuICAgIHRoaXMuX3RpbWV6b25lU3ViLmRlc3Ryb3koKTtcbiAgICB0aGlzLl9taW5NYXhEYXRlUmFuZ2VTdWIuZGVzdHJveSgpO1xuICAgIHRoaXMuX2V4Y2x1c2lvbnNTdWIuZGVzdHJveSgpO1xuICAgIHRoaXMuX2Zvcm1Db250cm9sT2JzLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc2NoZWR1bGUuZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vY2FsZW5kYXIvc3JjL2xpYi9maWVsZC9zY2hlZHVsZS9jYWxlbmRhci5zY2hlZHVsZS5maWVsZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBZ0IsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxXQUFXLEVBQXFCLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQTZCLCtCQUErQixFQUE0RyxNQUFNLGVBQWUsQ0FBQztBQUNyTSxPQUFPLEVBQWtDLGlDQUFpQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDNUgsT0FBTyxFQUFFLDBEQUEwRCxFQUFFLE1BQU0saURBQWlELENBQUM7Ozs7Ozs7O0FBMEU3SCxNQUFNLE9BQU8sOENBQTBKLFNBQVEsU0FBNkI7SUF1QjFNLFlBQWlDLE9BQTRCLEVBQVcsaUNBQW9FLEVBQVcsTUFBYztRQUNuSyxLQUFLLEVBQUUsQ0FBQztRQUR1QixZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUFXLHNDQUFpQyxHQUFqQyxpQ0FBaUMsQ0FBbUM7UUFBVyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBdEI3SixhQUFRLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3BDLGNB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LENBQUM7U0FDdkY7SUFDSCxDQUFDO0lBRVEsV0FBVztRQUNsQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7OzRJQTFKVSw4Q0FBOEM7Z0lBQTlDLDhDQUE4Qyx1Q0FGOUMsQ0FBQywwREFBMEQsRUFBRSxDQUFDLGlEQVIvRDs7Ozs7OztHQU9UOzRGQUdVLDhDQUE4QztrQkFYMUQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7R0FPVDtvQkFDRCxTQUFTLEVBQUUsQ0FBQywwREFBMEQsRUFBRSxDQUFDO2lCQUMxRTs7MEJBd0JjLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbXBhY3RDb250ZXh0U3RvcmUgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcbmltcG9ydCB7IENvbXBvbmVudCwgTmdab25lLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpZWxkVHlwZUNvbmZpZywgRm9ybWx5RmllbGRQcm9wcyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgQXJyYXlPclZhbHVlLCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzaGFyZVJlcGxheSwgc3RhcnRXaXRoLCBTdWJzY3JpcHRpb24sIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyTWF5YmUsIE9ic2VydmFibGVPclZhbHVlLCBTdWJzY3JpcHRpb25PYmplY3QsIGFzT2JzZXJ2YWJsZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgRGF0ZVJhbmdlLCBUaW1lem9uZVN0cmluZywgaXNTYW1lRGF0ZUNlbGxTY2hlZHVsZURhdGVSYW5nZSwgRGF0ZUNlbGxTY2hlZHVsZURhdGVGaWx0ZXJDb25maWcsIERhdGVDZWxsU2NoZWR1bGVEYXlDb2RlLCBEYXRlT3JEYXRlUmFuZ2VPckRhdGVDZWxsSW5kZXhPckRhdGVDZWxsUmFuZ2UgfSBmcm9tICdAZGVyZWVrYi9kYXRlJztcbmltcG9ydCB7IENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdGF0ZSwgRGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlIH0gZnJvbSAnLi4vLi4vY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLnN0b3JlJztcbmltcG9ydCB7IHByb3ZpZGVDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmVJZlBhcmVudElzVW5hdmFpbGFibGUgfSBmcm9tICcuLi8uLi9jYWxlbmRhci5zY2hlZHVsZS5zZWxlY3Rpb24uc3RvcmUucHJvdmlkZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRBcHBlYXJhbmNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVBvcHVwQ29udGVudENvbmZpZyB9IGZyb20gJy4uLy4uL2NhbGVuZGFyLnNjaGVkdWxlLnNlbGVjdGlvbi5kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZyB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGb3JtQ2FsZW5kYXJEYXRlQ2VsbFNjaGVkdWxlUmFuZ2VGaWVsZFByb3BzIGV4dGVuZHMgUGljazxGb3JtbHlGaWVsZFByb3BzLCAnbGFiZWwnIHwgJ2Rlc2NyaXB0aW9uJyB8ICdyZWFkb25seScgfCAncmVxdWlyZWQnPiwgUGljazxDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RhdGUsICdjb21wdXRlU2VsZWN0aW9uUmVzdWx0UmVsYXRpdmVUb0ZpbHRlcicgfCAnaW5pdGlhbFNlbGVjdGlvblN0YXRlJz4sIFBhcnRpYWw8UGljazxDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RhdGUsICdjZWxsQ29udGVudEZhY3RvcnknPj4ge1xuICBhcHBlYXJhbmNlPzogTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZTtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGFsbG93IGlucHV0dGluZyBjdXN0b20gdGV4dCBpbnRvIHRoZSBwaWNrZXIuXG4gICAqXG4gICAqIElmIGZhbHNlLCB3aGVuIHRoZSBpbnB1dCB0ZXh0IGlzIHBpY2tlZCB0aGUgZGF0ZSBwaWNrZXIgd2lsbCBvcGVuLlxuICAgKlxuICAgKiBJcyBmYWxzZSBieSBkZWZhdWx0LlxuICAgKi9cbiAgYWxsb3dUZXh0SW5wdXQ/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gaGlkZSB0aGUgY3VzdG9taXplIGJ1dHRvbi4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAqL1xuICBoaWRlQ3VzdG9taXplPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGFsbG93IGN1c3RvbWl6aW5nIGJlZm9yZSBwaWNraW5nIGEgZGF0ZSByYW5nZSB0byBjdXN0b21pemUuXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgKi9cbiAgYWxsb3dDdXN0b21pemVXaXRob3V0RGF0ZVJhbmdlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgVGltZXpvbmUgdG8gdXNlIGZvciB0aGUgb3V0cHV0IHN0YXJ0IGRhdGUuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIHVzZSAnb3V0cHV0VGltZXpvbmUnIGluc3RlYWQuXG4gICAqL1xuICB0aW1lem9uZT86IE9ic2VydmFibGVPclZhbHVlPE1heWJlPFRpbWV6b25lU3RyaW5nPj47XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFRpbWV6b25lIHRvIHVzZSBmb3IgdGhlIG91dHB1dCBzdGFydCBkYXRlLlxuICAgKlxuICAgKiBJZiBhIGZpbHRlciBpcyBwcm92aWRlZCwgdGhpcyB0aW1lem9uZSBvdmVycmlkZXMgdGhlIGZpbHRlcidzIHRpbWV6b25lIG91dHB1dC5cbiAgICovXG4gIG91dHB1dFRpbWV6b25lPzogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8VGltZXpvbmVTdHJpbmc+PjtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgRGVmYXVsdCBzY2hlZHVsZSBkYXlzIHRvIGFsbG93LlxuICAgKi9cbiAgZGVmYXVsdFNjaGVkdWxlRGF5cz86IE9ic2VydmFibGVPclZhbHVlPE1heWJlPEl0ZXJhYmxlPERhdGVDZWxsU2NoZWR1bGVEYXlDb2RlPj4+O1xuICAvKipcbiAgICogT3B0aW9uYWwgbWluL21heCBkYXRlIHJhbmdlIHRvIGZpbHRlciBvbi4gV29ya3MgaW4gY29uanVjdGlvbiB3aXRoIHRoZSBmaWx0ZXIuXG4gICAqL1xuICBtaW5NYXhEYXRlUmFuZ2U/OiBPYnNlcnZhYmxlT3JWYWx1ZTxNYXliZTxQYXJ0aWFsPERhdGVSYW5nZT4+PjtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgT2JzZXJ2YWJsZSB3aXRoIGEgZmlsdGVyIHZhbHVlIHRvIGFwcGx5IHRvIHRoZSBkYXRlIHJhbmdlLlxuICAgKi9cbiAgZmlsdGVyPzogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8RGF0ZUNlbGxTY2hlZHVsZURhdGVGaWx0ZXJDb25maWc+PjtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgT2JzZXJ2YWJsZSB3aXRoIGRheXMgYW5kIHZhbHVlcyB0byBleGNsdWRlIGZyb20gdGhlIGRhdGUgcmFuZ2UuXG4gICAqL1xuICBleGNsdXNpb25zPzogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8QXJyYXlPclZhbHVlPERhdGVPckRhdGVSYW5nZU9yRGF0ZUNlbGxJbmRleE9yRGF0ZUNlbGxSYW5nZT4+PjtcbiAgLyoqXG4gICAqIEN1c3RvbSBkaWFsb2cgY29udGVudCBjb25maWcgZm9yIHRoZSBwb3B1cFxuICAgKi9cbiAgZGlhbG9nQ29udGVudENvbmZpZz86IE1heWJlPERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlUG9wdXBDb250ZW50Q29uZmlnPjtcbiAgLyoqXG4gICAqIEN1c3RvbSBkZXRhaWxzIGNvbmZpZyBmb3IgdGhlIGRhdGUgcmFuZ2VcbiAgICovXG4gIGN1c3RvbURldGFpbHNDb25maWc/OiBNYXliZTxEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc+O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZGJ4LXNjaGVkdWxlLXNlbGVjdGlvbi1maWVsZFwiPlxuICAgICAgPGRieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXItZGF0ZS1yYW5nZSBbb3BlblBpY2tlck9uVGV4dENsaWNrXT1cIm9wZW5QaWNrZXJPblRleHRDbGlja1wiIFtzaG93Q3VzdG9taXplXT1cInNob3dDdXN0b21pemVcIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBbZGlzYWJsZWRdPVwiaXNSZWFkb25seU9yRGlzYWJsZWRcIiBbbGFiZWxdPVwibGFiZWxcIiBbaGludF09XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICA8ZGJ4LXNjaGVkdWxlLXNlbGVjdGlvbi1jYWxlbmRhci1kYXRlLWRpYWxvZy1idXR0b24gY3VzdG9taXplQnV0dG9uIFtkaXNhYmxlZF09XCJkaXNhYmxlQ3VzdG9taXplJCB8IGFzeW5jXCIgW2NvbnRlbnRDb25maWddPVwiZGlhbG9nQ29udGVudENvbmZpZ1wiPjwvZGJ4LXNjaGVkdWxlLXNlbGVjdGlvbi1jYWxlbmRhci1kYXRlLWRpYWxvZy1idXR0b24+XG4gICAgICAgIDxkYngtaW5qZWN0aW9uIFtjb25maWddPVwiY3VzdG9tRGV0YWlsc0NvbmZpZ1wiPjwvZGJ4LWluamVjdGlvbj5cbiAgICAgIDwvZGJ4LXNjaGVkdWxlLXNlbGVjdGlvbi1jYWxlbmRhci1kYXRlLXJhbmdlPlxuICAgIDwvZGl2PlxuICBgLFxuICBwcm92aWRlcnM6IFtwcm92aWRlQ2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlSWZQYXJlbnRJc1VuYXZhaWxhYmxlKCldXG59KVxuZXhwb3J0IGNsYXNzIERieEZvcm1DYWxlbmRhckRhdGVTY2hlZHVsZVJhbmdlRmllbGRDb21wb25lbnQ8VCBleHRlbmRzIERieEZvcm1DYWxlbmRhckRhdGVDZWxsU2NoZWR1bGVSYW5nZUZpZWxkUHJvcHMgPSBEYnhGb3JtQ2FsZW5kYXJEYXRlQ2VsbFNjaGVkdWxlUmFuZ2VGaWVsZFByb3BzPiBleHRlbmRzIEZpZWxkVHlwZTxGaWVsZFR5cGVDb25maWc8VD4+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9zeW5jU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuICBwcml2YXRlIF92YWx1ZVN1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcbiAgcHJpdmF0ZSBfdGltZXpvbmVTdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG4gIHByaXZhdGUgX21pbk1heERhdGVSYW5nZVN1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcbiAgcHJpdmF0ZSBfZGVmYXVsdFdlZWtTdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG4gIHByaXZhdGUgX2ZpbHRlclN1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcbiAgcHJpdmF0ZSBfZXhjbHVzaW9uc1N1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcblxuICBwcml2YXRlIF9mb3JtQ29udHJvbE9icyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8QWJzdHJhY3RDb250cm9sPj4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgZm9ybUNvbnRyb2wkID0gdGhpcy5fZm9ybUNvbnRyb2xPYnMucGlwZShmaWx0ZXJNYXliZSgpKTtcblxuICByZWFkb25seSB2YWx1ZSQgPSB0aGlzLmZvcm1Db250cm9sJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoY29udHJvbCkgPT4gY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgoY29udHJvbC52YWx1ZSkpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRpc2FibGVDdXN0b21pemUkID0gdGhpcy52YWx1ZSQucGlwZShcbiAgICBtYXAoKHgpID0+ICh0aGlzLmFsbG93Q3VzdG9taXplV2l0aG91dERhdGVSYW5nZSA/IGZhbHNlIDogIXgpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcmVhZG9ubHkgY29tcGFjdDogQ29tcGFjdENvbnRleHRTdG9yZSwgcmVhZG9ubHkgZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlOiBEYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUsIHJlYWRvbmx5IG5nWm9uZTogTmdab25lKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGdldCBmb3JtR3JvdXBOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQua2V5IGFzIHN0cmluZztcbiAgfVxuXG4gIGdldCBmb3JtR3JvdXAoKTogRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtIGFzIEZvcm1Hcm91cDtcbiAgfVxuXG4gIGdldCBsYWJlbCgpOiBNYXliZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5wcm9wcz8ubGFiZWw7XG4gIH1cblxuICBnZXQgZGVzY3JpcHRpb24oKTogTWF5YmU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZGVzY3JpcHRpb247XG4gIH1cblxuICBnZXQgaXNSZWFkb25seU9yRGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZDtcbiAgfVxuXG4gIGdldCBvcGVuUGlja2VyT25UZXh0Q2xpY2soKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuYWxsb3dUZXh0SW5wdXQgIT09IHRydWU7IC8vIE9wcG9zaXRlIG9mIGFsbG93VGV4dElucHV0XG4gIH1cblxuICBnZXQgYWxsb3dDdXN0b21pemVXaXRob3V0RGF0ZVJhbmdlKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmFsbG93Q3VzdG9taXplV2l0aG91dERhdGVSYW5nZSA/PyBmYWxzZTtcbiAgfVxuXG4gIGdldCBzaG93Q3VzdG9taXplKCkge1xuICAgIHJldHVybiAhdGhpcy5wcm9wcy5oaWRlQ3VzdG9taXplO1xuICB9XG5cbiAgZ2V0IGRlZmF1bHRTY2hlZHVsZURheXMoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZGVmYXVsdFNjaGVkdWxlRGF5cztcbiAgfVxuXG4gIGdldCBtaW5NYXhEYXRlUmFuZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMubWluTWF4RGF0ZVJhbmdlO1xuICB9XG5cbiAgZ2V0IGZpbHRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5maWx0ZXI7XG4gIH1cblxuICBnZXQgZXhjbHVzaW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5leGNsdXNpb25zO1xuICB9XG5cbiAgZ2V0IG91dHB1dFRpbWV6b25lKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLm91dHB1dFRpbWV6b25lIHx8IHRoaXMucHJvcHMudGltZXpvbmU7XG4gIH1cblxuICBnZXQgaW5pdGlhbFNlbGVjdGlvblN0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmluaXRpYWxTZWxlY3Rpb25TdGF0ZTtcbiAgfVxuXG4gIGdldCBjb21wdXRlU2VsZWN0aW9uUmVzdWx0UmVsYXRpdmVUb0ZpbHRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5jb21wdXRlU2VsZWN0aW9uUmVzdWx0UmVsYXRpdmVUb0ZpbHRlcjtcbiAgfVxuXG4gIGdldCBkaWFsb2dDb250ZW50Q29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmRpYWxvZ0NvbnRlbnRDb25maWc7XG4gIH1cblxuICBnZXQgY3VzdG9tRGV0YWlsc0NvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5jdXN0b21EZXRhaWxzQ29uZmlnO1xuICB9XG5cbiAgZ2V0IGNlbGxDb250ZW50RmFjdG9yeSgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5jZWxsQ29udGVudEZhY3Rvcnk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9mb3JtQ29udHJvbE9icy5uZXh0KHRoaXMuZm9ybUNvbnRyb2wpO1xuXG4gICAgdGhpcy5fc3luY1N1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLnZhbHVlJC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKGlzU2FtZURhdGVDZWxsU2NoZWR1bGVEYXRlUmFuZ2UpKS5zdWJzY3JpYmUoKHgpID0+IHtcbiAgICAgIHRoaXMuZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLnNldERhdGVTY2hlZHVsZVJhbmdlVmFsdWUoeCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl92YWx1ZVN1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLmRieENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdG9yZS5jdXJyZW50RGF0ZUNlbGxTY2hlZHVsZVJhbmdlVmFsdWUkLnN1YnNjcmliZSgoeCkgPT4ge1xuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh4KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHsgb3V0cHV0VGltZXpvbmUsIG1pbk1heERhdGVSYW5nZSwgZmlsdGVyLCBleGNsdXNpb25zLCBkZWZhdWx0U2NoZWR1bGVEYXlzIH0gPSB0aGlzO1xuXG4gICAgaWYgKGZpbHRlciAhPSBudWxsKSB7XG4gICAgICB0aGlzLl9maWx0ZXJTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy5kYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUuc2V0RmlsdGVyKGFzT2JzZXJ2YWJsZShmaWx0ZXIpKSBhcyBTdWJzY3JpcHRpb247XG4gICAgfVxuXG4gICAgaWYgKGRlZmF1bHRTY2hlZHVsZURheXMgIT0gbnVsbCkge1xuICAgICAgdGhpcy5fZGVmYXVsdFdlZWtTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy5kYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUuc2V0RGVmYXVsdFNjaGVkdWxlRGF5cyhhc09ic2VydmFibGUoZGVmYXVsdFNjaGVkdWxlRGF5cykpIGFzIFN1YnNjcmlwdGlvbjtcbiAgICB9XG5cbiAgICBpZiAobWluTWF4RGF0ZVJhbmdlICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX21pbk1heERhdGVSYW5nZVN1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLmRieENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdG9yZS5zZXRNaW5NYXhEYXRlUmFuZ2UoYXNPYnNlcnZhYmxlKG1pbk1heERhdGVSYW5nZSkpIGFzIFN1YnNjcmlwdGlvbjtcbiAgICB9XG5cbiAgICBpZiAoZXhjbHVzaW9ucyAhPSBudWxsKSB7XG4gICAgICB0aGlzLl9leGNsdXNpb25zU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMuZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLnNldEV4Y2x1c2lvbnMoYXNPYnNlcnZhYmxlKGV4Y2x1c2lvbnMpKSBhcyBTdWJzY3JpcHRpb247XG4gICAgfVxuXG4gICAgaWYgKG91dHB1dFRpbWV6b25lICE9IG51bGwpIHtcbiAgICAgIHRoaXMuZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLnNldE91dHB1dFRpbWV6b25lKGFzT2JzZXJ2YWJsZSh0aGlzLm91dHB1dFRpbWV6b25lKSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW5pdGlhbFNlbGVjdGlvblN0YXRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLnNldEluaXRpYWxTZWxlY3Rpb25TdGF0ZSh0aGlzLmluaXRpYWxTZWxlY3Rpb25TdGF0ZSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29tcHV0ZVNlbGVjdGlvblJlc3VsdFJlbGF0aXZlVG9GaWx0ZXIgIT0gbnVsbCkge1xuICAgICAgdGhpcy5kYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUuc2V0Q29tcHV0ZVNlbGVjdGlvblJlc3VsdFJlbGF0aXZlVG9GaWx0ZXIodGhpcy5jb21wdXRlU2VsZWN0aW9uUmVzdWx0UmVsYXRpdmVUb0ZpbHRlcik7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY2VsbENvbnRlbnRGYWN0b3J5ICE9IG51bGwpIHtcbiAgICAgIHRoaXMuZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLnNldENlbGxDb250ZW50RmFjdG9yeSh0aGlzLmNlbGxDb250ZW50RmFjdG9yeSk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLl9zeW5jU3ViLmRlc3Ryb3koKTtcbiAgICB0aGlzLl92YWx1ZVN1Yi5kZXN0cm95KCk7XG4gICAgdGhpcy5fZmlsdGVyU3ViLmRlc3Ryb3koKTtcbiAgICB0aGlzLl90aW1lem9uZVN1Yi5kZXN0cm95KCk7XG4gICAgdGhpcy5fbWluTWF4RGF0ZVJhbmdlU3ViLmRlc3Ryb3koKTtcbiAgICB0aGlzLl9leGNsdXNpb25zU3ViLmRlc3Ryb3koKTtcbiAgICB0aGlzLl9mb3JtQ29udHJvbE9icy5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { formlyField, propsAndConfigForFieldConfig } from '@dereekb/dbx-form';
2
2
  export function dateScheduleRangeField(config = {}) {
3
- const { key = 'schedule', appearance, hideCustomize, allowTextInput, filter, timezone, initialSelectionState, computeSelectionResultRelativeToFilter, exclusions, defaultScheduleDays, minMaxDateRange, cellContentFactory, dialogContentConfig, customDetailsConfig } = config;
3
+ const { key = 'schedule', appearance, hideCustomize, allowTextInput, filter, outputTimezone, timezone, initialSelectionState, computeSelectionResultRelativeToFilter, exclusions, defaultScheduleDays, minMaxDateRange, cellContentFactory, dialogContentConfig, customDetailsConfig } = config;
4
4
  const fieldConfig = {
5
5
  ...formlyField({
6
6
  key,
@@ -10,6 +10,7 @@ export function dateScheduleRangeField(config = {}) {
10
10
  allowTextInput,
11
11
  appearance,
12
12
  hideCustomize,
13
+ outputTimezone,
13
14
  timezone,
14
15
  defaultScheduleDays,
15
16
  minMaxDateRange,
@@ -25,4 +26,4 @@ export function dateScheduleRangeField(config = {}) {
25
26
  };
26
27
  return fieldConfig;
27
28
  }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc2NoZWR1bGUuZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9jYWxlbmRhci9zcmMvbGliL2ZpZWxkL3NjaGVkdWxlL2NhbGVuZGFyLnNjaGVkdWxlLmZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUMsV0FBVyxFQUFzQiw0QkFBNEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBTXZJLE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxTQUF1QyxFQUFFO0lBQzlFLE1BQU0sRUFBRSxHQUFHLEdBQUcsVUFBVSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsc0NBQXNDLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUNoUixNQUFNLFdBQVcsR0FBc0I7UUFDckMsR0FBRyxXQUFXLENBQUM7WUFDYixHQUFHO1lBQ0gsSUFBSSxFQUFFLHFCQUFxQjtZQUMzQixHQUFHLDRCQUE0QixDQUFDLE1BQU0sRUFBRTtnQkFDdEMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLElBQUksVUFBVTtnQkFDakMsY0FBYztnQkFDZCxVQUFVO2dCQUNWLGFBQWE7Z0JBQ2IsUUFBUTtnQkFDUixtQkFBbUI7Z0JBQ25CLGVBQWU7Z0JBQ2YsTUFBTTtnQkFDTixVQUFVO2dCQUNWLG1CQUFtQjtnQkFDbkIsc0NBQXNDO2dCQUN0QyxxQkFBcUI7Z0JBQ3JCLGtCQUFrQjtnQkFDbEIsbUJBQW1CO2FBQ3BCLENBQUM7U0FDSCxDQUFDO0tBQ0gsQ0FBQztJQUVGLE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXNjcmlwdGlvbkZpZWxkQ29uZmlnLCBGaWVsZENvbmZpZywgZm9ybWx5RmllbGQsIExhYmVsZWRGaWVsZENvbmZpZywgcHJvcHNBbmRDb25maWdGb3JGaWVsZENvbmZpZyB9IGZyb20gJ0BkZXJlZWtiL2RieC1mb3JtJztcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBEYnhGb3JtQ2FsZW5kYXJEYXRlQ2VsbFNjaGVkdWxlUmFuZ2VGaWVsZFByb3BzIH0gZnJvbSAnLi9jYWxlbmRhci5zY2hlZHVsZS5maWVsZC5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGVTY2hlZHVsZVJhbmdlRmllbGRDb25maWcgZXh0ZW5kcyBPbWl0PExhYmVsZWRGaWVsZENvbmZpZywgJ2tleScgfCAncGxhY2Vob2xkZXInPiwgRGVzY3JpcHRpb25GaWVsZENvbmZpZywgUGFydGlhbDxGaWVsZENvbmZpZz4sIERieEZvcm1DYWxlbmRhckRhdGVDZWxsU2NoZWR1bGVSYW5nZUZpZWxkUHJvcHMge31cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVTY2hlZHVsZVJhbmdlRmllbGQoY29uZmlnOiBEYXRlU2NoZWR1bGVSYW5nZUZpZWxkQ29uZmlnID0ge30pOiBGb3JtbHlGaWVsZENvbmZpZyB7XG4gIGNvbnN0IHsga2V5ID0gJ3NjaGVkdWxlJywgYXBwZWFyYW5jZSwgaGlkZUN1c3RvbWl6ZSwgYWxsb3dUZXh0SW5wdXQsIGZpbHRlciwgdGltZXpvbmUsIGluaXRpYWxTZWxlY3Rpb25TdGF0ZSwgY29tcHV0ZVNlbGVjdGlvblJlc3VsdFJlbGF0aXZlVG9GaWx0ZXIsIGV4Y2x1c2lvbnMsIGRlZmF1bHRTY2hlZHVsZURheXMsIG1pbk1heERhdGVSYW5nZSwgY2VsbENvbnRlbnRGYWN0b3J5LCBkaWFsb2dDb250ZW50Q29uZmlnLCBjdXN0b21EZXRhaWxzQ29uZmlnIH0gPSBjb25maWc7XG4gIGNvbnN0IGZpZWxkQ29uZmlnOiBGb3JtbHlGaWVsZENvbmZpZyA9IHtcbiAgICAuLi5mb3JtbHlGaWVsZCh7XG4gICAgICBrZXksXG4gICAgICB0eXBlOiAnZGF0ZS1zY2hlZHVsZS1yYW5nZScsXG4gICAgICAuLi5wcm9wc0FuZENvbmZpZ0ZvckZpZWxkQ29uZmlnKGNvbmZpZywge1xuICAgICAgICBsYWJlbDogY29uZmlnLmxhYmVsID8/ICdTY2hlZHVsZScsXG4gICAgICAgIGFsbG93VGV4dElucHV0LFxuICAgICAgICBhcHBlYXJhbmNlLFxuICAgICAgICBoaWRlQ3VzdG9taXplLFxuICAgICAgICB0aW1lem9uZSxcbiAgICAgICAgZGVmYXVsdFNjaGVkdWxlRGF5cyxcbiAgICAgICAgbWluTWF4RGF0ZVJhbmdlLFxuICAgICAgICBmaWx0ZXIsXG4gICAgICAgIGV4Y2x1c2lvbnMsXG4gICAgICAgIGRpYWxvZ0NvbnRlbnRDb25maWcsXG4gICAgICAgIGNvbXB1dGVTZWxlY3Rpb25SZXN1bHRSZWxhdGl2ZVRvRmlsdGVyLFxuICAgICAgICBpbml0aWFsU2VsZWN0aW9uU3RhdGUsXG4gICAgICAgIGNlbGxDb250ZW50RmFjdG9yeSxcbiAgICAgICAgY3VzdG9tRGV0YWlsc0NvbmZpZ1xuICAgICAgfSlcbiAgICB9KVxuICB9O1xuXG4gIHJldHVybiBmaWVsZENvbmZpZztcbn1cbiJdfQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc2NoZWR1bGUuZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9jYWxlbmRhci9zcmMvbGliL2ZpZWxkL3NjaGVkdWxlL2NhbGVuZGFyLnNjaGVkdWxlLmZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUMsV0FBVyxFQUFzQiw0QkFBNEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBTXZJLE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxTQUF1QyxFQUFFO0lBQzlFLE1BQU0sRUFBRSxHQUFHLEdBQUcsVUFBVSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFLHNDQUFzQyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDaFMsTUFBTSxXQUFXLEdBQXNCO1FBQ3JDLEdBQUcsV0FBVyxDQUFDO1lBQ2IsR0FBRztZQUNILElBQUksRUFBRSxxQkFBcUI7WUFDM0IsR0FBRyw0QkFBNEIsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3RDLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxJQUFJLFVBQVU7Z0JBQ2pDLGNBQWM7Z0JBQ2QsVUFBVTtnQkFDVixhQUFhO2dCQUNiLGNBQWM7Z0JBQ2QsUUFBUTtnQkFDUixtQkFBbUI7Z0JBQ25CLGVBQWU7Z0JBQ2YsTUFBTTtnQkFDTixVQUFVO2dCQUNWLG1CQUFtQjtnQkFDbkIsc0NBQXNDO2dCQUN0QyxxQkFBcUI7Z0JBQ3JCLGtCQUFrQjtnQkFDbEIsbUJBQW1CO2FBQ3BCLENBQUM7U0FDSCxDQUFDO0tBQ0gsQ0FBQztJQUVGLE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXNjcmlwdGlvbkZpZWxkQ29uZmlnLCBGaWVsZENvbmZpZywgZm9ybWx5RmllbGQsIExhYmVsZWRGaWVsZENvbmZpZywgcHJvcHNBbmRDb25maWdGb3JGaWVsZENvbmZpZyB9IGZyb20gJ0BkZXJlZWtiL2RieC1mb3JtJztcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBEYnhGb3JtQ2FsZW5kYXJEYXRlQ2VsbFNjaGVkdWxlUmFuZ2VGaWVsZFByb3BzIH0gZnJvbSAnLi9jYWxlbmRhci5zY2hlZHVsZS5maWVsZC5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGVTY2hlZHVsZVJhbmdlRmllbGRDb25maWcgZXh0ZW5kcyBPbWl0PExhYmVsZWRGaWVsZENvbmZpZywgJ2tleScgfCAncGxhY2Vob2xkZXInPiwgRGVzY3JpcHRpb25GaWVsZENvbmZpZywgUGFydGlhbDxGaWVsZENvbmZpZz4sIERieEZvcm1DYWxlbmRhckRhdGVDZWxsU2NoZWR1bGVSYW5nZUZpZWxkUHJvcHMge31cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVTY2hlZHVsZVJhbmdlRmllbGQoY29uZmlnOiBEYXRlU2NoZWR1bGVSYW5nZUZpZWxkQ29uZmlnID0ge30pOiBGb3JtbHlGaWVsZENvbmZpZyB7XG4gIGNvbnN0IHsga2V5ID0gJ3NjaGVkdWxlJywgYXBwZWFyYW5jZSwgaGlkZUN1c3RvbWl6ZSwgYWxsb3dUZXh0SW5wdXQsIGZpbHRlciwgb3V0cHV0VGltZXpvbmUsIHRpbWV6b25lLCBpbml0aWFsU2VsZWN0aW9uU3RhdGUsIGNvbXB1dGVTZWxlY3Rpb25SZXN1bHRSZWxhdGl2ZVRvRmlsdGVyLCBleGNsdXNpb25zLCBkZWZhdWx0U2NoZWR1bGVEYXlzLCBtaW5NYXhEYXRlUmFuZ2UsIGNlbGxDb250ZW50RmFjdG9yeSwgZGlhbG9nQ29udGVudENvbmZpZywgY3VzdG9tRGV0YWlsc0NvbmZpZyB9ID0gY29uZmlnO1xuICBjb25zdCBmaWVsZENvbmZpZzogRm9ybWx5RmllbGRDb25maWcgPSB7XG4gICAgLi4uZm9ybWx5RmllbGQoe1xuICAgICAga2V5LFxuICAgICAgdHlwZTogJ2RhdGUtc2NoZWR1bGUtcmFuZ2UnLFxuICAgICAgLi4ucHJvcHNBbmRDb25maWdGb3JGaWVsZENvbmZpZyhjb25maWcsIHtcbiAgICAgICAgbGFiZWw6IGNvbmZpZy5sYWJlbCA/PyAnU2NoZWR1bGUnLFxuICAgICAgICBhbGxvd1RleHRJbnB1dCxcbiAgICAgICAgYXBwZWFyYW5jZSxcbiAgICAgICAgaGlkZUN1c3RvbWl6ZSxcbiAgICAgICAgb3V0cHV0VGltZXpvbmUsXG4gICAgICAgIHRpbWV6b25lLFxuICAgICAgICBkZWZhdWx0U2NoZWR1bGVEYXlzLFxuICAgICAgICBtaW5NYXhEYXRlUmFuZ2UsXG4gICAgICAgIGZpbHRlcixcbiAgICAgICAgZXhjbHVzaW9ucyxcbiAgICAgICAgZGlhbG9nQ29udGVudENvbmZpZyxcbiAgICAgICAgY29tcHV0ZVNlbGVjdGlvblJlc3VsdFJlbGF0aXZlVG9GaWx0ZXIsXG4gICAgICAgIGluaXRpYWxTZWxlY3Rpb25TdGF0ZSxcbiAgICAgICAgY2VsbENvbnRlbnRGYWN0b3J5LFxuICAgICAgICBjdXN0b21EZXRhaWxzQ29uZmlnXG4gICAgICB9KVxuICAgIH0pXG4gIH07XG5cbiAgcmV0dXJuIGZpZWxkQ29uZmlnO1xufVxuIl19
@@ -3,9 +3,9 @@ import { formlyField, propsAndConfigForFieldConfig, flexLayoutWrapper, toggleFie
3
3
  import * as i0 from '@angular/core';
4
4
  import { Injectable, SkipSelf, Directive, Injector, Optional, Component, Inject, Input, ViewChild, ElementRef, ChangeDetectionStrategy, EventEmitter, Output, InjectionToken, NgModule } from '@angular/core';
5
5
  import { FieldType } from '@ngx-formly/material';
6
- import { switchMap, first, tap, map, distinctUntilChanged, shareReplay, of, combineLatestWith, BehaviorSubject, filter, combineLatest, startWith, throttleTime } from 'rxjs';
6
+ import { switchMap, first, tap, map, distinctUntilChanged, shareReplay, of, combineLatestWith, BehaviorSubject, filter, combineLatest, EMPTY, startWith, throttleTime } from 'rxjs';
7
7
  import { filterMaybe, distinctUntilHasDifferentValues, SubscriptionObject, asObservableFromGetter, asObservable } from '@dereekb/rxjs';
8
- import { DateCellScheduleDayCode, expandDateCellScheduleDayCodesToDayOfWeekSet, dateCellTimingStartsAtForStartOfDay, dateCellTimingRelativeIndexFactory, dateCellDayOfWeekFactory, findMaxDate, findMinDate, isSameDateRange, isSameDateDay, isSameDate, dateCellTimingDateFactory, expandDateCellScheduleRange, formatToISO8601DayString, isSameDateCellScheduleDateRange, dateCellTimingRelativeIndexArrayFactory, isInfiniteDateRange, copyDateCellScheduleDateFilterConfig, dateCellScheduleDateFilter, dateTimezoneUtcNormal, fullDateCellScheduleRange, expandDateCellScheduleDayCodes, fullWeekDateCellScheduleDayCodes, dateCellScheduleDayCodesAreSetsEquivalent, simplifyDateCellScheduleDayCodes, isDateInDateRangeFunction, isDateWithinDateCellRangeFunction, copyHoursAndMinutesFromDate, dateCellScheduleEncodedWeek, dateCellTimingStartDateFactory, enabledDaysFromDateCellScheduleDayCodes, dateCellScheduleDayCodesFromEnabledDays, formatToMonthDayString, dateRange, DateRangeType } from '@dereekb/date';
8
+ import { DateCellScheduleDayCode, expandDateCellScheduleDayCodesToDayOfWeekSet, dateCellTimingStartsAtForStartOfDay, dateCellTimingRelativeIndexFactory, dateCellDayOfWeekFactory, findMaxDate, findMinDate, isSameDateRange, isSameDateDay, isSameDate, dateCellTimingDateFactory, expandDateCellScheduleRange, formatToISO8601DayString, changeDateCellScheduleDateRangeToTimezone, isSameDateCellScheduleDateRange, dateCellTimingRelativeIndexArrayFactory, isInfiniteDateRange, copyDateCellScheduleDateFilterConfig, dateTimezoneUtcNormal, dateCellScheduleDateFilter, fullDateCellScheduleRange, dateCellTimingTimezoneNormalInstance, expandDateCellScheduleDayCodes, fullWeekDateCellScheduleDayCodes, dateCellScheduleDayCodesAreSetsEquivalent, simplifyDateCellScheduleDayCodes, isDateInDateRangeFunction, isDateWithinDateCellRangeFunction, dateCellScheduleEncodedWeek, dateCellTimingStartDateFactory, enabledDaysFromDateCellScheduleDayCodes, dateCellScheduleDayCodesFromEnabledDays, formatToMonthDayString, dateRange, DateRangeType } from '@dereekb/date';
9
9
  import { isInAllowedDaysOfWeekSet, mapValuesToSet, unique, mergeArrays, iterableToArray, range, toggleInSet, removeFromSet, addToSet, isIndexNumberInIndexRangeFunction, minAndMaxNumber, getDaysOfWeekNames, reduceBooleansWithAnd, mergeObjects, KeyValueTypleValueFilter } from '@dereekb/util';
10
10
  import { ComponentStore } from '@ngrx/component-store';
11
11
  import { startOfDay, endOfDay, isBefore, endOfWeek } from 'date-fns';
@@ -38,12 +38,13 @@ import { FlexLayoutModule } from '@angular/flex-layout';
38
38
 
39
39
  function dateScheduleRangeField(config = {}) {
40
40
  var _a;
41
- const { key = 'schedule', appearance, hideCustomize, allowTextInput, filter, timezone, initialSelectionState, computeSelectionResultRelativeToFilter, exclusions, defaultScheduleDays, minMaxDateRange, cellContentFactory, dialogContentConfig, customDetailsConfig } = config;
41
+ const { key = 'schedule', appearance, hideCustomize, allowTextInput, filter, outputTimezone, timezone, initialSelectionState, computeSelectionResultRelativeToFilter, exclusions, defaultScheduleDays, minMaxDateRange, cellContentFactory, dialogContentConfig, customDetailsConfig } = config;
42
42
  const fieldConfig = Object.assign({}, formlyField(Object.assign({ key, type: 'date-schedule-range' }, propsAndConfigForFieldConfig(config, {
43
43
  label: (_a = config.label) !== null && _a !== void 0 ? _a : 'Schedule',
44
44
  allowTextInput,
45
45
  appearance,
46
46
  hideCustomize,
47
+ outputTimezone,
47
48
  timezone,
48
49
  defaultScheduleDays,
49
50
  minMaxDateRange,
@@ -127,7 +128,7 @@ function calendarScheduleMinAndMaxDateRange(x) {
127
128
  }
128
129
  function calendarScheduleStartBeingUsedFromFilter(x) {
129
130
  var _a;
130
- return x.computeSelectionResultRelativeToFilter && ((_a = x.filter) === null || _a === void 0 ? void 0 : _a.start) != null;
131
+ return x.computeSelectionResultRelativeToFilter && ((_a = x.filter) === null || _a === void 0 ? void 0 : _a.start) != null; // may be using either
131
132
  }
132
133
  class DbxCalendarScheduleSelectionStore extends ComponentStore {
133
134
  constructor() {
@@ -146,7 +147,7 @@ class DbxCalendarScheduleSelectionStore extends ComponentStore {
146
147
  this.hasConfiguredMinMaxRange$ = this.minMaxDateRange$.pipe(map((x) => x != null && x.start != null && x.end != null), distinctUntilChanged(), shareReplay(1));
147
148
  this.inputStart$ = this.state$.pipe(map((x) => x.inputStart), distinctUntilChanged(isSameDate), shareReplay(1));
148
149
  this.inputEnd$ = this.state$.pipe(map((x) => x.inputEnd), distinctUntilChanged(isSameDate), shareReplay(1));
149
- this.currentInputRange$ = this.state$.pipe(map(({ inputStart, inputEnd }) => ({ inputStart, inputEnd })), distinctUntilChanged((a, b) => isSameDate(a.inputStart, b.inputStart) && isSameDate(a.inputEnd, b.inputEnd)), map((x) => {
150
+ this.currentInputRange$ = this.state$.pipe(map(({ inputStart, inputEnd }) => ({ start: inputStart, end: inputEnd })), distinctUntilChanged((a, b) => isSameDateRange(a, b)), map((x) => ({ inputStart: x.start, inputEnd: x.end })), map((x) => {
150
151
  if (x.inputStart && x.inputEnd) {
151
152
  return x;
152
153
  }
@@ -171,9 +172,19 @@ class DbxCalendarScheduleSelectionStore extends ComponentStore {
171
172
  this.isInAllowedDaysOfWeekFunction$ = this.allowedDaysOfWeek$.pipe(map((x) => isInAllowedDaysOfWeekSet(x)), shareReplay(1));
172
173
  this.scheduleDays$ = this.state$.pipe(map((x) => x.effectiveScheduleDays), distinctUntilHasDifferentValues(), shareReplay(1));
173
174
  this.outputTimezone$ = this.state$.pipe(map((x) => x.outputTimezone), distinctUntilChanged(), shareReplay(1));
174
- this.effectiveOutputTimezone$ = this.state$.pipe(map((x) => (!calendarScheduleStartBeingUsedFromFilter(x) && x.outputTimezone ? x.outputTimezone : undefined)), distinctUntilChanged(), shareReplay(1));
175
- this.effectiveOutputTimezoneNormal$ = this.state$.pipe(map((x) => (!calendarScheduleStartBeingUsedFromFilter(x) && x.outputTimezoneNormal ? x.outputTimezoneNormal : undefined)), distinctUntilChanged(), shareReplay(1));
176
- this.currentSelectionValue$ = this.state$.pipe(map((x) => x.currentSelectionValue), shareReplay(1));
175
+ /**
176
+ * The timezone of the output values.
177
+ *
178
+ * If an outputTimezone is not specified, this defaults to the system timezone.
179
+ */
180
+ this.effectiveOutputTimezone$ = this.state$.pipe(map((x) => x.outputTimezone || x.systemTimezone), distinctUntilChanged(), shareReplay(1));
181
+ /**
182
+ * An outputTimezoneNormal to use.
183
+ *
184
+ * If an outputTimezone is not specified, this is undefined.
185
+ */
186
+ this.effectiveOutputTimezoneNormal$ = this.state$.pipe(map((x) => (x.outputTimezoneNormal ? x.outputTimezoneNormal : undefined)), distinctUntilChanged(), shareReplay(1));
187
+ this.currentSelectionValue$ = this.state$.pipe(map((x) => x.currentSelectionValue), distinctUntilChanged(), shareReplay(1));
177
188
  this.currentSelectionValueStart$ = this.currentSelectionValue$.pipe(map((x) => x === null || x === void 0 ? void 0 : x.dateScheduleRange.start), distinctUntilChanged(isSameDate), shareReplay(1));
178
189
  this.currentSelectionValueDateCellTimingDateFactory$ = this.currentSelectionValue$.pipe(map((x) => (x ? dateCellTimingDateFactory({ startsAt: x.dateScheduleRange.start, timezone: x.dateScheduleRange.timezone }) : undefined)), shareReplay(1));
179
190
  this.currentSelectionValueDateCellDurationSpanExpansion$ = this.currentSelectionValue$.pipe(map((x) => (x ? expandDateCellScheduleRange({ dateCellScheduleRange: x.dateScheduleRange }) : [])), shareReplay(1));
@@ -183,12 +194,14 @@ class DbxCalendarScheduleSelectionStore extends ComponentStore {
183
194
  }), shareReplay(1));
184
195
  this.selectionValue$ = this.currentSelectionValue$.pipe(filterMaybe(), shareReplay(1));
185
196
  this.currentSelectionValueWithTimezone$ = this.currentSelectionValue$.pipe(combineLatestWith(this.effectiveOutputTimezoneNormal$), map(([x, timezoneNormal]) => {
197
+ let currentValueWithTimezone = x;
186
198
  if (x && timezoneNormal) {
187
- x = {
188
- dateScheduleRange: Object.assign(Object.assign({}, x.dateScheduleRange), { start: timezoneNormal.targetDateToSystemDate(x.dateScheduleRange.start), end: timezoneNormal.targetDateToSystemDate(x.dateScheduleRange.end) })
199
+ currentValueWithTimezone = {
200
+ dateScheduleRange: changeDateCellScheduleDateRangeToTimezone(x.dateScheduleRange, timezoneNormal),
201
+ minMaxRange: x.minMaxRange
189
202
  };
190
203
  }
191
- return x;
204
+ return currentValueWithTimezone;
192
205
  }), distinctUntilChanged(), shareReplay(1));
193
206
  this.selectionValueWithTimezone$ = this.currentSelectionValueWithTimezone$.pipe(filterMaybe(), shareReplay(1));
194
207
  this.selectionValueWithTimezoneDateCellDurationSpanExpansion$ = this.selectionValueWithTimezone$.pipe(map((x) => expandDateCellScheduleRange({ dateCellScheduleRange: x.dateScheduleRange })), shareReplay(1));
@@ -215,6 +228,9 @@ class DbxCalendarScheduleSelectionStore extends ComponentStore {
215
228
  this.setComputeSelectionResultRelativeToFilter = this.updater(updateStateWithComputeSelectionResultRelativeToFilter);
216
229
  this.clearFilter = this.updater((state) => updateStateWithFilter(state, undefined));
217
230
  this.setOutputTimezone = this.updater(updateStateWithTimezoneValue);
231
+ /**
232
+ * Sets the "input" date range. This is the range that gets displayed on the date range picker.
233
+ */
218
234
  this.setInputRange = this.updater(updateStateWithChangedRange);
219
235
  // NOTE: Selected dates are NOT selected indexes. They are the internal selected dates that are excluded from the selection.
220
236
  this.toggleSelectedDates = this.updater((state, toggle) => updateStateWithChangedDates(state, { toggle }));
@@ -313,8 +329,25 @@ function updateStateWithFilter(state, inputFilter) {
313
329
  // create the filter using inputFilter, exclusions, and minMaxDateRange
314
330
  if (inputFilter || (exclusions === null || exclusions === void 0 ? void 0 : exclusions.length) || minMaxDateRange) {
315
331
  let enabledFilter;
332
+ let filterStart = null; // the start date that will be used/set on the filter.
316
333
  if (inputFilter) {
317
334
  filter = copyDateCellScheduleDateFilterConfig(inputFilter); // copy filter
335
+ // configure filter start
336
+ if (inputFilter.start) {
337
+ filterStart = inputFilter.start;
338
+ }
339
+ else if (inputFilter.startsAt) {
340
+ if (inputFilter.timezone) {
341
+ const timezoneNormal = dateTimezoneUtcNormal(inputFilter.timezone);
342
+ filterStart = timezoneNormal.startOfDayInTargetTimezone(inputFilter.startsAt);
343
+ }
344
+ else {
345
+ filterStart = inputFilter.startsAt;
346
+ filter.timezone = systemTimezone;
347
+ }
348
+ }
349
+ filter.start = filterStart !== null && filterStart !== void 0 ? filterStart : undefined;
350
+ // configure exclusions
318
351
  if (exclusions === null || exclusions === void 0 ? void 0 : exclusions.length) {
319
352
  enabledFilter = Object.assign(Object.assign({}, filter), { ex: unique(mergeArrays([filter.ex, exclusions])) });
320
353
  }
@@ -330,13 +363,13 @@ function updateStateWithFilter(state, inputFilter) {
330
363
  }
331
364
  if (minMaxDateRange) {
332
365
  enabledFilter.minMaxDateRange = minMaxDateRange;
333
- enabledFilter.setStartAsMinDate = (filter === null || filter === void 0 ? void 0 : filter.start) ? true : false; // If a start date is set, then it becomes the floor.
366
+ enabledFilter.setStartAsMinDate = filterStart ? true : false; // If a start date is set, then it becomes the floor.
334
367
  }
335
368
  /**
336
369
  * If the input filter has a start date, use that as the relative start to ensure indexes are compared the same,
337
370
  * otherwise use the state's start. This is important for the index calculations.
338
371
  */
339
- enabledFilter.start = (_a = inputFilter === null || inputFilter === void 0 ? void 0 : inputFilter.start) !== null && _a !== void 0 ? _a : state.start;
372
+ enabledFilter.start = (_a = filter === null || filter === void 0 ? void 0 : filter.start) !== null && _a !== void 0 ? _a : state.start;
340
373
  // create the filter
341
374
  isEnabledFilterDay = dateCellScheduleDateFilter(enabledFilter);
342
375
  }
@@ -376,24 +409,28 @@ function updateStateWithTimezoneValue(state, timezone) {
376
409
  }
377
410
  }
378
411
  function updateStateWithDateCellScheduleRangeValue(state, inputChange) {
379
- const { outputTimezoneNormal: timezoneNormal, currentSelectionValue } = state;
412
+ var _a;
413
+ const { currentSelectionValue, systemTimezone } = state;
380
414
  const currentDateCellScheduleRange = currentSelectionValue === null || currentSelectionValue === void 0 ? void 0 : currentSelectionValue.dateScheduleRange; // current range is always in system time
381
415
  let change;
382
- if (!calendarScheduleStartBeingUsedFromFilter(state) && timezoneNormal) {
383
- // When using timezones, always return from the start of the day. Inputs are converted to the system time and used as the start of the day.
384
- // Outputs remain accurate.
385
- if (inputChange) {
386
- // calculate the schedule range
387
- const fullChange = fullDateCellScheduleRange({ dateCellScheduleRange: inputChange });
388
- // convert the start/end to system time
389
- change = {
390
- start: startOfDay(timezoneNormal.systemDateToTargetDate(fullChange.start)),
391
- end: startOfDay(timezoneNormal.systemDateToTargetDate(fullChange.end)),
392
- w: fullChange.w,
393
- ex: fullChange.ex,
394
- timezone: fullChange.timezone
395
- };
396
- }
416
+ // When using timezones, always return from the start of the day. Inputs are converted to the system time and used as the start of the day.
417
+ // Outputs remain accurate.
418
+ if (inputChange) {
419
+ // make sure a timezone is set. Input may not have a timezone attached. Default to system time.
420
+ const inputChangeWithTimezoneSet = Object.assign(Object.assign({}, inputChange), { timezone: (_a = inputChange.timezone) !== null && _a !== void 0 ? _a : systemTimezone });
421
+ // calculate the schedule range
422
+ const fullChange = fullDateCellScheduleRange({ dateCellScheduleRange: inputChangeWithTimezoneSet });
423
+ const inputNormal = dateCellTimingTimezoneNormalInstance(fullChange);
424
+ const startInSystemTz = inputNormal.systemDateToTargetDate(fullChange.start);
425
+ const endInSystemTz = startOfDay(inputNormal.systemDateToTargetDate(fullChange.end));
426
+ // convert the start/end to system time
427
+ change = {
428
+ start: startInSystemTz,
429
+ end: endInSystemTz,
430
+ w: fullChange.w,
431
+ ex: fullChange.ex,
432
+ timezone: fullChange.timezone
433
+ };
397
434
  }
398
435
  const isSameValue = isSameDateCellScheduleDateRange(currentDateCellScheduleRange, change);
399
436
  if (isSameValue) {
@@ -548,7 +585,7 @@ function updateStateWithChangedRange(state, change) {
548
585
  const { inputStart: currentInputStart, inputEnd: currentInputEnd, indexFactory, minMaxDateRange } = state;
549
586
  const { start: minDate, end: maxDate } = minMaxDateRange !== null && minMaxDateRange !== void 0 ? minMaxDateRange : {};
550
587
  const inputStart = startOfDay(change.inputStart);
551
- const inputEnd = endOfDay(change.inputEnd);
588
+ const inputEnd = startOfDay(change.inputEnd); // midnight of the last day
552
589
  const isValidRange = minDate != null || maxDate != null ? isDateInDateRangeFunction({ start: minDate !== null && minDate !== void 0 ? minDate : undefined, end: maxDate !== null && maxDate !== void 0 ? maxDate : undefined }) : () => true;
553
590
  if (!isValidRange(inputStart) || !isValidRange(inputEnd) || (isSameDateDay(inputStart, currentInputStart) && isSameDateDay(inputEnd, currentInputEnd))) {
554
591
  return state; // if no change, return the current state.
@@ -589,6 +626,7 @@ function isEnabledDayInCalendarScheduleSelectionState(state) {
589
626
  }
590
627
  function computeScheduleSelectionValue(state) {
591
628
  const { indexFactory, allowedDaysOfWeek, effectiveScheduleDays, indexDayOfWeek, computeSelectionResultRelativeToFilter, filter, systemTimezone } = state;
629
+ let timezone = systemTimezone;
592
630
  const rangeAndExclusion = computeScheduleSelectionRangeAndExclusion(state);
593
631
  if (rangeAndExclusion == null) {
594
632
  return null;
@@ -600,9 +638,11 @@ function computeScheduleSelectionValue(state) {
600
638
  let end = rangeEnd;
601
639
  // If computeSelectionResultRelativeToFilter is true, then we need to offset the values to be relative to that start.
602
640
  if (computeSelectionResultRelativeToFilter && (filter === null || filter === void 0 ? void 0 : filter.start)) {
603
- start = filter.start;
604
- if (filter === null || filter === void 0 ? void 0 : filter.end) {
605
- end = copyHoursAndMinutesFromDate(end, filter.end);
641
+ start = filter.start; // always start at the filter's start date
642
+ if (filter.timezone) {
643
+ timezone = filter.timezone;
644
+ const filterNormal = dateTimezoneUtcNormal(timezone);
645
+ end = filterNormal.startOfDayInTargetTimezone(end);
606
646
  }
607
647
  const filterStartIndexOffset = indexFactory(rangeStart) - indexFactory(start);
608
648
  filterOffsetExcludedRange = range(0, filterStartIndexOffset);
@@ -623,7 +663,7 @@ function computeScheduleSelectionValue(state) {
623
663
  end = start; // end is start
624
664
  }
625
665
  const dateScheduleRange = {
626
- timezone: systemTimezone,
666
+ timezone,
627
667
  start,
628
668
  end,
629
669
  w,
@@ -764,7 +804,7 @@ class DbxScheduleSelectionCalendarDateRangeComponent {
764
804
  this.matFormFieldDefaultOptions = matFormFieldDefaultOptions;
765
805
  this._required = new BehaviorSubject(false);
766
806
  this.required$ = this._required.asObservable();
767
- this.timezone$ = this.dbxCalendarScheduleSelectionStore.currentTimezone$;
807
+ this.timezone$ = this.dbxCalendarScheduleSelectionStore.effectiveOutputTimezone$;
768
808
  this.openPickerOnTextClick = true;
769
809
  this.label = 'Enter a date range';
770
810
  this.showCustomize = false;
@@ -851,7 +891,7 @@ class DbxScheduleSelectionCalendarDateRangeComponent {
851
891
  .pipe(distinctUntilChanged(), switchMap((opened) => {
852
892
  let obs;
853
893
  if (opened) {
854
- obs = of({});
894
+ obs = EMPTY;
855
895
  }
856
896
  else {
857
897
  obs = this.range.valueChanges.pipe(startWith(this.range.value));
@@ -1244,10 +1284,11 @@ class DbxScheduleSelectionCalendarComponent {
1244
1284
  this._inputReadonly = new BehaviorSubject(undefined);
1245
1285
  this._config = new BehaviorSubject({});
1246
1286
  this._centerRangeSub = new SubscriptionObject();
1247
- this.readonly$ = this._config.pipe(switchMap((x) => (x.readonly != null ? asObservableFromGetter(x.readonly) : of(undefined))), combineLatestWith(this._inputReadonly), map(([configReadonly, inputReadonly]) => {
1287
+ this.config$ = this._config.pipe(distinctUntilChanged(), shareReplay(1));
1288
+ this.readonly$ = this.config$.pipe(switchMap((x) => (x.readonly != null ? asObservableFromGetter(x.readonly) : of(undefined))), combineLatestWith(this._inputReadonly), map(([configReadonly, inputReadonly]) => {
1248
1289
  return (configReadonly !== null && configReadonly !== void 0 ? configReadonly : false) || (inputReadonly !== null && inputReadonly !== void 0 ? inputReadonly : false);
1249
1290
  }), shareReplay(1));
1250
- this.showButtonsOnReadonly$ = this._config.pipe(map((x) => { var _a; return (_a = x.showButtonsOnReadonly) !== null && _a !== void 0 ? _a : false; }), distinctUntilChanged(), shareReplay(1));
1291
+ this.showButtonsOnReadonly$ = this.config$.pipe(map((x) => { var _a; return (_a = x.showButtonsOnReadonly) !== null && _a !== void 0 ? _a : false; }), distinctUntilChanged(), shareReplay(1));
1251
1292
  this.showButtons$ = this.showButtonsOnReadonly$.pipe(switchMap((x) => {
1252
1293
  if (x) {
1253
1294
  return of(true);
@@ -1256,12 +1297,12 @@ class DbxScheduleSelectionCalendarComponent {
1256
1297
  return this.readonly$.pipe(map((x) => !x));
1257
1298
  }
1258
1299
  }), distinctUntilChanged(), shareReplay(1));
1259
- this.showClearSelectionButton$ = this._config.pipe(map((config) => { var _a; return (_a = config.showClearSelectionButton) !== null && _a !== void 0 ? _a : true; }), combineLatestWith(this.showButtons$), map((x) => reduceBooleansWithAnd(x)), distinctUntilChanged(), shareReplay(1));
1260
- this.datePopoverButtonInjectionConfig$ = this._config.pipe(map((x) => x.buttonInjectionConfig), switchMapDbxInjectionComponentConfig(DbxScheduleSelectionCalendarDatePopoverButtonComponent), combineLatestWith(this.showButtons$), map(([config, showButton]) => (showButton ? config : undefined)), shareReplay(1));
1300
+ this.showClearSelectionButton$ = this.config$.pipe(map((config) => { var _a; return (_a = config.showClearSelectionButton) !== null && _a !== void 0 ? _a : true; }), combineLatestWith(this.showButtons$), map((x) => reduceBooleansWithAnd(x)), distinctUntilChanged(), shareReplay(1));
1301
+ this.datePopoverButtonInjectionConfig$ = this.config$.pipe(map((x) => x.buttonInjectionConfig), switchMapDbxInjectionComponentConfig(DbxScheduleSelectionCalendarDatePopoverButtonComponent), combineLatestWith(this.showButtons$), map(([config, showButton]) => (showButton ? config : undefined)), shareReplay(1));
1261
1302
  this.clickEvent = new EventEmitter();
1262
1303
  // refresh any time the selected day function updates
1263
1304
  this.state$ = this.dbxCalendarScheduleSelectionStore.state$;
1264
- this.beforeMonthViewRender$ = this._config.pipe(switchMap((x) => {
1305
+ this.beforeMonthViewRender$ = this.config$.pipe(switchMap((x) => {
1265
1306
  let factory;
1266
1307
  if (x.beforeMonthViewRenderFunctionFactory) {
1267
1308
  factory = asObservable(x.beforeMonthViewRenderFunctionFactory);
@@ -1491,8 +1532,8 @@ class DbxFormCalendarDateScheduleRangeFieldComponent extends FieldType {
1491
1532
  get exclusions() {
1492
1533
  return this.props.exclusions;
1493
1534
  }
1494
- get timezone() {
1495
- return this.props.timezone;
1535
+ get outputTimezone() {
1536
+ return this.props.outputTimezone || this.props.timezone;
1496
1537
  }
1497
1538
  get initialSelectionState() {
1498
1539
  return this.props.initialSelectionState;
@@ -1517,7 +1558,7 @@ class DbxFormCalendarDateScheduleRangeFieldComponent extends FieldType {
1517
1558
  this._valueSub.subscription = this.dbxCalendarScheduleSelectionStore.currentDateCellScheduleRangeValue$.subscribe((x) => {
1518
1559
  this.formControl.setValue(x);
1519
1560
  });
1520
- const { timezone, minMaxDateRange, filter, exclusions, defaultScheduleDays } = this;
1561
+ const { outputTimezone, minMaxDateRange, filter, exclusions, defaultScheduleDays } = this;
1521
1562
  if (filter != null) {
1522
1563
  this._filterSub.subscription = this.dbxCalendarScheduleSelectionStore.setFilter(asObservable(filter));
1523
1564
  }
@@ -1530,8 +1571,8 @@ class DbxFormCalendarDateScheduleRangeFieldComponent extends FieldType {
1530
1571
  if (exclusions != null) {
1531
1572
  this._exclusionsSub.subscription = this.dbxCalendarScheduleSelectionStore.setExclusions(asObservable(exclusions));
1532
1573
  }
1533
- if (timezone != null) {
1534
- this.dbxCalendarScheduleSelectionStore.setTimezone(asObservable(this.timezone));
1574
+ if (outputTimezone != null) {
1575
+ this.dbxCalendarScheduleSelectionStore.setOutputTimezone(asObservable(this.outputTimezone));
1535
1576
  }
1536
1577
  if (this.initialSelectionState !== undefined) {
1537
1578
  this.dbxCalendarScheduleSelectionStore.setInitialSelectionState(this.initialSelectionState);