Latest Threat Research:SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains.Details
Socket
Book a DemoInstallSign in
Socket

angularx-flatpickr

Package Overview
Dependencies
Maintainers
1
Versions
29
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

angularx-flatpickr - npm Package Compare versions

Comparing version
8.0.0
to
8.1.0
+7
-0
CHANGELOG.md

@@ -5,2 +5,9 @@ # Changelog

## [8.1.0](https://github.com/mattlewis92/angularx-flatpickr/compare/v8.0.0...v8.1.0) (2024-11-28)
### Features
* convert to standalone ([73d51bc](https://github.com/mattlewis92/angularx-flatpickr/commit/73d51bce7f565f86790c77fb4b261ec4bdf86649)), closes [#57](https://github.com/mattlewis92/angularx-flatpickr/issues/57) [#56](https://github.com/mattlewis92/angularx-flatpickr/issues/56)
## [8.0.0](https://github.com/mattlewis92/angularx-flatpickr/compare/v7.3.0...v8.0.0) (2024-08-21)

@@ -7,0 +14,0 @@

+3
-2

@@ -245,3 +245,3 @@ import { Directive, Input, Output, EventEmitter, forwardRef, HostListener, PLATFORM_ID, Inject, } from '@angular/core';

static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FlatpickrDirective, deps: [{ token: i0.ElementRef }, { token: i1.FlatpickrDefaults }, { token: i0.Renderer2 }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: FlatpickrDirective, selector: "[mwlFlatpickr]", inputs: { options: "options", altFormat: "altFormat", altInput: "altInput", altInputClass: "altInputClass", allowInput: "allowInput", allowInvalidPreload: "allowInvalidPreload", appendTo: "appendTo", ariaDateFormat: "ariaDateFormat", clickOpens: "clickOpens", dateFormat: "dateFormat", defaultHour: "defaultHour", defaultMinute: "defaultMinute", defaultSeconds: "defaultSeconds", disable: "disable", disableMobile: "disableMobile", enable: "enable", enableTime: "enableTime", enableSeconds: "enableSeconds", formatDate: "formatDate", hourIncrement: "hourIncrement", inline: "inline", maxDate: "maxDate", minDate: "minDate", maxTime: "maxTime", minTime: "minTime", minuteIncrement: "minuteIncrement", mode: "mode", nextArrow: "nextArrow", noCalendar: "noCalendar", now: "now", parseDate: "parseDate", prevArrow: "prevArrow", shorthandCurrentMonth: "shorthandCurrentMonth", showMonths: "showMonths", static: "static", time24hr: "time24hr", weekNumbers: "weekNumbers", getWeek: "getWeek", wrap: "wrap", plugins: "plugins", locale: "locale", convertModelValue: "convertModelValue", monthSelectorType: "monthSelectorType", ignoredFocusElements: "ignoredFocusElements" }, outputs: { flatpickrReady: "flatpickrReady", flatpickrChange: "flatpickrChange", flatpickrValueUpdate: "flatpickrValueUpdate", flatpickrOpen: "flatpickrOpen", flatpickrClose: "flatpickrClose", flatpickrMonthChange: "flatpickrMonthChange", flatpickrYearChange: "flatpickrYearChange", flatpickrDayCreate: "flatpickrDayCreate" }, host: { listeners: { "blur": "onTouchedFn()", "input": "inputChanged()" } }, providers: [FLATPICKR_CONTROL_VALUE_ACCESSOR], exportAs: ["mwlFlatpickr"], usesOnChanges: true, ngImport: i0 }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: FlatpickrDirective, isStandalone: true, selector: "[mwlFlatpickr]", inputs: { options: "options", altFormat: "altFormat", altInput: "altInput", altInputClass: "altInputClass", allowInput: "allowInput", allowInvalidPreload: "allowInvalidPreload", appendTo: "appendTo", ariaDateFormat: "ariaDateFormat", clickOpens: "clickOpens", dateFormat: "dateFormat", defaultHour: "defaultHour", defaultMinute: "defaultMinute", defaultSeconds: "defaultSeconds", disable: "disable", disableMobile: "disableMobile", enable: "enable", enableTime: "enableTime", enableSeconds: "enableSeconds", formatDate: "formatDate", hourIncrement: "hourIncrement", inline: "inline", maxDate: "maxDate", minDate: "minDate", maxTime: "maxTime", minTime: "minTime", minuteIncrement: "minuteIncrement", mode: "mode", nextArrow: "nextArrow", noCalendar: "noCalendar", now: "now", parseDate: "parseDate", prevArrow: "prevArrow", shorthandCurrentMonth: "shorthandCurrentMonth", showMonths: "showMonths", static: "static", time24hr: "time24hr", weekNumbers: "weekNumbers", getWeek: "getWeek", wrap: "wrap", plugins: "plugins", locale: "locale", convertModelValue: "convertModelValue", monthSelectorType: "monthSelectorType", ignoredFocusElements: "ignoredFocusElements" }, outputs: { flatpickrReady: "flatpickrReady", flatpickrChange: "flatpickrChange", flatpickrValueUpdate: "flatpickrValueUpdate", flatpickrOpen: "flatpickrOpen", flatpickrClose: "flatpickrClose", flatpickrMonthChange: "flatpickrMonthChange", flatpickrYearChange: "flatpickrYearChange", flatpickrDayCreate: "flatpickrDayCreate" }, host: { listeners: { "blur": "onTouchedFn()", "input": "inputChanged()" } }, providers: [FLATPICKR_CONTROL_VALUE_ACCESSOR], exportAs: ["mwlFlatpickr"], usesOnChanges: true, ngImport: i0 }); }
}

@@ -254,2 +254,3 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FlatpickrDirective, decorators: [{

exportAs: 'mwlFlatpickr',
standalone: true,
}]

@@ -370,2 +371,2 @@ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.FlatpickrDefaults }, { type: i0.Renderer2 }, { type: Object, decorators: [{

}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdHBpY2tyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXJ4LWZsYXRwaWNrci9zcmMvbGliL2ZsYXRwaWNrci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFHVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFJWixVQUFVLEVBQ1YsWUFBWSxFQUVaLFdBQVcsRUFDWCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFNdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBYXBELE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFRO0lBQ25ELE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztJQUNqRCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFPRixNQUFNLE9BQU8sa0JBQWtCO0lBb1Q3QixZQUNVLEdBQWUsRUFDZixRQUEyQixFQUMzQixRQUFtQixFQUNFLFVBQWtCO1FBSHZDLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixhQUFRLEdBQVIsUUFBUSxDQUFtQjtRQUMzQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ0UsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQXJUakQ7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQWtCRztRQUNNLFlBQU8sR0FBK0IsRUFBRSxDQUFDO1FBd05sRDs7V0FFRztRQUNNLHlCQUFvQixHQUFrQixFQUFFLENBQUM7UUFFbEQ7O1dBRUc7UUFFSCxtQkFBYyxHQUF5QyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTFFOztXQUVHO1FBRUgsb0JBQWUsR0FBeUMsSUFBSSxZ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TztzQkFBZixLQUFLO2dCQUtHLElBQUk7c0JBQVosS0FBSztnQkFLRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQUtHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFLRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBS0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQU1OLGNBQWM7c0JBRGIsTUFBTTtnQkFPUCxlQUFlO3NCQURkLE1BQU07Z0JBT1Asb0JBQW9CO3NCQURuQixNQUFNO2dCQVFQLGFBQWE7c0JBRFosTUFBTTtnQkFPUCxjQUFjO3NCQURiLE1BQU07Z0JBT1Asb0JBQW9CO3NCQURuQixNQUFNO2dCQVFQLG1CQUFtQjtzQkFEbEIsTUFBTTtnQkFRUCxrQkFBa0I7c0JBRGpCLE1BQU07Z0JBZVAsV0FBVztzQkFEVixZQUFZO3VCQUFDLE1BQU07Z0JBc0xwQixZQUFZO3NCQURYLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgZm9yd2FyZFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBSZW5kZXJlcjIsXG4gIFBMQVRGT1JNX0lELFxuICBJbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRmxhdHBpY2tyRGVmYXVsdHMsXG4gIERpc2FibGVFbmFibGVEYXRlLFxuICBGbGF0cGlja3JEZWZhdWx0c0ludGVyZmFjZSxcbn0gZnJvbSAnLi9mbGF0cGlja3ItZGVmYXVsdHMuc2VydmljZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgZmxhdHBpY2tyIGZyb20gJ2ZsYXRwaWNrcic7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxhdFBpY2tyT3V0cHV0T3B0aW9ucyB7XG4gIHNlbGVjdGVkRGF0ZXM6IERhdGVbXTtcbiAgZGF0ZVN0cmluZzogc3RyaW5nO1xuICBpbnN0YW5jZTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsYXRQaWNrckRheUNyZWF0ZU91dHB1dE9wdGlvbnNcbiAgZXh0ZW5kcyBGbGF0UGlja3JPdXRwdXRPcHRpb25zIHtcbiAgZGF5RWxlbWVudDogSFRNTEVsZW1lbnQ7XG59XG5cbmV4cG9ydCBjb25zdCBGTEFUUElDS1JfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRmxhdHBpY2tyRGlyZWN0aXZlKSxcbiAgbXVsdGk6IHRydWUsXG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbXdsRmxhdHBpY2tyXScsXG4gIHByb3ZpZGVyczogW0ZMQVRQSUNLUl9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SXSxcbiAgZXhwb3J0QXM6ICdtd2xGbGF0cGlja3InLFxufSlcbmV4cG9ydCBjbGFzcyBGbGF0cGlja3JEaXJlY3RpdmVcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3JcbntcbiAgLyoqXG4gICAqIE9iamVjdC1vcHRpb25zIHRoYXQgY2FuIGJlIHVzZXIgZm9yIG11bHRpcGxlIGluc3RhbmNlcyBvZiBGbGF0cGlja3IuXG4gICAqIE9wdGlvbiBmcm9tIHRoaXMgb2JqZWN0IGlzIGFwcGxpZWQgb25seSBpZiBzcGVjaWZpYyBvcHRpb24gaXMgbm90IHNwZWNpZmllZC5cbiAgICogRXhhbXBsZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBvcHRpb25zOiBGbGF0cGlja3JEZWZhdWx0c0ludGVyZmFjZSA9IHtcbiAgICogICAgICBhbHRGb3JtYXQ6ICdkL20vWScsICAgLy8gd2lsbCBiZSBpZ25vcmVkIHNpbmNlIGFsdEZvcm1hdCBpcyBwcm92aWRlZCB2aWEgc3BlY2lmaWMgYXR0cmlidXRlXG4gICAqICAgICAgYWx0SW5wdXQ6IHRydWUgICAgICAgIC8vIHdpbGwgYmUgdXNlZCBzaW5jZSBzcGVjaWZpYyBhdHRyaWJ1dGUgaXMgbm90IHByb3ZpZGVkXG4gICAqIH07XG4gICAqIGBgYFxuICAgKiBgYGBodG1sXG4gICAqIDxpbnB1dFxuICAgKiAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICogICB0eXBlPVwidGV4dFwiXG4gICAqICAgbXdsRmxhdHBpY2tyXG4gICAqICAgW29wdGlvbnNdPVwib3B0aW9uc1wiXG4gICAqICAgYWx0Rm9ybWF0PVwiZC9tL1lcIj5cbiAgICogYGBgXG4gICAqL1xuICBASW5wdXQoKSBvcHRpb25zOiBGbGF0cGlja3JEZWZhdWx0c0ludGVyZmFjZSA9IHt9O1xuXG4gIC8qKlxuICAgKiBFeGFjdGx5IHRoZSBzYW1lIGFzIGRhdGUgZm9ybWF0LCBidXQgZm9yIHRoZSBhbHRJbnB1dCBmaWVsZC5cbiAgICovXG4gIEBJbnB1dCgpIGFsdEZvcm1hdDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBcdFNob3cgdGhlIHVzZXIgYSByZWFkYWJsZSBkYXRlIChhcyBwZXIgYWx0Rm9ybWF0KSwgYnV0IHJldHVybiBzb21ldGhpbmcgdG90YWxseSBkaWZmZXJlbnQgdG8gdGhlIHNlcnZlci5cbiAgICovXG4gIEBJbnB1dCgpIGFsdElucHV0OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGlzIGNsYXNzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGlucHV0IGVsZW1lbnQgY3JlYXRlZCBieSB0aGUgYWx0SW5wdXQgb3B0aW9uLlxuICAgKiBOb3RlIHRoYXQgYGFsdElucHV0YCBhbHJlYWR5IGluaGVyaXRzIGNsYXNzZXMgZnJvbSB0aGUgb3JpZ2luYWwgaW5wdXQuXG4gICAqL1xuICBASW5wdXQoKSBhbHRJbnB1dENsYXNzOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFsbG93cyB0aGUgdXNlciB0byBlbnRlciBhIGRhdGUgZGlyZWN0bHkgaW5wdXQgdGhlIGlucHV0IGZpZWxkLiBCeSBkZWZhdWx0LCBkaXJlY3QgZW50cnkgaXMgZGlzYWJsZWQuXG4gICAqL1xuICBASW5wdXQoKSBhbGxvd0lucHV0OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBbGxvd3MgdGhlIHByZWxvYWRpbmcgb2YgYW4gaW52YWxpZCBkYXRlLiBXaGVuIGRpc2FibGVkLCB0aGUgZmllbGQgd2lsbCBiZSBjbGVhcmVkIGlmIHRoZSBwcm92aWRlZCBkYXRlIGlzIGludmFsaWRcbiAgICovXG4gIEBJbnB1dCgpIGFsbG93SW52YWxpZFByZWxvYWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluc3RlYWQgb2YgYGJvZHlgLCBhcHBlbmRzIHRoZSBjYWxlbmRhciB0byB0aGUgc3BlY2lmaWVkIG5vZGUgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpIGFwcGVuZFRvOiBIVE1MRWxlbWVudDtcblxuICAvKipcbiAgICogRGVmaW5lcyBob3cgdGhlIGRhdGUgd2lsbCBiZSBmb3JtYXR0ZWQgaW4gdGhlIGFyaWEtbGFiZWwgZm9yIGNhbGVuZGFyIGRheXMsIHVzaW5nIHRoZSBzYW1lIHRva2VucyBhcyBkYXRlRm9ybWF0LiBJZiB5b3UgY2hhbmdlIHRoaXMsIHlvdSBzaG91bGQgY2hvb3NlIGEgdmFsdWUgdGhhdCB3aWxsIG1ha2Ugc2Vuc2UgaWYgYSBzY3JlZW4gcmVhZGVyIHJlYWRzIGl0IG91dCBsb3VkLlxuICAgKi9cbiAgQElucHV0KCkgYXJpYURhdGVGb3JtYXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgY2xpY2tpbmcgb24gdGhlIGlucHV0IHNob3VsZCBvcGVuIHRoZSBwaWNrZXIuXG4gICAqIFlvdSBjb3VsZCBkaXNhYmxlIHRoaXMgaWYgeW91IHdpc2ggdG8gb3BlbiB0aGUgY2FsZW5kYXIgbWFudWFsbHkgYHdpdGgub3BlbigpYC5cbiAgICovXG4gIEBJbnB1dCgpIGNsaWNrT3BlbnM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgc3RyaW5nIG9mIGNoYXJhY3RlcnMgd2hpY2ggYXJlIHVzZWQgdG8gZGVmaW5lIGhvdyB0aGUgZGF0ZSB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgaW5wdXQgYm94LlxuICAgKiBUaGUgc3VwcG9ydGVkIGNoYXJhY3RlcnMgYXJlIGRlZmluZWQgaW4gdGhlIHRhYmxlIGJlbG93LlxuICAgKi9cbiAgQElucHV0KCkgZGF0ZUZvcm1hdDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIHZhbHVlIG9mIHRoZSBob3VyIGVsZW1lbnQuXG4gICAqL1xuICBASW5wdXQoKSBkZWZhdWx0SG91cj86IG51bWJlcjtcbiAgLyoqXG4gICAqIEluaXRpYWwgdmFsdWUgb2YgdGhlIG1pbnV0ZSBlbGVtZW50LlxuICAgKi9cbiAgQElucHV0KCkgZGVmYXVsdE1pbnV0ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogSW5pdGlhbCB2YWx1ZSBvZiB0aGUgc2Vjb25kcyBlbGVtZW50LlxuICAgKi9cbiAgQElucHV0KCkgZGVmYXVsdFNlY29uZHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNlZSA8YSBocmVmPVwiaHR0cHM6Ly9jaG1sbi5naXRodWIuaW8vZmxhdHBpY2tyL2V4YW1wbGVzLyNkaXNhYmxpbmctc3BlY2lmaWMtZGF0ZXNcIj5kaXNhYmxpbmcgZGF0ZXM8L2E+LlxuICAgKi9cbiAgQElucHV0KCkgZGlzYWJsZTogRGlzYWJsZUVuYWJsZURhdGVbXTtcblxuICAvKipcbiAgICogU2V0IGRpc2FibGVNb2JpbGUgdG8gdHJ1ZSB0byBhbHdheXMgdXNlIHRoZSBub24tbmF0aXZlIHBpY2tlci5cbiAgICogQnkgZGVmYXVsdCwgRmxhdHBpY2tyIHV0aWxpemVzIG5hdGl2ZSBkYXRldGltZSB3aWRnZXRzIHVubGVzcyBjZXJ0YWluIG9wdGlvbnMgKGUuZy4gZGlzYWJsZSkgYXJlIHVzZWQuXG4gICAqL1xuICBASW5wdXQoKSBkaXNhYmxlTW9iaWxlOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZWUgPGEgaHJlZj1cImh0dHBzOi8vY2htbG4uZ2l0aHViLmlvL2ZsYXRwaWNrci9leGFtcGxlcy8jZGlzYWJsaW5nLWFsbC1kYXRlcy1leGNlcHQtc2VsZWN0LWZld1wiPmVuYWJsaW5nIGRhdGVzPC9hPi5cbiAgICovXG4gIEBJbnB1dCgpIGVuYWJsZTogRGlzYWJsZUVuYWJsZURhdGVbXTtcblxuICAvKipcbiAgICogRW5hYmxlcyB0aW1lIHBpY2tlci5cbiAgICovXG4gIEBJbnB1dCgpIGVuYWJsZVRpbWU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgc2Vjb25kcyBpbiB0aGUgdGltZSBwaWNrZXIuXG4gICAqL1xuICBASW5wdXQoKSBlbmFibGVTZWNvbmRzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBbGxvd3MgdXNpbmcgYSBjdXN0b20gZGF0ZSBmb3JtYXR0aW5nIGZ1bmN0aW9uIGluc3RlYWQgb2YgdGhlIGJ1aWx0LWluIGhhbmRsaW5nIGZvciBkYXRlIGZvcm1hdHMgdXNpbmcgZGF0ZUZvcm1hdCwgYWx0Rm9ybWF0LCBldGMuXG4gICAqL1xuICBASW5wdXQoKSBmb3JtYXREYXRlPzogKHZhbHVlOiBhbnkpID0+IHN0cmluZztcblxuICAvKipcbiAgICogQWRqdXN0cyB0aGUgc3RlcCBmb3IgdGhlIGhvdXIgaW5wdXQgKGluY2wuIHNjcm9sbGluZykuXG4gICAqL1xuICBASW5wdXQoKSBob3VySW5jcmVtZW50OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIERpc3BsYXlzIHRoZSBjYWxlbmRhciBpbmxpbmUuXG4gICAqL1xuICBASW5wdXQoKSBpbmxpbmU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGRhdGUgdGhhdCBhIHVzZXIgY2FuIHBpY2sgdG8gKGluY2x1c2l2ZSkuXG4gICAqL1xuICBASW5wdXQoKSBtYXhEYXRlOiBzdHJpbmcgfCBEYXRlO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBkYXRlIHRoYXQgYSB1c2VyIGNhbiBzdGFydCBwaWNraW5nIGZyb20gKGluY2x1c2l2ZSkuXG4gICAqL1xuICBASW5wdXQoKSBtaW5EYXRlOiBzdHJpbmcgfCBEYXRlO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIHRoYXQgYSB1c2VyIGNhbiBwaWNrIHRvIChpbmNsdXNpdmUpLlxuICAgKi9cbiAgQElucHV0KCkgbWF4VGltZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSB0aW1lIHRoYXQgYSB1c2VyIGNhbiBzdGFydCBwaWNraW5nIGZyb20gKGluY2x1c2l2ZSkuXG4gICAqL1xuICBASW5wdXQoKSBtaW5UaW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkanVzdHMgdGhlIHN0ZXAgZm9yIHRoZSBtaW51dGUgaW5wdXQgKGluY2wuIHNjcm9sbGluZykuXG4gICAqL1xuICBASW5wdXQoKSBtaW51dGVJbmNyZW1lbnQ6IG51bWJlcjtcblxuICAvKipcbiAgICogU2VsZWN0IGEgc2luZ2xlIGRhdGUsIG11bHRpcGxlIGRhdGVzIG9yIGEgZGF0ZSByYW5nZS5cbiAgICovXG4gIEBJbnB1dCgpIG1vZGU6ICdzaW5nbGUnIHwgJ211bHRpcGxlJyB8ICdyYW5nZSc7XG5cbiAgLyoqXG4gICAqIEhUTUwgZm9yIHRoZSBhcnJvdyBpY29uLCB1c2VkIHRvIHN3aXRjaCBtb250aHMuXG4gICAqL1xuICBASW5wdXQoKSBuZXh0QXJyb3c6IHN0cmluZztcblxuICAvKipcbiAgICogSGlkZXMgdGhlIGRheSBzZWxlY3Rpb24gaW4gY2FsZW5kYXIuIFVzZSBpdCBhbG9uZyB3aXRoIGBlbmFibGVUaW1lYCB0byBjcmVhdGUgYSB0aW1lIHBpY2tlci5cbiAgICovXG4gIEBJbnB1dCgpIG5vQ2FsZW5kYXI6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFByb3ZpZGUgYSBkYXRlIGZvciAndG9kYXknLCB3aGljaCB3aWxsIGJlIHVzZWQgaW5zdGVhZCBvZiBcIm5ldyBEYXRlKClcIlxuICAgKi9cbiAgQElucHV0KCkgbm93PzogRGF0ZSB8IHN0cmluZyB8IG51bWJlcjtcblxuICAvKipcbiAgICogRnVuY3Rpb24gdGhhdCBleHBlY3RzIGEgZGF0ZSBzdHJpbmcgYW5kIG11c3QgcmV0dXJuIGEgRGF0ZSBvYmplY3QuXG4gICAqL1xuICBASW5wdXQoKSBwYXJzZURhdGU6IChzdHI6IHN0cmluZykgPT4gRGF0ZTtcblxuICAvKipcbiAgICogSFRNTCBmb3IgdGhlIGxlZnQgYXJyb3cgaWNvbi5cbiAgICovXG4gIEBJbnB1dCgpIHByZXZBcnJvdzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaG93IHRoZSBtb250aCB1c2luZyB0aGUgc2hvcnRoYW5kIHZlcnNpb24gKGllLCBTZXAgaW5zdGVhZCBvZiBTZXB0ZW1iZXIpLlxuICAgKi9cbiAgQElucHV0KCkgc2hvcnRoYW5kQ3VycmVudE1vbnRoOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIG1vbnRocyBzaG93bi5cbiAgICovXG4gIEBJbnB1dCgpIHNob3dNb250aHM6IG51bWJlcjtcblxuICAvKipcbiAgICogUG9zaXRpb24gdGhlIGNhbGVuZGFyIGluc2lkZSB0aGUgd3JhcHBlciBhbmQgbmV4dCB0byB0aGUgaW5wdXQgZWxlbWVudC4gKExlYXZlIGBmYWxzZWAgdW5sZXNzIHlvdSBrbm93IHdoYXQgeW91J3JlIGRvaW5nKS5cbiAgICovXG4gIEBJbnB1dCgpIHN0YXRpYzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGlzcGxheXMgdGltZSBwaWNrZXIgaW4gMjQgaG91ciBtb2RlIHdpdGhvdXQgQU0vUE0gc2VsZWN0aW9uIHdoZW4gZW5hYmxlZC5cbiAgICovXG4gIEBJbnB1dCgpIHRpbWUyNGhyOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIGRpc3BsYXkgb2Ygd2VlayBudW1iZXJzIGluIGNhbGVuZGFyLlxuICAgKi9cbiAgQElucHV0KCkgd2Vla051bWJlcnM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFlvdSBtYXkgb3ZlcnJpZGUgdGhlIGZ1bmN0aW9uIHRoYXQgZXh0cmFjdHMgdGhlIHdlZWsgbnVtYmVycyBmcm9tIGEgRGF0ZSBieSBzdXBwbHlpbmcgYSBnZXRXZWVrIGZ1bmN0aW9uLlxuICAgKiBJdCB0YWtlcyBpbiBhIGRhdGUgYXMgYSBwYXJhbWV0ZXIgYW5kIHNob3VsZCByZXR1cm4gYSBjb3JyZXNwb25kaW5nIHN0cmluZyB0aGF0IHlvdSB3YW50IHRvIGFwcGVhciBsZWZ0IG9mIGV2ZXJ5IHdlZWsuXG4gICAqL1xuICBASW5wdXQoKSBnZXRXZWVrOiAoZGF0ZTogRGF0ZSkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gZWxlbWVudHMgYW5kIGlucHV0IGdyb3Vwcy5cbiAgICovXG4gIEBJbnB1dCgpIHdyYXA6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFycmF5IG9mIHBsdWdpbiBpbnN0YW5jZXMgdG8gdXNlLlxuICAgKi9cbiAgQElucHV0KCkgcGx1Z2luczogYW55W107XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NhbGUgb2JqZWN0IG9yIHN0cmluZyB0byB1c2UgZm9yIHRoZSBsb2NhbGUuXG4gICAqL1xuICBASW5wdXQoKSBsb2NhbGU6IG9iamVjdCB8IHN0cmluZztcblxuICAvKipcbiAgICogQXV0byBjb252ZXJ0IHRoZSBuZ01vZGVsIHZhbHVlIGZyb20gYSBzdHJpbmcgdG8gYSBkYXRlIC8gYXJyYXkgb2YgZGF0ZXMgLyBmcm9tIC0gdG8gZGF0ZSBvYmplY3QgZGVwZW5kaW5nIG9uIHRoZSBgbW9kZWBcbiAgICovXG4gIEBJbnB1dCgpIGNvbnZlcnRNb2RlbFZhbHVlOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBIb3cgdGhlIG1vbnRoIHNob3VsZCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGhlYWRlciBvZiB0aGUgY2FsZW5kYXIuXG4gICAqL1xuICBASW5wdXQoKSBtb250aFNlbGVjdG9yVHlwZTogJ3N0YXRpYycgfCAnZHJvcGRvd24nO1xuXG4gIC8qKlxuICAgKiBBcnJheSBvZiBIVE1MIGVsZW1lbnRzIHRoYXQgc2hvdWxkIG5vdCBjbG9zZSB0aGUgcGlja2VyIG9uIGNsaWNrLlxuICAgKi9cbiAgQElucHV0KCkgaWdub3JlZEZvY3VzRWxlbWVudHM6IEhUTUxFbGVtZW50W10gPSBbXTtcblxuICAvKipcbiAgICogR2V0cyB0cmlnZ2VyZWQgb25jZSB0aGUgY2FsZW5kYXIgaXMgaW4gYSByZWFkeSBzdGF0ZVxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGZsYXRwaWNrclJlYWR5OiBFdmVudEVtaXR0ZXI8RmxhdFBpY2tyT3V0cHV0T3B0aW9ucz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEdldHMgdHJpZ2dlcmVkIHdoZW4gdGhlIHVzZXIgc2VsZWN0cyBhIGRhdGUsIG9yIGNoYW5nZXMgdGhlIHRpbWUgb24gYSBzZWxlY3RlZCBkYXRlLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGZsYXRwaWNrckNoYW5nZTogRXZlbnRFbWl0dGVyPEZsYXRQaWNrck91dHB1dE9wdGlvbnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRyaWdnZXJlZCB3aGVuIHRoZSBpbnB1dCB2YWx1ZSBpcyB1cGRhdGVkIHdpdGggYSBuZXcgZGF0ZSBzdHJpbmcuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgZmxhdHBpY2tyVmFsdWVVcGRhdGU6IEV2ZW50RW1pdHRlcjxGbGF0UGlja3JPdXRwdXRPcHRpb25zPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRyaWdnZXJlZCB3aGVuIHRoZSBjYWxlbmRhciBpcyBvcGVuZWQuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgZmxhdHBpY2tyT3BlbjogRXZlbnRFbWl0dGVyPEZsYXRQaWNrck91dHB1dE9wdGlvbnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRyaWdnZXJlZCB3aGVuIHRoZSBjYWxlbmRhciBpcyBjbG9zZWQuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgZmxhdHBpY2tyQ2xvc2U6IEV2ZW50RW1pdHRlcjxGbGF0UGlja3JPdXRwdXRPcHRpb25zPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogR2V0cyB0cmlnZ2VyZWQgd2hlbiB0aGUgbW9udGggaXMgY2hhbmdlZCwgZWl0aGVyIGJ5IHRoZSB1c2VyIG9yIHByb2dyYW1tYXRpY2FsbHkuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgZmxhdHBpY2tyTW9udGhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxGbGF0UGlja3JPdXRwdXRPcHRpb25zPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRyaWdnZXJlZCB3aGVuIHRoZSB5ZWFyIGlzIGNoYW5nZWQsIGVpdGhlciBieSB0aGUgdXNlciBvciBwcm9ncmFtbWF0aWNhbGx5LlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGZsYXRwaWNrclllYXJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxGbGF0UGlja3JPdXRwdXRPcHRpb25zPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBUYWtlIGZ1bGwgY29udHJvbCBvZiBldmVyeSBkYXRlIGNlbGwgd2l0aCB0aGlzIG91dHB1dFxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGZsYXRwaWNrckRheUNyZWF0ZTogRXZlbnRFbWl0dGVyPEZsYXRQaWNrckRheUNyZWF0ZU91dHB1dE9wdGlvbnM+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIFRoZSBmbGF0cGlja3IgaW5zdGFuY2Ugd2hlcmUgeW91IGNhbiBjYWxsIG1ldGhvZHMgbGlrZSB0b2dnbGUoKSwgb3BlbigpLCBjbG9zZSgpIGV0Y1xuICAgKi9cbiAgaW5zdGFuY2U6IGZsYXRwaWNrci5JbnN0YW5jZTtcblxuICBwcml2YXRlIGlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBpbml0aWFsVmFsdWU6IGFueTtcblxuICBvbkNoYW5nZUZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuICBvblRvdWNoZWRGbiA9ICgpID0+IHt9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxtOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgZGVmYXVsdHM6IEZsYXRwaWNrckRlZmF1bHRzLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdCxcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBvcHRpb25zOiBhbnkgPSB7XG4gICAgICBhbHRGb3JtYXQ6IHRoaXMuYWx0Rm9ybWF0LFxuICAgICAgYWx0SW5wdXQ6IHRoaXMuYWx0SW5wdXQsXG4gICAgICBhbHRJbnB1dENsYXNzOiB0aGlzLmFsdElucHV0Q2xhc3MsXG4gICAgICBhbGxvd0lucHV0OiB0aGlzLmFsbG93SW5wdXQsXG4gICAgICBhbGxvd0ludmFsaWRQcmVsb2FkOiB0aGlzLmFsbG93SW52YWxpZFByZWxvYWQsXG4gICAgICBhcHBlbmRUbzogdGhpcy5hcHBlbmRUbyxcbiAgICAgIGFyaWFEYXRlRm9ybWF0OiB0aGlzLmFyaWFEYXRlRm9ybWF0LFxuICAgICAgY2xpY2tPcGVuczogdGhpcy5jbGlja09wZW5zLFxuICAgICAgZGF0ZUZvcm1hdDogdGhpcy5kYXRlRm9ybWF0LFxuICAgICAgZGVmYXVsdEhvdXI6IHRoaXMuZGVmYXVsdEhvdXIsXG4gICAgICBkZWZhdWx0TWludXRlOiB0aGlzLmRlZmF1bHRNaW51dGUsXG4gICAgICBkZWZhdWx0U2Vjb25kczogdGhpcy5kZWZhdWx0U2Vjb25kcyxcbiAgICAgIGRpc2FibGU6IHRoaXMuZGlzYWJsZSxcbiAgICAgIGRpc2FibGVNb2JpbGU6IHRoaXMuZGlzYWJsZU1vYmlsZSxcbiAgICAgIGVuYWJsZTogdGhpcy5lbmFibGUsXG4gICAgICBlbmFibGVUaW1lOiB0aGlzLmVuYWJsZVRpbWUsXG4gICAgICBlbmFibGVTZWNvbmRzOiB0aGlzLmVuYWJsZVNlY29uZHMsXG4gICAgICBmb3JtYXREYXRlOiB0aGlzLmZvcm1hdERhdGUsXG4gICAgICBob3VySW5jcmVtZW50OiB0aGlzLmhvdXJJbmNyZW1lbnQsXG4gICAgICBkZWZhdWx0RGF0ZTogdGhpcy5pbml0aWFsVmFsdWUsXG4gICAgICBpbmxpbmU6IHRoaXMuaW5saW5lLFxuICAgICAgbWF4RGF0ZTogdGhpcy5tYXhEYXRlLFxuICAgICAgbWluRGF0ZTogdGhpcy5taW5EYXRlLFxuICAgICAgbWF4VGltZTogdGhpcy5tYXhUaW1lLFxuICAgICAgbWluVGltZTogdGhpcy5taW5UaW1lLFxuICAgICAgbWludXRlSW5jcmVtZW50OiB0aGlzLm1pbnV0ZUluY3JlbWVudCxcbiAgICAgIG1vZGU6IHRoaXMubW9kZSxcbiAgICAgIG5leHRBcnJvdzogdGhpcy5uZXh0QXJyb3csXG4gICAgICBub0NhbGVuZGFyOiB0aGlzLm5vQ2FsZW5kYXIsXG4gICAgICBub3c6IHRoaXMubm93LFxuICAgICAgcGFyc2VEYXRlOiB0aGlzLnBhcnNlRGF0ZSxcbiAgICAgIHByZXZBcnJvdzogdGhpcy5wcmV2QXJyb3csXG4gICAgICBzaG9ydGhhbmRDdXJyZW50TW9udGg6IHRoaXMuc2hvcnRoYW5kQ3VycmVudE1vbnRoLFxuICAgICAgc2hvd01vbnRoczogdGhpcy5zaG93TW9udGhzLFxuICAgICAgbW9udGhTZWxlY3RvclR5cGU6IHRoaXMubW9udGhTZWxlY3RvclR5cGUsXG4gICAgICBzdGF0aWM6IHRoaXMuc3RhdGljLFxuICAgICAgdGltZTI0aHI6IHRoaXMudGltZTI0aHIsXG4gICAgICB3ZWVrTnVtYmVyczogdGhpcy53ZWVrTnVtYmVycyxcbiAgICAgIGdldFdlZWs6IHRoaXMuZ2V0V2VlayxcbiAgICAgIHdyYXA6IHRoaXMud3JhcCxcbiAgICAgIHBsdWdpbnM6IHRoaXMucGx1Z2lucyxcbiAgICAgIGxvY2FsZTogdGhpcy5sb2NhbGUsXG4gICAgICBpZ25vcmVkRm9jdXNFbGVtZW50czogdGhpcy5pZ25vcmVkRm9jdXNFbGVtZW50cyxcbiAgICAgIG9uQ2hhbmdlOiAoc2VsZWN0ZWREYXRlczogRGF0ZVtdLCBkYXRlU3RyaW5nOiBzdHJpbmcsIGluc3RhbmNlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5mbGF0cGlja3JDaGFuZ2UuZW1pdCh7IHNlbGVjdGVkRGF0ZXMsIGRhdGVTdHJpbmcsIGluc3RhbmNlIH0pO1xuICAgICAgfSxcbiAgICAgIG9uT3BlbjogKHNlbGVjdGVkRGF0ZXM6IERhdGVbXSwgZGF0ZVN0cmluZzogc3RyaW5nLCBpbnN0YW5jZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuZmxhdHBpY2tyT3Blbi5lbWl0KHsgc2VsZWN0ZWREYXRlcywgZGF0ZVN0cmluZywgaW5zdGFuY2UgfSk7XG4gICAgICB9LFxuICAgICAgb25DbG9zZTogKHNlbGVjdGVkRGF0ZXM6IERhdGVbXSwgZGF0ZVN0cmluZzogc3RyaW5nLCBpbnN0YW5jZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuZmxhdHBpY2tyQ2xvc2UuZW1pdCh7IHNlbGVjdGVkRGF0ZXMsIGRhdGVTdHJpbmcsIGluc3RhbmNlIH0pO1xuICAgICAgfSxcbiAgICAgIG9uTW9udGhDaGFuZ2U6IChcbiAgICAgICAgc2VsZWN0ZWREYXRlczogRGF0ZVtdLFxuICAgICAgICBkYXRlU3RyaW5nOiBzdHJpbmcsXG4gICAgICAgIGluc3RhbmNlOiBhbnksXG4gICAgICApID0+IHtcbiAgICAgICAgdGhpcy5mbGF0cGlja3JNb250aENoYW5nZS5lbWl0KHsgc2VsZWN0ZWREYXRlcywgZGF0ZVN0cmluZywgaW5zdGFuY2UgfSk7XG4gICAgICB9LFxuICAgICAgb25ZZWFyQ2hhbmdlOiAoXG4gICAgICAgIHNlbGVjdGVkRGF0ZXM6IERhdGVbXSxcbiAgICAgICAgZGF0ZVN0cmluZzogc3RyaW5nLFxuICAgICAgICBpbnN0YW5jZTogYW55LFxuICAgICAgKSA9PiB7XG4gICAgICAgIHRoaXMuZmxhdHBpY2tyWWVhckNoYW5nZS5lbWl0KHsgc2VsZWN0ZWREYXRlcywgZGF0ZVN0cmluZywgaW5zdGFuY2UgfSk7XG4gICAgICB9LFxuICAgICAgb25SZWFkeTogKHNlbGVjdGVkRGF0ZXM6IERhdGVbXSwgZGF0ZVN0cmluZzogc3RyaW5nLCBpbnN0YW5jZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuZmxhdHBpY2tyUmVhZHkuZW1pdCh7IHNlbGVjdGVkRGF0ZXMsIGRhdGVTdHJpbmcsIGluc3RhbmNlIH0pO1xuICAgICAgfSxcbiAgICAgIG9uVmFsdWVVcGRhdGU6IChcbiAgICAgICAgc2VsZWN0ZWREYXRlczogRGF0ZVtdLFxuICAgICAgICBkYXRlU3RyaW5nOiBzdHJpbmcsXG4gICAgICAgIGluc3RhbmNlOiBhbnksXG4gICAgICApID0+IHtcbiAgICAgICAgdGhpcy5mbGF0cGlja3JWYWx1ZVVwZGF0ZS5lbWl0KHsgc2VsZWN0ZWREYXRlcywgZGF0ZVN0cmluZywgaW5zdGFuY2UgfSk7XG4gICAgICB9LFxuICAgICAgb25EYXlDcmVhdGU6IChcbiAgICAgICAgc2VsZWN0ZWREYXRlczogRGF0ZVtdLFxuICAgICAgICBkYXRlU3RyaW5nOiBzdHJpbmcsXG4gICAgICAgIGluc3RhbmNlOiBhbnksXG4gICAgICAgIGRheUVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgICAgKSA9PiB7XG4gICAgICAgIHRoaXMuZmxhdHBpY2tyRGF5Q3JlYXRlLmVtaXQoe1xuICAgICAgICAgIHNlbGVjdGVkRGF0ZXMsXG4gICAgICAgICAgZGF0ZVN0cmluZyxcbiAgICAgICAgICBpbnN0YW5jZSxcbiAgICAgICAgICBkYXlFbGVtZW50LFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zW2tleV0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGlmICh0eXBlb2YgKHRoaXMub3B0aW9ucyBhcyBhbnkpW2tleV0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgb3B0aW9uc1trZXldID0gKHRoaXMub3B0aW9ucyBhcyBhbnkpW2tleV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3B0aW9uc1trZXldID0gKHRoaXMuZGVmYXVsdHMgYXMgYW55KVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgb3B0aW9ucy50aW1lXzI0aHIgPSBvcHRpb25zLnRpbWUyNGhyO1xuXG4gICAgLy8gd29ya2Fyb3VuZCBidWcgaW4gZmxhdHBpY2tyIDQuNiB3aGVyZSBpdCBkb2Vzbid0IGNvcHkgdGhlIGNsYXNzZXMgYWNyb3NzXG4gICAgLy8gVE9ETyAtIHJlbW92ZSBvbmNlIGZpeCBpbiBodHRwczovL2dpdGh1Yi5jb20vZmxhdHBpY2tyL2ZsYXRwaWNrci9pc3N1ZXMvMTg2MCBpcyByZWxlYXNlZFxuICAgIG9wdGlvbnMuYWx0SW5wdXRDbGFzcyA9XG4gICAgICAob3B0aW9ucy5hbHRJbnB1dENsYXNzIHx8ICcnKSArICcgJyArIHRoaXMuZWxtLm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lO1xuXG4gICAgaWYgKCFvcHRpb25zLmVuYWJsZSkge1xuICAgICAgZGVsZXRlIG9wdGlvbnMuZW5hYmxlO1xuICAgIH1cblxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICB0aGlzLmluc3RhbmNlID0gZmxhdHBpY2tyKFxuICAgICAgICB0aGlzLmVsbS5uYXRpdmVFbGVtZW50LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKSBhcyBmbGF0cGlja3IuSW5zdGFuY2U7XG4gICAgICB0aGlzLnNldERpc2FibGVkU3RhdGUodGhpcy5pc0Rpc2FibGVkKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgIE9iamVjdC5rZXlzKGNoYW5nZXMpLmZvckVhY2goKGlucHV0S2V5KSA9PiB7XG4gICAgICAgIHRoaXMuaW5zdGFuY2Uuc2V0KGlucHV0S2V5IGFzIGFueSwgKHRoaXMgYXMgYW55KVtpbnB1dEtleV0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgIHRoaXMuaW5zdGFuY2UuZGVzdHJveSgpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGxldCBjb252ZXJ0ZWRWYWx1ZTogYW55ID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuY29udmVydE1vZGVsVmFsdWUgJiYgdGhpcy5tb2RlID09PSAncmFuZ2UnICYmIHZhbHVlKSB7XG4gICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFt2YWx1ZS5mcm9tLCB2YWx1ZS50b107XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgIHRoaXMuaW5zdGFuY2Uuc2V0RGF0ZShjb252ZXJ0ZWRWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGZsYXRwaWNrciBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCB5ZXQsIHN0b3JlIHRoZSB2YWx1ZSBmb3IgbGF0ZXIgdXNlXG4gICAgICB0aGlzLmluaXRpYWxWYWx1ZSA9IGNvbnZlcnRlZFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2VGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZEZuID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XG4gICAgICBpZiAodGhpcy5pc0Rpc2FibGVkKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5pbnN0YW5jZS5faW5wdXQsICdkaXNhYmxlZCcsICdkaXNhYmxlZCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5pbnN0YW5jZS5faW5wdXQsICdkaXNhYmxlZCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2lucHV0JylcbiAgaW5wdXRDaGFuZ2VkKCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlOiBzdHJpbmcgPSB0aGlzLmVsbS5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgIGlmICh0aGlzLmNvbnZlcnRNb2RlbFZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHN3aXRjaCAodGhpcy5tb2RlKSB7XG4gICAgICAgIGNhc2UgJ211bHRpcGxlJzpcbiAgICAgICAgICBjb25zdCBkYXRlczogQXJyYXk8RGF0ZSB8IHVuZGVmaW5lZD4gPSB2YWx1ZVxuICAgICAgICAgICAgLnNwbGl0KCc7ICcpXG4gICAgICAgICAgICAubWFwKChzdHIpID0+XG4gICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UucGFyc2VEYXRlKFxuICAgICAgICAgICAgICAgIHN0cixcbiAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlLmNvbmZpZy5kYXRlRm9ybWF0LFxuICAgICAgICAgICAgICAgICF0aGlzLmluc3RhbmNlLmNvbmZpZy5lbmFibGVUaW1lLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlRm4oZGF0ZXMpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3JhbmdlJzpcbiAgICAgICAgICBjb25zdCBbZnJvbSwgdG9dID0gdmFsdWVcbiAgICAgICAgICAgIC5zcGxpdCh0aGlzLmluc3RhbmNlLmwxMG4ucmFuZ2VTZXBhcmF0b3IpXG4gICAgICAgICAgICAubWFwKChzdHIpID0+XG4gICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UucGFyc2VEYXRlKFxuICAgICAgICAgICAgICAgIHN0cixcbiAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlLmNvbmZpZy5kYXRlRm9ybWF0LFxuICAgICAgICAgICAgICAgICF0aGlzLmluc3RhbmNlLmNvbmZpZy5lbmFibGVUaW1lLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlRm4oeyBmcm9tLCB0byB9KTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdzaW5nbGUnOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRoaXMub25DaGFuZ2VGbihcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UucGFyc2VEYXRlKFxuICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5jb25maWcuZGF0ZUZvcm1hdCxcbiAgICAgICAgICAgICAgIXRoaXMuaW5zdGFuY2UuY29uZmlnLmVuYWJsZVRpbWUsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub25DaGFuZ2VGbih2YWx1ZSk7XG4gICAgfVxuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdHBpY2tyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXJ4LWZsYXRwaWNrci9zcmMvbGliL2ZsYXRwaWNrci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFHVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFJWixVQUFVLEVBQ1YsWUFBWSxFQUVaLFdBQVcsRUFDWCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFNdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBYXBELE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFRO0lBQ25ELE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztJQUNqRCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFRRixNQUFNLE9BQU8sa0JBQWtCO0lBb1Q3QixZQUNVLEdBQWUsRUFDZixRQUEyQixFQUMzQixRQUFtQixFQUNFLFVBQWtCO1FBSHZDLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixhQUFRLEdBQVIsUUFBUSxDQUFtQjtRQUMzQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ0UsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQXJUakQ7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQWtCRztRQUNNLFlBQU8sR0FBK0IsRUFBRSxDQUFDO1FBd05sRDs7V0FFRztRQUNNLHlCQUFvQixHQUFrQixFQUFFLENBQUM7UUFFbEQ7O1dBRUc7UUFFSCxtQkFBYyxHQUF5QyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTFFOztXQUVHO1FBRUgsb0JBQWUsR0FBeUMsSUFBSSxZ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O3NCQUFuQixLQUFLO2dCQU1HLE9BQU87c0JBQWYsS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBS0csT0FBTztzQkFBZixLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFLRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBS0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUtHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFNTixjQUFjO3NCQURiLE1BQU07Z0JBT1AsZUFBZTtzQkFEZCxNQUFNO2dCQU9QLG9CQUFvQjtzQkFEbkIsTUFBTTtnQkFRUCxhQUFhO3NCQURaLE1BQU07Z0JBT1AsY0FBYztzQkFEYixNQUFNO2dCQU9QLG9CQUFvQjtzQkFEbkIsTUFBTTtnQkFRUCxtQkFBbUI7c0JBRGxCLE1BQU07Z0JBUVAsa0JBQWtCO3NCQURqQixNQUFNO2dCQWVQLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxNQUFNO2dCQXNMcEIsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEFmdGVyVmlld0luaXQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgUmVuZGVyZXIyLFxuICBQTEFURk9STV9JRCxcbiAgSW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEZsYXRwaWNrckRlZmF1bHRzLFxuICBEaXNhYmxlRW5hYmxlRGF0ZSxcbiAgRmxhdHBpY2tyRGVmYXVsdHNJbnRlcmZhY2UsXG59IGZyb20gJy4vZmxhdHBpY2tyLWRlZmF1bHRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IGZsYXRwaWNrciBmcm9tICdmbGF0cGlja3InO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZsYXRQaWNrck91dHB1dE9wdGlvbnMge1xuICBzZWxlY3RlZERhdGVzOiBEYXRlW107XG4gIGRhdGVTdHJpbmc6IHN0cmluZztcbiAgaW5zdGFuY2U6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGbGF0UGlja3JEYXlDcmVhdGVPdXRwdXRPcHRpb25zXG4gIGV4dGVuZHMgRmxhdFBpY2tyT3V0cHV0T3B0aW9ucyB7XG4gIGRheUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xufVxuXG5leHBvcnQgY29uc3QgRkxBVFBJQ0tSX0NPTlRST0xfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZsYXRwaWNrckRpcmVjdGl2ZSksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW213bEZsYXRwaWNrcl0nLFxuICBwcm92aWRlcnM6IFtGTEFUUElDS1JfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUl0sXG4gIGV4cG9ydEFzOiAnbXdsRmxhdHBpY2tyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRmxhdHBpY2tyRGlyZWN0aXZlXG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gIC8qKlxuICAgKiBPYmplY3Qtb3B0aW9ucyB0aGF0IGNhbiBiZSB1c2VyIGZvciBtdWx0aXBsZSBpbnN0YW5jZXMgb2YgRmxhdHBpY2tyLlxuICAgKiBPcHRpb24gZnJvbSB0aGlzIG9iamVjdCBpcyBhcHBsaWVkIG9ubHkgaWYgc3BlY2lmaWMgb3B0aW9uIGlzIG5vdCBzcGVjaWZpZWQuXG4gICAqIEV4YW1wbGU6XG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogb3B0aW9uczogRmxhdHBpY2tyRGVmYXVsdHNJbnRlcmZhY2UgPSB7XG4gICAqICAgICAgYWx0Rm9ybWF0OiAnZC9tL1knLCAgIC8vIHdpbGwgYmUgaWdub3JlZCBzaW5jZSBhbHRGb3JtYXQgaXMgcHJvdmlkZWQgdmlhIHNwZWNpZmljIGF0dHJpYnV0ZVxuICAgKiAgICAgIGFsdElucHV0OiB0cnVlICAgICAgICAvLyB3aWxsIGJlIHVzZWQgc2luY2Ugc3BlY2lmaWMgYXR0cmlidXRlIGlzIG5vdCBwcm92aWRlZFxuICAgKiB9O1xuICAgKiBgYGBcbiAgICogYGBgaHRtbFxuICAgKiA8aW5wdXRcbiAgICogICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAqICAgdHlwZT1cInRleHRcIlxuICAgKiAgIG13bEZsYXRwaWNrclxuICAgKiAgIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxuICAgKiAgIGFsdEZvcm1hdD1cImQvbS9ZXCI+XG4gICAqIGBgYFxuICAgKi9cbiAgQElucHV0KCkgb3B0aW9uczogRmxhdHBpY2tyRGVmYXVsdHNJbnRlcmZhY2UgPSB7fTtcblxuICAvKipcbiAgICogRXhhY3RseSB0aGUgc2FtZSBhcyBkYXRlIGZvcm1hdCwgYnV0IGZvciB0aGUgYWx0SW5wdXQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBhbHRGb3JtYXQ6IHN0cmluZztcblxuICAvKipcbiAgICogXHRTaG93IHRoZSB1c2VyIGEgcmVhZGFibGUgZGF0ZSAoYXMgcGVyIGFsdEZvcm1hdCksIGJ1dCByZXR1cm4gc29tZXRoaW5nIHRvdGFsbHkgZGlmZmVyZW50IHRvIHRoZSBzZXJ2ZXIuXG4gICAqL1xuICBASW5wdXQoKSBhbHRJbnB1dDogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhpcyBjbGFzcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBpbnB1dCBlbGVtZW50IGNyZWF0ZWQgYnkgdGhlIGFsdElucHV0IG9wdGlvbi5cbiAgICogTm90ZSB0aGF0IGBhbHRJbnB1dGAgYWxyZWFkeSBpbmhlcml0cyBjbGFzc2VzIGZyb20gdGhlIG9yaWdpbmFsIGlucHV0LlxuICAgKi9cbiAgQElucHV0KCkgYWx0SW5wdXRDbGFzczogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbGxvd3MgdGhlIHVzZXIgdG8gZW50ZXIgYSBkYXRlIGRpcmVjdGx5IGlucHV0IHRoZSBpbnB1dCBmaWVsZC4gQnkgZGVmYXVsdCwgZGlyZWN0IGVudHJ5IGlzIGRpc2FibGVkLlxuICAgKi9cbiAgQElucHV0KCkgYWxsb3dJbnB1dDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQWxsb3dzIHRoZSBwcmVsb2FkaW5nIG9mIGFuIGludmFsaWQgZGF0ZS4gV2hlbiBkaXNhYmxlZCwgdGhlIGZpZWxkIHdpbGwgYmUgY2xlYXJlZCBpZiB0aGUgcHJvdmlkZWQgZGF0ZSBpcyBpbnZhbGlkXG4gICAqL1xuICBASW5wdXQoKSBhbGxvd0ludmFsaWRQcmVsb2FkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbnN0ZWFkIG9mIGBib2R5YCwgYXBwZW5kcyB0aGUgY2FsZW5kYXIgdG8gdGhlIHNwZWNpZmllZCBub2RlIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKSBhcHBlbmRUbzogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgaG93IHRoZSBkYXRlIHdpbGwgYmUgZm9ybWF0dGVkIGluIHRoZSBhcmlhLWxhYmVsIGZvciBjYWxlbmRhciBkYXlzLCB1c2luZyB0aGUgc2FtZSB0b2tlbnMgYXMgZGF0ZUZvcm1hdC4gSWYgeW91IGNoYW5nZSB0aGlzLCB5b3Ugc2hvdWxkIGNob29zZSBhIHZhbHVlIHRoYXQgd2lsbCBtYWtlIHNlbnNlIGlmIGEgc2NyZWVuIHJlYWRlciByZWFkcyBpdCBvdXQgbG91ZC5cbiAgICovXG4gIEBJbnB1dCgpIGFyaWFEYXRlRm9ybWF0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGNsaWNraW5nIG9uIHRoZSBpbnB1dCBzaG91bGQgb3BlbiB0aGUgcGlja2VyLlxuICAgKiBZb3UgY291bGQgZGlzYWJsZSB0aGlzIGlmIHlvdSB3aXNoIHRvIG9wZW4gdGhlIGNhbGVuZGFyIG1hbnVhbGx5IGB3aXRoLm9wZW4oKWAuXG4gICAqL1xuICBASW5wdXQoKSBjbGlja09wZW5zOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBIHN0cmluZyBvZiBjaGFyYWN0ZXJzIHdoaWNoIGFyZSB1c2VkIHRvIGRlZmluZSBob3cgdGhlIGRhdGUgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGlucHV0IGJveC5cbiAgICogVGhlIHN1cHBvcnRlZCBjaGFyYWN0ZXJzIGFyZSBkZWZpbmVkIGluIHRoZSB0YWJsZSBiZWxvdy5cbiAgICovXG4gIEBJbnB1dCgpIGRhdGVGb3JtYXQ6IHN0cmluZztcblxuICAvKipcbiAgICogSW5pdGlhbCB2YWx1ZSBvZiB0aGUgaG91ciBlbGVtZW50LlxuICAgKi9cbiAgQElucHV0KCkgZGVmYXVsdEhvdXI/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBJbml0aWFsIHZhbHVlIG9mIHRoZSBtaW51dGUgZWxlbWVudC5cbiAgICovXG4gIEBJbnB1dCgpIGRlZmF1bHRNaW51dGU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgdmFsdWUgb2YgdGhlIHNlY29uZHMgZWxlbWVudC5cbiAgICovXG4gIEBJbnB1dCgpIGRlZmF1bHRTZWNvbmRzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTZWUgPGEgaHJlZj1cImh0dHBzOi8vY2htbG4uZ2l0aHViLmlvL2ZsYXRwaWNrci9leGFtcGxlcy8jZGlzYWJsaW5nLXNwZWNpZmljLWRhdGVzXCI+ZGlzYWJsaW5nIGRhdGVzPC9hPi5cbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGU6IERpc2FibGVFbmFibGVEYXRlW107XG5cbiAgLyoqXG4gICAqIFNldCBkaXNhYmxlTW9iaWxlIHRvIHRydWUgdG8gYWx3YXlzIHVzZSB0aGUgbm9uLW5hdGl2ZSBwaWNrZXIuXG4gICAqIEJ5IGRlZmF1bHQsIEZsYXRwaWNrciB1dGlsaXplcyBuYXRpdmUgZGF0ZXRpbWUgd2lkZ2V0cyB1bmxlc3MgY2VydGFpbiBvcHRpb25zIChlLmcuIGRpc2FibGUpIGFyZSB1c2VkLlxuICAgKi9cbiAgQElucHV0KCkgZGlzYWJsZU1vYmlsZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2VlIDxhIGhyZWY9XCJodHRwczovL2NobWxuLmdpdGh1Yi5pby9mbGF0cGlja3IvZXhhbXBsZXMvI2Rpc2FibGluZy1hbGwtZGF0ZXMtZXhjZXB0LXNlbGVjdC1mZXdcIj5lbmFibGluZyBkYXRlczwvYT4uXG4gICAqL1xuICBASW5wdXQoKSBlbmFibGU6IERpc2FibGVFbmFibGVEYXRlW107XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGltZSBwaWNrZXIuXG4gICAqL1xuICBASW5wdXQoKSBlbmFibGVUaW1lOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIHNlY29uZHMgaW4gdGhlIHRpbWUgcGlja2VyLlxuICAgKi9cbiAgQElucHV0KCkgZW5hYmxlU2Vjb25kczogYm9vbGVhbjtcblxuICAvKipcbiAgICogQWxsb3dzIHVzaW5nIGEgY3VzdG9tIGRhdGUgZm9ybWF0dGluZyBmdW5jdGlvbiBpbnN0ZWFkIG9mIHRoZSBidWlsdC1pbiBoYW5kbGluZyBmb3IgZGF0ZSBmb3JtYXRzIHVzaW5nIGRhdGVGb3JtYXQsIGFsdEZvcm1hdCwgZXRjLlxuICAgKi9cbiAgQElucHV0KCkgZm9ybWF0RGF0ZT86ICh2YWx1ZTogYW55KSA9PiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkanVzdHMgdGhlIHN0ZXAgZm9yIHRoZSBob3VyIGlucHV0IChpbmNsLiBzY3JvbGxpbmcpLlxuICAgKi9cbiAgQElucHV0KCkgaG91ckluY3JlbWVudDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5cyB0aGUgY2FsZW5kYXIgaW5saW5lLlxuICAgKi9cbiAgQElucHV0KCkgaW5saW5lOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBkYXRlIHRoYXQgYSB1c2VyIGNhbiBwaWNrIHRvIChpbmNsdXNpdmUpLlxuICAgKi9cbiAgQElucHV0KCkgbWF4RGF0ZTogc3RyaW5nIHwgRGF0ZTtcblxuICAvKipcbiAgICogVGhlIG1pbmltdW0gZGF0ZSB0aGF0IGEgdXNlciBjYW4gc3RhcnQgcGlja2luZyBmcm9tIChpbmNsdXNpdmUpLlxuICAgKi9cbiAgQElucHV0KCkgbWluRGF0ZTogc3RyaW5nIHwgRGF0ZTtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSB0aGF0IGEgdXNlciBjYW4gcGljayB0byAoaW5jbHVzaXZlKS5cbiAgICovXG4gIEBJbnB1dCgpIG1heFRpbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1pbmltdW0gdGltZSB0aGF0IGEgdXNlciBjYW4gc3RhcnQgcGlja2luZyBmcm9tIChpbmNsdXNpdmUpLlxuICAgKi9cbiAgQElucHV0KCkgbWluVGltZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGp1c3RzIHRoZSBzdGVwIGZvciB0aGUgbWludXRlIGlucHV0IChpbmNsLiBzY3JvbGxpbmcpLlxuICAgKi9cbiAgQElucHV0KCkgbWludXRlSW5jcmVtZW50OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBhIHNpbmdsZSBkYXRlLCBtdWx0aXBsZSBkYXRlcyBvciBhIGRhdGUgcmFuZ2UuXG4gICAqL1xuICBASW5wdXQoKSBtb2RlOiAnc2luZ2xlJyB8ICdtdWx0aXBsZScgfCAncmFuZ2UnO1xuXG4gIC8qKlxuICAgKiBIVE1MIGZvciB0aGUgYXJyb3cgaWNvbiwgdXNlZCB0byBzd2l0Y2ggbW9udGhzLlxuICAgKi9cbiAgQElucHV0KCkgbmV4dEFycm93OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEhpZGVzIHRoZSBkYXkgc2VsZWN0aW9uIGluIGNhbGVuZGFyLiBVc2UgaXQgYWxvbmcgd2l0aCBgZW5hYmxlVGltZWAgdG8gY3JlYXRlIGEgdGltZSBwaWNrZXIuXG4gICAqL1xuICBASW5wdXQoKSBub0NhbGVuZGFyOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQcm92aWRlIGEgZGF0ZSBmb3IgJ3RvZGF5Jywgd2hpY2ggd2lsbCBiZSB1c2VkIGluc3RlYWQgb2YgXCJuZXcgRGF0ZSgpXCJcbiAgICovXG4gIEBJbnB1dCgpIG5vdz86IERhdGUgfCBzdHJpbmcgfCBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRoYXQgZXhwZWN0cyBhIGRhdGUgc3RyaW5nIGFuZCBtdXN0IHJldHVybiBhIERhdGUgb2JqZWN0LlxuICAgKi9cbiAgQElucHV0KCkgcGFyc2VEYXRlOiAoc3RyOiBzdHJpbmcpID0+IERhdGU7XG5cbiAgLyoqXG4gICAqIEhUTUwgZm9yIHRoZSBsZWZ0IGFycm93IGljb24uXG4gICAqL1xuICBASW5wdXQoKSBwcmV2QXJyb3c6IHN0cmluZztcblxuICAvKipcbiAgICogU2hvdyB0aGUgbW9udGggdXNpbmcgdGhlIHNob3J0aGFuZCB2ZXJzaW9uIChpZSwgU2VwIGluc3RlYWQgb2YgU2VwdGVtYmVyKS5cbiAgICovXG4gIEBJbnB1dCgpIHNob3J0aGFuZEN1cnJlbnRNb250aDogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBtb250aHMgc2hvd24uXG4gICAqL1xuICBASW5wdXQoKSBzaG93TW9udGhzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFBvc2l0aW9uIHRoZSBjYWxlbmRhciBpbnNpZGUgdGhlIHdyYXBwZXIgYW5kIG5leHQgdG8gdGhlIGlucHV0IGVsZW1lbnQuIChMZWF2ZSBgZmFsc2VgIHVubGVzcyB5b3Uga25vdyB3aGF0IHlvdSdyZSBkb2luZykuXG4gICAqL1xuICBASW5wdXQoKSBzdGF0aWM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIERpc3BsYXlzIHRpbWUgcGlja2VyIGluIDI0IGhvdXIgbW9kZSB3aXRob3V0IEFNL1BNIHNlbGVjdGlvbiB3aGVuIGVuYWJsZWQuXG4gICAqL1xuICBASW5wdXQoKSB0aW1lMjRocjogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlcyBkaXNwbGF5IG9mIHdlZWsgbnVtYmVycyBpbiBjYWxlbmRhci5cbiAgICovXG4gIEBJbnB1dCgpIHdlZWtOdW1iZXJzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBZb3UgbWF5IG92ZXJyaWRlIHRoZSBmdW5jdGlvbiB0aGF0IGV4dHJhY3RzIHRoZSB3ZWVrIG51bWJlcnMgZnJvbSBhIERhdGUgYnkgc3VwcGx5aW5nIGEgZ2V0V2VlayBmdW5jdGlvbi5cbiAgICogSXQgdGFrZXMgaW4gYSBkYXRlIGFzIGEgcGFyYW1ldGVyIGFuZCBzaG91bGQgcmV0dXJuIGEgY29ycmVzcG9uZGluZyBzdHJpbmcgdGhhdCB5b3Ugd2FudCB0byBhcHBlYXIgbGVmdCBvZiBldmVyeSB3ZWVrLlxuICAgKi9cbiAgQElucHV0KCkgZ2V0V2VlazogKGRhdGU6IERhdGUpID0+IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIGVsZW1lbnRzIGFuZCBpbnB1dCBncm91cHMuXG4gICAqL1xuICBASW5wdXQoKSB3cmFwOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBcnJheSBvZiBwbHVnaW4gaW5zdGFuY2VzIHRvIHVzZS5cbiAgICovXG4gIEBJbnB1dCgpIHBsdWdpbnM6IGFueVtdO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9jYWxlIG9iamVjdCBvciBzdHJpbmcgdG8gdXNlIGZvciB0aGUgbG9jYWxlLlxuICAgKi9cbiAgQElucHV0KCkgbG9jYWxlOiBvYmplY3QgfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEF1dG8gY29udmVydCB0aGUgbmdNb2RlbCB2YWx1ZSBmcm9tIGEgc3RyaW5nIHRvIGEgZGF0ZSAvIGFycmF5IG9mIGRhdGVzIC8gZnJvbSAtIHRvIGRhdGUgb2JqZWN0IGRlcGVuZGluZyBvbiB0aGUgYG1vZGVgXG4gICAqL1xuICBASW5wdXQoKSBjb252ZXJ0TW9kZWxWYWx1ZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogSG93IHRoZSBtb250aCBzaG91bGQgYmUgZGlzcGxheWVkIGluIHRoZSBoZWFkZXIgb2YgdGhlIGNhbGVuZGFyLlxuICAgKi9cbiAgQElucHV0KCkgbW9udGhTZWxlY3RvclR5cGU6ICdzdGF0aWMnIHwgJ2Ryb3Bkb3duJztcblxuICAvKipcbiAgICogQXJyYXkgb2YgSFRNTCBlbGVtZW50cyB0aGF0IHNob3VsZCBub3QgY2xvc2UgdGhlIHBpY2tlciBvbiBjbGljay5cbiAgICovXG4gIEBJbnB1dCgpIGlnbm9yZWRGb2N1c0VsZW1lbnRzOiBIVE1MRWxlbWVudFtdID0gW107XG5cbiAgLyoqXG4gICAqIEdldHMgdHJpZ2dlcmVkIG9uY2UgdGhlIGNhbGVuZGFyIGlzIGluIGEgcmVhZHkgc3RhdGVcbiAgICovXG4gIEBPdXRwdXQoKVxuICBmbGF0cGlja3JSZWFkeTogRXZlbnRFbWl0dGVyPEZsYXRQaWNrck91dHB1dE9wdGlvbnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIHNlbGVjdHMgYSBkYXRlLCBvciBjaGFuZ2VzIHRoZSB0aW1lIG9uIGEgc2VsZWN0ZWQgZGF0ZS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBmbGF0cGlja3JDaGFuZ2U6IEV2ZW50RW1pdHRlcjxGbGF0UGlja3JPdXRwdXRPcHRpb25zPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogR2V0cyB0cmlnZ2VyZWQgd2hlbiB0aGUgaW5wdXQgdmFsdWUgaXMgdXBkYXRlZCB3aXRoIGEgbmV3IGRhdGUgc3RyaW5nLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGZsYXRwaWNrclZhbHVlVXBkYXRlOiBFdmVudEVtaXR0ZXI8RmxhdFBpY2tyT3V0cHV0T3B0aW9ucz4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogR2V0cyB0cmlnZ2VyZWQgd2hlbiB0aGUgY2FsZW5kYXIgaXMgb3BlbmVkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGZsYXRwaWNrck9wZW46IEV2ZW50RW1pdHRlcjxGbGF0UGlja3JPdXRwdXRPcHRpb25zPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogR2V0cyB0cmlnZ2VyZWQgd2hlbiB0aGUgY2FsZW5kYXIgaXMgY2xvc2VkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGZsYXRwaWNrckNsb3NlOiBFdmVudEVtaXR0ZXI8RmxhdFBpY2tyT3V0cHV0T3B0aW9ucz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEdldHMgdHJpZ2dlcmVkIHdoZW4gdGhlIG1vbnRoIGlzIGNoYW5nZWQsIGVpdGhlciBieSB0aGUgdXNlciBvciBwcm9ncmFtbWF0aWNhbGx5LlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGZsYXRwaWNrck1vbnRoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RmxhdFBpY2tyT3V0cHV0T3B0aW9ucz4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogR2V0cyB0cmlnZ2VyZWQgd2hlbiB0aGUgeWVhciBpcyBjaGFuZ2VkLCBlaXRoZXIgYnkgdGhlIHVzZXIgb3IgcHJvZ3JhbW1hdGljYWxseS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBmbGF0cGlja3JZZWFyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RmxhdFBpY2tyT3V0cHV0T3B0aW9ucz4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogVGFrZSBmdWxsIGNvbnRyb2wgb2YgZXZlcnkgZGF0ZSBjZWxsIHdpdGggdGhpcyBvdXRwdXRcbiAgICovXG4gIEBPdXRwdXQoKVxuICBmbGF0cGlja3JEYXlDcmVhdGU6IEV2ZW50RW1pdHRlcjxGbGF0UGlja3JEYXlDcmVhdGVPdXRwdXRPcHRpb25zPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBUaGUgZmxhdHBpY2tyIGluc3RhbmNlIHdoZXJlIHlvdSBjYW4gY2FsbCBtZXRob2RzIGxpa2UgdG9nZ2xlKCksIG9wZW4oKSwgY2xvc2UoKSBldGNcbiAgICovXG4gIGluc3RhbmNlOiBmbGF0cGlja3IuSW5zdGFuY2U7XG5cbiAgcHJpdmF0ZSBpc0Rpc2FibGVkID0gZmFsc2U7XG4gIHByaXZhdGUgaW5pdGlhbFZhbHVlOiBhbnk7XG5cbiAgb25DaGFuZ2VGbjogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICBASG9zdExpc3RlbmVyKCdibHVyJylcbiAgb25Ub3VjaGVkRm4gPSAoKSA9PiB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsbTogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGRlZmF1bHRzOiBGbGF0cGlja3JEZWZhdWx0cyxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBPYmplY3QsXG4gICkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3Qgb3B0aW9uczogYW55ID0ge1xuICAgICAgYWx0Rm9ybWF0OiB0aGlzLmFsdEZvcm1hdCxcbiAgICAgIGFsdElucHV0OiB0aGlzLmFsdElucHV0LFxuICAgICAgYWx0SW5wdXRDbGFzczogdGhpcy5hbHRJbnB1dENsYXNzLFxuICAgICAgYWxsb3dJbnB1dDogdGhpcy5hbGxvd0lucHV0LFxuICAgICAgYWxsb3dJbnZhbGlkUHJlbG9hZDogdGhpcy5hbGxvd0ludmFsaWRQcmVsb2FkLFxuICAgICAgYXBwZW5kVG86IHRoaXMuYXBwZW5kVG8sXG4gICAgICBhcmlhRGF0ZUZvcm1hdDogdGhpcy5hcmlhRGF0ZUZvcm1hdCxcbiAgICAgIGNsaWNrT3BlbnM6IHRoaXMuY2xpY2tPcGVucyxcbiAgICAgIGRhdGVGb3JtYXQ6IHRoaXMuZGF0ZUZvcm1hdCxcbiAgICAgIGRlZmF1bHRIb3VyOiB0aGlzLmRlZmF1bHRIb3VyLFxuICAgICAgZGVmYXVsdE1pbnV0ZTogdGhpcy5kZWZhdWx0TWludXRlLFxuICAgICAgZGVmYXVsdFNlY29uZHM6IHRoaXMuZGVmYXVsdFNlY29uZHMsXG4gICAgICBkaXNhYmxlOiB0aGlzLmRpc2FibGUsXG4gICAgICBkaXNhYmxlTW9iaWxlOiB0aGlzLmRpc2FibGVNb2JpbGUsXG4gICAgICBlbmFibGU6IHRoaXMuZW5hYmxlLFxuICAgICAgZW5hYmxlVGltZTogdGhpcy5lbmFibGVUaW1lLFxuICAgICAgZW5hYmxlU2Vjb25kczogdGhpcy5lbmFibGVTZWNvbmRzLFxuICAgICAgZm9ybWF0RGF0ZTogdGhpcy5mb3JtYXREYXRlLFxuICAgICAgaG91ckluY3JlbWVudDogdGhpcy5ob3VySW5jcmVtZW50LFxuICAgICAgZGVmYXVsdERhdGU6IHRoaXMuaW5pdGlhbFZhbHVlLFxuICAgICAgaW5saW5lOiB0aGlzLmlubGluZSxcbiAgICAgIG1heERhdGU6IHRoaXMubWF4RGF0ZSxcbiAgICAgIG1pbkRhdGU6IHRoaXMubWluRGF0ZSxcbiAgICAgIG1heFRpbWU6IHRoaXMubWF4VGltZSxcbiAgICAgIG1pblRpbWU6IHRoaXMubWluVGltZSxcbiAgICAgIG1pbnV0ZUluY3JlbWVudDogdGhpcy5taW51dGVJbmNyZW1lbnQsXG4gICAgICBtb2RlOiB0aGlzLm1vZGUsXG4gICAgICBuZXh0QXJyb3c6IHRoaXMubmV4dEFycm93LFxuICAgICAgbm9DYWxlbmRhcjogdGhpcy5ub0NhbGVuZGFyLFxuICAgICAgbm93OiB0aGlzLm5vdyxcbiAgICAgIHBhcnNlRGF0ZTogdGhpcy5wYXJzZURhdGUsXG4gICAgICBwcmV2QXJyb3c6IHRoaXMucHJldkFycm93LFxuICAgICAgc2hvcnRoYW5kQ3VycmVudE1vbnRoOiB0aGlzLnNob3J0aGFuZEN1cnJlbnRNb250aCxcbiAgICAgIHNob3dNb250aHM6IHRoaXMuc2hvd01vbnRocyxcbiAgICAgIG1vbnRoU2VsZWN0b3JUeXBlOiB0aGlzLm1vbnRoU2VsZWN0b3JUeXBlLFxuICAgICAgc3RhdGljOiB0aGlzLnN0YXRpYyxcbiAgICAgIHRpbWUyNGhyOiB0aGlzLnRpbWUyNGhyLFxuICAgICAgd2Vla051bWJlcnM6IHRoaXMud2Vla051bWJlcnMsXG4gICAgICBnZXRXZWVrOiB0aGlzLmdldFdlZWssXG4gICAgICB3cmFwOiB0aGlzLndyYXAsXG4gICAgICBwbHVnaW5zOiB0aGlzLnBsdWdpbnMsXG4gICAgICBsb2NhbGU6IHRoaXMubG9jYWxlLFxuICAgICAgaWdub3JlZEZvY3VzRWxlbWVudHM6IHRoaXMuaWdub3JlZEZvY3VzRWxlbWVudHMsXG4gICAgICBvbkNoYW5nZTogKHNlbGVjdGVkRGF0ZXM6IERhdGVbXSwgZGF0ZVN0cmluZzogc3RyaW5nLCBpbnN0YW5jZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuZmxhdHBpY2tyQ2hhbmdlLmVtaXQoeyBzZWxlY3RlZERhdGVzLCBkYXRlU3RyaW5nLCBpbnN0YW5jZSB9KTtcbiAgICAgIH0sXG4gICAgICBvbk9wZW46IChzZWxlY3RlZERhdGVzOiBEYXRlW10sIGRhdGVTdHJpbmc6IHN0cmluZywgaW5zdGFuY2U6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmZsYXRwaWNrck9wZW4uZW1pdCh7IHNlbGVjdGVkRGF0ZXMsIGRhdGVTdHJpbmcsIGluc3RhbmNlIH0pO1xuICAgICAgfSxcbiAgICAgIG9uQ2xvc2U6IChzZWxlY3RlZERhdGVzOiBEYXRlW10sIGRhdGVTdHJpbmc6IHN0cmluZywgaW5zdGFuY2U6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmZsYXRwaWNrckNsb3NlLmVtaXQoeyBzZWxlY3RlZERhdGVzLCBkYXRlU3RyaW5nLCBpbnN0YW5jZSB9KTtcbiAgICAgIH0sXG4gICAgICBvbk1vbnRoQ2hhbmdlOiAoXG4gICAgICAgIHNlbGVjdGVkRGF0ZXM6IERhdGVbXSxcbiAgICAgICAgZGF0ZVN0cmluZzogc3RyaW5nLFxuICAgICAgICBpbnN0YW5jZTogYW55LFxuICAgICAgKSA9PiB7XG4gICAgICAgIHRoaXMuZmxhdHBpY2tyTW9udGhDaGFuZ2UuZW1pdCh7IHNlbGVjdGVkRGF0ZXMsIGRhdGVTdHJpbmcsIGluc3RhbmNlIH0pO1xuICAgICAgfSxcbiAgICAgIG9uWWVhckNoYW5nZTogKFxuICAgICAgICBzZWxlY3RlZERhdGVzOiBEYXRlW10sXG4gICAgICAgIGRhdGVTdHJpbmc6IHN0cmluZyxcbiAgICAgICAgaW5zdGFuY2U6IGFueSxcbiAgICAgICkgPT4ge1xuICAgICAgICB0aGlzLmZsYXRwaWNrclllYXJDaGFuZ2UuZW1pdCh7IHNlbGVjdGVkRGF0ZXMsIGRhdGVTdHJpbmcsIGluc3RhbmNlIH0pO1xuICAgICAgfSxcbiAgICAgIG9uUmVhZHk6IChzZWxlY3RlZERhdGVzOiBEYXRlW10sIGRhdGVTdHJpbmc6IHN0cmluZywgaW5zdGFuY2U6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmZsYXRwaWNrclJlYWR5LmVtaXQoeyBzZWxlY3RlZERhdGVzLCBkYXRlU3RyaW5nLCBpbnN0YW5jZSB9KTtcbiAgICAgIH0sXG4gICAgICBvblZhbHVlVXBkYXRlOiAoXG4gICAgICAgIHNlbGVjdGVkRGF0ZXM6IERhdGVbXSxcbiAgICAgICAgZGF0ZVN0cmluZzogc3RyaW5nLFxuICAgICAgICBpbnN0YW5jZTogYW55LFxuICAgICAgKSA9PiB7XG4gICAgICAgIHRoaXMuZmxhdHBpY2tyVmFsdWVVcGRhdGUuZW1pdCh7IHNlbGVjdGVkRGF0ZXMsIGRhdGVTdHJpbmcsIGluc3RhbmNlIH0pO1xuICAgICAgfSxcbiAgICAgIG9uRGF5Q3JlYXRlOiAoXG4gICAgICAgIHNlbGVjdGVkRGF0ZXM6IERhdGVbXSxcbiAgICAgICAgZGF0ZVN0cmluZzogc3RyaW5nLFxuICAgICAgICBpbnN0YW5jZTogYW55LFxuICAgICAgICBkYXlFbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICAgICkgPT4ge1xuICAgICAgICB0aGlzLmZsYXRwaWNrckRheUNyZWF0ZS5lbWl0KHtcbiAgICAgICAgICBzZWxlY3RlZERhdGVzLFxuICAgICAgICAgIGRhdGVTdHJpbmcsXG4gICAgICAgICAgaW5zdGFuY2UsXG4gICAgICAgICAgZGF5RWxlbWVudCxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH07XG5cbiAgICBPYmplY3Qua2V5cyhvcHRpb25zKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc1trZXldID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBpZiAodHlwZW9mICh0aGlzLm9wdGlvbnMgYXMgYW55KVtrZXldICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIG9wdGlvbnNba2V5XSA9ICh0aGlzLm9wdGlvbnMgYXMgYW55KVtrZXldO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9wdGlvbnNba2V5XSA9ICh0aGlzLmRlZmF1bHRzIGFzIGFueSlba2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIG9wdGlvbnMudGltZV8yNGhyID0gb3B0aW9ucy50aW1lMjRocjtcblxuICAgIC8vIHdvcmthcm91bmQgYnVnIGluIGZsYXRwaWNrciA0LjYgd2hlcmUgaXQgZG9lc24ndCBjb3B5IHRoZSBjbGFzc2VzIGFjcm9zc1xuICAgIC8vIFRPRE8gLSByZW1vdmUgb25jZSBmaXggaW4gaHR0cHM6Ly9naXRodWIuY29tL2ZsYXRwaWNrci9mbGF0cGlja3IvaXNzdWVzLzE4NjAgaXMgcmVsZWFzZWRcbiAgICBvcHRpb25zLmFsdElucHV0Q2xhc3MgPVxuICAgICAgKG9wdGlvbnMuYWx0SW5wdXRDbGFzcyB8fCAnJykgKyAnICcgKyB0aGlzLmVsbS5uYXRpdmVFbGVtZW50LmNsYXNzTmFtZTtcblxuICAgIGlmICghb3B0aW9ucy5lbmFibGUpIHtcbiAgICAgIGRlbGV0ZSBvcHRpb25zLmVuYWJsZTtcbiAgICB9XG5cbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgdGhpcy5pbnN0YW5jZSA9IGZsYXRwaWNrcihcbiAgICAgICAgdGhpcy5lbG0ubmF0aXZlRWxlbWVudCxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICkgYXMgZmxhdHBpY2tyLkluc3RhbmNlO1xuICAgICAgdGhpcy5zZXREaXNhYmxlZFN0YXRlKHRoaXMuaXNEaXNhYmxlZCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XG4gICAgICBPYmplY3Qua2V5cyhjaGFuZ2VzKS5mb3JFYWNoKChpbnB1dEtleSkgPT4ge1xuICAgICAgICB0aGlzLmluc3RhbmNlLnNldChpbnB1dEtleSBhcyBhbnksICh0aGlzIGFzIGFueSlbaW5wdXRLZXldKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XG4gICAgICB0aGlzLmluc3RhbmNlLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBsZXQgY29udmVydGVkVmFsdWU6IGFueSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLmNvbnZlcnRNb2RlbFZhbHVlICYmIHRoaXMubW9kZSA9PT0gJ3JhbmdlJyAmJiB2YWx1ZSkge1xuICAgICAgY29udmVydGVkVmFsdWUgPSBbdmFsdWUuZnJvbSwgdmFsdWUudG9dO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XG4gICAgICB0aGlzLmluc3RhbmNlLnNldERhdGUoY29udmVydGVkVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBmbGF0cGlja3IgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgeWV0LCBzdG9yZSB0aGUgdmFsdWUgZm9yIGxhdGVyIHVzZVxuICAgICAgdGhpcy5pbml0aWFsVmFsdWUgPSBjb252ZXJ0ZWRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWRGbiA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICBpZiAodGhpcy5pbnN0YW5jZSkge1xuICAgICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuaW5zdGFuY2UuX2lucHV0LCAnZGlzYWJsZWQnLCAnZGlzYWJsZWQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuaW5zdGFuY2UuX2lucHV0LCAnZGlzYWJsZWQnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdpbnB1dCcpXG4gIGlucHV0Q2hhbmdlZCgpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZTogc3RyaW5nID0gdGhpcy5lbG0ubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICBpZiAodGhpcy5jb252ZXJ0TW9kZWxWYWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMubW9kZSkge1xuICAgICAgICBjYXNlICdtdWx0aXBsZSc6XG4gICAgICAgICAgY29uc3QgZGF0ZXM6IEFycmF5PERhdGUgfCB1bmRlZmluZWQ+ID0gdmFsdWVcbiAgICAgICAgICAgIC5zcGxpdCgnOyAnKVxuICAgICAgICAgICAgLm1hcCgoc3RyKSA9PlxuICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlLnBhcnNlRGF0ZShcbiAgICAgICAgICAgICAgICBzdHIsXG4gICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5jb25maWcuZGF0ZUZvcm1hdCxcbiAgICAgICAgICAgICAgICAhdGhpcy5pbnN0YW5jZS5jb25maWcuZW5hYmxlVGltZSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5vbkNoYW5nZUZuKGRhdGVzKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdyYW5nZSc6XG4gICAgICAgICAgY29uc3QgW2Zyb20sIHRvXSA9IHZhbHVlXG4gICAgICAgICAgICAuc3BsaXQodGhpcy5pbnN0YW5jZS5sMTBuLnJhbmdlU2VwYXJhdG9yKVxuICAgICAgICAgICAgLm1hcCgoc3RyKSA9PlxuICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlLnBhcnNlRGF0ZShcbiAgICAgICAgICAgICAgICBzdHIsXG4gICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5jb25maWcuZGF0ZUZvcm1hdCxcbiAgICAgICAgICAgICAgICAhdGhpcy5pbnN0YW5jZS5jb25maWcuZW5hYmxlVGltZSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5vbkNoYW5nZUZuKHsgZnJvbSwgdG8gfSk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnc2luZ2xlJzpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlRm4oXG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlLnBhcnNlRGF0ZShcbiAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UuY29uZmlnLmRhdGVGb3JtYXQsXG4gICAgICAgICAgICAgICF0aGlzLmluc3RhbmNlLmNvbmZpZy5lbmFibGVUaW1lLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlRm4odmFsdWUpO1xuICAgIH1cbiAgfVxufVxuIl19
+23
-18

@@ -6,7 +6,22 @@ import { NgModule, InjectionToken, } from '@angular/core';

export const USER_DEFAULTS = new InjectionToken('flatpickr defaults');
export function defaultsFactory(userDefaults) {
const defaults = new FlatpickrDefaults();
Object.assign(defaults, userDefaults);
return defaults;
export function provideFlatpickrDefaults(userDefaults = {}) {
return [
{
provide: USER_DEFAULTS,
useValue: userDefaults,
},
{
provide: FlatpickrDefaults,
useFactory() {
const defaults = new FlatpickrDefaults();
Object.assign(defaults, userDefaults);
return defaults;
},
deps: [USER_DEFAULTS],
},
];
}
/**
* @deprecated Will be removed in the next major version. Please use the standalone `FlatpickrDirective` and `provideFlatpickrDefaults()` instead.
*/
export class FlatpickrModule {

@@ -16,17 +31,7 @@ static forRoot(userDefaults = {}) {

ngModule: FlatpickrModule,
providers: [
{
provide: USER_DEFAULTS,
useValue: userDefaults,
},
{
provide: FlatpickrDefaults,
useFactory: defaultsFactory,
deps: [USER_DEFAULTS],
},
],
providers: provideFlatpickrDefaults(userDefaults),
};
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FlatpickrModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: FlatpickrModule, declarations: [FlatpickrDirective], exports: [FlatpickrDirective] }); }
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: FlatpickrModule, imports: [FlatpickrDirective], exports: [FlatpickrDirective] }); }
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FlatpickrModule }); }

@@ -37,6 +42,6 @@ }

args: [{
declarations: [FlatpickrDirective],
imports: [FlatpickrDirective],
exports: [FlatpickrDirective],
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdHBpY2tyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXJ4LWZsYXRwaWNrci9zcmMvbGliL2ZsYXRwaWNrci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFFBQVEsRUFFUixjQUFjLEdBRWYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUNMLGlCQUFpQixHQUVsQixNQUFNLDhCQUE4QixDQUFDOztBQUV0QyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUV0RSxNQUFNLFVBQVUsZUFBZSxDQUM3QixZQUF3QztJQUV4QyxNQUFNLFFBQVEsR0FBc0IsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO0lBQzVELE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3RDLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFNRCxNQUFNLE9BQU8sZUFBZTtJQUMxQixNQUFNLENBQUMsT0FBTyxDQUNaLGVBQTJDLEVBQUU7UUFFN0MsT0FBTztZQUNMLFFBQVEsRUFBRSxlQUFlO1lBQ3pCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsYUFBYTtvQkFDdEIsUUFBUSxFQUFFLFlBQVk7aUJBQ3ZCO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFVBQVUsRUFBRSxlQUFlO29CQUMzQixJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUM7aUJBQ3RCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzsrR0FsQlUsZUFBZTtnSEFBZixlQUFlLGlCQUhYLGtCQUFrQixhQUN2QixrQkFBa0I7Z0hBRWpCLGVBQWU7OzRGQUFmLGVBQWU7a0JBSjNCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsa0JBQWtCLENBQUM7b0JBQ2xDLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO2lCQUM5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE5nTW9kdWxlLFxuICBNb2R1bGVXaXRoUHJvdmlkZXJzLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgUHJvdmlkZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmxhdHBpY2tyRGlyZWN0aXZlIH0gZnJvbSAnLi9mbGF0cGlja3IuZGlyZWN0aXZlJztcbmltcG9ydCB7XG4gIEZsYXRwaWNrckRlZmF1bHRzLFxuICBGbGF0cGlja3JEZWZhdWx0c0ludGVyZmFjZSxcbn0gZnJvbSAnLi9mbGF0cGlja3ItZGVmYXVsdHMuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBVU0VSX0RFRkFVTFRTID0gbmV3IEluamVjdGlvblRva2VuKCdmbGF0cGlja3IgZGVmYXVsdHMnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRzRmFjdG9yeShcbiAgdXNlckRlZmF1bHRzOiBGbGF0cGlja3JEZWZhdWx0c0ludGVyZmFjZSxcbik6IEZsYXRwaWNrckRlZmF1bHRzIHtcbiAgY29uc3QgZGVmYXVsdHM6IEZsYXRwaWNrckRlZmF1bHRzID0gbmV3IEZsYXRwaWNrckRlZmF1bHRzKCk7XG4gIE9iamVjdC5hc3NpZ24oZGVmYXVsdHMsIHVzZXJEZWZhdWx0cyk7XG4gIHJldHVybiBkZWZhdWx0cztcbn1cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbRmxhdHBpY2tyRGlyZWN0aXZlXSxcbiAgZXhwb3J0czogW0ZsYXRwaWNrckRpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIEZsYXRwaWNrck1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KFxuICAgIHVzZXJEZWZhdWx0czogRmxhdHBpY2tyRGVmYXVsdHNJbnRlcmZhY2UgPSB7fSxcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxGbGF0cGlja3JNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEZsYXRwaWNrck1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogVVNFUl9ERUZBVUxUUyxcbiAgICAgICAgICB1c2VWYWx1ZTogdXNlckRlZmF1bHRzLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogRmxhdHBpY2tyRGVmYXVsdHMsXG4gICAgICAgICAgdXNlRmFjdG9yeTogZGVmYXVsdHNGYWN0b3J5LFxuICAgICAgICAgIGRlcHM6IFtVU0VSX0RFRkFVTFRTXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdHBpY2tyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXJ4LWZsYXRwaWNrci9zcmMvbGliL2ZsYXRwaWNrci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFFBQVEsRUFFUixjQUFjLEdBRWYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUNMLGlCQUFpQixHQUVsQixNQUFNLDhCQUE4QixDQUFDOztBQUV0QyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUV0RSxNQUFNLFVBQVUsd0JBQXdCLENBQ3RDLGVBQTJDLEVBQUU7SUFFN0MsT0FBTztRQUNMO1lBQ0UsT0FBTyxFQUFFLGFBQWE7WUFDdEIsUUFBUSxFQUFFLFlBQVk7U0FDdkI7UUFDRDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsVUFBVTtnQkFDUixNQUFNLFFBQVEsR0FBc0IsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO2dCQUM1RCxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztnQkFDdEMsT0FBTyxRQUFRLENBQUM7WUFDbEIsQ0FBQztZQUNELElBQUksRUFBRSxDQUFDLGFBQWEsQ0FBQztTQUN0QjtLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFLSCxNQUFNLE9BQU8sZUFBZTtJQUMxQixNQUFNLENBQUMsT0FBTyxDQUNaLGVBQTJDLEVBQUU7UUFFN0MsT0FBTztZQUNMLFFBQVEsRUFBRSxlQUFlO1lBQ3pCLFNBQVMsRUFBRSx3QkFBd0IsQ0FBQyxZQUFZLENBQUM7U0FDbEQsQ0FBQztJQUNKLENBQUM7K0dBUlUsZUFBZTtnSEFBZixlQUFlLFlBSGhCLGtCQUFrQixhQUNsQixrQkFBa0I7Z0hBRWpCLGVBQWU7OzRGQUFmLGVBQWU7a0JBSjNCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUM7b0JBQzdCLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO2lCQUM5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE5nTW9kdWxlLFxuICBNb2R1bGVXaXRoUHJvdmlkZXJzLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgUHJvdmlkZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmxhdHBpY2tyRGlyZWN0aXZlIH0gZnJvbSAnLi9mbGF0cGlja3IuZGlyZWN0aXZlJztcbmltcG9ydCB7XG4gIEZsYXRwaWNrckRlZmF1bHRzLFxuICBGbGF0cGlja3JEZWZhdWx0c0ludGVyZmFjZSxcbn0gZnJvbSAnLi9mbGF0cGlja3ItZGVmYXVsdHMuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBVU0VSX0RFRkFVTFRTID0gbmV3IEluamVjdGlvblRva2VuKCdmbGF0cGlja3IgZGVmYXVsdHMnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVGbGF0cGlja3JEZWZhdWx0cyhcbiAgdXNlckRlZmF1bHRzOiBGbGF0cGlja3JEZWZhdWx0c0ludGVyZmFjZSA9IHt9LFxuKTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogVVNFUl9ERUZBVUxUUyxcbiAgICAgIHVzZVZhbHVlOiB1c2VyRGVmYXVsdHMsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBGbGF0cGlja3JEZWZhdWx0cyxcbiAgICAgIHVzZUZhY3RvcnkoKSB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRzOiBGbGF0cGlja3JEZWZhdWx0cyA9IG5ldyBGbGF0cGlja3JEZWZhdWx0cygpO1xuICAgICAgICBPYmplY3QuYXNzaWduKGRlZmF1bHRzLCB1c2VyRGVmYXVsdHMpO1xuICAgICAgICByZXR1cm4gZGVmYXVsdHM7XG4gICAgICB9LFxuICAgICAgZGVwczogW1VTRVJfREVGQVVMVFNdLFxuICAgIH0sXG4gIF07XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24uIFBsZWFzZSB1c2UgdGhlIHN0YW5kYWxvbmUgYEZsYXRwaWNrckRpcmVjdGl2ZWAgYW5kIGBwcm92aWRlRmxhdHBpY2tyRGVmYXVsdHMoKWAgaW5zdGVhZC5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0ZsYXRwaWNrckRpcmVjdGl2ZV0sXG4gIGV4cG9ydHM6IFtGbGF0cGlja3JEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBGbGF0cGlja3JNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChcbiAgICB1c2VyRGVmYXVsdHM6IEZsYXRwaWNrckRlZmF1bHRzSW50ZXJmYWNlID0ge30sXG4gICk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RmxhdHBpY2tyTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBGbGF0cGlja3JNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IHByb3ZpZGVGbGF0cGlja3JEZWZhdWx0cyh1c2VyRGVmYXVsdHMpLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==

@@ -424,3 +424,3 @@ import * as i0 from '@angular/core';

static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FlatpickrDirective, deps: [{ token: i0.ElementRef }, { token: FlatpickrDefaults }, { token: i0.Renderer2 }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: FlatpickrDirective, selector: "[mwlFlatpickr]", inputs: { options: "options", altFormat: "altFormat", altInput: "altInput", altInputClass: "altInputClass", allowInput: "allowInput", allowInvalidPreload: "allowInvalidPreload", appendTo: "appendTo", ariaDateFormat: "ariaDateFormat", clickOpens: "clickOpens", dateFormat: "dateFormat", defaultHour: "defaultHour", defaultMinute: "defaultMinute", defaultSeconds: "defaultSeconds", disable: "disable", disableMobile: "disableMobile", enable: "enable", enableTime: "enableTime", enableSeconds: "enableSeconds", formatDate: "formatDate", hourIncrement: "hourIncrement", inline: "inline", maxDate: "maxDate", minDate: "minDate", maxTime: "maxTime", minTime: "minTime", minuteIncrement: "minuteIncrement", mode: "mode", nextArrow: "nextArrow", noCalendar: "noCalendar", now: "now", parseDate: "parseDate", prevArrow: "prevArrow", shorthandCurrentMonth: "shorthandCurrentMonth", showMonths: "showMonths", static: "static", time24hr: "time24hr", weekNumbers: "weekNumbers", getWeek: "getWeek", wrap: "wrap", plugins: "plugins", locale: "locale", convertModelValue: "convertModelValue", monthSelectorType: "monthSelectorType", ignoredFocusElements: "ignoredFocusElements" }, outputs: { flatpickrReady: "flatpickrReady", flatpickrChange: "flatpickrChange", flatpickrValueUpdate: "flatpickrValueUpdate", flatpickrOpen: "flatpickrOpen", flatpickrClose: "flatpickrClose", flatpickrMonthChange: "flatpickrMonthChange", flatpickrYearChange: "flatpickrYearChange", flatpickrDayCreate: "flatpickrDayCreate" }, host: { listeners: { "blur": "onTouchedFn()", "input": "inputChanged()" } }, providers: [FLATPICKR_CONTROL_VALUE_ACCESSOR], exportAs: ["mwlFlatpickr"], usesOnChanges: true, ngImport: i0 }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: FlatpickrDirective, isStandalone: true, selector: "[mwlFlatpickr]", inputs: { options: "options", altFormat: "altFormat", altInput: "altInput", altInputClass: "altInputClass", allowInput: "allowInput", allowInvalidPreload: "allowInvalidPreload", appendTo: "appendTo", ariaDateFormat: "ariaDateFormat", clickOpens: "clickOpens", dateFormat: "dateFormat", defaultHour: "defaultHour", defaultMinute: "defaultMinute", defaultSeconds: "defaultSeconds", disable: "disable", disableMobile: "disableMobile", enable: "enable", enableTime: "enableTime", enableSeconds: "enableSeconds", formatDate: "formatDate", hourIncrement: "hourIncrement", inline: "inline", maxDate: "maxDate", minDate: "minDate", maxTime: "maxTime", minTime: "minTime", minuteIncrement: "minuteIncrement", mode: "mode", nextArrow: "nextArrow", noCalendar: "noCalendar", now: "now", parseDate: "parseDate", prevArrow: "prevArrow", shorthandCurrentMonth: "shorthandCurrentMonth", showMonths: "showMonths", static: "static", time24hr: "time24hr", weekNumbers: "weekNumbers", getWeek: "getWeek", wrap: "wrap", plugins: "plugins", locale: "locale", convertModelValue: "convertModelValue", monthSelectorType: "monthSelectorType", ignoredFocusElements: "ignoredFocusElements" }, outputs: { flatpickrReady: "flatpickrReady", flatpickrChange: "flatpickrChange", flatpickrValueUpdate: "flatpickrValueUpdate", flatpickrOpen: "flatpickrOpen", flatpickrClose: "flatpickrClose", flatpickrMonthChange: "flatpickrMonthChange", flatpickrYearChange: "flatpickrYearChange", flatpickrDayCreate: "flatpickrDayCreate" }, host: { listeners: { "blur": "onTouchedFn()", "input": "inputChanged()" } }, providers: [FLATPICKR_CONTROL_VALUE_ACCESSOR], exportAs: ["mwlFlatpickr"], usesOnChanges: true, ngImport: i0 }); }
}

@@ -433,2 +433,3 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FlatpickrDirective, decorators: [{

exportAs: 'mwlFlatpickr',
standalone: true,
}]

@@ -551,7 +552,22 @@ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: FlatpickrDefaults }, { type: i0.Renderer2 }, { type: Object, decorators: [{

const USER_DEFAULTS = new InjectionToken('flatpickr defaults');
function defaultsFactory(userDefaults) {
const defaults = new FlatpickrDefaults();
Object.assign(defaults, userDefaults);
return defaults;
function provideFlatpickrDefaults(userDefaults = {}) {
return [
{
provide: USER_DEFAULTS,
useValue: userDefaults,
},
{
provide: FlatpickrDefaults,
useFactory() {
const defaults = new FlatpickrDefaults();
Object.assign(defaults, userDefaults);
return defaults;
},
deps: [USER_DEFAULTS],
},
];
}
/**
* @deprecated Will be removed in the next major version. Please use the standalone `FlatpickrDirective` and `provideFlatpickrDefaults()` instead.
*/
class FlatpickrModule {

@@ -561,17 +577,7 @@ static forRoot(userDefaults = {}) {

ngModule: FlatpickrModule,
providers: [
{
provide: USER_DEFAULTS,
useValue: userDefaults,
},
{
provide: FlatpickrDefaults,
useFactory: defaultsFactory,
deps: [USER_DEFAULTS],
},
],
providers: provideFlatpickrDefaults(userDefaults),
};
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FlatpickrModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: FlatpickrModule, declarations: [FlatpickrDirective], exports: [FlatpickrDirective] }); }
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: FlatpickrModule, imports: [FlatpickrDirective], exports: [FlatpickrDirective] }); }
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FlatpickrModule }); }

@@ -582,3 +588,3 @@ }

args: [{
declarations: [FlatpickrDirective],
imports: [FlatpickrDirective],
exports: [FlatpickrDirective],

@@ -596,3 +602,3 @@ }]

export { FlatpickrDefaults, FlatpickrDirective, FlatpickrModule, USER_DEFAULTS, defaultsFactory };
export { FlatpickrDefaults, FlatpickrDirective, FlatpickrModule, USER_DEFAULTS, provideFlatpickrDefaults };
//# sourceMappingURL=angularx-flatpickr.mjs.map

@@ -1,1 +0,1 @@

{"version":3,"file":"angularx-flatpickr.mjs","sources":["../../../projects/angularx-flatpickr/src/lib/flatpickr-defaults.service.ts","../../../projects/angularx-flatpickr/src/lib/flatpickr.directive.ts","../../../projects/angularx-flatpickr/src/lib/flatpickr.module.ts","../../../projects/angularx-flatpickr/src/public-api.ts","../../../projects/angularx-flatpickr/src/angularx-flatpickr.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nexport type DisableEnableDate =\n | string\n | Date\n | { from: Date | string; to: Date | string }\n | ((date: Date) => boolean);\n\nexport interface FlatpickrDefaultsInterface {\n /**\n * Exactly the same as date format, but for the altInput field.\n */\n altFormat?: string;\n\n /**\n * \tShow the user a readable date (as per altFormat), but return something totally different to the server.\n */\n altInput?: boolean;\n\n /**\n * This class will be added to the input element created by the altInput option.\n * Note that `altInput` already inherits classes from the original input.\n */\n altInputClass?: string;\n\n /**\n * Allows the user to enter a date directly input the input field. By default, direct entry is disabled.\n */\n allowInput?: boolean;\n\n /**\n * Allows the preloading of an invalid date. When disabled, the field will be cleared if the provided date is invalid\n */\n allowInvalidPreload?: boolean;\n\n /**\n * Instead of `body`, appends the calendar to the specified node instead.\n */\n appendTo?: HTMLElement;\n\n /**\n * Defines how the date will be formatted in the aria-label for calendar days, using the same tokens as dateFormat. If you change this, you should choose a value that will make sense if a screen reader reads it out loud.\n */\n ariaDateFormat?: string;\n\n /**\n * Whether clicking on the input should open the picker.\n * You could disable this if you wish to open the calendar manually `with.open()`.\n */\n clickOpens?: boolean;\n\n /**\n * A string of characters which are used to define how the date will be displayed in the input box.\n * The supported characters are defined in the table below.\n */\n dateFormat?: string;\n /**\n * Initial value of the hour element.\n */\n defaultHour?: number;\n /**\n * Initial value of the minute element.\n */\n defaultMinute?: number;\n /**\n * Initial value of the seconds element.\n */\n defaultSeconds?: number;\n\n /**\n * See <a href=\"https://chmln.github.io/flatpickr/examples/#disabling-specific-dates\">disabling dates</a>.\n */\n disable?: DisableEnableDate[];\n\n /**\n * Set disableMobile to true to always use the non-native picker.\n * By default, Flatpickr utilizes native datetime widgets unless certain options (e.g. disable) are used.\n */\n disableMobile?: boolean;\n\n /**\n * See <a href=\"https://chmln.github.io/flatpickr/examples/#disabling-all-dates-except-select-few\">enabling dates</a>.\n */\n enable?: DisableEnableDate[];\n\n /**\n * Enables time picker.\n */\n enableTime?: boolean;\n\n /**\n * Enables seconds in the time picker.\n */\n enableSeconds?: boolean;\n /**\n * Allows using a custom date formatting function instead of the built-in handling for date formats using dateFormat, altFormat, etc.\n */\n formatDate?: (value: any) => string;\n /**\n * Adjusts the step for the hour input (incl. scrolling).\n */\n hourIncrement?: number;\n\n /**\n * Displays the calendar inline.\n */\n inline?: boolean;\n\n /**\n * The maximum date that a user can pick to (inclusive).\n */\n maxDate?: string | Date;\n\n /**\n * The minimum date that a user can start picking from (inclusive).\n */\n minDate?: string | Date;\n\n /**\n * The maximum time that a user can pick to (inclusive).\n */\n maxTime?: string;\n\n /**\n * The minimum time that a user can start picking from (inclusive).\n */\n minTime?: string;\n\n /**\n * Adjusts the step for the minute input (incl. scrolling).\n */\n minuteIncrement?: number;\n\n /**\n * Select a single date, multiple dates or a date range.\n */\n mode?: 'single' | 'multiple' | 'range';\n\n /**\n * HTML for the arrow icon, used to switch months.\n */\n nextArrow?: string;\n\n /**\n * Hides the day selection in calendar. Use it along with `enableTime` to create a time picker.\n */\n noCalendar?: boolean;\n\n /**\n * Provide a date for 'today', which will be used instead of \"new Date()\"\n */\n now?: Date | string | number;\n\n /**\n * Function that expects a date string and must return a Date object.\n */\n parseDate?: (str: string) => Date;\n\n /**\n * HTML for the left arrow icon.\n */\n prevArrow?: string;\n\n /**\n * Show the month using the shorthand version (ie, Sep instead of September).\n */\n shorthandCurrentMonth?: boolean;\n\n /**\n * Position the calendar inside the wrapper and next to the input element. (Leave `false` unless you know what you're doing).\n */\n static?: boolean;\n\n /**\n * Displays time picker in 24 hour mode without AM/PM selection when enabled.\n */\n time24hr?: boolean;\n\n /**\n * When true, dates will parsed, formatted, and displayed in UTC.\n * It's recommended that date strings contain the timezone, but not necessary.\n */\n utc?: boolean;\n\n /**\n * Enables display of week numbers in calendar.\n */\n weekNumbers?: boolean;\n\n /**\n * You may override the function that extracts the week numbers from a Date by supplying a getWeek function.\n * It takes in a date as a parameter and should return a corresponding string that you want to appear left of every week.\n */\n getWeek?: (date: Date) => string;\n\n /**\n * Custom elements and input groups.\n */\n wrap?: boolean;\n\n /**\n * Array of plugin instances to use.\n */\n plugins?: any[];\n\n /**\n * The locale object or string to use for the locale.\n */\n locale?: object | string;\n\n /**\n * Auto convert the ngModel value from a string to a date / array of dates / from - to date object depending on the `mode`\n */\n convertModelValue?: boolean;\n\n /**\n * The number of months shown.\n */\n showMonths?: number;\n\n /**\n * How the month should be displayed in the header of the calendar.\n */\n monthSelectorType?: 'static' | 'dropdown';\n\n /**\n * Array of HTML elements that should not close the picker on click.\n */\n ignoredFocusElements?: HTMLElement[];\n}\n\n@Injectable()\nexport class FlatpickrDefaults implements FlatpickrDefaultsInterface {\n /**\n * Exactly the same as date format, but for the altInput field.\n */\n altFormat: string = 'F j, Y';\n\n /**\n * \tShow the user a readable date (as per altFormat), but return something totally different to the server.\n */\n altInput: boolean = false;\n\n /**\n * This class will be added to the input element created by the altInput option.\n * Note that `altInput` already inherits classes from the original input.\n */\n altInputClass: string = '';\n\n /**\n * Allows the user to enter a date directly input the input field. By default, direct entry is disabled.\n */\n allowInput: boolean = false;\n\n /**\n * Allows the preloading of an invalid date. When disabled, the field will be cleared if the provided date is invalid\n */\n allowInvalidPreload: boolean = false;\n\n /**\n * Instead of `body`, appends the calendar to the specified node instead.\n */\n appendTo: HTMLElement | undefined = undefined;\n\n /**\n * Defines how the date will be formatted in the aria-label for calendar days, using the same tokens as dateFormat. If you change this, you should choose a value that will make sense if a screen reader reads it out loud.\n */\n ariaDateFormat?: string = 'F j, Y';\n\n /**\n * Whether clicking on the input should open the picker.\n * You could disable this if you wish to open the calendar manually `with.open()`.\n */\n clickOpens: boolean = true;\n\n /**\n * A string of characters which are used to define how the date will be displayed in the input box.\n * The supported characters are defined in the table below.\n */\n dateFormat: string = 'Y-m-d';\n\n /**\n * Initial value of the hour element.\n */\n defaultHour?: number = 12;\n\n /**\n * Initial value of the minute element.\n */\n defaultMinute?: number = 0;\n\n /**\n * Initial value of the seconds element.\n */\n defaultSeconds?: number = 0;\n\n /**\n * See <a href=\"https://chmln.github.io/flatpickr/examples/#disabling-specific-dates\">disabling dates</a>.\n */\n disable: DisableEnableDate[] = [];\n\n /**\n * Set disableMobile to true to always use the non-native picker.\n * By default, Flatpickr utilizes native datetime widgets unless certain options (e.g. disable) are used.\n */\n disableMobile: boolean = false;\n\n /**\n * See <a href=\"https://chmln.github.io/flatpickr/examples/#disabling-all-dates-except-select-few\">enabling dates</a>.\n */\n enable: DisableEnableDate[];\n\n /**\n * Enables time picker.\n */\n enableTime: boolean = false;\n\n /**\n * Enables seconds in the time picker.\n */\n enableSeconds: boolean = false;\n\n /**\n * Allows using a custom date formatting function instead of the built-in handling for date formats using dateFormat, altFormat, etc.\n */\n formatDate?: (value: any) => string = undefined;\n\n /**\n * Adjusts the step for the hour input (incl. scrolling).\n */\n hourIncrement: number = 1;\n\n /**\n * Displays the calendar inline.\n */\n inline: boolean = false;\n\n /**\n * The maximum date that a user can pick to (inclusive).\n */\n maxDate: string | Date | undefined = undefined;\n\n /**\n * The minimum date that a user can start picking from (inclusive).\n */\n minDate: string | Date | undefined = undefined;\n\n /**\n * The maximum time that a user can pick to (inclusive).\n */\n maxTime: string | undefined = undefined;\n\n /**\n * The minimum time that a user can start picking from (inclusive).\n */\n minTime: string | undefined = undefined;\n\n /**\n * Adjusts the step for the minute input (incl. scrolling).\n */\n minuteIncrement: number = 5;\n\n /**\n * Select a single date, multiple dates or a date range.\n */\n mode: 'single' | 'multiple' | 'range' = 'single';\n\n /**\n * HTML for the arrow icon, used to switch months.\n */\n nextArrow: string = '>';\n\n /**\n * Hides the day selection in calendar. Use it along with `enableTime` to create a time picker.\n */\n noCalendar: boolean = false;\n\n /**\n * Default now to the current date\n */\n now: Date | string | number = new Date();\n\n /**\n * Function that expects a date string and must return a Date object.\n */\n parseDate: (str: string) => Date;\n\n /**\n * HTML for the left arrow icon.\n */\n prevArrow: string = '<';\n\n /**\n * Show the month using the shorthand version (ie, Sep instead of September).\n */\n shorthandCurrentMonth: boolean = false;\n\n /**\n * Position the calendar inside the wrapper and next to the input element. (Leave `false` unless you know what you're doing).\n */\n static: boolean = false;\n\n /**\n * Displays time picker in 24 hour mode without AM/PM selection when enabled.\n */\n time24hr: boolean = false;\n\n /**\n * When true, dates will parsed, formatted, and displayed in UTC.\n * It's recommended that date strings contain the timezone, but not necessary.\n */\n utc: boolean = false;\n\n /**\n * Enables display of week numbers in calendar.\n */\n weekNumbers: boolean = false;\n\n /**\n * You may override the function that extracts the week numbers from a Date by supplying a getWeek function.\n * It takes in a date as a parameter and should return a corresponding string that you want to appear left of every week.\n */\n getWeek: (date: Date) => string;\n\n /**\n * Custom elements and input groups.\n */\n wrap: boolean = false;\n\n /**\n * Array of plugin instances to use.\n */\n plugins: any[] = [];\n\n /**\n * The locale object or string to use for the locale.\n */\n locale: object | string = 'default';\n\n /**\n * Auto convert the ngModel value from a string to a date / array of dates / from - to date object depending on the `mode`\n */\n convertModelValue: boolean = false;\n\n /**\n * The number of months shown.\n */\n showMonths: number = 1;\n\n /**\n * How the month should be displayed in the header of the calendar.\n */\n monthSelectorType: 'static' | 'dropdown' = 'static';\n\n /**\n * Array of HTML elements that should not close the picker on click.\n */\n ignoredFocusElements: HTMLElement[] = [];\n}\n","import {\n Directive,\n ElementRef,\n AfterViewInit,\n Input,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n forwardRef,\n HostListener,\n Renderer2,\n PLATFORM_ID,\n Inject,\n} from '@angular/core';\nimport {\n FlatpickrDefaults,\n DisableEnableDate,\n FlatpickrDefaultsInterface,\n} from './flatpickr-defaults.service';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport flatpickr from 'flatpickr';\nimport { isPlatformBrowser } from '@angular/common';\n\nexport interface FlatPickrOutputOptions {\n selectedDates: Date[];\n dateString: string;\n instance: any;\n}\n\nexport interface FlatPickrDayCreateOutputOptions\n extends FlatPickrOutputOptions {\n dayElement: HTMLElement;\n}\n\nexport const FLATPICKR_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FlatpickrDirective),\n multi: true,\n};\n\n@Directive({\n selector: '[mwlFlatpickr]',\n providers: [FLATPICKR_CONTROL_VALUE_ACCESSOR],\n exportAs: 'mwlFlatpickr',\n})\nexport class FlatpickrDirective\n implements AfterViewInit, OnChanges, OnDestroy, ControlValueAccessor\n{\n /**\n * Object-options that can be user for multiple instances of Flatpickr.\n * Option from this object is applied only if specific option is not specified.\n * Example:\n * ```typescript\n * options: FlatpickrDefaultsInterface = {\n * altFormat: 'd/m/Y', // will be ignored since altFormat is provided via specific attribute\n * altInput: true // will be used since specific attribute is not provided\n * };\n * ```\n * ```html\n * <input\n * class=\"form-control\"\n * type=\"text\"\n * mwlFlatpickr\n * [options]=\"options\"\n * altFormat=\"d/m/Y\">\n * ```\n */\n @Input() options: FlatpickrDefaultsInterface = {};\n\n /**\n * Exactly the same as date format, but for the altInput field.\n */\n @Input() altFormat: string;\n\n /**\n * \tShow the user a readable date (as per altFormat), but return something totally different to the server.\n */\n @Input() altInput: boolean;\n\n /**\n * This class will be added to the input element created by the altInput option.\n * Note that `altInput` already inherits classes from the original input.\n */\n @Input() altInputClass: string;\n\n /**\n * Allows the user to enter a date directly input the input field. By default, direct entry is disabled.\n */\n @Input() allowInput: boolean;\n\n /**\n * Allows the preloading of an invalid date. When disabled, the field will be cleared if the provided date is invalid\n */\n @Input() allowInvalidPreload: boolean;\n\n /**\n * Instead of `body`, appends the calendar to the specified node instead.\n */\n @Input() appendTo: HTMLElement;\n\n /**\n * Defines how the date will be formatted in the aria-label for calendar days, using the same tokens as dateFormat. If you change this, you should choose a value that will make sense if a screen reader reads it out loud.\n */\n @Input() ariaDateFormat?: string;\n\n /**\n * Whether clicking on the input should open the picker.\n * You could disable this if you wish to open the calendar manually `with.open()`.\n */\n @Input() clickOpens: boolean;\n\n /**\n * A string of characters which are used to define how the date will be displayed in the input box.\n * The supported characters are defined in the table below.\n */\n @Input() dateFormat: string;\n\n /**\n * Initial value of the hour element.\n */\n @Input() defaultHour?: number;\n /**\n * Initial value of the minute element.\n */\n @Input() defaultMinute?: number;\n\n /**\n * Initial value of the seconds element.\n */\n @Input() defaultSeconds?: number;\n\n /**\n * See <a href=\"https://chmln.github.io/flatpickr/examples/#disabling-specific-dates\">disabling dates</a>.\n */\n @Input() disable: DisableEnableDate[];\n\n /**\n * Set disableMobile to true to always use the non-native picker.\n * By default, Flatpickr utilizes native datetime widgets unless certain options (e.g. disable) are used.\n */\n @Input() disableMobile: boolean;\n\n /**\n * See <a href=\"https://chmln.github.io/flatpickr/examples/#disabling-all-dates-except-select-few\">enabling dates</a>.\n */\n @Input() enable: DisableEnableDate[];\n\n /**\n * Enables time picker.\n */\n @Input() enableTime: boolean;\n\n /**\n * Enables seconds in the time picker.\n */\n @Input() enableSeconds: boolean;\n\n /**\n * Allows using a custom date formatting function instead of the built-in handling for date formats using dateFormat, altFormat, etc.\n */\n @Input() formatDate?: (value: any) => string;\n\n /**\n * Adjusts the step for the hour input (incl. scrolling).\n */\n @Input() hourIncrement: number;\n\n /**\n * Displays the calendar inline.\n */\n @Input() inline: boolean;\n\n /**\n * The maximum date that a user can pick to (inclusive).\n */\n @Input() maxDate: string | Date;\n\n /**\n * The minimum date that a user can start picking from (inclusive).\n */\n @Input() minDate: string | Date;\n\n /**\n * The maximum time that a user can pick to (inclusive).\n */\n @Input() maxTime: string;\n\n /**\n * The minimum time that a user can start picking from (inclusive).\n */\n @Input() minTime: string;\n\n /**\n * Adjusts the step for the minute input (incl. scrolling).\n */\n @Input() minuteIncrement: number;\n\n /**\n * Select a single date, multiple dates or a date range.\n */\n @Input() mode: 'single' | 'multiple' | 'range';\n\n /**\n * HTML for the arrow icon, used to switch months.\n */\n @Input() nextArrow: string;\n\n /**\n * Hides the day selection in calendar. Use it along with `enableTime` to create a time picker.\n */\n @Input() noCalendar: boolean;\n\n /**\n * Provide a date for 'today', which will be used instead of \"new Date()\"\n */\n @Input() now?: Date | string | number;\n\n /**\n * Function that expects a date string and must return a Date object.\n */\n @Input() parseDate: (str: string) => Date;\n\n /**\n * HTML for the left arrow icon.\n */\n @Input() prevArrow: string;\n\n /**\n * Show the month using the shorthand version (ie, Sep instead of September).\n */\n @Input() shorthandCurrentMonth: boolean;\n\n /**\n * The number of months shown.\n */\n @Input() showMonths: number;\n\n /**\n * Position the calendar inside the wrapper and next to the input element. (Leave `false` unless you know what you're doing).\n */\n @Input() static: boolean;\n\n /**\n * Displays time picker in 24 hour mode without AM/PM selection when enabled.\n */\n @Input() time24hr: boolean;\n\n /**\n * Enables display of week numbers in calendar.\n */\n @Input() weekNumbers: boolean;\n\n /**\n * You may override the function that extracts the week numbers from a Date by supplying a getWeek function.\n * It takes in a date as a parameter and should return a corresponding string that you want to appear left of every week.\n */\n @Input() getWeek: (date: Date) => string;\n\n /**\n * Custom elements and input groups.\n */\n @Input() wrap: boolean;\n\n /**\n * Array of plugin instances to use.\n */\n @Input() plugins: any[];\n\n /**\n * The locale object or string to use for the locale.\n */\n @Input() locale: object | string;\n\n /**\n * Auto convert the ngModel value from a string to a date / array of dates / from - to date object depending on the `mode`\n */\n @Input() convertModelValue: boolean;\n\n /**\n * How the month should be displayed in the header of the calendar.\n */\n @Input() monthSelectorType: 'static' | 'dropdown';\n\n /**\n * Array of HTML elements that should not close the picker on click.\n */\n @Input() ignoredFocusElements: HTMLElement[] = [];\n\n /**\n * Gets triggered once the calendar is in a ready state\n */\n @Output()\n flatpickrReady: EventEmitter<FlatPickrOutputOptions> = new EventEmitter();\n\n /**\n * Gets triggered when the user selects a date, or changes the time on a selected date.\n */\n @Output()\n flatpickrChange: EventEmitter<FlatPickrOutputOptions> = new EventEmitter();\n\n /**\n * Gets triggered when the input value is updated with a new date string.\n */\n @Output()\n flatpickrValueUpdate: EventEmitter<FlatPickrOutputOptions> =\n new EventEmitter();\n\n /**\n * Gets triggered when the calendar is opened.\n */\n @Output()\n flatpickrOpen: EventEmitter<FlatPickrOutputOptions> = new EventEmitter();\n\n /**\n * Gets triggered when the calendar is closed.\n */\n @Output()\n flatpickrClose: EventEmitter<FlatPickrOutputOptions> = new EventEmitter();\n\n /**\n * Gets triggered when the month is changed, either by the user or programmatically.\n */\n @Output()\n flatpickrMonthChange: EventEmitter<FlatPickrOutputOptions> =\n new EventEmitter();\n\n /**\n * Gets triggered when the year is changed, either by the user or programmatically.\n */\n @Output()\n flatpickrYearChange: EventEmitter<FlatPickrOutputOptions> =\n new EventEmitter();\n\n /**\n * Take full control of every date cell with this output\n */\n @Output()\n flatpickrDayCreate: EventEmitter<FlatPickrDayCreateOutputOptions> =\n new EventEmitter();\n\n /**\n * The flatpickr instance where you can call methods like toggle(), open(), close() etc\n */\n instance: flatpickr.Instance;\n\n private isDisabled = false;\n private initialValue: any;\n\n onChangeFn: (value: any) => void = () => {};\n\n @HostListener('blur')\n onTouchedFn = () => {};\n\n constructor(\n private elm: ElementRef,\n private defaults: FlatpickrDefaults,\n private renderer: Renderer2,\n @Inject(PLATFORM_ID) private platformId: Object,\n ) {}\n\n ngAfterViewInit(): void {\n const options: any = {\n altFormat: this.altFormat,\n altInput: this.altInput,\n altInputClass: this.altInputClass,\n allowInput: this.allowInput,\n allowInvalidPreload: this.allowInvalidPreload,\n appendTo: this.appendTo,\n ariaDateFormat: this.ariaDateFormat,\n clickOpens: this.clickOpens,\n dateFormat: this.dateFormat,\n defaultHour: this.defaultHour,\n defaultMinute: this.defaultMinute,\n defaultSeconds: this.defaultSeconds,\n disable: this.disable,\n disableMobile: this.disableMobile,\n enable: this.enable,\n enableTime: this.enableTime,\n enableSeconds: this.enableSeconds,\n formatDate: this.formatDate,\n hourIncrement: this.hourIncrement,\n defaultDate: this.initialValue,\n inline: this.inline,\n maxDate: this.maxDate,\n minDate: this.minDate,\n maxTime: this.maxTime,\n minTime: this.minTime,\n minuteIncrement: this.minuteIncrement,\n mode: this.mode,\n nextArrow: this.nextArrow,\n noCalendar: this.noCalendar,\n now: this.now,\n parseDate: this.parseDate,\n prevArrow: this.prevArrow,\n shorthandCurrentMonth: this.shorthandCurrentMonth,\n showMonths: this.showMonths,\n monthSelectorType: this.monthSelectorType,\n static: this.static,\n time24hr: this.time24hr,\n weekNumbers: this.weekNumbers,\n getWeek: this.getWeek,\n wrap: this.wrap,\n plugins: this.plugins,\n locale: this.locale,\n ignoredFocusElements: this.ignoredFocusElements,\n onChange: (selectedDates: Date[], dateString: string, instance: any) => {\n this.flatpickrChange.emit({ selectedDates, dateString, instance });\n },\n onOpen: (selectedDates: Date[], dateString: string, instance: any) => {\n this.flatpickrOpen.emit({ selectedDates, dateString, instance });\n },\n onClose: (selectedDates: Date[], dateString: string, instance: any) => {\n this.flatpickrClose.emit({ selectedDates, dateString, instance });\n },\n onMonthChange: (\n selectedDates: Date[],\n dateString: string,\n instance: any,\n ) => {\n this.flatpickrMonthChange.emit({ selectedDates, dateString, instance });\n },\n onYearChange: (\n selectedDates: Date[],\n dateString: string,\n instance: any,\n ) => {\n this.flatpickrYearChange.emit({ selectedDates, dateString, instance });\n },\n onReady: (selectedDates: Date[], dateString: string, instance: any) => {\n this.flatpickrReady.emit({ selectedDates, dateString, instance });\n },\n onValueUpdate: (\n selectedDates: Date[],\n dateString: string,\n instance: any,\n ) => {\n this.flatpickrValueUpdate.emit({ selectedDates, dateString, instance });\n },\n onDayCreate: (\n selectedDates: Date[],\n dateString: string,\n instance: any,\n dayElement: HTMLElement,\n ) => {\n this.flatpickrDayCreate.emit({\n selectedDates,\n dateString,\n instance,\n dayElement,\n });\n },\n };\n\n Object.keys(options).forEach((key) => {\n if (typeof options[key] === 'undefined') {\n if (typeof (this.options as any)[key] !== 'undefined') {\n options[key] = (this.options as any)[key];\n } else {\n options[key] = (this.defaults as any)[key];\n }\n }\n });\n\n // @ts-ignore\n options.time_24hr = options.time24hr;\n\n // workaround bug in flatpickr 4.6 where it doesn't copy the classes across\n // TODO - remove once fix in https://github.com/flatpickr/flatpickr/issues/1860 is released\n options.altInputClass =\n (options.altInputClass || '') + ' ' + this.elm.nativeElement.className;\n\n if (!options.enable) {\n delete options.enable;\n }\n\n if (isPlatformBrowser(this.platformId)) {\n this.instance = flatpickr(\n this.elm.nativeElement,\n options,\n ) as flatpickr.Instance;\n this.setDisabledState(this.isDisabled);\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.instance) {\n Object.keys(changes).forEach((inputKey) => {\n this.instance.set(inputKey as any, (this as any)[inputKey]);\n });\n }\n }\n\n ngOnDestroy(): void {\n if (this.instance) {\n this.instance.destroy();\n }\n }\n\n writeValue(value: any): void {\n let convertedValue: any = value;\n if (this.convertModelValue && this.mode === 'range' && value) {\n convertedValue = [value.from, value.to];\n }\n\n if (this.instance) {\n this.instance.setDate(convertedValue);\n } else {\n // flatpickr hasn't been initialised yet, store the value for later use\n this.initialValue = convertedValue;\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouchedFn = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n if (this.instance) {\n if (this.isDisabled) {\n this.renderer.setProperty(this.instance._input, 'disabled', 'disabled');\n } else {\n this.renderer.removeAttribute(this.instance._input, 'disabled');\n }\n }\n }\n\n @HostListener('input')\n inputChanged(): void {\n const value: string = this.elm.nativeElement.value;\n if (this.convertModelValue && typeof value === 'string') {\n switch (this.mode) {\n case 'multiple':\n const dates: Array<Date | undefined> = value\n .split('; ')\n .map((str) =>\n this.instance.parseDate(\n str,\n this.instance.config.dateFormat,\n !this.instance.config.enableTime,\n ),\n );\n this.onChangeFn(dates);\n break;\n\n case 'range':\n const [from, to] = value\n .split(this.instance.l10n.rangeSeparator)\n .map((str) =>\n this.instance.parseDate(\n str,\n this.instance.config.dateFormat,\n !this.instance.config.enableTime,\n ),\n );\n this.onChangeFn({ from, to });\n break;\n\n case 'single':\n default:\n this.onChangeFn(\n this.instance.parseDate(\n value,\n this.instance.config.dateFormat,\n !this.instance.config.enableTime,\n ),\n );\n }\n } else {\n this.onChangeFn(value);\n }\n }\n}\n","import {\n NgModule,\n ModuleWithProviders,\n InjectionToken,\n Provider,\n} from '@angular/core';\nimport { FlatpickrDirective } from './flatpickr.directive';\nimport {\n FlatpickrDefaults,\n FlatpickrDefaultsInterface,\n} from './flatpickr-defaults.service';\n\nexport const USER_DEFAULTS = new InjectionToken('flatpickr defaults');\n\nexport function defaultsFactory(\n userDefaults: FlatpickrDefaultsInterface,\n): FlatpickrDefaults {\n const defaults: FlatpickrDefaults = new FlatpickrDefaults();\n Object.assign(defaults, userDefaults);\n return defaults;\n}\n\n@NgModule({\n declarations: [FlatpickrDirective],\n exports: [FlatpickrDirective],\n})\nexport class FlatpickrModule {\n static forRoot(\n userDefaults: FlatpickrDefaultsInterface = {},\n ): ModuleWithProviders<FlatpickrModule> {\n return {\n ngModule: FlatpickrModule,\n providers: [\n {\n provide: USER_DEFAULTS,\n useValue: userDefaults,\n },\n {\n provide: FlatpickrDefaults,\n useFactory: defaultsFactory,\n deps: [USER_DEFAULTS],\n },\n ],\n };\n }\n}\n","/*\n * Public API Surface of angularx-flatpickr\n */\n\nexport * from './lib/flatpickr.module';\nexport {\n FlatpickrDefaults,\n FlatpickrDefaultsInterface,\n} from './lib/flatpickr-defaults.service';\nexport { FlatpickrDirective } from './lib/flatpickr.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
{"version":3,"file":"angularx-flatpickr.mjs","sources":["../../../projects/angularx-flatpickr/src/lib/flatpickr-defaults.service.ts","../../../projects/angularx-flatpickr/src/lib/flatpickr.directive.ts","../../../projects/angularx-flatpickr/src/lib/flatpickr.module.ts","../../../projects/angularx-flatpickr/src/public-api.ts","../../../projects/angularx-flatpickr/src/angularx-flatpickr.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nexport type DisableEnableDate =\n | string\n | Date\n | { from: Date | string; to: Date | string }\n | ((date: Date) => boolean);\n\nexport interface FlatpickrDefaultsInterface {\n /**\n * Exactly the same as date format, but for the altInput field.\n */\n altFormat?: string;\n\n /**\n * \tShow the user a readable date (as per altFormat), but return something totally different to the server.\n */\n altInput?: boolean;\n\n /**\n * This class will be added to the input element created by the altInput option.\n * Note that `altInput` already inherits classes from the original input.\n */\n altInputClass?: string;\n\n /**\n * Allows the user to enter a date directly input the input field. By default, direct entry is disabled.\n */\n allowInput?: boolean;\n\n /**\n * Allows the preloading of an invalid date. When disabled, the field will be cleared if the provided date is invalid\n */\n allowInvalidPreload?: boolean;\n\n /**\n * Instead of `body`, appends the calendar to the specified node instead.\n */\n appendTo?: HTMLElement;\n\n /**\n * Defines how the date will be formatted in the aria-label for calendar days, using the same tokens as dateFormat. If you change this, you should choose a value that will make sense if a screen reader reads it out loud.\n */\n ariaDateFormat?: string;\n\n /**\n * Whether clicking on the input should open the picker.\n * You could disable this if you wish to open the calendar manually `with.open()`.\n */\n clickOpens?: boolean;\n\n /**\n * A string of characters which are used to define how the date will be displayed in the input box.\n * The supported characters are defined in the table below.\n */\n dateFormat?: string;\n /**\n * Initial value of the hour element.\n */\n defaultHour?: number;\n /**\n * Initial value of the minute element.\n */\n defaultMinute?: number;\n /**\n * Initial value of the seconds element.\n */\n defaultSeconds?: number;\n\n /**\n * See <a href=\"https://chmln.github.io/flatpickr/examples/#disabling-specific-dates\">disabling dates</a>.\n */\n disable?: DisableEnableDate[];\n\n /**\n * Set disableMobile to true to always use the non-native picker.\n * By default, Flatpickr utilizes native datetime widgets unless certain options (e.g. disable) are used.\n */\n disableMobile?: boolean;\n\n /**\n * See <a href=\"https://chmln.github.io/flatpickr/examples/#disabling-all-dates-except-select-few\">enabling dates</a>.\n */\n enable?: DisableEnableDate[];\n\n /**\n * Enables time picker.\n */\n enableTime?: boolean;\n\n /**\n * Enables seconds in the time picker.\n */\n enableSeconds?: boolean;\n /**\n * Allows using a custom date formatting function instead of the built-in handling for date formats using dateFormat, altFormat, etc.\n */\n formatDate?: (value: any) => string;\n /**\n * Adjusts the step for the hour input (incl. scrolling).\n */\n hourIncrement?: number;\n\n /**\n * Displays the calendar inline.\n */\n inline?: boolean;\n\n /**\n * The maximum date that a user can pick to (inclusive).\n */\n maxDate?: string | Date;\n\n /**\n * The minimum date that a user can start picking from (inclusive).\n */\n minDate?: string | Date;\n\n /**\n * The maximum time that a user can pick to (inclusive).\n */\n maxTime?: string;\n\n /**\n * The minimum time that a user can start picking from (inclusive).\n */\n minTime?: string;\n\n /**\n * Adjusts the step for the minute input (incl. scrolling).\n */\n minuteIncrement?: number;\n\n /**\n * Select a single date, multiple dates or a date range.\n */\n mode?: 'single' | 'multiple' | 'range';\n\n /**\n * HTML for the arrow icon, used to switch months.\n */\n nextArrow?: string;\n\n /**\n * Hides the day selection in calendar. Use it along with `enableTime` to create a time picker.\n */\n noCalendar?: boolean;\n\n /**\n * Provide a date for 'today', which will be used instead of \"new Date()\"\n */\n now?: Date | string | number;\n\n /**\n * Function that expects a date string and must return a Date object.\n */\n parseDate?: (str: string) => Date;\n\n /**\n * HTML for the left arrow icon.\n */\n prevArrow?: string;\n\n /**\n * Show the month using the shorthand version (ie, Sep instead of September).\n */\n shorthandCurrentMonth?: boolean;\n\n /**\n * Position the calendar inside the wrapper and next to the input element. (Leave `false` unless you know what you're doing).\n */\n static?: boolean;\n\n /**\n * Displays time picker in 24 hour mode without AM/PM selection when enabled.\n */\n time24hr?: boolean;\n\n /**\n * When true, dates will parsed, formatted, and displayed in UTC.\n * It's recommended that date strings contain the timezone, but not necessary.\n */\n utc?: boolean;\n\n /**\n * Enables display of week numbers in calendar.\n */\n weekNumbers?: boolean;\n\n /**\n * You may override the function that extracts the week numbers from a Date by supplying a getWeek function.\n * It takes in a date as a parameter and should return a corresponding string that you want to appear left of every week.\n */\n getWeek?: (date: Date) => string;\n\n /**\n * Custom elements and input groups.\n */\n wrap?: boolean;\n\n /**\n * Array of plugin instances to use.\n */\n plugins?: any[];\n\n /**\n * The locale object or string to use for the locale.\n */\n locale?: object | string;\n\n /**\n * Auto convert the ngModel value from a string to a date / array of dates / from - to date object depending on the `mode`\n */\n convertModelValue?: boolean;\n\n /**\n * The number of months shown.\n */\n showMonths?: number;\n\n /**\n * How the month should be displayed in the header of the calendar.\n */\n monthSelectorType?: 'static' | 'dropdown';\n\n /**\n * Array of HTML elements that should not close the picker on click.\n */\n ignoredFocusElements?: HTMLElement[];\n}\n\n@Injectable()\nexport class FlatpickrDefaults implements FlatpickrDefaultsInterface {\n /**\n * Exactly the same as date format, but for the altInput field.\n */\n altFormat: string = 'F j, Y';\n\n /**\n * \tShow the user a readable date (as per altFormat), but return something totally different to the server.\n */\n altInput: boolean = false;\n\n /**\n * This class will be added to the input element created by the altInput option.\n * Note that `altInput` already inherits classes from the original input.\n */\n altInputClass: string = '';\n\n /**\n * Allows the user to enter a date directly input the input field. By default, direct entry is disabled.\n */\n allowInput: boolean = false;\n\n /**\n * Allows the preloading of an invalid date. When disabled, the field will be cleared if the provided date is invalid\n */\n allowInvalidPreload: boolean = false;\n\n /**\n * Instead of `body`, appends the calendar to the specified node instead.\n */\n appendTo: HTMLElement | undefined = undefined;\n\n /**\n * Defines how the date will be formatted in the aria-label for calendar days, using the same tokens as dateFormat. If you change this, you should choose a value that will make sense if a screen reader reads it out loud.\n */\n ariaDateFormat?: string = 'F j, Y';\n\n /**\n * Whether clicking on the input should open the picker.\n * You could disable this if you wish to open the calendar manually `with.open()`.\n */\n clickOpens: boolean = true;\n\n /**\n * A string of characters which are used to define how the date will be displayed in the input box.\n * The supported characters are defined in the table below.\n */\n dateFormat: string = 'Y-m-d';\n\n /**\n * Initial value of the hour element.\n */\n defaultHour?: number = 12;\n\n /**\n * Initial value of the minute element.\n */\n defaultMinute?: number = 0;\n\n /**\n * Initial value of the seconds element.\n */\n defaultSeconds?: number = 0;\n\n /**\n * See <a href=\"https://chmln.github.io/flatpickr/examples/#disabling-specific-dates\">disabling dates</a>.\n */\n disable: DisableEnableDate[] = [];\n\n /**\n * Set disableMobile to true to always use the non-native picker.\n * By default, Flatpickr utilizes native datetime widgets unless certain options (e.g. disable) are used.\n */\n disableMobile: boolean = false;\n\n /**\n * See <a href=\"https://chmln.github.io/flatpickr/examples/#disabling-all-dates-except-select-few\">enabling dates</a>.\n */\n enable: DisableEnableDate[];\n\n /**\n * Enables time picker.\n */\n enableTime: boolean = false;\n\n /**\n * Enables seconds in the time picker.\n */\n enableSeconds: boolean = false;\n\n /**\n * Allows using a custom date formatting function instead of the built-in handling for date formats using dateFormat, altFormat, etc.\n */\n formatDate?: (value: any) => string = undefined;\n\n /**\n * Adjusts the step for the hour input (incl. scrolling).\n */\n hourIncrement: number = 1;\n\n /**\n * Displays the calendar inline.\n */\n inline: boolean = false;\n\n /**\n * The maximum date that a user can pick to (inclusive).\n */\n maxDate: string | Date | undefined = undefined;\n\n /**\n * The minimum date that a user can start picking from (inclusive).\n */\n minDate: string | Date | undefined = undefined;\n\n /**\n * The maximum time that a user can pick to (inclusive).\n */\n maxTime: string | undefined = undefined;\n\n /**\n * The minimum time that a user can start picking from (inclusive).\n */\n minTime: string | undefined = undefined;\n\n /**\n * Adjusts the step for the minute input (incl. scrolling).\n */\n minuteIncrement: number = 5;\n\n /**\n * Select a single date, multiple dates or a date range.\n */\n mode: 'single' | 'multiple' | 'range' = 'single';\n\n /**\n * HTML for the arrow icon, used to switch months.\n */\n nextArrow: string = '>';\n\n /**\n * Hides the day selection in calendar. Use it along with `enableTime` to create a time picker.\n */\n noCalendar: boolean = false;\n\n /**\n * Default now to the current date\n */\n now: Date | string | number = new Date();\n\n /**\n * Function that expects a date string and must return a Date object.\n */\n parseDate: (str: string) => Date;\n\n /**\n * HTML for the left arrow icon.\n */\n prevArrow: string = '<';\n\n /**\n * Show the month using the shorthand version (ie, Sep instead of September).\n */\n shorthandCurrentMonth: boolean = false;\n\n /**\n * Position the calendar inside the wrapper and next to the input element. (Leave `false` unless you know what you're doing).\n */\n static: boolean = false;\n\n /**\n * Displays time picker in 24 hour mode without AM/PM selection when enabled.\n */\n time24hr: boolean = false;\n\n /**\n * When true, dates will parsed, formatted, and displayed in UTC.\n * It's recommended that date strings contain the timezone, but not necessary.\n */\n utc: boolean = false;\n\n /**\n * Enables display of week numbers in calendar.\n */\n weekNumbers: boolean = false;\n\n /**\n * You may override the function that extracts the week numbers from a Date by supplying a getWeek function.\n * It takes in a date as a parameter and should return a corresponding string that you want to appear left of every week.\n */\n getWeek: (date: Date) => string;\n\n /**\n * Custom elements and input groups.\n */\n wrap: boolean = false;\n\n /**\n * Array of plugin instances to use.\n */\n plugins: any[] = [];\n\n /**\n * The locale object or string to use for the locale.\n */\n locale: object | string = 'default';\n\n /**\n * Auto convert the ngModel value from a string to a date / array of dates / from - to date object depending on the `mode`\n */\n convertModelValue: boolean = false;\n\n /**\n * The number of months shown.\n */\n showMonths: number = 1;\n\n /**\n * How the month should be displayed in the header of the calendar.\n */\n monthSelectorType: 'static' | 'dropdown' = 'static';\n\n /**\n * Array of HTML elements that should not close the picker on click.\n */\n ignoredFocusElements: HTMLElement[] = [];\n}\n","import {\n Directive,\n ElementRef,\n AfterViewInit,\n Input,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n forwardRef,\n HostListener,\n Renderer2,\n PLATFORM_ID,\n Inject,\n} from '@angular/core';\nimport {\n FlatpickrDefaults,\n DisableEnableDate,\n FlatpickrDefaultsInterface,\n} from './flatpickr-defaults.service';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport flatpickr from 'flatpickr';\nimport { isPlatformBrowser } from '@angular/common';\n\nexport interface FlatPickrOutputOptions {\n selectedDates: Date[];\n dateString: string;\n instance: any;\n}\n\nexport interface FlatPickrDayCreateOutputOptions\n extends FlatPickrOutputOptions {\n dayElement: HTMLElement;\n}\n\nexport const FLATPICKR_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FlatpickrDirective),\n multi: true,\n};\n\n@Directive({\n selector: '[mwlFlatpickr]',\n providers: [FLATPICKR_CONTROL_VALUE_ACCESSOR],\n exportAs: 'mwlFlatpickr',\n standalone: true,\n})\nexport class FlatpickrDirective\n implements AfterViewInit, OnChanges, OnDestroy, ControlValueAccessor\n{\n /**\n * Object-options that can be user for multiple instances of Flatpickr.\n * Option from this object is applied only if specific option is not specified.\n * Example:\n * ```typescript\n * options: FlatpickrDefaultsInterface = {\n * altFormat: 'd/m/Y', // will be ignored since altFormat is provided via specific attribute\n * altInput: true // will be used since specific attribute is not provided\n * };\n * ```\n * ```html\n * <input\n * class=\"form-control\"\n * type=\"text\"\n * mwlFlatpickr\n * [options]=\"options\"\n * altFormat=\"d/m/Y\">\n * ```\n */\n @Input() options: FlatpickrDefaultsInterface = {};\n\n /**\n * Exactly the same as date format, but for the altInput field.\n */\n @Input() altFormat: string;\n\n /**\n * \tShow the user a readable date (as per altFormat), but return something totally different to the server.\n */\n @Input() altInput: boolean;\n\n /**\n * This class will be added to the input element created by the altInput option.\n * Note that `altInput` already inherits classes from the original input.\n */\n @Input() altInputClass: string;\n\n /**\n * Allows the user to enter a date directly input the input field. By default, direct entry is disabled.\n */\n @Input() allowInput: boolean;\n\n /**\n * Allows the preloading of an invalid date. When disabled, the field will be cleared if the provided date is invalid\n */\n @Input() allowInvalidPreload: boolean;\n\n /**\n * Instead of `body`, appends the calendar to the specified node instead.\n */\n @Input() appendTo: HTMLElement;\n\n /**\n * Defines how the date will be formatted in the aria-label for calendar days, using the same tokens as dateFormat. If you change this, you should choose a value that will make sense if a screen reader reads it out loud.\n */\n @Input() ariaDateFormat?: string;\n\n /**\n * Whether clicking on the input should open the picker.\n * You could disable this if you wish to open the calendar manually `with.open()`.\n */\n @Input() clickOpens: boolean;\n\n /**\n * A string of characters which are used to define how the date will be displayed in the input box.\n * The supported characters are defined in the table below.\n */\n @Input() dateFormat: string;\n\n /**\n * Initial value of the hour element.\n */\n @Input() defaultHour?: number;\n /**\n * Initial value of the minute element.\n */\n @Input() defaultMinute?: number;\n\n /**\n * Initial value of the seconds element.\n */\n @Input() defaultSeconds?: number;\n\n /**\n * See <a href=\"https://chmln.github.io/flatpickr/examples/#disabling-specific-dates\">disabling dates</a>.\n */\n @Input() disable: DisableEnableDate[];\n\n /**\n * Set disableMobile to true to always use the non-native picker.\n * By default, Flatpickr utilizes native datetime widgets unless certain options (e.g. disable) are used.\n */\n @Input() disableMobile: boolean;\n\n /**\n * See <a href=\"https://chmln.github.io/flatpickr/examples/#disabling-all-dates-except-select-few\">enabling dates</a>.\n */\n @Input() enable: DisableEnableDate[];\n\n /**\n * Enables time picker.\n */\n @Input() enableTime: boolean;\n\n /**\n * Enables seconds in the time picker.\n */\n @Input() enableSeconds: boolean;\n\n /**\n * Allows using a custom date formatting function instead of the built-in handling for date formats using dateFormat, altFormat, etc.\n */\n @Input() formatDate?: (value: any) => string;\n\n /**\n * Adjusts the step for the hour input (incl. scrolling).\n */\n @Input() hourIncrement: number;\n\n /**\n * Displays the calendar inline.\n */\n @Input() inline: boolean;\n\n /**\n * The maximum date that a user can pick to (inclusive).\n */\n @Input() maxDate: string | Date;\n\n /**\n * The minimum date that a user can start picking from (inclusive).\n */\n @Input() minDate: string | Date;\n\n /**\n * The maximum time that a user can pick to (inclusive).\n */\n @Input() maxTime: string;\n\n /**\n * The minimum time that a user can start picking from (inclusive).\n */\n @Input() minTime: string;\n\n /**\n * Adjusts the step for the minute input (incl. scrolling).\n */\n @Input() minuteIncrement: number;\n\n /**\n * Select a single date, multiple dates or a date range.\n */\n @Input() mode: 'single' | 'multiple' | 'range';\n\n /**\n * HTML for the arrow icon, used to switch months.\n */\n @Input() nextArrow: string;\n\n /**\n * Hides the day selection in calendar. Use it along with `enableTime` to create a time picker.\n */\n @Input() noCalendar: boolean;\n\n /**\n * Provide a date for 'today', which will be used instead of \"new Date()\"\n */\n @Input() now?: Date | string | number;\n\n /**\n * Function that expects a date string and must return a Date object.\n */\n @Input() parseDate: (str: string) => Date;\n\n /**\n * HTML for the left arrow icon.\n */\n @Input() prevArrow: string;\n\n /**\n * Show the month using the shorthand version (ie, Sep instead of September).\n */\n @Input() shorthandCurrentMonth: boolean;\n\n /**\n * The number of months shown.\n */\n @Input() showMonths: number;\n\n /**\n * Position the calendar inside the wrapper and next to the input element. (Leave `false` unless you know what you're doing).\n */\n @Input() static: boolean;\n\n /**\n * Displays time picker in 24 hour mode without AM/PM selection when enabled.\n */\n @Input() time24hr: boolean;\n\n /**\n * Enables display of week numbers in calendar.\n */\n @Input() weekNumbers: boolean;\n\n /**\n * You may override the function that extracts the week numbers from a Date by supplying a getWeek function.\n * It takes in a date as a parameter and should return a corresponding string that you want to appear left of every week.\n */\n @Input() getWeek: (date: Date) => string;\n\n /**\n * Custom elements and input groups.\n */\n @Input() wrap: boolean;\n\n /**\n * Array of plugin instances to use.\n */\n @Input() plugins: any[];\n\n /**\n * The locale object or string to use for the locale.\n */\n @Input() locale: object | string;\n\n /**\n * Auto convert the ngModel value from a string to a date / array of dates / from - to date object depending on the `mode`\n */\n @Input() convertModelValue: boolean;\n\n /**\n * How the month should be displayed in the header of the calendar.\n */\n @Input() monthSelectorType: 'static' | 'dropdown';\n\n /**\n * Array of HTML elements that should not close the picker on click.\n */\n @Input() ignoredFocusElements: HTMLElement[] = [];\n\n /**\n * Gets triggered once the calendar is in a ready state\n */\n @Output()\n flatpickrReady: EventEmitter<FlatPickrOutputOptions> = new EventEmitter();\n\n /**\n * Gets triggered when the user selects a date, or changes the time on a selected date.\n */\n @Output()\n flatpickrChange: EventEmitter<FlatPickrOutputOptions> = new EventEmitter();\n\n /**\n * Gets triggered when the input value is updated with a new date string.\n */\n @Output()\n flatpickrValueUpdate: EventEmitter<FlatPickrOutputOptions> =\n new EventEmitter();\n\n /**\n * Gets triggered when the calendar is opened.\n */\n @Output()\n flatpickrOpen: EventEmitter<FlatPickrOutputOptions> = new EventEmitter();\n\n /**\n * Gets triggered when the calendar is closed.\n */\n @Output()\n flatpickrClose: EventEmitter<FlatPickrOutputOptions> = new EventEmitter();\n\n /**\n * Gets triggered when the month is changed, either by the user or programmatically.\n */\n @Output()\n flatpickrMonthChange: EventEmitter<FlatPickrOutputOptions> =\n new EventEmitter();\n\n /**\n * Gets triggered when the year is changed, either by the user or programmatically.\n */\n @Output()\n flatpickrYearChange: EventEmitter<FlatPickrOutputOptions> =\n new EventEmitter();\n\n /**\n * Take full control of every date cell with this output\n */\n @Output()\n flatpickrDayCreate: EventEmitter<FlatPickrDayCreateOutputOptions> =\n new EventEmitter();\n\n /**\n * The flatpickr instance where you can call methods like toggle(), open(), close() etc\n */\n instance: flatpickr.Instance;\n\n private isDisabled = false;\n private initialValue: any;\n\n onChangeFn: (value: any) => void = () => {};\n\n @HostListener('blur')\n onTouchedFn = () => {};\n\n constructor(\n private elm: ElementRef,\n private defaults: FlatpickrDefaults,\n private renderer: Renderer2,\n @Inject(PLATFORM_ID) private platformId: Object,\n ) {}\n\n ngAfterViewInit(): void {\n const options: any = {\n altFormat: this.altFormat,\n altInput: this.altInput,\n altInputClass: this.altInputClass,\n allowInput: this.allowInput,\n allowInvalidPreload: this.allowInvalidPreload,\n appendTo: this.appendTo,\n ariaDateFormat: this.ariaDateFormat,\n clickOpens: this.clickOpens,\n dateFormat: this.dateFormat,\n defaultHour: this.defaultHour,\n defaultMinute: this.defaultMinute,\n defaultSeconds: this.defaultSeconds,\n disable: this.disable,\n disableMobile: this.disableMobile,\n enable: this.enable,\n enableTime: this.enableTime,\n enableSeconds: this.enableSeconds,\n formatDate: this.formatDate,\n hourIncrement: this.hourIncrement,\n defaultDate: this.initialValue,\n inline: this.inline,\n maxDate: this.maxDate,\n minDate: this.minDate,\n maxTime: this.maxTime,\n minTime: this.minTime,\n minuteIncrement: this.minuteIncrement,\n mode: this.mode,\n nextArrow: this.nextArrow,\n noCalendar: this.noCalendar,\n now: this.now,\n parseDate: this.parseDate,\n prevArrow: this.prevArrow,\n shorthandCurrentMonth: this.shorthandCurrentMonth,\n showMonths: this.showMonths,\n monthSelectorType: this.monthSelectorType,\n static: this.static,\n time24hr: this.time24hr,\n weekNumbers: this.weekNumbers,\n getWeek: this.getWeek,\n wrap: this.wrap,\n plugins: this.plugins,\n locale: this.locale,\n ignoredFocusElements: this.ignoredFocusElements,\n onChange: (selectedDates: Date[], dateString: string, instance: any) => {\n this.flatpickrChange.emit({ selectedDates, dateString, instance });\n },\n onOpen: (selectedDates: Date[], dateString: string, instance: any) => {\n this.flatpickrOpen.emit({ selectedDates, dateString, instance });\n },\n onClose: (selectedDates: Date[], dateString: string, instance: any) => {\n this.flatpickrClose.emit({ selectedDates, dateString, instance });\n },\n onMonthChange: (\n selectedDates: Date[],\n dateString: string,\n instance: any,\n ) => {\n this.flatpickrMonthChange.emit({ selectedDates, dateString, instance });\n },\n onYearChange: (\n selectedDates: Date[],\n dateString: string,\n instance: any,\n ) => {\n this.flatpickrYearChange.emit({ selectedDates, dateString, instance });\n },\n onReady: (selectedDates: Date[], dateString: string, instance: any) => {\n this.flatpickrReady.emit({ selectedDates, dateString, instance });\n },\n onValueUpdate: (\n selectedDates: Date[],\n dateString: string,\n instance: any,\n ) => {\n this.flatpickrValueUpdate.emit({ selectedDates, dateString, instance });\n },\n onDayCreate: (\n selectedDates: Date[],\n dateString: string,\n instance: any,\n dayElement: HTMLElement,\n ) => {\n this.flatpickrDayCreate.emit({\n selectedDates,\n dateString,\n instance,\n dayElement,\n });\n },\n };\n\n Object.keys(options).forEach((key) => {\n if (typeof options[key] === 'undefined') {\n if (typeof (this.options as any)[key] !== 'undefined') {\n options[key] = (this.options as any)[key];\n } else {\n options[key] = (this.defaults as any)[key];\n }\n }\n });\n\n // @ts-ignore\n options.time_24hr = options.time24hr;\n\n // workaround bug in flatpickr 4.6 where it doesn't copy the classes across\n // TODO - remove once fix in https://github.com/flatpickr/flatpickr/issues/1860 is released\n options.altInputClass =\n (options.altInputClass || '') + ' ' + this.elm.nativeElement.className;\n\n if (!options.enable) {\n delete options.enable;\n }\n\n if (isPlatformBrowser(this.platformId)) {\n this.instance = flatpickr(\n this.elm.nativeElement,\n options,\n ) as flatpickr.Instance;\n this.setDisabledState(this.isDisabled);\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.instance) {\n Object.keys(changes).forEach((inputKey) => {\n this.instance.set(inputKey as any, (this as any)[inputKey]);\n });\n }\n }\n\n ngOnDestroy(): void {\n if (this.instance) {\n this.instance.destroy();\n }\n }\n\n writeValue(value: any): void {\n let convertedValue: any = value;\n if (this.convertModelValue && this.mode === 'range' && value) {\n convertedValue = [value.from, value.to];\n }\n\n if (this.instance) {\n this.instance.setDate(convertedValue);\n } else {\n // flatpickr hasn't been initialised yet, store the value for later use\n this.initialValue = convertedValue;\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouchedFn = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n if (this.instance) {\n if (this.isDisabled) {\n this.renderer.setProperty(this.instance._input, 'disabled', 'disabled');\n } else {\n this.renderer.removeAttribute(this.instance._input, 'disabled');\n }\n }\n }\n\n @HostListener('input')\n inputChanged(): void {\n const value: string = this.elm.nativeElement.value;\n if (this.convertModelValue && typeof value === 'string') {\n switch (this.mode) {\n case 'multiple':\n const dates: Array<Date | undefined> = value\n .split('; ')\n .map((str) =>\n this.instance.parseDate(\n str,\n this.instance.config.dateFormat,\n !this.instance.config.enableTime,\n ),\n );\n this.onChangeFn(dates);\n break;\n\n case 'range':\n const [from, to] = value\n .split(this.instance.l10n.rangeSeparator)\n .map((str) =>\n this.instance.parseDate(\n str,\n this.instance.config.dateFormat,\n !this.instance.config.enableTime,\n ),\n );\n this.onChangeFn({ from, to });\n break;\n\n case 'single':\n default:\n this.onChangeFn(\n this.instance.parseDate(\n value,\n this.instance.config.dateFormat,\n !this.instance.config.enableTime,\n ),\n );\n }\n } else {\n this.onChangeFn(value);\n }\n }\n}\n","import {\n NgModule,\n ModuleWithProviders,\n InjectionToken,\n Provider,\n} from '@angular/core';\nimport { FlatpickrDirective } from './flatpickr.directive';\nimport {\n FlatpickrDefaults,\n FlatpickrDefaultsInterface,\n} from './flatpickr-defaults.service';\n\nexport const USER_DEFAULTS = new InjectionToken('flatpickr defaults');\n\nexport function provideFlatpickrDefaults(\n userDefaults: FlatpickrDefaultsInterface = {},\n): Provider[] {\n return [\n {\n provide: USER_DEFAULTS,\n useValue: userDefaults,\n },\n {\n provide: FlatpickrDefaults,\n useFactory() {\n const defaults: FlatpickrDefaults = new FlatpickrDefaults();\n Object.assign(defaults, userDefaults);\n return defaults;\n },\n deps: [USER_DEFAULTS],\n },\n ];\n}\n\n/**\n * @deprecated Will be removed in the next major version. Please use the standalone `FlatpickrDirective` and `provideFlatpickrDefaults()` instead.\n */\n@NgModule({\n imports: [FlatpickrDirective],\n exports: [FlatpickrDirective],\n})\nexport class FlatpickrModule {\n static forRoot(\n userDefaults: FlatpickrDefaultsInterface = {},\n ): ModuleWithProviders<FlatpickrModule> {\n return {\n ngModule: FlatpickrModule,\n providers: provideFlatpickrDefaults(userDefaults),\n };\n }\n}\n","/*\n * Public API Surface of angularx-flatpickr\n */\n\nexport * from './lib/flatpickr.module';\nexport {\n FlatpickrDefaults,\n FlatpickrDefaultsInterface,\n} from './lib/flatpickr-defaults.service';\nexport { FlatpickrDirective } from './lib/flatpickr.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}

@@ -267,3 +267,3 @@ import { ElementRef, AfterViewInit, EventEmitter, OnChanges, SimpleChanges, OnDestroy, Renderer2 } from '@angular/core';

static ɵfac: i0.ɵɵFactoryDeclaration<FlatpickrDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<FlatpickrDirective, "[mwlFlatpickr]", ["mwlFlatpickr"], { "options": { "alias": "options"; "required": false; }; "altFormat": { "alias": "altFormat"; "required": false; }; "altInput": { "alias": "altInput"; "required": false; }; "altInputClass": { "alias": "altInputClass"; "required": false; }; "allowInput": { "alias": "allowInput"; "required": false; }; "allowInvalidPreload": { "alias": "allowInvalidPreload"; "required": false; }; "appendTo": { "alias": "appendTo"; "required": false; }; "ariaDateFormat": { "alias": "ariaDateFormat"; "required": false; }; "clickOpens": { "alias": "clickOpens"; "required": false; }; "dateFormat": { "alias": "dateFormat"; "required": false; }; "defaultHour": { "alias": "defaultHour"; "required": false; }; "defaultMinute": { "alias": "defaultMinute"; "required": false; }; "defaultSeconds": { "alias": "defaultSeconds"; "required": false; }; "disable": { "alias": "disable"; "required": false; }; "disableMobile": { "alias": "disableMobile"; "required": false; }; "enable": { "alias": "enable"; "required": false; }; "enableTime": { "alias": "enableTime"; "required": false; }; "enableSeconds": { "alias": "enableSeconds"; "required": false; }; "formatDate": { "alias": "formatDate"; "required": false; }; "hourIncrement": { "alias": "hourIncrement"; "required": false; }; "inline": { "alias": "inline"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxTime": { "alias": "maxTime"; "required": false; }; "minTime": { "alias": "minTime"; "required": false; }; "minuteIncrement": { "alias": "minuteIncrement"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "nextArrow": { "alias": "nextArrow"; "required": false; }; "noCalendar": { "alias": "noCalendar"; "required": false; }; "now": { "alias": "now"; "required": false; }; "parseDate": { "alias": "parseDate"; "required": false; }; "prevArrow": { "alias": "prevArrow"; "required": false; }; "shorthandCurrentMonth": { "alias": "shorthandCurrentMonth"; "required": false; }; "showMonths": { "alias": "showMonths"; "required": false; }; "static": { "alias": "static"; "required": false; }; "time24hr": { "alias": "time24hr"; "required": false; }; "weekNumbers": { "alias": "weekNumbers"; "required": false; }; "getWeek": { "alias": "getWeek"; "required": false; }; "wrap": { "alias": "wrap"; "required": false; }; "plugins": { "alias": "plugins"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "convertModelValue": { "alias": "convertModelValue"; "required": false; }; "monthSelectorType": { "alias": "monthSelectorType"; "required": false; }; "ignoredFocusElements": { "alias": "ignoredFocusElements"; "required": false; }; }, { "flatpickrReady": "flatpickrReady"; "flatpickrChange": "flatpickrChange"; "flatpickrValueUpdate": "flatpickrValueUpdate"; "flatpickrOpen": "flatpickrOpen"; "flatpickrClose": "flatpickrClose"; "flatpickrMonthChange": "flatpickrMonthChange"; "flatpickrYearChange": "flatpickrYearChange"; "flatpickrDayCreate": "flatpickrDayCreate"; }, never, never, false, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<FlatpickrDirective, "[mwlFlatpickr]", ["mwlFlatpickr"], { "options": { "alias": "options"; "required": false; }; "altFormat": { "alias": "altFormat"; "required": false; }; "altInput": { "alias": "altInput"; "required": false; }; "altInputClass": { "alias": "altInputClass"; "required": false; }; "allowInput": { "alias": "allowInput"; "required": false; }; "allowInvalidPreload": { "alias": "allowInvalidPreload"; "required": false; }; "appendTo": { "alias": "appendTo"; "required": false; }; "ariaDateFormat": { "alias": "ariaDateFormat"; "required": false; }; "clickOpens": { "alias": "clickOpens"; "required": false; }; "dateFormat": { "alias": "dateFormat"; "required": false; }; "defaultHour": { "alias": "defaultHour"; "required": false; }; "defaultMinute": { "alias": "defaultMinute"; "required": false; }; "defaultSeconds": { "alias": "defaultSeconds"; "required": false; }; "disable": { "alias": "disable"; "required": false; }; "disableMobile": { "alias": "disableMobile"; "required": false; }; "enable": { "alias": "enable"; "required": false; }; "enableTime": { "alias": "enableTime"; "required": false; }; "enableSeconds": { "alias": "enableSeconds"; "required": false; }; "formatDate": { "alias": "formatDate"; "required": false; }; "hourIncrement": { "alias": "hourIncrement"; "required": false; }; "inline": { "alias": "inline"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxTime": { "alias": "maxTime"; "required": false; }; "minTime": { "alias": "minTime"; "required": false; }; "minuteIncrement": { "alias": "minuteIncrement"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "nextArrow": { "alias": "nextArrow"; "required": false; }; "noCalendar": { "alias": "noCalendar"; "required": false; }; "now": { "alias": "now"; "required": false; }; "parseDate": { "alias": "parseDate"; "required": false; }; "prevArrow": { "alias": "prevArrow"; "required": false; }; "shorthandCurrentMonth": { "alias": "shorthandCurrentMonth"; "required": false; }; "showMonths": { "alias": "showMonths"; "required": false; }; "static": { "alias": "static"; "required": false; }; "time24hr": { "alias": "time24hr"; "required": false; }; "weekNumbers": { "alias": "weekNumbers"; "required": false; }; "getWeek": { "alias": "getWeek"; "required": false; }; "wrap": { "alias": "wrap"; "required": false; }; "plugins": { "alias": "plugins"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "convertModelValue": { "alias": "convertModelValue"; "required": false; }; "monthSelectorType": { "alias": "monthSelectorType"; "required": false; }; "ignoredFocusElements": { "alias": "ignoredFocusElements"; "required": false; }; }, { "flatpickrReady": "flatpickrReady"; "flatpickrChange": "flatpickrChange"; "flatpickrValueUpdate": "flatpickrValueUpdate"; "flatpickrOpen": "flatpickrOpen"; "flatpickrClose": "flatpickrClose"; "flatpickrMonthChange": "flatpickrMonthChange"; "flatpickrYearChange": "flatpickrYearChange"; "flatpickrDayCreate": "flatpickrDayCreate"; }, never, never, true, never>;
}

@@ -1,12 +0,15 @@

import { ModuleWithProviders, InjectionToken } from '@angular/core';
import { FlatpickrDefaults, FlatpickrDefaultsInterface } from './flatpickr-defaults.service';
import { ModuleWithProviders, InjectionToken, Provider } from '@angular/core';
import { FlatpickrDefaultsInterface } from './flatpickr-defaults.service';
import * as i0 from "@angular/core";
import * as i1 from "./flatpickr.directive";
export declare const USER_DEFAULTS: InjectionToken<unknown>;
export declare function defaultsFactory(userDefaults: FlatpickrDefaultsInterface): FlatpickrDefaults;
export declare function provideFlatpickrDefaults(userDefaults?: FlatpickrDefaultsInterface): Provider[];
/**
* @deprecated Will be removed in the next major version. Please use the standalone `FlatpickrDirective` and `provideFlatpickrDefaults()` instead.
*/
export declare class FlatpickrModule {
static forRoot(userDefaults?: FlatpickrDefaultsInterface): ModuleWithProviders<FlatpickrModule>;
static ɵfac: i0.ɵɵFactoryDeclaration<FlatpickrModule, never>;
static ɵmod: i0.ɵɵNgModuleDeclaration<FlatpickrModule, [typeof i1.FlatpickrDirective], never, [typeof i1.FlatpickrDirective]>;
static ɵmod: i0.ɵɵNgModuleDeclaration<FlatpickrModule, never, [typeof i1.FlatpickrDirective], [typeof i1.FlatpickrDirective]>;
static ɵinj: i0.ɵɵInjectorDeclaration<FlatpickrModule>;
}
{
"name": "angularx-flatpickr",
"version": "8.0.0",
"version": "8.1.0",
"description": "An angular 17.0+ wrapper for flatpickr",

@@ -5,0 +5,0 @@ "repository": {

@@ -35,22 +35,14 @@ # angularx flatpickr

Then include in your apps module:
Then use in one of your apps components:
```typescript
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { FlatpickrModule } from 'angularx-flatpickr';
@NgModule({
imports: [FormsModule, FlatpickrModule.forRoot()],
})
export class MyModule {}
```
Finally use in one of your apps components:
```typescript
import { Component } from '@angular/core';
import { FlatpickrDirective, provideFlatpickrDefaults } from 'angularx-flatpickr';
@Component({
template: ` <input type="text" mwlFlatpickr [(ngModel)]="selectedDate" [altInput]="true" [convertModelValue]="true" /> `,
imports: [FlatpickrDirective],
providers: [provideFlatpickrDefaults()],
template: `<input type="text" mwlFlatpickr [(ngModel)]="selectedDate" [altInput]="true" [convertModelValue]="true" />`,
standalone: true,
selector: 'my-component',
})

@@ -57,0 +49,0 @@ export class MyComponent {}