@syncfusion/ej2-angular-schedule 22.1.34 → 22.1.35

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.
@@ -3,7 +3,7 @@ import { Directive, ContentChildren, ContentChild } from '@angular/core';
3
3
  import { ComplexBase, ArrayBase, setValue } from '@syncfusion/ej2-angular-base';
4
4
  import { Template } from '@syncfusion/ej2-angular-base';
5
5
  import * as i0 from "@angular/core";
6
- let input = ['allowVirtualScrolling', 'cellHeaderTemplate', 'cellTemplate', 'dateFormat', 'dateHeaderTemplate', 'dayHeaderTemplate', 'displayDate', 'displayName', 'endHour', 'eventTemplate', 'firstDayOfWeek', 'firstMonthOfYear', 'group', 'headerIndentTemplate', 'headerRows', 'interval', 'isSelected', 'monthHeaderTemplate', 'monthsCount', 'numberOfWeeks', 'option', 'orientation', 'readonly', 'resourceHeaderTemplate', 'showWeekNumber', 'showWeekend', 'startHour', 'timeFormat', 'timeScale', 'workDays'];
6
+ let input = ['allowVirtualScrolling', 'cellHeaderTemplate', 'cellTemplate', 'dateFormat', 'dateHeaderTemplate', 'dateRangeTemplate', 'dayHeaderTemplate', 'displayDate', 'displayName', 'endHour', 'eventTemplate', 'firstDayOfWeek', 'firstMonthOfYear', 'group', 'headerIndentTemplate', 'headerRows', 'interval', 'isSelected', 'monthHeaderTemplate', 'monthsCount', 'numberOfWeeks', 'option', 'orientation', 'readonly', 'resourceHeaderTemplate', 'showWeekNumber', 'showWeekend', 'startHour', 'timeFormat', 'timeScale', 'workDays'];
7
7
  let outputs = [];
8
8
  /**
9
9
  * `e-views` directive represent a view of the Angular Schedule.
@@ -27,10 +27,13 @@ export class ViewDirective extends ComplexBase {
27
27
  }
28
28
  }
29
29
  ViewDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ViewDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
30
- ViewDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ViewDirective, selector: "e-views>e-view", inputs: { allowVirtualScrolling: "allowVirtualScrolling", cellHeaderTemplate: "cellHeaderTemplate", cellTemplate: "cellTemplate", dateFormat: "dateFormat", dateHeaderTemplate: "dateHeaderTemplate", dayHeaderTemplate: "dayHeaderTemplate", displayDate: "displayDate", displayName: "displayName", endHour: "endHour", eventTemplate: "eventTemplate", firstDayOfWeek: "firstDayOfWeek", firstMonthOfYear: "firstMonthOfYear", group: "group", headerIndentTemplate: "headerIndentTemplate", headerRows: "headerRows", interval: "interval", isSelected: "isSelected", monthHeaderTemplate: "monthHeaderTemplate", monthsCount: "monthsCount", numberOfWeeks: "numberOfWeeks", option: "option", orientation: "orientation", readonly: "readonly", resourceHeaderTemplate: "resourceHeaderTemplate", showWeekNumber: "showWeekNumber", showWeekend: "showWeekend", startHour: "startHour", timeFormat: "timeFormat", timeScale: "timeScale", workDays: "workDays" }, queries: [{ propertyName: "dateHeaderTemplate", first: true, predicate: ["dateHeaderTemplate"], descendants: true }, { propertyName: "dayHeaderTemplate", first: true, predicate: ["dayHeaderTemplate"], descendants: true }, { propertyName: "cellHeaderTemplate", first: true, predicate: ["cellHeaderTemplate"], descendants: true }, { propertyName: "cellTemplate", first: true, predicate: ["cellTemplate"], descendants: true }, { propertyName: "eventTemplate", first: true, predicate: ["eventTemplate"], descendants: true }, { propertyName: "monthHeaderTemplate", first: true, predicate: ["monthHeaderTemplate"], descendants: true }, { propertyName: "resourceHeaderTemplate", first: true, predicate: ["resourceHeaderTemplate"], descendants: true }, { propertyName: "headerIndentTemplate", first: true, predicate: ["headerIndentTemplate"], descendants: true }, { propertyName: "timeScale_minorSlotTemplate", first: true, predicate: ["timeScaleMinorSlotTemplate"], descendants: true }, { propertyName: "timeScale_majorSlotTemplate", first: true, predicate: ["timeScaleMajorSlotTemplate"], descendants: true }, { propertyName: "group_headerTooltipTemplate", first: true, predicate: ["groupHeaderTooltipTemplate"], descendants: true }], usesInheritance: true, ngImport: i0 });
30
+ ViewDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ViewDirective, selector: "e-views>e-view", inputs: { allowVirtualScrolling: "allowVirtualScrolling", cellHeaderTemplate: "cellHeaderTemplate", cellTemplate: "cellTemplate", dateFormat: "dateFormat", dateHeaderTemplate: "dateHeaderTemplate", dateRangeTemplate: "dateRangeTemplate", dayHeaderTemplate: "dayHeaderTemplate", displayDate: "displayDate", displayName: "displayName", endHour: "endHour", eventTemplate: "eventTemplate", firstDayOfWeek: "firstDayOfWeek", firstMonthOfYear: "firstMonthOfYear", group: "group", headerIndentTemplate: "headerIndentTemplate", headerRows: "headerRows", interval: "interval", isSelected: "isSelected", monthHeaderTemplate: "monthHeaderTemplate", monthsCount: "monthsCount", numberOfWeeks: "numberOfWeeks", option: "option", orientation: "orientation", readonly: "readonly", resourceHeaderTemplate: "resourceHeaderTemplate", showWeekNumber: "showWeekNumber", showWeekend: "showWeekend", startHour: "startHour", timeFormat: "timeFormat", timeScale: "timeScale", workDays: "workDays" }, queries: [{ propertyName: "dateHeaderTemplate", first: true, predicate: ["dateHeaderTemplate"], descendants: true }, { propertyName: "dateRangeTemplate", first: true, predicate: ["dateRangeTemplate"], descendants: true }, { propertyName: "dayHeaderTemplate", first: true, predicate: ["dayHeaderTemplate"], descendants: true }, { propertyName: "cellHeaderTemplate", first: true, predicate: ["cellHeaderTemplate"], descendants: true }, { propertyName: "cellTemplate", first: true, predicate: ["cellTemplate"], descendants: true }, { propertyName: "eventTemplate", first: true, predicate: ["eventTemplate"], descendants: true }, { propertyName: "monthHeaderTemplate", first: true, predicate: ["monthHeaderTemplate"], descendants: true }, { propertyName: "resourceHeaderTemplate", first: true, predicate: ["resourceHeaderTemplate"], descendants: true }, { propertyName: "headerIndentTemplate", first: true, predicate: ["headerIndentTemplate"], descendants: true }, { propertyName: "timeScale_minorSlotTemplate", first: true, predicate: ["timeScaleMinorSlotTemplate"], descendants: true }, { propertyName: "timeScale_majorSlotTemplate", first: true, predicate: ["timeScaleMajorSlotTemplate"], descendants: true }, { propertyName: "group_headerTooltipTemplate", first: true, predicate: ["groupHeaderTooltipTemplate"], descendants: true }], usesInheritance: true, ngImport: i0 });
31
31
  __decorate([
32
32
  Template()
33
33
  ], ViewDirective.prototype, "dateHeaderTemplate", void 0);
34
+ __decorate([
35
+ Template()
36
+ ], ViewDirective.prototype, "dateRangeTemplate", void 0);
34
37
  __decorate([
35
38
  Template()
36
39
  ], ViewDirective.prototype, "dayHeaderTemplate", void 0);
@@ -72,6 +75,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
72
75
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { dateHeaderTemplate: [{
73
76
  type: ContentChild,
74
77
  args: ['dateHeaderTemplate']
78
+ }], dateRangeTemplate: [{
79
+ type: ContentChild,
80
+ args: ['dateRangeTemplate']
75
81
  }], dayHeaderTemplate: [{
76
82
  type: ContentChild,
77
83
  args: ['dayHeaderTemplate']
@@ -123,4 +129,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
123
129
  },
124
130
  }]
125
131
  }], ctorParameters: function () { return []; } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3MuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NjaGVkdWxlL3ZpZXdzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBR3hELElBQUksS0FBSyxHQUFhLENBQUMsdUJBQXVCLEVBQUUsb0JBQW9CLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ25nQixJQUFJLE9BQU8sR0FBYSxFQUFFLENBQUM7QUFDM0I7Ozs7Ozs7Ozs7O0dBV0c7QUFTSCxNQUFNLE9BQU8sYUFBYyxTQUFRLFdBQTBCO0lBa1B6RCxZQUFvQixnQkFBaUM7UUFDakQsS0FBSyxFQUFFLENBQUM7UUFEUSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBRWpELFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQ25DLENBQUM7OzBHQXZQUSxhQUFhOzhGQUFiLGFBQWE7QUFzS3RCO0lBREMsUUFBUSxFQUFFO3lEQUNvQjtBQVMvQjtJQURDLFFBQVEsRUFBRTt3REFDbUI7QUFTOUI7SUFEQyxRQUFRLEVBQUU7eURBQ29CO0FBUy9CO0lBREMsUUFBUSxFQUFFO21EQUNjO0FBVXpCO0lBREMsUUFBUSxFQUFFO29EQUNlO0FBUzFCO0lBREMsUUFBUSxFQUFFOzBEQUNxQjtBQVVoQztJQURDLFFBQVEsRUFBRTs2REFDd0I7QUFTbkM7SUFEQyxRQUFRLEVBQUU7MkRBQ3NCO0FBR2pDO0lBREMsUUFBUSxFQUFFO2tFQUM2QjtBQUd4QztJQURDLFFBQVEsRUFBRTtrRUFDNkI7QUFHeEM7SUFEQyxRQUFRLEVBQUU7a0VBQzZCOzJGQWhQL0IsYUFBYTtrQkFSekIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixNQUFNLEVBQUUsS0FBSztvQkFDYixPQUFPLEVBQUUsT0FBTztvQkFDaEIsT0FBTyxFQUFFLEVBRVI7aUJBQ0o7dUdBdUtVLGtCQUFrQjtzQkFGeEIsWUFBWTt1QkFBQyxvQkFBb0I7Z0JBVzNCLGlCQUFpQjtzQkFGdkIsWUFBWTt1QkFBQyxtQkFBbUI7Z0JBVzFCLGtCQUFrQjtzQkFGeEIsWUFBWTt1QkFBQyxvQkFBb0I7Z0JBVzNCLFlBQVk7c0JBRmxCLFlBQVk7dUJBQUMsY0FBYztnQkFZckIsYUFBYTtzQkFGbkIsWUFBWTt1QkFBQyxlQUFlO2dCQVd0QixtQkFBbUI7c0JBRnpCLFlBQVk7dUJBQUMscUJBQXFCO2dCQVk1QixzQkFBc0I7c0JBRjVCLFlBQVk7dUJBQUMsd0JBQXdCO2dCQVcvQixvQkFBb0I7c0JBRjFCLFlBQVk7dUJBQUMsc0JBQXNCO2dCQUs3QiwyQkFBMkI7c0JBRmpDLFlBQVk7dUJBQUMsNEJBQTRCO2dCQUtuQywyQkFBMkI7c0JBRmpDLFlBQVk7dUJBQUMsNEJBQTRCO2dCQUtuQywyQkFBMkI7c0JBRmpDLFlBQVk7dUJBQUMsNEJBQTRCOztBQVk5Qzs7O0dBR0c7QUFPSCxNQUFNLE9BQU8sY0FBZSxTQUFRLFNBQXlCO0lBQ3pEO1FBQ0ksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25CLENBQUM7OzJHQUhRLGNBQWM7K0ZBQWQsY0FBYyxxRkFIVyxhQUFhOzJGQUd0QyxjQUFjO2tCQU4xQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLE9BQU8sRUFBRTt3QkFDTCxRQUFRLEVBQUUsSUFBSSxlQUFlLENBQUMsYUFBYSxDQUFDO3FCQUMvQztpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVmlld0NvbnRhaW5lclJlZiwgQ29udGVudENoaWxkcmVuLCBDb250ZW50Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBsZXhCYXNlLCBBcnJheUJhc2UsIHNldFZhbHVlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYmFzZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWJhc2UnO1xuXG5cbmxldCBpbnB1dDogc3RyaW5nW10gPSBbJ2FsbG93VmlydHVhbFNjcm9sbGluZycsICdjZWxsSGVhZGVyVGVtcGxhdGUnLCAnY2VsbFRlbXBsYXRlJywgJ2RhdGVGb3JtYXQnLCAnZGF0ZUhlYWRlclRlbXBsYXRlJywgJ2RheUhlYWRlclRlbXBsYXRlJywgJ2Rpc3BsYXlEYXRlJywgJ2Rpc3BsYXlOYW1lJywgJ2VuZEhvdXInLCAnZXZlbnRUZW1wbGF0ZScsICdmaXJzdERheU9mV2VlaycsICdmaXJzdE1vbnRoT2ZZZWFyJywgJ2dyb3VwJywgJ2hlYWRlckluZGVudFRlbXBsYXRlJywgJ2hlYWRlclJvd3MnLCAnaW50ZXJ2YWwnLCAnaXNTZWxlY3RlZCcsICdtb250aEhlYWRlclRlbXBsYXRlJywgJ21vbnRoc0NvdW50JywgJ251bWJlck9mV2Vla3MnLCAnb3B0aW9uJywgJ29yaWVudGF0aW9uJywgJ3JlYWRvbmx5JywgJ3Jlc291cmNlSGVhZGVyVGVtcGxhdGUnLCAnc2hvd1dlZWtOdW1iZXInLCAnc2hvd1dlZWtlbmQnLCAnc3RhcnRIb3VyJywgJ3RpbWVGb3JtYXQnLCAndGltZVNjYWxlJywgJ3dvcmtEYXlzJ107XG5sZXQgb3V0cHV0czogc3RyaW5nW10gPSBbXTtcbi8qKlxuICogYGUtdmlld3NgIGRpcmVjdGl2ZSByZXByZXNlbnQgYSB2aWV3IG9mIHRoZSBBbmd1bGFyIFNjaGVkdWxlLiBcbiAqIEl0IG11c3QgYmUgY29udGFpbmVkIGluIGEgU2NoZWR1bGUgY29tcG9uZW50KGBlanMtc2NoZWR1bGVgKS4gXG4gKiBgYGBodG1sXG4gKiA8ZWpzLXNjaGVkdWxlPlxuICogICA8ZS12aWV3cz5cbiAqICAgIDxlLXZpZXcgb3B0aW9uPSdkYXknIGRhdGVGb3JtYXQ9J2RkIE1NTSc+PC9lLXZpZXc+XG4gKiAgICA8ZS12aWV3IG9wdGlvbj0nd2Vlayc+PC9lLXZpZXc+XG4gKiAgIDwvZS12aWV3cz5cbiAqIDwvZWpzLXNjaGVkdWxlPlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZS12aWV3cz5lLXZpZXcnLFxuICAgIGlucHV0czogaW5wdXQsXG4gICAgb3V0cHV0czogb3V0cHV0cywgICAgXG4gICAgcXVlcmllczoge1xuXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBWaWV3RGlyZWN0aXZlIGV4dGVuZHMgQ29tcGxleEJhc2U8Vmlld0RpcmVjdGl2ZT4ge1xuICAgIHB1YmxpYyBkaXJlY3RpdmVQcm9wTGlzdDogYW55O1xuXHRcblxuXG4gICAgLyoqIFxuICAgICAqIEl0IGlzIHVzZWQgdG8gYWxsb3cgb3IgZGlzYWxsb3cgdGhlIHZpcnR1YWwgc2Nyb2xsaW5nIGZ1bmN0aW9uYWxpdHkgb24gQWdlbmRhIFZpZXcuIFRoaXMgaXMgYXBwbGljYWJsZSBvbmx5IG9uIEFnZW5kYSB2aWV3LlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIGFsbG93VmlydHVhbFNjcm9sbGluZzogYW55O1xuICAgIC8qKiBcbiAgICAgKiBCeSBkZWZhdWx0LCBTY2hlZHVsZSBmb2xsb3dzIHRoZSBkYXRlLWZvcm1hdCBhcyBwZXIgdGhlIGRlZmF1bHQgY3VsdHVyZSBhc3NpZ25lZCB0byBpdC4gSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBtYW51YWxseSBzZXQgXG4gICAgICogIHNwZWNpZmljIGRhdGUgZm9ybWF0IGJ5IHVzaW5nIHRoZSBgZGF0ZUZvcm1hdGAgcHJvcGVydHkuIFRoZSBmb3JtYXQgb2YgdGhlIGRhdGUgcmFuZ2UgbGFiZWwgaW4gdGhlIGhlYWRlciBiYXIgZGVwZW5kcyBvbiBcbiAgICAgKiAgdGhlIGBkYXRlRm9ybWF0YCB2YWx1ZSBvciBlbHNlIGJhc2VkIG9uIHRoZSBsb2NhbGUgYXNzaWduZWQgdG8gdGhlIFNjaGVkdWxlLiBcbiAgICAgKiAgSXQgZ2V0cyBhcHBsaWVkIG9ubHkgdG8gdGhlIHZpZXcgb2JqZWN0cyBvbiB3aGljaCBpdCBpcyBkZWZpbmVkLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgZGF0ZUZvcm1hdDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgdGhlIHN0YXJ0aW5nIHdlZWsgZGF0ZSBhdCBhbiBpbml0aWFsIHJlbmRlcmluZyBvZiBtb250aCB2aWV3LiBUaGlzIHByb3BlcnR5IGlzIG9ubHkgYXBwbGljYWJsZSBmb3IgbW9udGggdmlldy4gXG4gICAgICogIElmIHRoaXMgcHJvcGVydHkgdmFsdWUgaXMgbm90IHNldCwgdGhlbiB0aGUgbW9udGggdmlldyB3aWxsIGJlIHJlbmRlcmVkIGZyb20gdGhlIGZpcnN0IHdlZWsgb2YgdGhlIG1vbnRoLiBcbiAgICAgKiB7JSBjb2RlQmxvY2sgc3JjPSdzY2hlZHVsZS9kaXNwbGF5RGF0ZS9pbmRleC5tZCcgJX17JSBlbmRjb2RlQmxvY2sgJX1cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGRpc3BsYXlEYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFdoZW4gdGhlIHNhbWUgdmlldyBpcyBjdXN0b21pemVkIHdpdGggZGlmZmVyZW50IGludGVydmFscywgdGhpcyBwcm9wZXJ0eSBhbGxvd3MgdGhlIHVzZXIgdG8gc2V0IGRpZmZlcmVudCBkaXNwbGF5IG5hbWUgXG4gICAgICogIGZvciB0aG9zZSB2aWV3cy5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGRpc3BsYXlOYW1lOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEl0IGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgZW5kIGhvdXIsIGF0IHdoaWNoIHRoZSBTY2hlZHVsZSBlbmRzLiBJdCB0b28gYWNjZXB0cyB0aGUgdGltZSBzdHJpbmcgaW4gYSBzaG9ydCBza2VsZXRvbiBmb3JtYXQuXG4gICAgICogQGRlZmF1bHQgJzI0OjAwJ1xuICAgICAqL1xuICAgIHB1YmxpYyBlbmRIb3VyOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoaXMgb3B0aW9uIGFsbG93cyB0aGUgdXNlciB0byBzZXQgdGhlIGZpcnN0IGRheSBvZiBhIHdlZWsgb24gU2NoZWR1bGUuIEl0IHNob3VsZCBiZSBiYXNlZCBvbiB0aGUgbG9jYWxlIHNldCB0byBpdCBhbmQgZWFjaCBjdWx0dXJlIFxuICAgICAqICBkZWZpbmVzIGl0cyBvd24gZmlyc3QgZGF5IG9mIHdlZWsgdmFsdWVzLiBJZiBuZWVkZWQsIHRoZSB1c2VyIGNhbiBzZXQgaXQgbWFudWFsbHkgb24gaGlzIG93biBieSBkZWZpbmluZyB0aGUgdmFsdWUgdGhyb3VnaCBcbiAgICAgKiAgdGhpcyBwcm9wZXJ0eS4gSXQgdXN1YWxseSBhY2NlcHRzIHRoZSBpbnRlZ2VyIHZhbHVlcywgd2hlcmVieSAwIGlzIGFsd2F5cyBkZW5vdGVkIGFzIFN1bmRheSwgMSBhcyBNb25kYXkgYW5kIHNvIG9uLlxuICAgICAqIEBkZWZhdWx0IDBcbiAgICAgKi9cbiAgICBwdWJsaWMgZmlyc3REYXlPZldlZWs6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhpcyBwcm9wZXJ0eSBoZWxwcyByZW5kZXIgdGhlIHllYXIgdmlldyBjdXN0b21pemVkIG1vbnRocy4gXG4gICAgICogQnkgZGVmYXVsdCwgaXQgaXMgc2V0IHRvIGAwYC5cbiAgICAgKiBAZGVmYXVsdCAwXG4gICAgICovXG4gICAgcHVibGljIGZpcnN0TW9udGhPZlllYXI6IGFueTtcbiAgICAvKiogXG4gICAgICogQWxsb3dzIHRvIHNldCBkaWZmZXJlbnQgcmVzb3VyY2UgZ3JvdXBpbmcgb3B0aW9ucyBvbiBhbGwgYXZhaWxhYmxlIHNjaGVkdWxlIHZpZXcgbW9kZXMuXG4gICAgICogQGRlZmF1bHQgeyBieURhdGU6IGZhbHNlLCBieUdyb3VwSUQ6IHRydWUsIGFsbG93R3JvdXBFZGl0OiBmYWxzZSwgcmVzb3VyY2VzOltdfVxuICAgICAqL1xuICAgIHB1YmxpYyBncm91cDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBBbGxvd3MgZGVmaW5pbmcgdGhlIGNvbGxlY3Rpb24gb2YgY3VzdG9tIGhlYWRlciByb3dzIHRvIGRpc3BsYXkgdGhlIHllYXIsIG1vbnRoLCB3ZWVrLCBkYXRlIGFuZCBob3VyIGxhYmVsIGFzIGFuIGluZGl2aWR1YWwgcm93IFxuICAgICAqICBvbiB0aGUgdGltZWxpbmUgdmlldyBvZiB0aGUgc2NoZWR1bGVyLlxuICAgICAqIEBkZWZhdWx0IFtdXG4gICAgICovXG4gICAgcHVibGljIGhlYWRlclJvd3M6IGFueTtcbiAgICAvKiogXG4gICAgICogSXQgYWNjZXB0cyB0aGUgbnVtYmVyIHZhbHVlIGRlbm90aW5nIHRvIGluY2x1ZGUgdGhlIG51bWJlciBvZiBkYXlzLCB3ZWVrcywgd29ya3dlZWtzIG9yIG1vbnRocyBvbiB0aGUgZGVmaW5lZCB2aWV3IHR5cGUuXG4gICAgICogQGRlZmF1bHQgMVxuICAgICAqL1xuICAgIHB1YmxpYyBpbnRlcnZhbDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUbyBkZW5vdGUgd2hldGhlciB0aGUgdmlldyBuYW1lIGdpdmVuIG9uIHRoZSBgb3B0aW9uYCBpcyBhY3RpdmUgb3Igbm90LiBcbiAgICAgKiBJdCBhY3RzIHNpbWlsYXIgdG8gdGhlIGBjdXJyZW50Vmlld2AgcHJvcGVydHkgYW5kIGRlZmluZXMgdGhlIGFjdGl2ZSB2aWV3IG9mIFNjaGVkdWxlLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIGlzU2VsZWN0ZWQ6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhpcyBvcHRpb24gYWxsb3dzIHRoZSB1c2VyIHRvIHNldCB0aGUgbnVtYmVyIG9mIG1vbnRocyBjb3VudCB0byBiZSBkaXNwbGF5ZWQgb24gdGhlIFNjaGVkdWxlLiBcbiAgICAgKiB7JSBjb2RlQmxvY2sgc3JjPSdzY2hlZHVsZS9tb250aHNDb3VudC9pbmRleC5tZCcgJX17JSBlbmRjb2RlQmxvY2sgJX1cbiAgICAgKiBAZGVmYXVsdCAxMlxuICAgICAqIEBhc3B0eXBlIGludFxuICAgICAqL1xuICAgIHB1YmxpYyBtb250aHNDb3VudDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGlzIHByb3BlcnR5IGN1c3RvbWl6ZXMgdGhlIG51bWJlciBvZiB3ZWVrcyB0aGF0IGFyZSBzaG93biBpbiBtb250aCB2aWV3LiBCeSBkZWZhdWx0LCBpdCBzaG93cyBhbGwgd2Vla3MgaW4gdGhlIGN1cnJlbnQgbW9udGguIFxuICAgICAqICBVc2UgZGlzcGxheURhdGUgcHJvcGVydHkgdG8gY3VzdG9taXplIHRoZSBzdGFydGluZyB3ZWVrIG9mIG1vbnRoLiBcbiAgICAgKiB7JSBjb2RlQmxvY2sgc3JjPSdzY2hlZHVsZS9udW1iZXJPZldlZWtzL2luZGV4Lm1kJyAlfXslIGVuZGNvZGVCbG9jayAlfVxuICAgICAqIEBkZWZhdWx0IDBcbiAgICAgKiBAYXNwdHlwZSBpbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgbnVtYmVyT2ZXZWVrczogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJdCBhY2NlcHRzIHRoZSBzY2hlZHVsZSB2aWV3IG5hbWUsIGJhc2VkIG9uIHdoaWNoIHdlIGNhbiBkZWZpbmUgd2l0aCBpdHMgcmVsYXRlZCBwcm9wZXJ0aWVzIGluIGEgc2luZ2xlIG9iamVjdC4gXG4gICAgICogVGhlIGFwcGxpY2FibGUgdmlldyBuYW1lcyBhcmUsIFxuICAgICAqICogRGF5IFxuICAgICAqICogV2VlayBcbiAgICAgKiAqIFdvcmtXZWVrIFxuICAgICAqICogTW9udGggXG4gICAgICogKiBZZWFyIFxuICAgICAqICogQWdlbmRhIFxuICAgICAqICogTW9udGhBZ2VuZGEgXG4gICAgICogKiBUaW1lbGluZURheSBcbiAgICAgKiAqIFRpbWVsaW5lV2VlayBcbiAgICAgKiAqIFRpbWVsaW5lV29ya1dlZWsgXG4gICAgICogKiBUaW1lbGluZU1vbnRoIFxuICAgICAqICogVGltZWxpbmVZZWFyXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBvcHRpb246IGFueTtcbiAgICAvKiogXG4gICAgICogSXQgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSB5ZWFyIHZpZXcgcmVuZGVyaW5nIG9yaWVudGF0aW9uIG9uIHRoZSBzY2hlZHVsZS4gXG4gICAgICogVGhlIGFwcGxpY2FibGUgb3JpZW50YXRpb24gdmFsdWVzIGFyZSwgXG4gICAgICogKiBIb3Jpem9udGFsIFxuICAgICAqICogVmVydGljYWxcbiAgICAgKiBAZGVmYXVsdCAnSG9yaXpvbnRhbCdcbiAgICAgKi9cbiAgICBwdWJsaWMgb3JpZW50YXRpb246IGFueTtcbiAgICAvKiogXG4gICAgICogV2hlbiBzZXQgdG8gYHRydWVgLCBkaXNwbGF5cyBhIHF1aWNrIHBvcHVwIHdpdGggY2VsbCBvciBldmVudCBkZXRhaWxzIG9uIHNpbmdsZSBjbGlja2luZyBvdmVyIHRoZSBjZWxscyBvciBvbiBldmVudHMuIFxuICAgICAqICBCeSBkZWZhdWx0LCBpdCBpcyBzZXQgdG8gYHRydWVgLiBJdCBnZXRzIGFwcGxpZWQgb25seSB0byB0aGUgdmlldyBvYmplY3RzIG9uIHdoaWNoIGl0IGlzIGRlZmluZWQuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHk6IGFueTtcbiAgICAvKiogXG4gICAgICogV2hlbiBzZXQgdG8gYHRydWVgLCBkaXNwbGF5cyB0aGUgd2VlayBudW1iZXIgb2YgdGhlIGN1cnJlbnQgdmlldyBkYXRlIHJhbmdlLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIHNob3dXZWVrTnVtYmVyOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFdoZW4gc2V0IHRvIGBmYWxzZWAsIGl0IGhpZGVzIHRoZSB3ZWVrZW5kIGRheXMgb2YgYSB3ZWVrIGZyb20gdGhlIFNjaGVkdWxlLiBcbiAgICAgKiBUaGUgZGF5cyB3aGljaCBhcmUgbm90IGRlZmluZWQgaW4gdGhlIHdvcmtpbmcgZGF5cyBjb2xsZWN0aW9uIGFyZSB1c3VhbGx5IHRyZWF0ZWQgYXMgd2Vla2VuZCBkYXlzLiBcbiAgICAgKiBOb3RlOiBCeSBkZWZhdWx0LCB0aGlzIG9wdGlvbiBpcyBub3QgYXBwbGljYWJsZSBvbiBgV29yayBXZWVrYCB2aWV3LiBcbiAgICAgKiBGb3IgZXhhbXBsZSwgaWYgdGhlIHdvcmtpbmcgZGF5cyBhcmUgZGVmaW5lZCBhcyBbMSwgMiwgMywgNF0sIHRoZW4gdGhlIHJlbWFpbmluZyBkYXlzIG9mIHRoYXQgd2VlayB3aWxsIGJlIGNvbnNpZGVyZWQgYXMgdGhlIFxuICAgICAqICB3ZWVrZW5kIGRheXMgYW5kIHdpbGwgYmUgaGlkZGVuIG9uIGFsbCB0aGUgdmlld3MuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBzaG93V2Vla2VuZDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJdCBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIHN0YXJ0aW5nIGhvdXIsIGZyb20gd2hpY2ggdGhlIFNjaGVkdWxlIHN0YXJ0cyB0byBkaXNwbGF5LiBcbiAgICAgKiAgSXQgYWNjZXB0cyB0aGUgdGltZSBzdHJpbmcgaW4gYSBzaG9ydCBza2VsZXRvbiBmb3JtYXQgYW5kIGFsc28sIGhpZGVzIHRoZSB0aW1lIGJleW9uZCB0aGUgc3BlY2lmaWVkIHN0YXJ0IHRpbWUuXG4gICAgICogQGRlZmF1bHQgJzAwOjAwJ1xuICAgICAqL1xuICAgIHB1YmxpYyBzdGFydEhvdXI6IGFueTtcbiAgICAvKiogXG4gICAgICogQnkgZGVmYXVsdCwgU2NoZWR1bGUgZm9sbG93cyB0aGUgdGltZS1mb3JtYXQgYXMgcGVyIHRoZSBkZWZhdWx0IGN1bHR1cmUgYXNzaWduZWQgdG8gaXQuIFxuICAgICAqIEl0IGlzIGFsc28gcG9zc2libGUgdG8gbWFudWFsbHkgc2V0IHNwZWNpZmljIHRpbWUgZm9ybWF0IGJ5IHVzaW5nIHRoZSBgdGltZUZvcm1hdGAgcHJvcGVydHkuIFxuICAgICAqIHslIGNvZGVCbG9jayBzcmM9J3NjaGVkdWxlL3RpbWVGb3JtYXQvaW5kZXgubWQnICV9eyUgZW5kY29kZUJsb2NrICV9XG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyB0aW1lRm9ybWF0OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEFsbG93cyB0byBzZXQgZGlmZmVyZW50IHRpbWVzY2FsZSBjb25maWd1cmF0aW9uIG9uIGVhY2ggYXBwbGljYWJsZSB2aWV3IG1vZGVzIHN1Y2ggYXMgZGF5LCB3ZWVrIGFuZCB3b3JrIHdlZWsuXG4gICAgICogQGRlZmF1bHQgeyBlbmFibGU6IHRydWUsIGludGVydmFsOiA2MCwgc2xvdENvdW50OiAyLCBtYWpvclNsb3RUZW1wbGF0ZTogbnVsbCwgbWlub3JTbG90VGVtcGxhdGU6IG51bGwgfVxuICAgICAqL1xuICAgIHB1YmxpYyB0aW1lU2NhbGU6IGFueTtcbiAgICAvKiogXG4gICAgICogSXQgaXMgdXNlZCB0byBzZXQgdGhlIHdvcmtpbmcgZGF5cyBvbiBzY2hlZHVsZS4gVGhlIG9ubHkgZGF5cyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoaXMgY29sbGVjdGlvbiB3aWxsIGJlIHJlbmRlcmVkIG9uIHRoZSBcbiAgICAgKiAgYHdvcmtXZWVrYCB2aWV3IHdoZXJlYXMgb24gb3RoZXIgdmlld3MsIGl0IHdpbGwgZGlzcGxheSBhbGwgdGhlIHVzdWFsIGRheXMgYW5kIHNpbXBseSBoaWdobGlnaHRzIHRoZSB3b3JraW5nIGRheXMgd2l0aCBkaWZmZXJlbnQgXG4gICAgICogIHNoYWRlLlxuICAgICAqIEBkZWZhdWx0ICdbMSwgMiwgMywgNCwgNV0nXG4gICAgICogQGFzcHR5cGUgaW50W11cbiAgICAgKi9cbiAgICBwdWJsaWMgd29ya0RheXM6IGFueTtcbiAgICAvKiogXG4gICAgICogSXQgYWNjZXB0cyBlaXRoZXIgdGhlIHN0cmluZyBvciBIVE1MRWxlbWVudCBhcyB0ZW1wbGF0ZSBkZXNpZ24gY29udGVudCBhbmQgcGFyc2UgaXQgYXBwcm9wcmlhdGVseSBiZWZvcmUgZGlzcGxheWluZyBpdCBvbnRvIHRoZSBcbiAgICAgKiAgZGF0ZSBoZWFkZXIgY2VsbHMuIFRoZSBmaWVsZCB0aGF0IGNhbiBiZSBhY2Nlc3NlZCB2aWEgdGhpcyB0ZW1wbGF0ZSBpcyBgZGF0ZWAuIFxuICAgICAqICBJdCBnZXRzIGFwcGxpZWQgb25seSB0byB0aGUgdmlldyBvYmplY3RzIG9uIHdoaWNoIGl0IGlzIGRlZmluZWQuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2RhdGVIZWFkZXJUZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgZGF0ZUhlYWRlclRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEl0IGFjY2VwdHMgZWl0aGVyIHRoZSBzdHJpbmcgb3IgSFRNTEVsZW1lbnQgYXMgdGVtcGxhdGUgZGVzaWduIGNvbnRlbnQgYW5kIHBhcnNlIGl0IGFwcHJvcHJpYXRlbHkgYmVmb3JlIGRpc3BsYXlpbmcgaXQgb250byB0aGUgXG4gICAgICogIFllYXIgdmlldyBkYXkgY2VsbCBoZWFkZXIuIFxuICAgICAqICBUaGlzIHRlbXBsYXRlIGlzIG9ubHkgYXBwbGljYWJsZSBmb3IgeWVhciB2aWV3IGhlYWRlciBjZWxscy5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnZGF5SGVhZGVyVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGRheUhlYWRlclRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEl0IGFjY2VwdHMgZWl0aGVyIHRoZSBzdHJpbmcgb3IgSFRNTEVsZW1lbnQgYXMgdGVtcGxhdGUgZGVzaWduIGNvbnRlbnQgYW5kIHBhcnNlIGl0IGFwcHJvcHJpYXRlbHkgYmVmb3JlIGRpc3BsYXlpbmcgaXQgb250byB0aGUgXG4gICAgICogIG1vbnRoIGRhdGUgY2VsbHMuIFxuICAgICAqICBUaGlzIHRlbXBsYXRlIGlzIG9ubHkgYXBwbGljYWJsZSBmb3IgbW9udGggdmlldyBkYXkgY2VsbHMuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2NlbGxIZWFkZXJUZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgY2VsbEhlYWRlclRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSB0ZW1wbGF0ZSBvcHRpb24gd2hpY2ggaXMgdXNlZCB0byByZW5kZXIgdGhlIGN1c3RvbWl6ZWQgd29yayBjZWxscyBvbiB0aGUgU2NoZWR1bGUuIEhlcmUsIHRoZSBcbiAgICAgKiAgdGVtcGxhdGUgYWNjZXB0cyBlaXRoZXIgdGhlIHN0cmluZyBvciBIVE1MRWxlbWVudCBhcyB0ZW1wbGF0ZSBkZXNpZ24gYW5kIHRoZW4gdGhlIHBhcnNlZCBkZXNpZ24gaXMgZGlzcGxheWVkIG9udG8gdGhlIHdvcmsgY2VsbHMuIFxuICAgICAqICBUaGUgZmllbGQgYWNjZXNzaWJsZSB2aWEgdGVtcGxhdGUgaXMgYGRhdGVgLiBJdCBnZXRzIGFwcGxpZWQgb25seSB0byB0aGUgdmlldyBvYmplY3RzIG9uIHdoaWNoIGl0IGlzIGRlZmluZWQuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2NlbGxUZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgY2VsbFRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEl0IGFjY2VwdHMgZWl0aGVyIHRoZSBzdHJpbmcgb3IgSFRNTEVsZW1lbnQgYXMgdGVtcGxhdGUgZGVzaWduIGNvbnRlbnQgYW5kIHBhcnNlIGl0IGFwcHJvcHJpYXRlbHkgYmVmb3JlIGRpc3BsYXlpbmcgaXQgb250byBcbiAgICAgKiAgdGhlIGV2ZW50IGJhY2tncm91bmQuIEFsbCB0aGUgZXZlbnQgZmllbGRzIG1hcHBlZCB0byBTY2hlZHVsZSBmcm9tIGRhdGFTb3VyY2UgY2FuIGJlIGFjY2Vzc2VkIHdpdGhpbiB0aGlzIHRlbXBsYXRlIGNvZGUuIFxuICAgICAqICBJdCBpcyBzaW1pbGFyIHRvIHRoYXQgb2YgdGhlIGB0ZW1wbGF0ZWAgb3B0aW9uIGF2YWlsYWJsZSB3aXRoaW4gdGhlIGBldmVudFNldHRpbmdzYCBwcm9wZXJ0eSwgXG4gICAgICogIHdoZXJlYXMgaXQgd2lsbCBnZXQgYXBwbGllZCBvbmx5IG9uIHRoZSBldmVudHMgb2YgdGhlIHZpZXcgdG8gd2hpY2ggaXQgaXMgY3VycmVudGx5IGJlaW5nIGRlZmluZWQuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2V2ZW50VGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGV2ZW50VGVtcGxhdGU6IGFueTtcbiAgICAvKiogXG4gICAgICogSXQgYWNjZXB0cyBlaXRoZXIgdGhlIHN0cmluZyBvciBIVE1MRWxlbWVudCBhcyB0ZW1wbGF0ZSBkZXNpZ24gY29udGVudCBhbmQgcGFyc2UgaXQgYXBwcm9wcmlhdGVseSBiZWZvcmUgZGlzcGxheWluZyBpdCBvbnRvIHRoZSBcbiAgICAgKiAgWWVhciB2aWV3IGRheSBjZWxsIGhlYWRlci4gXG4gICAgICogIFRoaXMgdGVtcGxhdGUgaXMgb25seSBhcHBsaWNhYmxlIGZvciB5ZWFyIHZpZXcgaGVhZGVyIGNlbGxzLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdtb250aEhlYWRlclRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBtb250aEhlYWRlclRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSB0ZW1wbGF0ZSBvcHRpb24gd2hpY2ggaXMgdXNlZCB0byByZW5kZXIgdGhlIGN1c3RvbWl6ZWQgaGVhZGVyIGNlbGxzIG9uIHRoZSBzY2hlZHVsZS4gSGVyZSwgdGhlIFxuICAgICAqICB0ZW1wbGF0ZSBhY2NlcHRzIGVpdGhlciB0aGUgc3RyaW5nIG9yIEhUTUxFbGVtZW50IGFzIHRlbXBsYXRlIGRlc2lnbiBhbmQgdGhlbiB0aGUgcGFyc2VkIGRlc2lnbiBpcyBkaXNwbGF5ZWQgb250byB0aGUgaGVhZGVyIGNlbGxzLiBcbiAgICAgKiAgQWxsIHRoZSByZXNvdXJjZSBmaWVsZHMgbWFwcGVkIHdpdGhpbiByZXNvdXJjZXMgY2FuIGJlIGFjY2Vzc2VkIHdpdGhpbiB0aGlzIHRlbXBsYXRlIGNvZGUuIFxuICAgICAqICBJdCBnZXRzIGFwcGxpZWQgb25seSB0byB0aGUgdmlldyBvYmplY3RzIG9uIHdoaWNoIGl0IGlzIGRlZmluZWQuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ3Jlc291cmNlSGVhZGVyVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIHJlc291cmNlSGVhZGVyVGVtcGxhdGU6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIHRlbXBsYXRlIG9wdGlvbiB3aGljaCBpcyB1c2VkIHRvIHJlbmRlciB0aGUgY3VzdG9taXplZCBoZWFkZXIgaW5kZW50IGNlbGwgb24gdGhlIHNjaGVkdWxlLiBIZXJlLCB0aGUgXG4gICAgICogIHRlbXBsYXRlIGFjY2VwdHMgZWl0aGVyIHRoZSBzdHJpbmcgb3IgSFRNTEVsZW1lbnQgYXMgdGVtcGxhdGUgZGVzaWduIGFuZCB0aGVuIHRoZSBwYXJzZWQgZGVzaWduIGlzIGRpc3BsYXllZCBvbnRvIHRoZSBoZWFkZXIgaW5kZW50IGNlbGwuIFxuICAgICAqICBJdCBnZXRzIGFwcGxpZWQgb25seSB0byB0aGUgdmlldyBvYmplY3RzIG9uIHdoaWNoIGl0IGlzIGRlZmluZWQuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2hlYWRlckluZGVudFRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBoZWFkZXJJbmRlbnRUZW1wbGF0ZTogYW55O1xuICAgIEBDb250ZW50Q2hpbGQoJ3RpbWVTY2FsZU1pbm9yU2xvdFRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyB0aW1lU2NhbGVfbWlub3JTbG90VGVtcGxhdGU6IGFueTtcbiAgICBAQ29udGVudENoaWxkKCd0aW1lU2NhbGVNYWpvclNsb3RUZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgdGltZVNjYWxlX21ham9yU2xvdFRlbXBsYXRlOiBhbnk7XG4gICAgQENvbnRlbnRDaGlsZCgnZ3JvdXBIZWFkZXJUb29sdGlwVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGdyb3VwX2hlYWRlclRvb2x0aXBUZW1wbGF0ZTogYW55O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOlZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgc2V0VmFsdWUoJ2N1cnJlbnRJbnN0YW5jZScsIHRoaXMsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJFdmVudHMob3V0cHV0cyk7XG4gICAgICAgIHRoaXMuZGlyZWN0aXZlUHJvcExpc3QgPSBpbnB1dDtcbiAgICB9XG59XG5cbi8qKlxuICogVmlldyBBcnJheSBEaXJlY3RpdmVcbiAqIEBwcml2YXRlXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZWpzLXNjaGVkdWxlPmUtdmlld3MnLFxuICAgIHF1ZXJpZXM6IHtcbiAgICAgICAgY2hpbGRyZW46IG5ldyBDb250ZW50Q2hpbGRyZW4oVmlld0RpcmVjdGl2ZSlcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBWaWV3c0RpcmVjdGl2ZSBleHRlbmRzIEFycmF5QmFzZTxWaWV3c0RpcmVjdGl2ZT4ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigndmlld3MnKTtcbiAgICB9XG59Il19
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3MuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NjaGVkdWxlL3ZpZXdzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBR3hELElBQUksS0FBSyxHQUFhLENBQUMsdUJBQXVCLEVBQUUsb0JBQW9CLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ3hoQixJQUFJLE9BQU8sR0FBYSxFQUFFLENBQUM7QUFDM0I7Ozs7Ozs7Ozs7O0dBV0c7QUFTSCxNQUFNLE9BQU8sYUFBYyxTQUFRLFdBQTBCO0lBbVF6RCxZQUFvQixnQkFBaUM7UUFDakQsS0FBSyxFQUFFLENBQUM7UUFEUSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBRWpELFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQ25DLENBQUM7OzBHQXhRUSxhQUFhOzhGQUFiLGFBQWE7QUF3S3RCO0lBREMsUUFBUSxFQUFFO3lEQUNvQjtBQVEvQjtJQURDLFFBQVEsRUFBRTt3REFDbUI7QUFVOUI7SUFEQyxRQUFRLEVBQUU7d0RBQ21CO0FBVTlCO0lBREMsUUFBUSxFQUFFO3lEQUNvQjtBQVUvQjtJQURDLFFBQVEsRUFBRTttREFDYztBQVd6QjtJQURDLFFBQVEsRUFBRTtvREFDZTtBQVUxQjtJQURDLFFBQVEsRUFBRTswREFDcUI7QUFXaEM7SUFEQyxRQUFRLEVBQUU7NkRBQ3dCO0FBVW5DO0lBREMsUUFBUSxFQUFFOzJEQUNzQjtBQUdqQztJQURDLFFBQVEsRUFBRTtrRUFDNkI7QUFHeEM7SUFEQyxRQUFRLEVBQUU7a0VBQzZCO0FBR3hDO0lBREMsUUFBUSxFQUFFO2tFQUM2QjsyRkFqUS9CLGFBQWE7a0JBUnpCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsTUFBTSxFQUFFLEtBQUs7b0JBQ2IsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE9BQU8sRUFBRSxFQUVSO2lCQUNKO3VHQXlLVSxrQkFBa0I7c0JBRnhCLFlBQVk7dUJBQUMsb0JBQW9CO2dCQVUzQixpQkFBaUI7c0JBRnZCLFlBQVk7dUJBQUMsbUJBQW1CO2dCQVkxQixpQkFBaUI7c0JBRnZCLFlBQVk7dUJBQUMsbUJBQW1CO2dCQVkxQixrQkFBa0I7c0JBRnhCLFlBQVk7dUJBQUMsb0JBQW9CO2dCQVkzQixZQUFZO3NCQUZsQixZQUFZO3VCQUFDLGNBQWM7Z0JBYXJCLGFBQWE7c0JBRm5CLFlBQVk7dUJBQUMsZUFBZTtnQkFZdEIsbUJBQW1CO3NCQUZ6QixZQUFZO3VCQUFDLHFCQUFxQjtnQkFhNUIsc0JBQXNCO3NCQUY1QixZQUFZO3VCQUFDLHdCQUF3QjtnQkFZL0Isb0JBQW9CO3NCQUYxQixZQUFZO3VCQUFDLHNCQUFzQjtnQkFLN0IsMkJBQTJCO3NCQUZqQyxZQUFZO3VCQUFDLDRCQUE0QjtnQkFLbkMsMkJBQTJCO3NCQUZqQyxZQUFZO3VCQUFDLDRCQUE0QjtnQkFLbkMsMkJBQTJCO3NCQUZqQyxZQUFZO3VCQUFDLDRCQUE0Qjs7QUFZOUM7OztHQUdHO0FBT0gsTUFBTSxPQUFPLGNBQWUsU0FBUSxTQUF5QjtJQUN6RDtRQUNJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQixDQUFDOzsyR0FIUSxjQUFjOytGQUFkLGNBQWMscUZBSFcsYUFBYTsyRkFHdEMsY0FBYztrQkFOMUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxPQUFPLEVBQUU7d0JBQ0wsUUFBUSxFQUFFLElBQUksZUFBZSxDQUFDLGFBQWEsQ0FBQztxQkFDL0M7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFZpZXdDb250YWluZXJSZWYsIENvbnRlbnRDaGlsZHJlbiwgQ29udGVudENoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wbGV4QmFzZSwgQXJyYXlCYXNlLCBzZXRWYWx1ZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWJhc2UnO1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1iYXNlJztcblxuXG5sZXQgaW5wdXQ6IHN0cmluZ1tdID0gWydhbGxvd1ZpcnR1YWxTY3JvbGxpbmcnLCAnY2VsbEhlYWRlclRlbXBsYXRlJywgJ2NlbGxUZW1wbGF0ZScsICdkYXRlRm9ybWF0JywgJ2RhdGVIZWFkZXJUZW1wbGF0ZScsICdkYXRlUmFuZ2VUZW1wbGF0ZScsICdkYXlIZWFkZXJUZW1wbGF0ZScsICdkaXNwbGF5RGF0ZScsICdkaXNwbGF5TmFtZScsICdlbmRIb3VyJywgJ2V2ZW50VGVtcGxhdGUnLCAnZmlyc3REYXlPZldlZWsnLCAnZmlyc3RNb250aE9mWWVhcicsICdncm91cCcsICdoZWFkZXJJbmRlbnRUZW1wbGF0ZScsICdoZWFkZXJSb3dzJywgJ2ludGVydmFsJywgJ2lzU2VsZWN0ZWQnLCAnbW9udGhIZWFkZXJUZW1wbGF0ZScsICdtb250aHNDb3VudCcsICdudW1iZXJPZldlZWtzJywgJ29wdGlvbicsICdvcmllbnRhdGlvbicsICdyZWFkb25seScsICdyZXNvdXJjZUhlYWRlclRlbXBsYXRlJywgJ3Nob3dXZWVrTnVtYmVyJywgJ3Nob3dXZWVrZW5kJywgJ3N0YXJ0SG91cicsICd0aW1lRm9ybWF0JywgJ3RpbWVTY2FsZScsICd3b3JrRGF5cyddO1xubGV0IG91dHB1dHM6IHN0cmluZ1tdID0gW107XG4vKipcbiAqIGBlLXZpZXdzYCBkaXJlY3RpdmUgcmVwcmVzZW50IGEgdmlldyBvZiB0aGUgQW5ndWxhciBTY2hlZHVsZS4gXG4gKiBJdCBtdXN0IGJlIGNvbnRhaW5lZCBpbiBhIFNjaGVkdWxlIGNvbXBvbmVudChgZWpzLXNjaGVkdWxlYCkuIFxuICogYGBgaHRtbFxuICogPGVqcy1zY2hlZHVsZT5cbiAqICAgPGUtdmlld3M+XG4gKiAgICA8ZS12aWV3IG9wdGlvbj0nZGF5JyBkYXRlRm9ybWF0PSdkZCBNTU0nPjwvZS12aWV3PlxuICogICAgPGUtdmlldyBvcHRpb249J3dlZWsnPjwvZS12aWV3PlxuICogICA8L2Utdmlld3M+XG4gKiA8L2Vqcy1zY2hlZHVsZT5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2Utdmlld3M+ZS12aWV3JyxcbiAgICBpbnB1dHM6IGlucHV0LFxuICAgIG91dHB1dHM6IG91dHB1dHMsICAgIFxuICAgIHF1ZXJpZXM6IHtcblxuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgVmlld0RpcmVjdGl2ZSBleHRlbmRzIENvbXBsZXhCYXNlPFZpZXdEaXJlY3RpdmU+IHtcbiAgICBwdWJsaWMgZGlyZWN0aXZlUHJvcExpc3Q6IGFueTtcblx0XG5cblxuICAgIC8qKiBcbiAgICAgKiBJdCBpcyB1c2VkIHRvIGFsbG93IG9yIGRpc2FsbG93IHRoZSB2aXJ0dWFsIHNjcm9sbGluZyBmdW5jdGlvbmFsaXR5IG9uIEFnZW5kYSBWaWV3LiBUaGlzIGlzIGFwcGxpY2FibGUgb25seSBvbiBBZ2VuZGEgdmlldy5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBhbGxvd1ZpcnR1YWxTY3JvbGxpbmc6IGFueTtcbiAgICAvKiogXG4gICAgICogQnkgZGVmYXVsdCwgU2NoZWR1bGUgZm9sbG93cyB0aGUgZGF0ZS1mb3JtYXQgYXMgcGVyIHRoZSBkZWZhdWx0IGN1bHR1cmUgYXNzaWduZWQgdG8gaXQuIEl0IGlzIGFsc28gcG9zc2libGUgdG8gbWFudWFsbHkgc2V0IFxuICAgICAqICBzcGVjaWZpYyBkYXRlIGZvcm1hdCBieSB1c2luZyB0aGUgYGRhdGVGb3JtYXRgIHByb3BlcnR5LiBUaGUgZm9ybWF0IG9mIHRoZSBkYXRlIHJhbmdlIGxhYmVsIGluIHRoZSBoZWFkZXIgYmFyIGRlcGVuZHMgb24gXG4gICAgICogIHRoZSBgZGF0ZUZvcm1hdGAgdmFsdWUgb3IgZWxzZSBiYXNlZCBvbiB0aGUgbG9jYWxlIGFzc2lnbmVkIHRvIHRoZSBTY2hlZHVsZS4gXG4gICAgICogIEl0IGdldHMgYXBwbGllZCBvbmx5IHRvIHRoZSB2aWV3IG9iamVjdHMgb24gd2hpY2ggaXQgaXMgZGVmaW5lZC5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGRhdGVGb3JtYXQ6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBzdGFydGluZyB3ZWVrIGRhdGUgYXQgYW4gaW5pdGlhbCByZW5kZXJpbmcgb2YgbW9udGggdmlldy4gVGhpcyBwcm9wZXJ0eSBpcyBvbmx5IGFwcGxpY2FibGUgZm9yIG1vbnRoIHZpZXcuIFxuICAgICAqICBJZiB0aGlzIHByb3BlcnR5IHZhbHVlIGlzIG5vdCBzZXQsIHRoZW4gdGhlIG1vbnRoIHZpZXcgd2lsbCBiZSByZW5kZXJlZCBmcm9tIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSBtb250aC4gXG4gICAgICogeyUgY29kZUJsb2NrIHNyYz0nc2NoZWR1bGUvZGlzcGxheURhdGUvaW5kZXgubWQnICV9eyUgZW5kY29kZUJsb2NrICV9XG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBkaXNwbGF5RGF0ZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBXaGVuIHRoZSBzYW1lIHZpZXcgaXMgY3VzdG9taXplZCB3aXRoIGRpZmZlcmVudCBpbnRlcnZhbHMsIHRoaXMgcHJvcGVydHkgYWxsb3dzIHRoZSB1c2VyIHRvIHNldCBkaWZmZXJlbnQgZGlzcGxheSBuYW1lIFxuICAgICAqICBmb3IgdGhvc2Ugdmlld3MuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBkaXNwbGF5TmFtZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJdCBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIGVuZCBob3VyLCBhdCB3aGljaCB0aGUgU2NoZWR1bGUgZW5kcy4gSXQgdG9vIGFjY2VwdHMgdGhlIHRpbWUgc3RyaW5nIGluIGEgc2hvcnQgc2tlbGV0b24gZm9ybWF0LlxuICAgICAqIEBkZWZhdWx0ICcyNDowMCdcbiAgICAgKi9cbiAgICBwdWJsaWMgZW5kSG91cjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGlzIG9wdGlvbiBhbGxvd3MgdGhlIHVzZXIgdG8gc2V0IHRoZSBmaXJzdCBkYXkgb2YgYSB3ZWVrIG9uIFNjaGVkdWxlLiBJdCBzaG91bGQgYmUgYmFzZWQgb24gdGhlIGxvY2FsZSBzZXQgdG8gaXQgYW5kIGVhY2ggY3VsdHVyZSBcbiAgICAgKiAgZGVmaW5lcyBpdHMgb3duIGZpcnN0IGRheSBvZiB3ZWVrIHZhbHVlcy4gSWYgbmVlZGVkLCB0aGUgdXNlciBjYW4gc2V0IGl0IG1hbnVhbGx5IG9uIGhpcyBvd24gYnkgZGVmaW5pbmcgdGhlIHZhbHVlIHRocm91Z2ggXG4gICAgICogIHRoaXMgcHJvcGVydHkuIEl0IHVzdWFsbHkgYWNjZXB0cyB0aGUgaW50ZWdlciB2YWx1ZXMsIHdoZXJlYnkgMCBpcyBhbHdheXMgZGVub3RlZCBhcyBTdW5kYXksIDEgYXMgTW9uZGF5IGFuZCBzbyBvbi5cbiAgICAgKiBAZGVmYXVsdCAwXG4gICAgICovXG4gICAgcHVibGljIGZpcnN0RGF5T2ZXZWVrOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoaXMgcHJvcGVydHkgaGVscHMgcmVuZGVyIHRoZSB5ZWFyIHZpZXcgY3VzdG9taXplZCBtb250aHMuIFxuICAgICAqIEJ5IGRlZmF1bHQsIGl0IGlzIHNldCB0byBgMGAuXG4gICAgICogQGRlZmF1bHQgMFxuICAgICAqL1xuICAgIHB1YmxpYyBmaXJzdE1vbnRoT2ZZZWFyOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEFsbG93cyB0byBzZXQgZGlmZmVyZW50IHJlc291cmNlIGdyb3VwaW5nIG9wdGlvbnMgb24gYWxsIGF2YWlsYWJsZSBzY2hlZHVsZSB2aWV3IG1vZGVzLlxuICAgICAqIEBkZWZhdWx0IHsgYnlEYXRlOiBmYWxzZSwgYnlHcm91cElEOiB0cnVlLCBhbGxvd0dyb3VwRWRpdDogZmFsc2UsIHJlc291cmNlczpbXSwgaGlkZU5vbldvcmtpbmdEYXlzOiBmYWxzZSB9XG4gICAgICovXG4gICAgcHVibGljIGdyb3VwOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEFsbG93cyBkZWZpbmluZyB0aGUgY29sbGVjdGlvbiBvZiBjdXN0b20gaGVhZGVyIHJvd3MgdG8gZGlzcGxheSB0aGUgeWVhciwgbW9udGgsIHdlZWssIGRhdGUgYW5kIGhvdXIgbGFiZWwgYXMgYW4gaW5kaXZpZHVhbCByb3cgXG4gICAgICogIG9uIHRoZSB0aW1lbGluZSB2aWV3IG9mIHRoZSBzY2hlZHVsZXIuXG4gICAgICogQGRlZmF1bHQgW11cbiAgICAgKi9cbiAgICBwdWJsaWMgaGVhZGVyUm93czogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJdCBhY2NlcHRzIHRoZSBudW1iZXIgdmFsdWUgZGVub3RpbmcgdG8gaW5jbHVkZSB0aGUgbnVtYmVyIG9mIGRheXMsIHdlZWtzLCB3b3Jrd2Vla3Mgb3IgbW9udGhzIG9uIHRoZSBkZWZpbmVkIHZpZXcgdHlwZS5cbiAgICAgKiBAZGVmYXVsdCAxXG4gICAgICovXG4gICAgcHVibGljIGludGVydmFsOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRvIGRlbm90ZSB3aGV0aGVyIHRoZSB2aWV3IG5hbWUgZ2l2ZW4gb24gdGhlIGBvcHRpb25gIGlzIGFjdGl2ZSBvciBub3QuIFxuICAgICAqIEl0IGFjdHMgc2ltaWxhciB0byB0aGUgW2BjdXJyZW50Vmlld2BdKC4uLy4uL3NjaGVkdWxlLyNjdXJyZW50LXZpZXcvKSBcbiAgICAgKiBwcm9wZXJ0eSBhbmQgZGVmaW5lcyB0aGUgYWN0aXZlIHZpZXcgb2YgU2NoZWR1bGUuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNTZWxlY3RlZDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGlzIG9wdGlvbiBhbGxvd3MgdGhlIHVzZXIgdG8gc2V0IHRoZSBudW1iZXIgb2YgbW9udGhzIGNvdW50IHRvIGJlIGRpc3BsYXllZCBvbiB0aGUgU2NoZWR1bGUuIFxuICAgICAqIHslIGNvZGVCbG9jayBzcmM9J3NjaGVkdWxlL21vbnRoc0NvdW50L2luZGV4Lm1kJyAlfXslIGVuZGNvZGVCbG9jayAlfVxuICAgICAqIEBkZWZhdWx0IDEyXG4gICAgICogQGFzcHR5cGUgaW50XG4gICAgICovXG4gICAgcHVibGljIG1vbnRoc0NvdW50OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoaXMgcHJvcGVydHkgY3VzdG9taXplcyB0aGUgbnVtYmVyIG9mIHdlZWtzIHRoYXQgYXJlIHNob3duIGluIG1vbnRoIHZpZXcuIEJ5IGRlZmF1bHQsIGl0IHNob3dzIGFsbCB3ZWVrcyBpbiB0aGUgY3VycmVudCBtb250aC4gXG4gICAgICogIFVzZSBkaXNwbGF5RGF0ZSBwcm9wZXJ0eSB0byBjdXN0b21pemUgdGhlIHN0YXJ0aW5nIHdlZWsgb2YgbW9udGguIFxuICAgICAqIHslIGNvZGVCbG9jayBzcmM9J3NjaGVkdWxlL251bWJlck9mV2Vla3MvaW5kZXgubWQnICV9eyUgZW5kY29kZUJsb2NrICV9XG4gICAgICogQGRlZmF1bHQgMFxuICAgICAqIEBhc3B0eXBlIGludFxuICAgICAqL1xuICAgIHB1YmxpYyBudW1iZXJPZldlZWtzOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEl0IGFjY2VwdHMgdGhlIHNjaGVkdWxlIHZpZXcgbmFtZSwgYmFzZWQgb24gd2hpY2ggd2UgY2FuIGRlZmluZSB3aXRoIGl0cyByZWxhdGVkIHByb3BlcnRpZXMgaW4gYSBzaW5nbGUgb2JqZWN0LiBcbiAgICAgKiBUaGUgYXBwbGljYWJsZSB2aWV3IG5hbWVzIGFyZSwgXG4gICAgICogKiBEYXkgLSBEZW5vdGVzIERheSB2aWV3IG9mIHRoZSBzY2hlZHVsZXIuIFxuICAgICAqICogV2VlayAtIERlbm90ZXMgV2VlayB2aWV3IG9mIHRoZSBzY2hlZHVsZXIuIFxuICAgICAqICogV29ya1dlZWsgLSBEZW5vdGVzIFdvcmsgV2VlayB2aWV3IG9mIHRoZSBzY2hlZHVsZXIuIFxuICAgICAqICogTW9udGggLSBEZW5vdGVzIE1vbnRoIHZpZXcgb2YgdGhlIHNjaGVkdWxlci4gXG4gICAgICogKiBZZWFyIC0gRGVub3RlcyBZZWFyIHZpZXcgb2YgdGhlIHNjaGVkdWxlci4gXG4gICAgICogKiBBZ2VuZGEgLSBEZW5vdGVzIEFnZW5kYSB2aWV3IG9mIHRoZSBzY2hlZHVsZXIuIFxuICAgICAqICogTW9udGhBZ2VuZGEgLSBEZW5vdGVzIE1vbnRoIEFnZW5kYSB2aWV3IG9mIHRoZSBzY2hlZHVsZXIuIFxuICAgICAqICogVGltZWxpbmVEYXkgLSBEZW5vdGVzIFRpbWVsaW5lIERheSB2aWV3IG9mIHRoZSBzY2hlZHVsZXIuIFxuICAgICAqICogVGltZWxpbmVXZWVrIC0gRGVub3RlcyBUaW1lbGluZSBXZWVrIHZpZXcgb2YgdGhlIHNjaGVkdWxlci4gXG4gICAgICogKiBUaW1lbGluZVdvcmtXZWVrIC0gRGVub3RlcyBUaW1lbGluZSBXb3JrIFdlZWsgdmlldyBvZiB0aGUgc2NoZWR1bGVyLiBcbiAgICAgKiAqIFRpbWVsaW5lTW9udGggLSBEZW5vdGVzIFRpbWVsaW5lIE1vbnRoIHZpZXcgb2YgdGhlIHNjaGVkdWxlci4gXG4gICAgICogKiBUaW1lbGluZVllYXIgLSBEZW5vdGVzIFRpbWVsaW5lIFllYXIgdmlldyBvZiB0aGUgc2NoZWR1bGVyLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgb3B0aW9uOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEl0IGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgeWVhciB2aWV3IHJlbmRlcmluZyBvcmllbnRhdGlvbiBvbiB0aGUgc2NoZWR1bGUuIFxuICAgICAqIFRoZSBhcHBsaWNhYmxlIG9yaWVudGF0aW9uIHZhbHVlcyBhcmUsIFxuICAgICAqICogSG9yaXpvbnRhbCAtIERlbm90ZXMgdGhlIGhvcml6b250YWwgb3JpZW50YXRpb24gb2YgVGltZWxpbmUgWWVhciB2aWV3LiBcbiAgICAgKiAqIFZlcnRpY2FsIC0gRGVub3RlcyB0aGUgdmVydGljYWwgb3JpZW50YXRpb24gb2YgVGltZWxpbmUgWWVhciB2aWV3LlxuICAgICAqIEBkZWZhdWx0ICdIb3Jpem9udGFsJ1xuICAgICAqL1xuICAgIHB1YmxpYyBvcmllbnRhdGlvbjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBXaGVuIHNldCB0byBgdHJ1ZWAsIGRpc3BsYXlzIGEgcXVpY2sgcG9wdXAgd2l0aCBjZWxsIG9yIGV2ZW50IGRldGFpbHMgb24gc2luZ2xlIGNsaWNraW5nIG92ZXIgdGhlIGNlbGxzIG9yIG9uIGV2ZW50cy4gXG4gICAgICogIEJ5IGRlZmF1bHQsIGl0IGlzIHNldCB0byBgdHJ1ZWAuIEl0IGdldHMgYXBwbGllZCBvbmx5IHRvIHRoZSB2aWV3IG9iamVjdHMgb24gd2hpY2ggaXQgaXMgZGVmaW5lZC5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBXaGVuIHNldCB0byBgdHJ1ZWAsIGRpc3BsYXlzIHRoZSB3ZWVrIG51bWJlciBvZiB0aGUgY3VycmVudCB2aWV3IGRhdGUgcmFuZ2UuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd1dlZWtOdW1iZXI6IGFueTtcbiAgICAvKiogXG4gICAgICogV2hlbiBzZXQgdG8gYGZhbHNlYCwgaXQgaGlkZXMgdGhlIHdlZWtlbmQgZGF5cyBvZiBhIHdlZWsgZnJvbSB0aGUgU2NoZWR1bGUuIFxuICAgICAqIFRoZSBkYXlzIHdoaWNoIGFyZSBub3QgZGVmaW5lZCBpbiB0aGUgd29ya2luZyBkYXlzIGNvbGxlY3Rpb24gYXJlIHVzdWFsbHkgdHJlYXRlZCBhcyB3ZWVrZW5kIGRheXMuIFxuICAgICAqIE5vdGU6IEJ5IGRlZmF1bHQsIHRoaXMgb3B0aW9uIGlzIG5vdCBhcHBsaWNhYmxlIG9uIGBXb3JrIFdlZWtgIHZpZXcuIFxuICAgICAqIEZvciBleGFtcGxlLCBpZiB0aGUgd29ya2luZyBkYXlzIGFyZSBkZWZpbmVkIGFzIFsxLCAyLCAzLCA0XSwgdGhlbiB0aGUgcmVtYWluaW5nIGRheXMgb2YgdGhhdCB3ZWVrIHdpbGwgYmUgY29uc2lkZXJlZCBhcyB0aGUgXG4gICAgICogIHdlZWtlbmQgZGF5cyBhbmQgd2lsbCBiZSBoaWRkZW4gb24gYWxsIHRoZSB2aWV3cy5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIHNob3dXZWVrZW5kOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEl0IGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgc3RhcnRpbmcgaG91ciwgZnJvbSB3aGljaCB0aGUgU2NoZWR1bGUgc3RhcnRzIHRvIGRpc3BsYXkuIFxuICAgICAqICBJdCBhY2NlcHRzIHRoZSB0aW1lIHN0cmluZyBpbiBhIHNob3J0IHNrZWxldG9uIGZvcm1hdCBhbmQgYWxzbywgaGlkZXMgdGhlIHRpbWUgYmV5b25kIHRoZSBzcGVjaWZpZWQgc3RhcnQgdGltZS5cbiAgICAgKiBAZGVmYXVsdCAnMDA6MDAnXG4gICAgICovXG4gICAgcHVibGljIHN0YXJ0SG91cjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBCeSBkZWZhdWx0LCBTY2hlZHVsZSBmb2xsb3dzIHRoZSB0aW1lLWZvcm1hdCBhcyBwZXIgdGhlIGRlZmF1bHQgY3VsdHVyZSBhc3NpZ25lZCB0byBpdC4gXG4gICAgICogSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBtYW51YWxseSBzZXQgc3BlY2lmaWMgdGltZSBmb3JtYXQgYnkgdXNpbmcgdGhlIGB0aW1lRm9ybWF0YCBwcm9wZXJ0eS4gXG4gICAgICogeyUgY29kZUJsb2NrIHNyYz0nc2NoZWR1bGUvdGltZUZvcm1hdC9pbmRleC5tZCcgJX17JSBlbmRjb2RlQmxvY2sgJX1cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIHRpbWVGb3JtYXQ6IGFueTtcbiAgICAvKiogXG4gICAgICogQWxsb3dzIHRvIHNldCBkaWZmZXJlbnQgdGltZXNjYWxlIGNvbmZpZ3VyYXRpb24gb24gZWFjaCBhcHBsaWNhYmxlIHZpZXcgbW9kZXMgc3VjaCBhcyBkYXksIHdlZWsgYW5kIHdvcmsgd2Vlay5cbiAgICAgKiBAZGVmYXVsdCB7IGVuYWJsZTogdHJ1ZSwgaW50ZXJ2YWw6IDYwLCBzbG90Q291bnQ6IDIsIG1ham9yU2xvdFRlbXBsYXRlOiBudWxsLCBtaW5vclNsb3RUZW1wbGF0ZTogbnVsbCB9XG4gICAgICovXG4gICAgcHVibGljIHRpbWVTY2FsZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJdCBpcyB1c2VkIHRvIHNldCB0aGUgd29ya2luZyBkYXlzIG9uIHNjaGVkdWxlLiBUaGUgb25seSBkYXlzIHRoYXQgYXJlIGRlZmluZWQgaW4gdGhpcyBjb2xsZWN0aW9uIHdpbGwgYmUgcmVuZGVyZWQgb24gdGhlIFxuICAgICAqICBgd29ya1dlZWtgIHZpZXcgd2hlcmVhcyBvbiBvdGhlciB2aWV3cywgaXQgd2lsbCBkaXNwbGF5IGFsbCB0aGUgdXN1YWwgZGF5cyBhbmQgc2ltcGx5IGhpZ2hsaWdodHMgdGhlIHdvcmtpbmcgZGF5cyB3aXRoIGRpZmZlcmVudCBcbiAgICAgKiAgc2hhZGUuXG4gICAgICogQGRlZmF1bHQgJ1sxLCAyLCAzLCA0LCA1XSdcbiAgICAgKiBAYXNwdHlwZSBpbnRbXVxuICAgICAqL1xuICAgIHB1YmxpYyB3b3JrRGF5czogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJdCBhY2NlcHRzIGVpdGhlciB0aGUgc3RyaW5nIG9yIEhUTUxFbGVtZW50IGFzIHRlbXBsYXRlIGRlc2lnbiBjb250ZW50IGFuZCBwYXJzZSBpdCBhcHByb3ByaWF0ZWx5IGJlZm9yZSBkaXNwbGF5aW5nIGl0IG9udG8gdGhlIFxuICAgICAqICBkYXRlIGhlYWRlciBjZWxscy4gVGhlIGZpZWxkIHRoYXQgY2FuIGJlIGFjY2Vzc2VkIHZpYSB0aGlzIHRlbXBsYXRlIGlzIGBkYXRlYC4gXG4gICAgICogIEl0IGdldHMgYXBwbGllZCBvbmx5IHRvIHRoZSB2aWV3IG9iamVjdHMgb24gd2hpY2ggaXQgaXMgZGVmaW5lZC5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICogQGFzcHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnZGF0ZUhlYWRlclRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBkYXRlSGVhZGVyVGVtcGxhdGU6IGFueTtcbiAgICAvKiogXG4gICAgICogSXQgYWNjZXB0cyBlaXRoZXIgdGhlIHN0cmluZyBvciBIVE1MRWxlbWVudCBhcyB0ZW1wbGF0ZSBkZXNpZ24gY29udGVudCBhbmQgcGFyc2UgaXQgYXBwcm9wcmlhdGVseSBiZWZvcmUgZGlzcGxheWluZyBpdCBvbnRvIHRoZSBoZWFkZXIgZGF0ZSByYW5nZS5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICogQGFzcHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnZGF0ZVJhbmdlVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGRhdGVSYW5nZVRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEl0IGFjY2VwdHMgZWl0aGVyIHRoZSBzdHJpbmcgb3IgSFRNTEVsZW1lbnQgYXMgdGVtcGxhdGUgZGVzaWduIGNvbnRlbnQgYW5kIHBhcnNlIGl0IGFwcHJvcHJpYXRlbHkgYmVmb3JlIGRpc3BsYXlpbmcgaXQgb250byB0aGUgXG4gICAgICogIFllYXIgdmlldyBkYXkgY2VsbCBoZWFkZXIuIFxuICAgICAqICBUaGlzIHRlbXBsYXRlIGlzIG9ubHkgYXBwbGljYWJsZSBmb3IgeWVhciB2aWV3IGhlYWRlciBjZWxscy5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICogQGFzcHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnZGF5SGVhZGVyVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGRheUhlYWRlclRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEl0IGFjY2VwdHMgZWl0aGVyIHRoZSBzdHJpbmcgb3IgSFRNTEVsZW1lbnQgYXMgdGVtcGxhdGUgZGVzaWduIGNvbnRlbnQgYW5kIHBhcnNlIGl0IGFwcHJvcHJpYXRlbHkgYmVmb3JlIGRpc3BsYXlpbmcgaXQgb250byB0aGUgXG4gICAgICogIG1vbnRoIGRhdGUgY2VsbHMuIFxuICAgICAqICBUaGlzIHRlbXBsYXRlIGlzIG9ubHkgYXBwbGljYWJsZSBmb3IgbW9udGggdmlldyBkYXkgY2VsbHMuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2NlbGxIZWFkZXJUZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgY2VsbEhlYWRlclRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSB0ZW1wbGF0ZSBvcHRpb24gd2hpY2ggaXMgdXNlZCB0byByZW5kZXIgdGhlIGN1c3RvbWl6ZWQgd29yayBjZWxscyBvbiB0aGUgU2NoZWR1bGUuIEhlcmUsIHRoZSBcbiAgICAgKiAgdGVtcGxhdGUgYWNjZXB0cyBlaXRoZXIgdGhlIHN0cmluZyBvciBIVE1MRWxlbWVudCBhcyB0ZW1wbGF0ZSBkZXNpZ24gYW5kIHRoZW4gdGhlIHBhcnNlZCBkZXNpZ24gaXMgZGlzcGxheWVkIG9udG8gdGhlIHdvcmsgY2VsbHMuIFxuICAgICAqICBUaGUgZmllbGQgYWNjZXNzaWJsZSB2aWEgdGVtcGxhdGUgaXMgYGRhdGVgLiBJdCBnZXRzIGFwcGxpZWQgb25seSB0byB0aGUgdmlldyBvYmplY3RzIG9uIHdoaWNoIGl0IGlzIGRlZmluZWQuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2NlbGxUZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgY2VsbFRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEl0IGFjY2VwdHMgZWl0aGVyIHRoZSBzdHJpbmcgb3IgSFRNTEVsZW1lbnQgYXMgdGVtcGxhdGUgZGVzaWduIGNvbnRlbnQgYW5kIHBhcnNlIGl0IGFwcHJvcHJpYXRlbHkgYmVmb3JlIGRpc3BsYXlpbmcgaXQgb250byBcbiAgICAgKiAgdGhlIGV2ZW50IGJhY2tncm91bmQuIEFsbCB0aGUgZXZlbnQgZmllbGRzIG1hcHBlZCB0byBTY2hlZHVsZSBmcm9tIGRhdGFTb3VyY2UgY2FuIGJlIGFjY2Vzc2VkIHdpdGhpbiB0aGlzIHRlbXBsYXRlIGNvZGUuIFxuICAgICAqICBJdCBpcyBzaW1pbGFyIHRvIHRoYXQgb2YgdGhlIGB0ZW1wbGF0ZWAgb3B0aW9uIGF2YWlsYWJsZSB3aXRoaW4gdGhlIGBldmVudFNldHRpbmdzYCBwcm9wZXJ0eSwgXG4gICAgICogIHdoZXJlYXMgaXQgd2lsbCBnZXQgYXBwbGllZCBvbmx5IG9uIHRoZSBldmVudHMgb2YgdGhlIHZpZXcgdG8gd2hpY2ggaXQgaXMgY3VycmVudGx5IGJlaW5nIGRlZmluZWQuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2V2ZW50VGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGV2ZW50VGVtcGxhdGU6IGFueTtcbiAgICAvKiogXG4gICAgICogSXQgYWNjZXB0cyBlaXRoZXIgdGhlIHN0cmluZyBvciBIVE1MRWxlbWVudCBhcyB0ZW1wbGF0ZSBkZXNpZ24gY29udGVudCBhbmQgcGFyc2UgaXQgYXBwcm9wcmlhdGVseSBiZWZvcmUgZGlzcGxheWluZyBpdCBvbnRvIHRoZSBcbiAgICAgKiAgWWVhciB2aWV3IGRheSBjZWxsIGhlYWRlci4gXG4gICAgICogIFRoaXMgdGVtcGxhdGUgaXMgb25seSBhcHBsaWNhYmxlIGZvciB5ZWFyIHZpZXcgaGVhZGVyIGNlbGxzLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKiBAYXNwdHlwZSBzdHJpbmdcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdtb250aEhlYWRlclRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBtb250aEhlYWRlclRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSB0ZW1wbGF0ZSBvcHRpb24gd2hpY2ggaXMgdXNlZCB0byByZW5kZXIgdGhlIGN1c3RvbWl6ZWQgaGVhZGVyIGNlbGxzIG9uIHRoZSBzY2hlZHVsZS4gSGVyZSwgdGhlIFxuICAgICAqICB0ZW1wbGF0ZSBhY2NlcHRzIGVpdGhlciB0aGUgc3RyaW5nIG9yIEhUTUxFbGVtZW50IGFzIHRlbXBsYXRlIGRlc2lnbiBhbmQgdGhlbiB0aGUgcGFyc2VkIGRlc2lnbiBpcyBkaXNwbGF5ZWQgb250byB0aGUgaGVhZGVyIGNlbGxzLiBcbiAgICAgKiAgQWxsIHRoZSByZXNvdXJjZSBmaWVsZHMgbWFwcGVkIHdpdGhpbiByZXNvdXJjZXMgY2FuIGJlIGFjY2Vzc2VkIHdpdGhpbiB0aGlzIHRlbXBsYXRlIGNvZGUuIFxuICAgICAqICBJdCBnZXRzIGFwcGxpZWQgb25seSB0byB0aGUgdmlldyBvYmplY3RzIG9uIHdoaWNoIGl0IGlzIGRlZmluZWQuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ3Jlc291cmNlSGVhZGVyVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIHJlc291cmNlSGVhZGVyVGVtcGxhdGU6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIHRlbXBsYXRlIG9wdGlvbiB3aGljaCBpcyB1c2VkIHRvIHJlbmRlciB0aGUgY3VzdG9taXplZCBoZWFkZXIgaW5kZW50IGNlbGwgb24gdGhlIHNjaGVkdWxlLiBIZXJlLCB0aGUgXG4gICAgICogIHRlbXBsYXRlIGFjY2VwdHMgZWl0aGVyIHRoZSBzdHJpbmcgb3IgSFRNTEVsZW1lbnQgYXMgdGVtcGxhdGUgZGVzaWduIGFuZCB0aGVuIHRoZSBwYXJzZWQgZGVzaWduIGlzIGRpc3BsYXllZCBvbnRvIHRoZSBoZWFkZXIgaW5kZW50IGNlbGwuIFxuICAgICAqICBJdCBnZXRzIGFwcGxpZWQgb25seSB0byB0aGUgdmlldyBvYmplY3RzIG9uIHdoaWNoIGl0IGlzIGRlZmluZWQuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2hlYWRlckluZGVudFRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBoZWFkZXJJbmRlbnRUZW1wbGF0ZTogYW55O1xuICAgIEBDb250ZW50Q2hpbGQoJ3RpbWVTY2FsZU1pbm9yU2xvdFRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyB0aW1lU2NhbGVfbWlub3JTbG90VGVtcGxhdGU6IGFueTtcbiAgICBAQ29udGVudENoaWxkKCd0aW1lU2NhbGVNYWpvclNsb3RUZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgdGltZVNjYWxlX21ham9yU2xvdFRlbXBsYXRlOiBhbnk7XG4gICAgQENvbnRlbnRDaGlsZCgnZ3JvdXBIZWFkZXJUb29sdGlwVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGdyb3VwX2hlYWRlclRvb2x0aXBUZW1wbGF0ZTogYW55O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOlZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgc2V0VmFsdWUoJ2N1cnJlbnRJbnN0YW5jZScsIHRoaXMsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJFdmVudHMob3V0cHV0cyk7XG4gICAgICAgIHRoaXMuZGlyZWN0aXZlUHJvcExpc3QgPSBpbnB1dDtcbiAgICB9XG59XG5cbi8qKlxuICogVmlldyBBcnJheSBEaXJlY3RpdmVcbiAqIEBwcml2YXRlXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZWpzLXNjaGVkdWxlPmUtdmlld3MnLFxuICAgIHF1ZXJpZXM6IHtcbiAgICAgICAgY2hpbGRyZW46IG5ldyBDb250ZW50Q2hpbGRyZW4oVmlld0RpcmVjdGl2ZSlcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBWaWV3c0RpcmVjdGl2ZSBleHRlbmRzIEFycmF5QmFzZTxWaWV3c0RpcmVjdGl2ZT4ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigndmlld3MnKTtcbiAgICB9XG59Il19
@@ -6,7 +6,7 @@ import { Schedule, Day, Week, WorkWeek, Month, Year, Agenda, MonthAgenda, Timeli
6
6
  export * from '@syncfusion/ej2-schedule';
7
7
  import { CommonModule } from '@angular/common';
8
8
 
9
- let input$2 = ['allowVirtualScrolling', 'cellHeaderTemplate', 'cellTemplate', 'dateFormat', 'dateHeaderTemplate', 'dayHeaderTemplate', 'displayDate', 'displayName', 'endHour', 'eventTemplate', 'firstDayOfWeek', 'firstMonthOfYear', 'group', 'headerIndentTemplate', 'headerRows', 'interval', 'isSelected', 'monthHeaderTemplate', 'monthsCount', 'numberOfWeeks', 'option', 'orientation', 'readonly', 'resourceHeaderTemplate', 'showWeekNumber', 'showWeekend', 'startHour', 'timeFormat', 'timeScale', 'workDays'];
9
+ let input$2 = ['allowVirtualScrolling', 'cellHeaderTemplate', 'cellTemplate', 'dateFormat', 'dateHeaderTemplate', 'dateRangeTemplate', 'dayHeaderTemplate', 'displayDate', 'displayName', 'endHour', 'eventTemplate', 'firstDayOfWeek', 'firstMonthOfYear', 'group', 'headerIndentTemplate', 'headerRows', 'interval', 'isSelected', 'monthHeaderTemplate', 'monthsCount', 'numberOfWeeks', 'option', 'orientation', 'readonly', 'resourceHeaderTemplate', 'showWeekNumber', 'showWeekend', 'startHour', 'timeFormat', 'timeScale', 'workDays'];
10
10
  let outputs$4 = [];
11
11
  /**
12
12
  * `e-views` directive represent a view of the Angular Schedule.
@@ -30,10 +30,13 @@ class ViewDirective extends ComplexBase {
30
30
  }
31
31
  }
32
32
  ViewDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ViewDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
33
- ViewDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ViewDirective, selector: "e-views>e-view", inputs: { allowVirtualScrolling: "allowVirtualScrolling", cellHeaderTemplate: "cellHeaderTemplate", cellTemplate: "cellTemplate", dateFormat: "dateFormat", dateHeaderTemplate: "dateHeaderTemplate", dayHeaderTemplate: "dayHeaderTemplate", displayDate: "displayDate", displayName: "displayName", endHour: "endHour", eventTemplate: "eventTemplate", firstDayOfWeek: "firstDayOfWeek", firstMonthOfYear: "firstMonthOfYear", group: "group", headerIndentTemplate: "headerIndentTemplate", headerRows: "headerRows", interval: "interval", isSelected: "isSelected", monthHeaderTemplate: "monthHeaderTemplate", monthsCount: "monthsCount", numberOfWeeks: "numberOfWeeks", option: "option", orientation: "orientation", readonly: "readonly", resourceHeaderTemplate: "resourceHeaderTemplate", showWeekNumber: "showWeekNumber", showWeekend: "showWeekend", startHour: "startHour", timeFormat: "timeFormat", timeScale: "timeScale", workDays: "workDays" }, queries: [{ propertyName: "dateHeaderTemplate", first: true, predicate: ["dateHeaderTemplate"], descendants: true }, { propertyName: "dayHeaderTemplate", first: true, predicate: ["dayHeaderTemplate"], descendants: true }, { propertyName: "cellHeaderTemplate", first: true, predicate: ["cellHeaderTemplate"], descendants: true }, { propertyName: "cellTemplate", first: true, predicate: ["cellTemplate"], descendants: true }, { propertyName: "eventTemplate", first: true, predicate: ["eventTemplate"], descendants: true }, { propertyName: "monthHeaderTemplate", first: true, predicate: ["monthHeaderTemplate"], descendants: true }, { propertyName: "resourceHeaderTemplate", first: true, predicate: ["resourceHeaderTemplate"], descendants: true }, { propertyName: "headerIndentTemplate", first: true, predicate: ["headerIndentTemplate"], descendants: true }, { propertyName: "timeScale_minorSlotTemplate", first: true, predicate: ["timeScaleMinorSlotTemplate"], descendants: true }, { propertyName: "timeScale_majorSlotTemplate", first: true, predicate: ["timeScaleMajorSlotTemplate"], descendants: true }, { propertyName: "group_headerTooltipTemplate", first: true, predicate: ["groupHeaderTooltipTemplate"], descendants: true }], usesInheritance: true, ngImport: i0 });
33
+ ViewDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ViewDirective, selector: "e-views>e-view", inputs: { allowVirtualScrolling: "allowVirtualScrolling", cellHeaderTemplate: "cellHeaderTemplate", cellTemplate: "cellTemplate", dateFormat: "dateFormat", dateHeaderTemplate: "dateHeaderTemplate", dateRangeTemplate: "dateRangeTemplate", dayHeaderTemplate: "dayHeaderTemplate", displayDate: "displayDate", displayName: "displayName", endHour: "endHour", eventTemplate: "eventTemplate", firstDayOfWeek: "firstDayOfWeek", firstMonthOfYear: "firstMonthOfYear", group: "group", headerIndentTemplate: "headerIndentTemplate", headerRows: "headerRows", interval: "interval", isSelected: "isSelected", monthHeaderTemplate: "monthHeaderTemplate", monthsCount: "monthsCount", numberOfWeeks: "numberOfWeeks", option: "option", orientation: "orientation", readonly: "readonly", resourceHeaderTemplate: "resourceHeaderTemplate", showWeekNumber: "showWeekNumber", showWeekend: "showWeekend", startHour: "startHour", timeFormat: "timeFormat", timeScale: "timeScale", workDays: "workDays" }, queries: [{ propertyName: "dateHeaderTemplate", first: true, predicate: ["dateHeaderTemplate"], descendants: true }, { propertyName: "dateRangeTemplate", first: true, predicate: ["dateRangeTemplate"], descendants: true }, { propertyName: "dayHeaderTemplate", first: true, predicate: ["dayHeaderTemplate"], descendants: true }, { propertyName: "cellHeaderTemplate", first: true, predicate: ["cellHeaderTemplate"], descendants: true }, { propertyName: "cellTemplate", first: true, predicate: ["cellTemplate"], descendants: true }, { propertyName: "eventTemplate", first: true, predicate: ["eventTemplate"], descendants: true }, { propertyName: "monthHeaderTemplate", first: true, predicate: ["monthHeaderTemplate"], descendants: true }, { propertyName: "resourceHeaderTemplate", first: true, predicate: ["resourceHeaderTemplate"], descendants: true }, { propertyName: "headerIndentTemplate", first: true, predicate: ["headerIndentTemplate"], descendants: true }, { propertyName: "timeScale_minorSlotTemplate", first: true, predicate: ["timeScaleMinorSlotTemplate"], descendants: true }, { propertyName: "timeScale_majorSlotTemplate", first: true, predicate: ["timeScaleMajorSlotTemplate"], descendants: true }, { propertyName: "group_headerTooltipTemplate", first: true, predicate: ["groupHeaderTooltipTemplate"], descendants: true }], usesInheritance: true, ngImport: i0 });
34
34
  __decorate([
35
35
  Template()
36
36
  ], ViewDirective.prototype, "dateHeaderTemplate", void 0);
37
+ __decorate([
38
+ Template()
39
+ ], ViewDirective.prototype, "dateRangeTemplate", void 0);
37
40
  __decorate([
38
41
  Template()
39
42
  ], ViewDirective.prototype, "dayHeaderTemplate", void 0);
@@ -75,6 +78,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
75
78
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { dateHeaderTemplate: [{
76
79
  type: ContentChild,
77
80
  args: ['dateHeaderTemplate']
81
+ }], dateRangeTemplate: [{
82
+ type: ContentChild,
83
+ args: ['dateRangeTemplate']
78
84
  }], dayHeaderTemplate: [{
79
85
  type: ContentChild,
80
86
  args: ['dayHeaderTemplate']
@@ -243,7 +249,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
243
249
  }]
244
250
  }], ctorParameters: function () { return []; } });
245
251
 
246
- const inputs$1 = ['agendaDaysCount', 'allowDragAndDrop', 'allowInline', 'allowKeyboardInteraction', 'allowMultiCellSelection', 'allowMultiDrag', 'allowMultiRowSelection', 'allowResizing', 'calendarMode', 'cellHeaderTemplate', 'cellTemplate', 'cssClass', 'currentView', 'dateFormat', 'dateHeaderTemplate', 'dayHeaderTemplate', 'editorTemplate', 'enableAdaptiveUI', 'enableAllDayScroll', 'enablePersistence', 'enableRecurrenceValidation', 'enableRtl', 'endHour', 'eventDragArea', 'eventSettings', 'firstDayOfWeek', 'firstMonthOfYear', 'group', 'headerIndentTemplate', 'headerRows', 'height', 'hideEmptyAgendaDays', 'locale', 'maxDate', 'minDate', 'monthHeaderTemplate', 'monthsCount', 'quickInfoOnSelectionEnd', 'quickInfoTemplates', 'readonly', 'resourceHeaderTemplate', 'resources', 'rowAutoHeight', 'selectedDate', 'showHeaderBar', 'showQuickInfo', 'showTimeIndicator', 'showWeekNumber', 'showWeekend', 'startHour', 'timeFormat', 'timeScale', 'timezone', 'timezoneDataSource', 'views', 'weekRule', 'width', 'workDays', 'workHours'];
252
+ const inputs$1 = ['agendaDaysCount', 'allowDragAndDrop', 'allowInline', 'allowKeyboardInteraction', 'allowMultiCellSelection', 'allowMultiDrag', 'allowMultiRowSelection', 'allowResizing', 'allowSwiping', 'calendarMode', 'cellHeaderTemplate', 'cellTemplate', 'cssClass', 'currentView', 'dateFormat', 'dateHeaderTemplate', 'dateRangeTemplate', 'dayHeaderTemplate', 'editorTemplate', 'enableAdaptiveUI', 'enableAllDayScroll', 'enableHtmlSanitizer', 'enablePersistence', 'enableRecurrenceValidation', 'enableRtl', 'endHour', 'eventDragArea', 'eventSettings', 'firstDayOfWeek', 'firstMonthOfYear', 'group', 'headerIndentTemplate', 'headerRows', 'height', 'hideEmptyAgendaDays', 'locale', 'maxDate', 'minDate', 'monthHeaderTemplate', 'monthsCount', 'quickInfoOnSelectionEnd', 'quickInfoTemplates', 'readonly', 'resourceHeaderTemplate', 'resources', 'rowAutoHeight', 'selectedDate', 'showHeaderBar', 'showQuickInfo', 'showTimeIndicator', 'showWeekNumber', 'showWeekend', 'startHour', 'timeFormat', 'timeScale', 'timezone', 'timezoneDataSource', 'views', 'weekRule', 'width', 'workDays', 'workHours'];
247
253
  const outputs$1 = ['actionBegin', 'actionComplete', 'actionFailure', 'cellClick', 'cellDoubleClick', 'created', 'dataBinding', 'dataBound', 'destroyed', 'drag', 'dragStart', 'dragStop', 'eventClick', 'eventRendered', 'hover', 'moreEventsClick', 'navigating', 'popupClose', 'popupOpen', 'renderCell', 'resizeStart', 'resizeStop', 'resizing', 'select', 'currentViewChange', 'selectedDateChange'];
248
254
  const twoWays$1 = ['currentView', 'selectedDate'];
249
255
  /**
@@ -400,10 +406,13 @@ let ScheduleComponent = class ScheduleComponent extends Schedule {
400
406
  }
401
407
  };
402
408
  ScheduleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ScheduleComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
403
- ScheduleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ScheduleComponent, selector: "ejs-schedule", inputs: { agendaDaysCount: "agendaDaysCount", allowDragAndDrop: "allowDragAndDrop", allowInline: "allowInline", allowKeyboardInteraction: "allowKeyboardInteraction", allowMultiCellSelection: "allowMultiCellSelection", allowMultiDrag: "allowMultiDrag", allowMultiRowSelection: "allowMultiRowSelection", allowResizing: "allowResizing", calendarMode: "calendarMode", cellHeaderTemplate: "cellHeaderTemplate", cellTemplate: "cellTemplate", cssClass: "cssClass", currentView: "currentView", dateFormat: "dateFormat", dateHeaderTemplate: "dateHeaderTemplate", dayHeaderTemplate: "dayHeaderTemplate", editorTemplate: "editorTemplate", enableAdaptiveUI: "enableAdaptiveUI", enableAllDayScroll: "enableAllDayScroll", enablePersistence: "enablePersistence", enableRecurrenceValidation: "enableRecurrenceValidation", enableRtl: "enableRtl", endHour: "endHour", eventDragArea: "eventDragArea", eventSettings: "eventSettings", firstDayOfWeek: "firstDayOfWeek", firstMonthOfYear: "firstMonthOfYear", group: "group", headerIndentTemplate: "headerIndentTemplate", headerRows: "headerRows", height: "height", hideEmptyAgendaDays: "hideEmptyAgendaDays", locale: "locale", maxDate: "maxDate", minDate: "minDate", monthHeaderTemplate: "monthHeaderTemplate", monthsCount: "monthsCount", quickInfoOnSelectionEnd: "quickInfoOnSelectionEnd", quickInfoTemplates: "quickInfoTemplates", readonly: "readonly", resourceHeaderTemplate: "resourceHeaderTemplate", resources: "resources", rowAutoHeight: "rowAutoHeight", selectedDate: "selectedDate", showHeaderBar: "showHeaderBar", showQuickInfo: "showQuickInfo", showTimeIndicator: "showTimeIndicator", showWeekNumber: "showWeekNumber", showWeekend: "showWeekend", startHour: "startHour", timeFormat: "timeFormat", timeScale: "timeScale", timezone: "timezone", timezoneDataSource: "timezoneDataSource", views: "views", weekRule: "weekRule", width: "width", workDays: "workDays", workHours: "workHours" }, outputs: { actionBegin: "actionBegin", actionComplete: "actionComplete", actionFailure: "actionFailure", cellClick: "cellClick", cellDoubleClick: "cellDoubleClick", created: "created", dataBinding: "dataBinding", dataBound: "dataBound", destroyed: "destroyed", drag: "drag", dragStart: "dragStart", dragStop: "dragStop", eventClick: "eventClick", eventRendered: "eventRendered", hover: "hover", moreEventsClick: "moreEventsClick", navigating: "navigating", popupClose: "popupClose", popupOpen: "popupOpen", renderCell: "renderCell", resizeStart: "resizeStart", resizeStop: "resizeStop", resizing: "resizing", select: "select", currentViewChange: "currentViewChange", selectedDateChange: "selectedDateChange" }, queries: [{ propertyName: "dateHeaderTemplate", first: true, predicate: ["dateHeaderTemplate"], descendants: true }, { propertyName: "dayHeaderTemplate", first: true, predicate: ["dayHeaderTemplate"], descendants: true }, { propertyName: "cellTemplate", first: true, predicate: ["cellTemplate"], descendants: true }, { propertyName: "cellHeaderTemplate", first: true, predicate: ["cellHeaderTemplate"], descendants: true }, { propertyName: "eventSettings_tooltipTemplate", first: true, predicate: ["eventSettingsTooltipTemplate"], descendants: true }, { propertyName: "eventSettings_template", first: true, predicate: ["eventSettingsTemplate"], descendants: true }, { propertyName: "editorTemplate", first: true, predicate: ["editorTemplate"], descendants: true }, { propertyName: "monthHeaderTemplate", first: true, predicate: ["monthHeaderTemplate"], descendants: true }, { propertyName: "timeScale_minorSlotTemplate", first: true, predicate: ["timeScaleMinorSlotTemplate"], descendants: true }, { propertyName: "timeScale_majorSlotTemplate", first: true, predicate: ["timeScaleMajorSlotTemplate"], descendants: true }, { propertyName: "resourceHeaderTemplate", first: true, predicate: ["resourceHeaderTemplate"], descendants: true }, { propertyName: "headerIndentTemplate", first: true, predicate: ["headerIndentTemplate"], descendants: true }, { propertyName: "quickInfoTemplates_header", first: true, predicate: ["quickInfoTemplatesHeader"], descendants: true }, { propertyName: "quickInfoTemplates_content", first: true, predicate: ["quickInfoTemplatesContent"], descendants: true }, { propertyName: "quickInfoTemplates_footer", first: true, predicate: ["quickInfoTemplatesFooter"], descendants: true }, { propertyName: "group_headerTooltipTemplate", first: true, predicate: ["groupHeaderTooltipTemplate"], descendants: true }, { propertyName: "childViews", first: true, predicate: ViewsDirective, descendants: true }, { propertyName: "childResources", first: true, predicate: ResourcesDirective, descendants: true }, { propertyName: "childHeaderRows", first: true, predicate: HeaderRowsDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
409
+ ScheduleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ScheduleComponent, selector: "ejs-schedule", inputs: { agendaDaysCount: "agendaDaysCount", allowDragAndDrop: "allowDragAndDrop", allowInline: "allowInline", allowKeyboardInteraction: "allowKeyboardInteraction", allowMultiCellSelection: "allowMultiCellSelection", allowMultiDrag: "allowMultiDrag", allowMultiRowSelection: "allowMultiRowSelection", allowResizing: "allowResizing", allowSwiping: "allowSwiping", calendarMode: "calendarMode", cellHeaderTemplate: "cellHeaderTemplate", cellTemplate: "cellTemplate", cssClass: "cssClass", currentView: "currentView", dateFormat: "dateFormat", dateHeaderTemplate: "dateHeaderTemplate", dateRangeTemplate: "dateRangeTemplate", dayHeaderTemplate: "dayHeaderTemplate", editorTemplate: "editorTemplate", enableAdaptiveUI: "enableAdaptiveUI", enableAllDayScroll: "enableAllDayScroll", enableHtmlSanitizer: "enableHtmlSanitizer", enablePersistence: "enablePersistence", enableRecurrenceValidation: "enableRecurrenceValidation", enableRtl: "enableRtl", endHour: "endHour", eventDragArea: "eventDragArea", eventSettings: "eventSettings", firstDayOfWeek: "firstDayOfWeek", firstMonthOfYear: "firstMonthOfYear", group: "group", headerIndentTemplate: "headerIndentTemplate", headerRows: "headerRows", height: "height", hideEmptyAgendaDays: "hideEmptyAgendaDays", locale: "locale", maxDate: "maxDate", minDate: "minDate", monthHeaderTemplate: "monthHeaderTemplate", monthsCount: "monthsCount", quickInfoOnSelectionEnd: "quickInfoOnSelectionEnd", quickInfoTemplates: "quickInfoTemplates", readonly: "readonly", resourceHeaderTemplate: "resourceHeaderTemplate", resources: "resources", rowAutoHeight: "rowAutoHeight", selectedDate: "selectedDate", showHeaderBar: "showHeaderBar", showQuickInfo: "showQuickInfo", showTimeIndicator: "showTimeIndicator", showWeekNumber: "showWeekNumber", showWeekend: "showWeekend", startHour: "startHour", timeFormat: "timeFormat", timeScale: "timeScale", timezone: "timezone", timezoneDataSource: "timezoneDataSource", views: "views", weekRule: "weekRule", width: "width", workDays: "workDays", workHours: "workHours" }, outputs: { actionBegin: "actionBegin", actionComplete: "actionComplete", actionFailure: "actionFailure", cellClick: "cellClick", cellDoubleClick: "cellDoubleClick", created: "created", dataBinding: "dataBinding", dataBound: "dataBound", destroyed: "destroyed", drag: "drag", dragStart: "dragStart", dragStop: "dragStop", eventClick: "eventClick", eventRendered: "eventRendered", hover: "hover", moreEventsClick: "moreEventsClick", navigating: "navigating", popupClose: "popupClose", popupOpen: "popupOpen", renderCell: "renderCell", resizeStart: "resizeStart", resizeStop: "resizeStop", resizing: "resizing", select: "select", currentViewChange: "currentViewChange", selectedDateChange: "selectedDateChange" }, queries: [{ propertyName: "dateHeaderTemplate", first: true, predicate: ["dateHeaderTemplate"], descendants: true }, { propertyName: "dateRangeTemplate", first: true, predicate: ["dateRangeTemplate"], descendants: true }, { propertyName: "dayHeaderTemplate", first: true, predicate: ["dayHeaderTemplate"], descendants: true }, { propertyName: "cellTemplate", first: true, predicate: ["cellTemplate"], descendants: true }, { propertyName: "cellHeaderTemplate", first: true, predicate: ["cellHeaderTemplate"], descendants: true }, { propertyName: "eventSettings_tooltipTemplate", first: true, predicate: ["eventSettingsTooltipTemplate"], descendants: true }, { propertyName: "eventSettings_template", first: true, predicate: ["eventSettingsTemplate"], descendants: true }, { propertyName: "editorTemplate", first: true, predicate: ["editorTemplate"], descendants: true }, { propertyName: "monthHeaderTemplate", first: true, predicate: ["monthHeaderTemplate"], descendants: true }, { propertyName: "timeScale_minorSlotTemplate", first: true, predicate: ["timeScaleMinorSlotTemplate"], descendants: true }, { propertyName: "timeScale_majorSlotTemplate", first: true, predicate: ["timeScaleMajorSlotTemplate"], descendants: true }, { propertyName: "resourceHeaderTemplate", first: true, predicate: ["resourceHeaderTemplate"], descendants: true }, { propertyName: "headerIndentTemplate", first: true, predicate: ["headerIndentTemplate"], descendants: true }, { propertyName: "quickInfoTemplates_header", first: true, predicate: ["quickInfoTemplatesHeader"], descendants: true }, { propertyName: "quickInfoTemplates_content", first: true, predicate: ["quickInfoTemplatesContent"], descendants: true }, { propertyName: "quickInfoTemplates_footer", first: true, predicate: ["quickInfoTemplatesFooter"], descendants: true }, { propertyName: "group_headerTooltipTemplate", first: true, predicate: ["groupHeaderTooltipTemplate"], descendants: true }, { propertyName: "childViews", first: true, predicate: ViewsDirective, descendants: true }, { propertyName: "childResources", first: true, predicate: ResourcesDirective, descendants: true }, { propertyName: "childHeaderRows", first: true, predicate: HeaderRowsDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
404
410
  __decorate([
405
411
  Template()
406
412
  ], ScheduleComponent.prototype, "dateHeaderTemplate", void 0);
413
+ __decorate([
414
+ Template()
415
+ ], ScheduleComponent.prototype, "dateRangeTemplate", void 0);
407
416
  __decorate([
408
417
  Template()
409
418
  ], ScheduleComponent.prototype, "dayHeaderTemplate", void 0);
@@ -469,6 +478,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
469
478
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i0.Injector }]; }, propDecorators: { dateHeaderTemplate: [{
470
479
  type: ContentChild,
471
480
  args: ['dateHeaderTemplate']
481
+ }], dateRangeTemplate: [{
482
+ type: ContentChild,
483
+ args: ['dateRangeTemplate']
472
484
  }], dayHeaderTemplate: [{
473
485
  type: ContentChild,
474
486
  args: ['dayHeaderTemplate']
@@ -630,7 +642,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
630
642
  }]
631
643
  }] });
632
644
 
633
- const inputs = ['calendarMode', 'cssClass', 'dateFormat', 'enablePersistence', 'enableRtl', 'firstDayOfWeek', 'frequencies', 'locale', 'maxDate', 'minDate', 'selectedType', 'startDate', 'value'];
645
+ const inputs = ['calendarMode', 'cssClass', 'dateFormat', 'enablePersistence', 'enableRtl', 'endTypes', 'firstDayOfWeek', 'frequencies', 'locale', 'maxDate', 'minDate', 'selectedType', 'startDate', 'value'];
634
646
  const outputs = ['change'];
635
647
  const twoWays = [];
636
648
  /**
@@ -667,7 +679,7 @@ let RecurrenceEditorComponent = class RecurrenceEditorComponent extends Recurren
667
679
  }
668
680
  };
669
681
  RecurrenceEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: RecurrenceEditorComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
670
- RecurrenceEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: RecurrenceEditorComponent, selector: "ejs-recurrenceeditor", inputs: { calendarMode: "calendarMode", cssClass: "cssClass", dateFormat: "dateFormat", enablePersistence: "enablePersistence", enableRtl: "enableRtl", firstDayOfWeek: "firstDayOfWeek", frequencies: "frequencies", locale: "locale", maxDate: "maxDate", minDate: "minDate", selectedType: "selectedType", startDate: "startDate", value: "value" }, outputs: { change: "change" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
682
+ RecurrenceEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: RecurrenceEditorComponent, selector: "ejs-recurrenceeditor", inputs: { calendarMode: "calendarMode", cssClass: "cssClass", dateFormat: "dateFormat", enablePersistence: "enablePersistence", enableRtl: "enableRtl", endTypes: "endTypes", firstDayOfWeek: "firstDayOfWeek", frequencies: "frequencies", locale: "locale", maxDate: "maxDate", minDate: "minDate", selectedType: "selectedType", startDate: "startDate", value: "value" }, outputs: { change: "change" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
671
683
  RecurrenceEditorComponent = __decorate([
672
684
  ComponentMixins([ComponentBase])
673
685
  ], RecurrenceEditorComponent);