@asadi/angular-date-components
Version:
`Angular Date Components` is a comprehensive angular library of date-related components designed to meet the needs of applications that require localization based on various calendar systems. While the package currently includes two powerful components (S
139 lines • 14.8 kB
JavaScript
import { Directive, EventEmitter, Input, Output } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
import * as i0 from "@angular/core";
/**
* The `ADCResourceSchedulerSource` directive is used to manage and interact with the data source
* for the resource scheduler. It provides input properties for resources, events, holidays, and weekends,
* and emits output events for date range changes, event selection, and date range selection.
*/
export class ADCResourceSchedulerSource {
constructor() {
this._events = new BehaviorSubject([]);
this._resources = new BehaviorSubject([]);
this._holidays = new BehaviorSubject([]);
this._weekends = new BehaviorSubject([]);
/**
* Event emitted when a date range is selected.
*/
this.dateRangeSelect = new EventEmitter();
/**
* Event emitted when an event is selected.
*/
this.eventSelect = new EventEmitter();
/**
* Event emitted when the date range changes.
*/
this.dateRangeChange = new EventEmitter();
this.startOf = null;
}
/**
* Input property for setting the list of events in the resource scheduler.
* @param value The events to be set in the scheduler.
*/
set events(value) {
if (value == null) {
this._events.next([]);
}
else {
this._events.next(value);
}
}
get events() {
return this._events.value;
}
/**
* Input property for setting the list of resources in the resource scheduler.
* @param value The resources to be set in the scheduler.
*/
set resources(value) {
if (value == null) {
this._resources.next([]);
}
else {
this._resources.next(value);
}
}
get resources() {
return this._resources.value;
}
/**
* Input property for setting the list of holidays in the resource scheduler.
* @param value The holidays to be set in the scheduler.
*/
set holidays(value) {
if (value == null) {
this._holidays.next([]);
}
else {
this._holidays.next(value);
}
}
get holidays() {
return this._holidays.value;
}
/**
* Input property for setting the list of weekends in the resource scheduler.
* @param value The weekends to be set in the scheduler.
*/
set weekends(value) {
if (value == null) {
this._weekends.next([]);
}
else {
this._weekends.next(value);
}
}
get weekends() {
return this._weekends.value;
}
resourceChanges() {
return this._resources.asObservable();
}
eventChanges() {
return this._events.asObservable();
}
holidayChanges() {
return this._holidays.asObservable();
}
weekendChanges() {
return this._weekends.asObservable();
}
onEventSelect(e) {
this.eventSelect.emit(e);
}
onDateRangeSelect(e) {
this.dateRangeSelect.next(e);
}
;
onDateRangeChange(e) {
this.dateRangeChange.emit(e);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ADCResourceSchedulerSource, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: ADCResourceSchedulerSource, isStandalone: true, selector: "[ResourceSchedulerSource]", inputs: { holidays: "holidays", weekends: "weekends", startOf: "startOf" }, outputs: { dateRangeSelect: "dateRangeSelect", eventSelect: "eventSelect", dateRangeChange: "dateRangeChange" }, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ADCResourceSchedulerSource, decorators: [{
type: Directive,
args: [{
selector: '[ResourceSchedulerSource]',
standalone: true
}]
}], propDecorators: { dateRangeSelect: [{
type: Output,
args: ['dateRangeSelect']
}], eventSelect: [{
type: Output,
args: ['eventSelect']
}], dateRangeChange: [{
type: Output,
args: ['dateRangeChange']
}], holidays: [{
type: Input,
args: ["holidays"]
}], weekends: [{
type: Input,
args: ["weekends"]
}], startOf: [{
type: Input,
args: ['startOf']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRjLXJlc291cmNlLXNjaGVkdWxlci1zb3VyY2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNhZGkvYW5ndWxhci1kYXRlLWNvbXBvbmVudHMvcmVzb3VyY2Utc2NoZWR1bGVyL3NyYy9kaXJlY3RpdmVzL2FkYy1yZXNvdXJjZS1zY2hlZHVsZXItc291cmNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBR25EOzs7O0dBSUc7QUFLSCxNQUFNLE9BQU8sMEJBQTBCO0lBSnZDO1FBTVUsWUFBTyxHQUFtRCxJQUFJLGVBQWUsQ0FBRSxFQUFtQyxDQUFDLENBQUM7UUFDcEgsZUFBVSxHQUFzRCxJQUFJLGVBQWUsQ0FBRSxFQUFzQyxDQUFDLENBQUM7UUFDN0gsY0FBUyxHQUE4QixJQUFJLGVBQWUsQ0FBRSxFQUFlLENBQUMsQ0FBQztRQUM3RSxjQUFTLEdBQThCLElBQUksZUFBZSxDQUFFLEVBQWUsQ0FBQyxDQUFDO1FBRW5GOztTQUVDO1FBRUssb0JBQWUsR0FBa0QsSUFBSSxZQUFZLEVBQW1DLENBQUM7UUFFM0g7O1NBRUM7UUFFSyxnQkFBVyxHQUF3RCxJQUFJLFlBQVksRUFBeUMsQ0FBQztRQUVwSTs7VUFFRTtRQUVLLG9CQUFlLEdBQTJDLElBQUksWUFBWSxFQUE0QixDQUFDO1FBc0YvRyxZQUFPLEdBQWtCLElBQUksQ0FBQztLQW9DL0I7SUF4SEc7OztLQUdDO0lBQ0gsSUFBSSxNQUFNLENBQUMsS0FBbUM7UUFFNUMsSUFBRyxLQUFLLElBQUksSUFBSSxFQUNoQjtZQUNFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZCO2FBRUQ7WUFDRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFDRCxJQUFJLE1BQU07UUFFUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFQzs7O0tBR0M7SUFDSCxJQUFJLFNBQVMsQ0FBQyxLQUFzQztRQUVsRCxJQUFHLEtBQUssSUFBSSxJQUFJLEVBQ2hCO1lBQ0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDMUI7YUFFRDtZQUNFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzdCO0lBRUgsQ0FBQztJQUNELElBQUksU0FBUztRQUVYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVDOzs7S0FHQztJQUNILElBQ0ksUUFBUSxDQUFDLEtBQWU7UUFFMUIsSUFBRyxLQUFLLElBQUksSUFBSSxFQUNoQjtZQUNFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3pCO2FBRUQ7WUFDRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM1QjtJQUNILENBQUM7SUFDRCxJQUFJLFFBQVE7UUFFVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFFQzs7O0tBR0M7SUFDSCxJQUNJLFFBQVEsQ0FBQyxLQUFlO1FBRTFCLElBQUcsS0FBSyxJQUFJLElBQUksRUFDaEI7WUFDRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN6QjthQUVEO1lBQ0UsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBQ0QsSUFBSSxRQUFRO1FBRVYsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBS0QsZUFBZTtRQUViLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsWUFBWTtRQUVWLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsY0FBYztRQUVaLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsY0FBYztRQUVaLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsYUFBYSxDQUFDLENBQXdDO1FBRXBELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxDQUFrQztRQUVsRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQUEsQ0FBQztJQUVGLGlCQUFpQixDQUFDLENBQTJCO1FBRTNDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7OEdBaEpVLDBCQUEwQjtrR0FBMUIsMEJBQTBCOzsyRkFBMUIsMEJBQTBCO2tCQUp0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFZUyxlQUFlO3NCQUR0QixNQUFNO3VCQUFDLGlCQUFpQjtnQkFPakIsV0FBVztzQkFEbEIsTUFBTTt1QkFBQyxhQUFhO2dCQU9iLGVBQWU7c0JBRHRCLE1BQU07dUJBQUMsaUJBQWlCO2dCQWlEckIsUUFBUTtzQkFEWCxLQUFLO3VCQUFDLFVBQVU7Z0JBc0JiLFFBQVE7c0JBRFgsS0FBSzt1QkFBQyxVQUFVO2dCQWtCakIsT0FBTztzQkFETixLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBRENJUmVzb3VyY2VTY2hlZHVsZXJFdmVudCwgQURDSVJlc291cmNlU2NoZWR1bGVyRXZlbnRTZWxlY3RFdmVudCwgQURDSVJlc291cmNlU2NoZWR1bGVyUmVzb3VyY2UsIEFEQ0lSZXNvdXJjZVNjaGVkdWxlclRhYmxlRXZlbnQgfSBmcm9tICcuLi9pbnRlcmZhY2UuZ2xvYmFsJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFEQ0lEYXRlUmFuZ2VDaGFuZ2VFdmVudCB9IGZyb20gJ0Bhc2FkaS9hbmd1bGFyLWRhdGUtY29tcG9uZW50cy9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgYEFEQ1Jlc291cmNlU2NoZWR1bGVyU291cmNlYCBkaXJlY3RpdmUgaXMgdXNlZCB0byBtYW5hZ2UgYW5kIGludGVyYWN0IHdpdGggdGhlIGRhdGEgc291cmNlIFxyXG4gKiBmb3IgdGhlIHJlc291cmNlIHNjaGVkdWxlci4gSXQgcHJvdmlkZXMgaW5wdXQgcHJvcGVydGllcyBmb3IgcmVzb3VyY2VzLCBldmVudHMsIGhvbGlkYXlzLCBhbmQgd2Vla2VuZHMsXHJcbiAqIGFuZCBlbWl0cyBvdXRwdXQgZXZlbnRzIGZvciBkYXRlIHJhbmdlIGNoYW5nZXMsIGV2ZW50IHNlbGVjdGlvbiwgYW5kIGRhdGUgcmFuZ2Ugc2VsZWN0aW9uLlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbUmVzb3VyY2VTY2hlZHVsZXJTb3VyY2VdJyxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBRENSZXNvdXJjZVNjaGVkdWxlclNvdXJjZSB7XHJcblxyXG4gIHByaXZhdGUgX2V2ZW50czogQmVoYXZpb3JTdWJqZWN0PEFEQ0lSZXNvdXJjZVNjaGVkdWxlckV2ZW50W10+ICA9IG5ldyBCZWhhdmlvclN1YmplY3QoKFtdIGFzIEFEQ0lSZXNvdXJjZVNjaGVkdWxlckV2ZW50W10pKTtcclxuICBwcml2YXRlIF9yZXNvdXJjZXM6IEJlaGF2aW9yU3ViamVjdDxBRENJUmVzb3VyY2VTY2hlZHVsZXJSZXNvdXJjZVtdPiAgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KChbXSBhcyBBRENJUmVzb3VyY2VTY2hlZHVsZXJSZXNvdXJjZVtdKSk7XHJcbiAgcHJpdmF0ZSBfaG9saWRheXM6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KChbXSBhcyBzdHJpbmdbXSkpO1xyXG4gIHByaXZhdGUgX3dlZWtlbmRzOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgoW10gYXMgbnVtYmVyW10pKTtcclxuXHJcbiAgICAvKipcclxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYSBkYXRlIHJhbmdlIGlzIHNlbGVjdGVkLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoJ2RhdGVSYW5nZVNlbGVjdCcpXHJcbiAgcHJpdmF0ZSBkYXRlUmFuZ2VTZWxlY3Q6IEV2ZW50RW1pdHRlcjxBRENJUmVzb3VyY2VTY2hlZHVsZXJUYWJsZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QURDSVJlc291cmNlU2NoZWR1bGVyVGFibGVFdmVudD4oKTtcclxuXHJcbiAgICAvKipcclxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYW4gZXZlbnQgaXMgc2VsZWN0ZWQuXHJcbiAgICovXHJcbiAgQE91dHB1dCgnZXZlbnRTZWxlY3QnKVxyXG4gIHByaXZhdGUgZXZlbnRTZWxlY3Q6IEV2ZW50RW1pdHRlcjxBRENJUmVzb3VyY2VTY2hlZHVsZXJFdmVudFNlbGVjdEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QURDSVJlc291cmNlU2NoZWR1bGVyRXZlbnRTZWxlY3RFdmVudD4oKTtcclxuXHJcbiAgIC8qKlxyXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgZGF0ZSByYW5nZSBjaGFuZ2VzLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoJ2RhdGVSYW5nZUNoYW5nZScpXHJcbiAgcHJpdmF0ZSBkYXRlUmFuZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxBRENJRGF0ZVJhbmdlQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBRENJRGF0ZVJhbmdlQ2hhbmdlRXZlbnQ+KCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICogSW5wdXQgcHJvcGVydHkgZm9yIHNldHRpbmcgdGhlIGxpc3Qgb2YgZXZlbnRzIGluIHRoZSByZXNvdXJjZSBzY2hlZHVsZXIuXHJcbiAgICogQHBhcmFtIHZhbHVlIFRoZSBldmVudHMgdG8gYmUgc2V0IGluIHRoZSBzY2hlZHVsZXIuXHJcbiAgICovXHJcbiAgc2V0IGV2ZW50cyh2YWx1ZTogQURDSVJlc291cmNlU2NoZWR1bGVyRXZlbnRbXSlcclxuICB7XHJcbiAgICBpZih2YWx1ZSA9PSBudWxsKVxyXG4gICAge1xyXG4gICAgICB0aGlzLl9ldmVudHMubmV4dChbXSk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICB7XHJcbiAgICAgIHRoaXMuX2V2ZW50cy5uZXh0KHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IGV2ZW50cygpOiBBRENJUmVzb3VyY2VTY2hlZHVsZXJFdmVudFtdXHJcbiAge1xyXG4gICAgcmV0dXJuIHRoaXMuX2V2ZW50cy52YWx1ZTtcclxuICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICogSW5wdXQgcHJvcGVydHkgZm9yIHNldHRpbmcgdGhlIGxpc3Qgb2YgcmVzb3VyY2VzIGluIHRoZSByZXNvdXJjZSBzY2hlZHVsZXIuXHJcbiAgICogQHBhcmFtIHZhbHVlIFRoZSByZXNvdXJjZXMgdG8gYmUgc2V0IGluIHRoZSBzY2hlZHVsZXIuXHJcbiAgICovXHJcbiAgc2V0IHJlc291cmNlcyh2YWx1ZTogQURDSVJlc291cmNlU2NoZWR1bGVyUmVzb3VyY2VbXSlcclxuICB7XHJcbiAgICBpZih2YWx1ZSA9PSBudWxsKVxyXG4gICAge1xyXG4gICAgICB0aGlzLl9yZXNvdXJjZXMubmV4dChbXSk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICB7XHJcbiAgICAgIHRoaXMuX3Jlc291cmNlcy5uZXh0KHZhbHVlKTtcclxuICAgIH1cclxuICAgIFxyXG4gIH1cclxuICBnZXQgcmVzb3VyY2VzKCk6IEFEQ0lSZXNvdXJjZVNjaGVkdWxlclJlc291cmNlW11cclxuICB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VzLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgICAvKipcclxuICAgKiBJbnB1dCBwcm9wZXJ0eSBmb3Igc2V0dGluZyB0aGUgbGlzdCBvZiBob2xpZGF5cyBpbiB0aGUgcmVzb3VyY2Ugc2NoZWR1bGVyLlxyXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgaG9saWRheXMgdG8gYmUgc2V0IGluIHRoZSBzY2hlZHVsZXIuXHJcbiAgICovXHJcbiAgQElucHV0KFwiaG9saWRheXNcIilcclxuICBzZXQgaG9saWRheXModmFsdWU6IHN0cmluZ1tdKVxyXG4gIHtcclxuICAgIGlmKHZhbHVlID09IG51bGwpXHJcbiAgICB7XHJcbiAgICAgIHRoaXMuX2hvbGlkYXlzLm5leHQoW10pO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAge1xyXG4gICAgICB0aGlzLl9ob2xpZGF5cy5uZXh0KHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IGhvbGlkYXlzKCk6IHN0cmluZ1tdXHJcbiAge1xyXG4gICAgcmV0dXJuIHRoaXMuX2hvbGlkYXlzLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgICAvKipcclxuICAgKiBJbnB1dCBwcm9wZXJ0eSBmb3Igc2V0dGluZyB0aGUgbGlzdCBvZiB3ZWVrZW5kcyBpbiB0aGUgcmVzb3VyY2Ugc2NoZWR1bGVyLlxyXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgd2Vla2VuZHMgdG8gYmUgc2V0IGluIHRoZSBzY2hlZHVsZXIuXHJcbiAgICovXHJcbiAgQElucHV0KFwid2Vla2VuZHNcIilcclxuICBzZXQgd2Vla2VuZHModmFsdWU6IG51bWJlcltdKVxyXG4gIHtcclxuICAgIGlmKHZhbHVlID09IG51bGwpXHJcbiAgICB7XHJcbiAgICAgIHRoaXMuX3dlZWtlbmRzLm5leHQoW10pO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAge1xyXG4gICAgICB0aGlzLl93ZWVrZW5kcy5uZXh0KHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IHdlZWtlbmRzKCk6IG51bWJlcltdXHJcbiAge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dlZWtlbmRzLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCdzdGFydE9mJylcclxuICBzdGFydE9mOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgcmVzb3VyY2VDaGFuZ2VzKCk6IE9ic2VydmFibGU8QURDSVJlc291cmNlU2NoZWR1bGVyUmVzb3VyY2VbXT5cclxuICB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VzLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgZXZlbnRDaGFuZ2VzKCk6IE9ic2VydmFibGU8QURDSVJlc291cmNlU2NoZWR1bGVyRXZlbnRbXT5cclxuICB7XHJcbiAgICByZXR1cm4gdGhpcy5fZXZlbnRzLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgaG9saWRheUNoYW5nZXMoKTogT2JzZXJ2YWJsZTxzdHJpbmdbXT5cclxuICB7XHJcbiAgICByZXR1cm4gdGhpcy5faG9saWRheXMuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICB3ZWVrZW5kQ2hhbmdlcygpOiBPYnNlcnZhYmxlPG51bWJlcltdPlxyXG4gIHtcclxuICAgIHJldHVybiB0aGlzLl93ZWVrZW5kcy5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIG9uRXZlbnRTZWxlY3QoZTogQURDSVJlc291cmNlU2NoZWR1bGVyRXZlbnRTZWxlY3RFdmVudCk6IHZvaWRcclxuICB7XHJcbiAgICB0aGlzLmV2ZW50U2VsZWN0LmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICBvbkRhdGVSYW5nZVNlbGVjdChlOiBBRENJUmVzb3VyY2VTY2hlZHVsZXJUYWJsZUV2ZW50KVxyXG4gIHtcclxuICAgIHRoaXMuZGF0ZVJhbmdlU2VsZWN0Lm5leHQoZSk7XHJcbiAgfTtcclxuXHJcbiAgb25EYXRlUmFuZ2VDaGFuZ2UoZTogQURDSURhdGVSYW5nZUNoYW5nZUV2ZW50KTogdm9pZFxyXG4gIHtcclxuICAgIHRoaXMuZGF0ZVJhbmdlQ2hhbmdlLmVtaXQoZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==