angularx-flatpickr
Advanced tools
@@ -1,1 +0,1 @@ | ||
| {"__symbolic":"module","version":4,"metadata":{"USER_DEFAULTS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":12,"character":33},"arguments":["flatpickr defaults"]},"defaultsFactory":{"__symbolic":"function"},"FlatpickrModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":22,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"FlatpickrDirective"}],"exports":[{"__symbolic":"reference","name":"FlatpickrDirective"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":["userDefaults"],"defaults":[{}],"value":{"ngModule":{"__symbolic":"reference","name":"FlatpickrModule"},"providers":[{"provide":{"__symbolic":"reference","name":"USER_DEFAULTS"},"useValue":{"__symbolic":"reference","name":"userDefaults"}},{"provide":{"__symbolic":"reference","name":"FlatpickrDefaults"},"useFactory":{"__symbolic":"reference","name":"defaultsFactory"},"deps":[{"__symbolic":"reference","name":"USER_DEFAULTS"}]}]}}}},"FlatpickrDefaults":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":213,"character":1}}],"members":{}},"ɵa":{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":34,"character":11},"useExisting":{"__symbolic":"reference","name":"FlatpickrDirective"},"multi":true},"FlatpickrDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":39,"character":1},"arguments":[{"selector":"[mwlFlatpickr]","providers":[{"__symbolic":"reference","name":"ɵa"}],"host":{"(blur)":"onTouchedFn()","$quoted$":["(blur)"]}}]}],"members":{"options":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":68,"character":3}}]}],"altFormat":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":73,"character":3}}]}],"altInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":78,"character":3}}]}],"altInputClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":84,"character":3}}]}],"allowInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":89,"character":3}}]}],"appendTo":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":94,"character":3}}]}],"ariaDateFormat":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":99,"character":3}}]}],"clickOpens":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":105,"character":3}}]}],"dateFormat":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":111,"character":3}}]}],"defaultHour":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":116,"character":3}}]}],"defaultMinute":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":120,"character":3}}]}],"defaultSeconds":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":125,"character":3}}]}],"disable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":130,"character":3}}]}],"disableMobile":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":136,"character":3}}]}],"enable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":141,"character":3}}]}],"enableTime":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":146,"character":3}}]}],"enableSeconds":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":151,"character":3}}]}],"formatDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":156,"character":3}}]}],"hourIncrement":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":161,"character":3}}]}],"inline":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":166,"character":3}}]}],"maxDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":171,"character":3}}]}],"minDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":176,"character":3}}]}],"minuteIncrement":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":181,"character":3}}]}],"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":186,"character":3}}]}],"nextArrow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":191,"character":3}}]}],"noCalendar":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":196,"character":3}}]}],"now":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":201,"character":3}}]}],"parseDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":206,"character":3}}]}],"prevArrow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":211,"character":3}}]}],"shorthandCurrentMonth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":216,"character":3}}]}],"showMonths":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":221,"character":3}}]}],"static":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":226,"character":3}}]}],"time24hr":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":231,"character":3}}]}],"weekNumbers":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":236,"character":3}}]}],"getWeek":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":242,"character":3}}]}],"wrap":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":247,"character":3}}]}],"plugins":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":252,"character":3}}]}],"locale":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":257,"character":3}}]}],"convertModelValue":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":262,"character":3}}]}],"monthSelectorType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":267,"character":3}}]}],"flatpickrReady":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":272,"character":3}}]}],"flatpickrChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":278,"character":3}}]}],"flatpickrValueUpdate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":284,"character":3}}]}],"flatpickrOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":292,"character":3}}]}],"flatpickrClose":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":298,"character":3}}]}],"flatpickrMonthChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":304,"character":3}}]}],"flatpickrYearChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":312,"character":3}}]}],"flatpickrDayCreate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":320,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":334,"character":17},{"__symbolic":"reference","name":"FlatpickrDefaults"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":336,"character":22}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}],"inputChanged":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":498,"character":3},"arguments":["input"]}]}]}}},"origins":{"USER_DEFAULTS":"./flatpickr.module","defaultsFactory":"./flatpickr.module","FlatpickrModule":"./flatpickr.module","FlatpickrDefaults":"./flatpickr-defaults.service","ɵa":"./flatpickr.directive","FlatpickrDirective":"./flatpickr.directive"},"importAs":"angularx-flatpickr"} | ||
| {"__symbolic":"module","version":4,"metadata":{"USER_DEFAULTS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":12,"character":33},"arguments":["flatpickr defaults"]},"defaultsFactory":{"__symbolic":"function"},"FlatpickrModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":22,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"FlatpickrDirective"}],"exports":[{"__symbolic":"reference","name":"FlatpickrDirective"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":["userDefaults"],"defaults":[{}],"value":{"ngModule":{"__symbolic":"reference","name":"FlatpickrModule"},"providers":[{"provide":{"__symbolic":"reference","name":"USER_DEFAULTS"},"useValue":{"__symbolic":"reference","name":"userDefaults"}},{"provide":{"__symbolic":"reference","name":"FlatpickrDefaults"},"useFactory":{"__symbolic":"reference","name":"defaultsFactory"},"deps":[{"__symbolic":"reference","name":"USER_DEFAULTS"}]}]}}}},"FlatpickrDefaults":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":213,"character":1}}],"members":{}},"ɵa":{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":34,"character":11},"useExisting":{"__symbolic":"reference","name":"FlatpickrDirective"},"multi":true},"FlatpickrDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":39,"character":1},"arguments":[{"selector":"[mwlFlatpickr]","providers":[{"__symbolic":"reference","name":"ɵa"}],"host":{"(blur)":"onTouchedFn()","$quoted$":["(blur)"]}}]}],"members":{"options":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":68,"character":3}}]}],"altFormat":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":73,"character":3}}]}],"altInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":78,"character":3}}]}],"altInputClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":84,"character":3}}]}],"allowInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":89,"character":3}}]}],"appendTo":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":94,"character":3}}]}],"ariaDateFormat":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":99,"character":3}}]}],"clickOpens":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":105,"character":3}}]}],"dateFormat":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":111,"character":3}}]}],"defaultHour":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":116,"character":3}}]}],"defaultMinute":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":120,"character":3}}]}],"defaultSeconds":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":125,"character":3}}]}],"disable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":130,"character":3}}]}],"disableMobile":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":136,"character":3}}]}],"enable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":141,"character":3}}]}],"enableTime":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":146,"character":3}}]}],"enableSeconds":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":151,"character":3}}]}],"formatDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":156,"character":3}}]}],"hourIncrement":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":161,"character":3}}]}],"inline":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":166,"character":3}}]}],"maxDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":171,"character":3}}]}],"minDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":176,"character":3}}]}],"minuteIncrement":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":181,"character":3}}]}],"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":186,"character":3}}]}],"nextArrow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":191,"character":3}}]}],"noCalendar":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":196,"character":3}}]}],"now":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":201,"character":3}}]}],"parseDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":206,"character":3}}]}],"prevArrow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":211,"character":3}}]}],"shorthandCurrentMonth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":216,"character":3}}]}],"showMonths":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":221,"character":3}}]}],"static":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":226,"character":3}}]}],"time24hr":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":231,"character":3}}]}],"weekNumbers":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":236,"character":3}}]}],"getWeek":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":242,"character":3}}]}],"wrap":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":247,"character":3}}]}],"plugins":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":252,"character":3}}]}],"locale":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":257,"character":3}}]}],"convertModelValue":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":262,"character":3}}]}],"monthSelectorType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":267,"character":3}}]}],"flatpickrReady":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":272,"character":3}}]}],"flatpickrChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":278,"character":3}}]}],"flatpickrValueUpdate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":284,"character":3}}]}],"flatpickrOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":292,"character":3}}]}],"flatpickrClose":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":298,"character":3}}]}],"flatpickrMonthChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":304,"character":3}}]}],"flatpickrYearChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":312,"character":3}}]}],"flatpickrDayCreate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":320,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":334,"character":17},{"__symbolic":"reference","name":"FlatpickrDefaults"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":336,"character":22}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}],"inputChanged":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":502,"character":3},"arguments":["input"]}]}]}}},"origins":{"USER_DEFAULTS":"./flatpickr.module","defaultsFactory":"./flatpickr.module","FlatpickrModule":"./flatpickr.module","FlatpickrDefaults":"./flatpickr-defaults.service","ɵa":"./flatpickr.directive","FlatpickrDirective":"./flatpickr.directive"},"importAs":"angularx-flatpickr"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"angularx-flatpickr.umd.js.map","sources":[null,"ng://angularx-flatpickr/flatpickr-defaults.service.ts","ng://angularx-flatpickr/flatpickr.directive.ts","ng://angularx-flatpickr/flatpickr.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator];\r\n return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","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\n// tslint:disable no-inferrable-types\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 * 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 * 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@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 * Instead of `body`, appends the calendar to the specified node instead.\n */\n appendTo: HTMLElement = 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;\n\n /**\n * The minimum date that a user can start picking from (inclusive).\n */\n minDate: string | Date = 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","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} 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';\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), //tslint:disable-line\n multi: true\n};\n\n@Directive({\n selector: '[mwlFlatpickr]',\n providers: [FLATPICKR_CONTROL_VALUE_ACCESSOR],\n host: {\n // tslint:disable-line use-host-property-decorator\n '(blur)': 'onTouchedFn()'\n }\n})\nexport class FlatpickrDirective\n implements AfterViewInit, OnChanges, OnDestroy, ControlValueAccessor {\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 * 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 * 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 * 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<\n 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<\n 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<\n FlatPickrOutputOptions\n > = new EventEmitter();\n\n /**\n * Take full control of every date cell with this output\n */\n @Output()\n flatpickrDayCreate: EventEmitter<\n FlatPickrDayCreateOutputOptions\n > = new EventEmitter();\n\n private instance: flatpickr.Instance;\n private isDisabled = false;\n private initialValue: any;\n\n onChangeFn: (value: any) => void = () => {}; // tslint:disable-line\n\n onTouchedFn = () => {};\n\n constructor(\n private elm: ElementRef,\n private defaults: FlatpickrDefaults,\n private renderer: Renderer2\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 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 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 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[key] !== 'undefined') {\n options[key] = (this.options as any)[key];\n } else {\n options[key] = (this.defaults as any)[key];\n }\n }\n });\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 this.instance = flatpickr(\n this.elm.nativeElement,\n options\n ) as flatpickr.Instance;\n this.setDisabledState(this.isDisabled);\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\t\tthis.instance.destroy();\n\t}\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: Date[] = 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 {\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"],"names":["Injectable","NG_VALUE_ACCESSOR","forwardRef","EventEmitter","Directive","ElementRef","Renderer2","Input","Output","HostListener","InjectionToken","NgModule"],"mappings":"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"} | ||
| {"version":3,"file":"angularx-flatpickr.umd.js.map","sources":[null,"ng://angularx-flatpickr/flatpickr-defaults.service.ts","ng://angularx-flatpickr/flatpickr.directive.ts","ng://angularx-flatpickr/flatpickr.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator];\r\n return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","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\n// tslint:disable no-inferrable-types\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 * 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 * 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@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 * Instead of `body`, appends the calendar to the specified node instead.\n */\n appendTo: HTMLElement = 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;\n\n /**\n * The minimum date that a user can start picking from (inclusive).\n */\n minDate: string | Date = 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","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} 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';\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), //tslint:disable-line\n multi: true\n};\n\n@Directive({\n selector: '[mwlFlatpickr]',\n providers: [FLATPICKR_CONTROL_VALUE_ACCESSOR],\n host: {\n // tslint:disable-line use-host-property-decorator\n '(blur)': 'onTouchedFn()'\n }\n})\nexport class FlatpickrDirective\n implements AfterViewInit, OnChanges, OnDestroy, ControlValueAccessor {\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 * 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 * 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 * 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<\n 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<\n 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<\n FlatPickrOutputOptions\n > = new EventEmitter();\n\n /**\n * Take full control of every date cell with this output\n */\n @Output()\n flatpickrDayCreate: EventEmitter<\n FlatPickrDayCreateOutputOptions\n > = new EventEmitter();\n\n private instance: flatpickr.Instance;\n private isDisabled = false;\n private initialValue: any;\n\n onChangeFn: (value: any) => void = () => {}; // tslint:disable-line\n\n onTouchedFn = () => {};\n\n constructor(\n private elm: ElementRef,\n private defaults: FlatpickrDefaults,\n private renderer: Renderer2\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 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 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 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[key] !== 'undefined') {\n options[key] = (this.options as any)[key];\n } else {\n options[key] = (this.defaults as any)[key];\n }\n }\n });\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 this.instance = flatpickr(\n this.elm.nativeElement,\n options\n ) as flatpickr.Instance;\n this.setDisabledState(this.isDisabled);\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: Date[] = 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 {\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"],"names":["Injectable","NG_VALUE_ACCESSOR","forwardRef","EventEmitter","Directive","ElementRef","Renderer2","Input","Output","HostListener","InjectionToken","NgModule"],"mappings":"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"} |
@@ -1,2 +0,2 @@ | ||
| !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/forms"),require("flatpickr")):"function"==typeof define&&define.amd?define("angularx-flatpickr",["exports","@angular/core","@angular/forms","flatpickr"],e):e(t["angularx-flatpickr"]={},t.ng.core,t.ng.forms,null)}(this,function(t,i,e,n){"use strict";n=n&&n.hasOwnProperty("default")?n["default"]:n;var a=function(){function t(){this.altFormat="F j, Y",this.altInput=!1,this.altInputClass="",this.allowInput=!1,this.appendTo=undefined,this.ariaDateFormat="F j, Y",this.clickOpens=!0,this.dateFormat="Y-m-d",this.defaultHour=12,this.defaultMinute=0,this.defaultSeconds=0,this.disable=[],this.disableMobile=!1,this.enable=[],this.enableTime=!1,this.enableSeconds=!1,this.formatDate=undefined,this.hourIncrement=1,this.inline=!1,this.maxDate=undefined,this.minDate=undefined,this.minuteIncrement=5,this.mode="single",this.nextArrow=">",this.noCalendar=!1,this.now=new Date,this.prevArrow="<",this.shorthandCurrentMonth=!1,this["static"]=!1,this.time24hr=!1,this.utc=!1,this.weekNumbers=!1,this.wrap=!1,this.plugins=[],this.locale="default",this.convertModelValue=!1,this.showMonths=1,this.monthSelectorType="static"}return t.decorators=[{type:i.Injectable}],t}(),s={provide:e.NG_VALUE_ACCESSOR,useExisting:i.forwardRef(function(){return r}),multi:!0},r=function(){function t(t,e,n){this.elm=t,this.defaults=e,this.renderer=n,this.options={},this.flatpickrReady=new i.EventEmitter,this.flatpickrChange=new i.EventEmitter,this.flatpickrValueUpdate=new i.EventEmitter,this.flatpickrOpen=new i.EventEmitter,this.flatpickrClose=new i.EventEmitter,this.flatpickrMonthChange=new i.EventEmitter,this.flatpickrYearChange=new i.EventEmitter,this.flatpickrDayCreate=new i.EventEmitter,this.isDisabled=!1,this.onChangeFn=function(){},this.onTouchedFn=function(){}}return t.prototype.ngAfterViewInit=function(){var a=this,e={altFormat:this.altFormat,altInput:this.altInput,altInputClass:this.altInputClass,allowInput:this.allowInput,appendTo:this.appendTo,ariaDateFormat:this.ariaDateFormat,clickOpens:this.clickOpens,dateFormat:this.dateFormat,defaultHour:this.defaultHour,defaultMinute:this.defaultMinute,defaultSeconds:this.defaultSeconds,disable:this.disable,disableMobile:this.disableMobile,enable:this.enable,enableTime:this.enableTime,enableSeconds:this.enableSeconds,formatDate:this.formatDate,hourIncrement:this.hourIncrement,defaultDate:this.initialValue,inline:this.inline,maxDate:this.maxDate,minDate:this.minDate,minuteIncrement:this.minuteIncrement,mode:this.mode,nextArrow:this.nextArrow,noCalendar:this.noCalendar,now:this.now,parseDate:this.parseDate,prevArrow:this.prevArrow,shorthandCurrentMonth:this.shorthandCurrentMonth,showMonths:this.showMonths,monthSelectorType:this.monthSelectorType,"static":this["static"],time24hr:this.time24hr,weekNumbers:this.weekNumbers,getWeek:this.getWeek,wrap:this.wrap,plugins:this.plugins,locale:this.locale,onChange:function(t,e,n){a.flatpickrChange.emit({selectedDates:t,dateString:e,instance:n})},onOpen:function(t,e,n){a.flatpickrOpen.emit({selectedDates:t,dateString:e,instance:n})},onClose:function(t,e,n){a.flatpickrClose.emit({selectedDates:t,dateString:e,instance:n})},onMonthChange:function(t,e,n){a.flatpickrMonthChange.emit({selectedDates:t,dateString:e,instance:n})},onYearChange:function(t,e,n){a.flatpickrYearChange.emit({selectedDates:t,dateString:e,instance:n})},onReady:function(t,e,n){a.flatpickrReady.emit({selectedDates:t,dateString:e,instance:n})},onValueUpdate:function(t,e,n){a.flatpickrValueUpdate.emit({selectedDates:t,dateString:e,instance:n})},onDayCreate:function(t,e,n,i){a.flatpickrDayCreate.emit({selectedDates:t,dateString:e,instance:n,dayElement:i})}};Object.keys(e).forEach(function(t){"undefined"==typeof e[t]&&("undefined"!=typeof a.options[t]?e[t]=a.options[t]:e[t]=a.defaults[t])}),e.time_24hr=e.time24hr,e.altInputClass=(e.altInputClass||"")+" "+this.elm.nativeElement.className,this.instance=n(this.elm.nativeElement,e),this.setDisabledState(this.isDisabled)},t.prototype.ngOnChanges=function(t){var e=this;this.instance&&Object.keys(t).forEach(function(t){e.instance.set(t,e[t])})},t.prototype.ngOnDestroy=function(){this.instance&&this.instance.destroy()},t.prototype.writeValue=function(t){var e=t;this.convertModelValue&&"range"===this.mode&&t&&(e=[t.from,t.to]),this.instance?this.instance.setDate(e):this.initialValue=e},t.prototype.registerOnChange=function(t){this.onChangeFn=t},t.prototype.registerOnTouched=function(t){this.onTouchedFn=t},t.prototype.setDisabledState=function(t){this.isDisabled=t,this.instance&&(this.isDisabled?this.renderer.setProperty(this.instance._input,"disabled","disabled"):this.renderer.removeAttribute(this.instance._input,"disabled"))},t.prototype.inputChanged=function(){var e=this,t=this.elm.nativeElement.value;if(this.convertModelValue&&"string"==typeof t)switch(this.mode){case"multiple":var n=t.split("; ").map(function(t){return e.instance.parseDate(t,e.instance.config.dateFormat,!e.instance.config.enableTime)});this.onChangeFn(n);break;case"range":var i=function(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var i,a,s=n.call(t),r=[];try{for(;(void 0===e||0<e--)&&!(i=s.next()).done;)r.push(i.value)}catch(o){a={error:o}}finally{try{i&&!i.done&&(n=s["return"])&&n.call(s)}finally{if(a)throw a.error}}return r}(t.split(this.instance.l10n.rangeSeparator).map(function(t){return e.instance.parseDate(t,e.instance.config.dateFormat,!e.instance.config.enableTime)}),2),a=i[0],s=i[1];this.onChangeFn({from:a,to:s});break;case"single":default:this.onChangeFn(this.instance.parseDate(t,this.instance.config.dateFormat,!this.instance.config.enableTime))}else this.onChangeFn(t)},t.decorators=[{type:i.Directive,args:[{selector:"[mwlFlatpickr]",providers:[s],host:{"(blur)":"onTouchedFn()"}}]}],t.ctorParameters=function(){return[{type:i.ElementRef},{type:a},{type:i.Renderer2}]},t.propDecorators={options:[{type:i.Input}],altFormat:[{type:i.Input}],altInput:[{type:i.Input}],altInputClass:[{type:i.Input}],allowInput:[{type:i.Input}],appendTo:[{type:i.Input}],ariaDateFormat:[{type:i.Input}],clickOpens:[{type:i.Input}],dateFormat:[{type:i.Input}],defaultHour:[{type:i.Input}],defaultMinute:[{type:i.Input}],defaultSeconds:[{type:i.Input}],disable:[{type:i.Input}],disableMobile:[{type:i.Input}],enable:[{type:i.Input}],enableTime:[{type:i.Input}],enableSeconds:[{type:i.Input}],formatDate:[{type:i.Input}],hourIncrement:[{type:i.Input}],inline:[{type:i.Input}],maxDate:[{type:i.Input}],minDate:[{type:i.Input}],minuteIncrement:[{type:i.Input}],mode:[{type:i.Input}],nextArrow:[{type:i.Input}],noCalendar:[{type:i.Input}],now:[{type:i.Input}],parseDate:[{type:i.Input}],prevArrow:[{type:i.Input}],shorthandCurrentMonth:[{type:i.Input}],showMonths:[{type:i.Input}],"static":[{type:i.Input}],time24hr:[{type:i.Input}],weekNumbers:[{type:i.Input}],getWeek:[{type:i.Input}],wrap:[{type:i.Input}],plugins:[{type:i.Input}],locale:[{type:i.Input}],convertModelValue:[{type:i.Input}],monthSelectorType:[{type:i.Input}],flatpickrReady:[{type:i.Output}],flatpickrChange:[{type:i.Output}],flatpickrValueUpdate:[{type:i.Output}],flatpickrOpen:[{type:i.Output}],flatpickrClose:[{type:i.Output}],flatpickrMonthChange:[{type:i.Output}],flatpickrYearChange:[{type:i.Output}],flatpickrDayCreate:[{type:i.Output}],inputChanged:[{type:i.HostListener,args:["input"]}]},t}(),o=new i.InjectionToken("flatpickr defaults");function p(t){var e=new a;return Object.assign(e,t),e}var l=function(){function e(){}return e.forRoot=function(t){return void 0===t&&(t={}),{ngModule:e,providers:[{provide:o,useValue:t},{provide:a,useFactory:p,deps:[o]}]}},e.decorators=[{type:i.NgModule,args:[{declarations:[r],exports:[r]}]}],e}();t.FlatpickrDefaults=a,t.FlatpickrDirective=r,t.USER_DEFAULTS=o,t.defaultsFactory=p,t.FlatpickrModule=l,t.ɵa=s,Object.defineProperty(t,"__esModule",{value:!0})}); | ||
| !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/forms"),require("flatpickr")):"function"==typeof define&&define.amd?define("angularx-flatpickr",["exports","@angular/core","@angular/forms","flatpickr"],e):e(t["angularx-flatpickr"]={},t.ng.core,t.ng.forms,null)}(this,function(t,i,e,n){"use strict";n=n&&n.hasOwnProperty("default")?n["default"]:n;var a=function(){function t(){this.altFormat="F j, Y",this.altInput=!1,this.altInputClass="",this.allowInput=!1,this.appendTo=undefined,this.ariaDateFormat="F j, Y",this.clickOpens=!0,this.dateFormat="Y-m-d",this.defaultHour=12,this.defaultMinute=0,this.defaultSeconds=0,this.disable=[],this.disableMobile=!1,this.enableTime=!1,this.enableSeconds=!1,this.formatDate=undefined,this.hourIncrement=1,this.inline=!1,this.maxDate=undefined,this.minDate=undefined,this.minuteIncrement=5,this.mode="single",this.nextArrow=">",this.noCalendar=!1,this.now=new Date,this.prevArrow="<",this.shorthandCurrentMonth=!1,this["static"]=!1,this.time24hr=!1,this.utc=!1,this.weekNumbers=!1,this.wrap=!1,this.plugins=[],this.locale="default",this.convertModelValue=!1,this.showMonths=1,this.monthSelectorType="static"}return t.decorators=[{type:i.Injectable}],t}(),s={provide:e.NG_VALUE_ACCESSOR,useExisting:i.forwardRef(function(){return r}),multi:!0},r=function(){function t(t,e,n){this.elm=t,this.defaults=e,this.renderer=n,this.options={},this.flatpickrReady=new i.EventEmitter,this.flatpickrChange=new i.EventEmitter,this.flatpickrValueUpdate=new i.EventEmitter,this.flatpickrOpen=new i.EventEmitter,this.flatpickrClose=new i.EventEmitter,this.flatpickrMonthChange=new i.EventEmitter,this.flatpickrYearChange=new i.EventEmitter,this.flatpickrDayCreate=new i.EventEmitter,this.isDisabled=!1,this.onChangeFn=function(){},this.onTouchedFn=function(){}}return t.prototype.ngAfterViewInit=function(){var a=this,e={altFormat:this.altFormat,altInput:this.altInput,altInputClass:this.altInputClass,allowInput:this.allowInput,appendTo:this.appendTo,ariaDateFormat:this.ariaDateFormat,clickOpens:this.clickOpens,dateFormat:this.dateFormat,defaultHour:this.defaultHour,defaultMinute:this.defaultMinute,defaultSeconds:this.defaultSeconds,disable:this.disable,disableMobile:this.disableMobile,enable:this.enable,enableTime:this.enableTime,enableSeconds:this.enableSeconds,formatDate:this.formatDate,hourIncrement:this.hourIncrement,defaultDate:this.initialValue,inline:this.inline,maxDate:this.maxDate,minDate:this.minDate,minuteIncrement:this.minuteIncrement,mode:this.mode,nextArrow:this.nextArrow,noCalendar:this.noCalendar,now:this.now,parseDate:this.parseDate,prevArrow:this.prevArrow,shorthandCurrentMonth:this.shorthandCurrentMonth,showMonths:this.showMonths,monthSelectorType:this.monthSelectorType,"static":this["static"],time24hr:this.time24hr,weekNumbers:this.weekNumbers,getWeek:this.getWeek,wrap:this.wrap,plugins:this.plugins,locale:this.locale,onChange:function(t,e,n){a.flatpickrChange.emit({selectedDates:t,dateString:e,instance:n})},onOpen:function(t,e,n){a.flatpickrOpen.emit({selectedDates:t,dateString:e,instance:n})},onClose:function(t,e,n){a.flatpickrClose.emit({selectedDates:t,dateString:e,instance:n})},onMonthChange:function(t,e,n){a.flatpickrMonthChange.emit({selectedDates:t,dateString:e,instance:n})},onYearChange:function(t,e,n){a.flatpickrYearChange.emit({selectedDates:t,dateString:e,instance:n})},onReady:function(t,e,n){a.flatpickrReady.emit({selectedDates:t,dateString:e,instance:n})},onValueUpdate:function(t,e,n){a.flatpickrValueUpdate.emit({selectedDates:t,dateString:e,instance:n})},onDayCreate:function(t,e,n,i){a.flatpickrDayCreate.emit({selectedDates:t,dateString:e,instance:n,dayElement:i})}};Object.keys(e).forEach(function(t){"undefined"==typeof e[t]&&("undefined"!=typeof a.options[t]?e[t]=a.options[t]:e[t]=a.defaults[t])}),e.time_24hr=e.time24hr,e.altInputClass=(e.altInputClass||"")+" "+this.elm.nativeElement.className,e.enable||delete e.enable,this.instance=n(this.elm.nativeElement,e),this.setDisabledState(this.isDisabled)},t.prototype.ngOnChanges=function(t){var e=this;this.instance&&Object.keys(t).forEach(function(t){e.instance.set(t,e[t])})},t.prototype.ngOnDestroy=function(){this.instance&&this.instance.destroy()},t.prototype.writeValue=function(t){var e=t;this.convertModelValue&&"range"===this.mode&&t&&(e=[t.from,t.to]),this.instance?this.instance.setDate(e):this.initialValue=e},t.prototype.registerOnChange=function(t){this.onChangeFn=t},t.prototype.registerOnTouched=function(t){this.onTouchedFn=t},t.prototype.setDisabledState=function(t){this.isDisabled=t,this.instance&&(this.isDisabled?this.renderer.setProperty(this.instance._input,"disabled","disabled"):this.renderer.removeAttribute(this.instance._input,"disabled"))},t.prototype.inputChanged=function(){var e=this,t=this.elm.nativeElement.value;if(this.convertModelValue&&"string"==typeof t)switch(this.mode){case"multiple":var n=t.split("; ").map(function(t){return e.instance.parseDate(t,e.instance.config.dateFormat,!e.instance.config.enableTime)});this.onChangeFn(n);break;case"range":var i=function(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var i,a,s=n.call(t),r=[];try{for(;(void 0===e||0<e--)&&!(i=s.next()).done;)r.push(i.value)}catch(o){a={error:o}}finally{try{i&&!i.done&&(n=s["return"])&&n.call(s)}finally{if(a)throw a.error}}return r}(t.split(this.instance.l10n.rangeSeparator).map(function(t){return e.instance.parseDate(t,e.instance.config.dateFormat,!e.instance.config.enableTime)}),2),a=i[0],s=i[1];this.onChangeFn({from:a,to:s});break;case"single":default:this.onChangeFn(this.instance.parseDate(t,this.instance.config.dateFormat,!this.instance.config.enableTime))}else this.onChangeFn(t)},t.decorators=[{type:i.Directive,args:[{selector:"[mwlFlatpickr]",providers:[s],host:{"(blur)":"onTouchedFn()"}}]}],t.ctorParameters=function(){return[{type:i.ElementRef},{type:a},{type:i.Renderer2}]},t.propDecorators={options:[{type:i.Input}],altFormat:[{type:i.Input}],altInput:[{type:i.Input}],altInputClass:[{type:i.Input}],allowInput:[{type:i.Input}],appendTo:[{type:i.Input}],ariaDateFormat:[{type:i.Input}],clickOpens:[{type:i.Input}],dateFormat:[{type:i.Input}],defaultHour:[{type:i.Input}],defaultMinute:[{type:i.Input}],defaultSeconds:[{type:i.Input}],disable:[{type:i.Input}],disableMobile:[{type:i.Input}],enable:[{type:i.Input}],enableTime:[{type:i.Input}],enableSeconds:[{type:i.Input}],formatDate:[{type:i.Input}],hourIncrement:[{type:i.Input}],inline:[{type:i.Input}],maxDate:[{type:i.Input}],minDate:[{type:i.Input}],minuteIncrement:[{type:i.Input}],mode:[{type:i.Input}],nextArrow:[{type:i.Input}],noCalendar:[{type:i.Input}],now:[{type:i.Input}],parseDate:[{type:i.Input}],prevArrow:[{type:i.Input}],shorthandCurrentMonth:[{type:i.Input}],showMonths:[{type:i.Input}],"static":[{type:i.Input}],time24hr:[{type:i.Input}],weekNumbers:[{type:i.Input}],getWeek:[{type:i.Input}],wrap:[{type:i.Input}],plugins:[{type:i.Input}],locale:[{type:i.Input}],convertModelValue:[{type:i.Input}],monthSelectorType:[{type:i.Input}],flatpickrReady:[{type:i.Output}],flatpickrChange:[{type:i.Output}],flatpickrValueUpdate:[{type:i.Output}],flatpickrOpen:[{type:i.Output}],flatpickrClose:[{type:i.Output}],flatpickrMonthChange:[{type:i.Output}],flatpickrYearChange:[{type:i.Output}],flatpickrDayCreate:[{type:i.Output}],inputChanged:[{type:i.HostListener,args:["input"]}]},t}(),o=new i.InjectionToken("flatpickr defaults");function p(t){var e=new a;return Object.assign(e,t),e}var l=function(){function e(){}return e.forRoot=function(t){return void 0===t&&(t={}),{ngModule:e,providers:[{provide:o,useValue:t},{provide:a,useFactory:p,deps:[o]}]}},e.decorators=[{type:i.NgModule,args:[{declarations:[r],exports:[r]}]}],e}();t.FlatpickrDefaults=a,t.FlatpickrDirective=r,t.USER_DEFAULTS=o,t.defaultsFactory=p,t.FlatpickrModule=l,t.ɵa=s,Object.defineProperty(t,"__esModule",{value:!0})}); | ||
| //# sourceMappingURL=angularx-flatpickr.umd.min.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["ng://angularx-flatpickr/flatpickr-defaults.service.ts","ng://angularx-flatpickr/flatpickr.directive.ts","null","ng://angularx-flatpickr/flatpickr.module.ts"],"names":["FlatpickrDefaults","undefined","Date","Injectable","FLATPICKR_CONTROL_VALUE_ACCESSOR","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","FlatpickrDirective","multi","elm","defaults","renderer","this","EventEmitter","prototype","ngAfterViewInit","_this","options","altFormat","altInput","altInputClass","allowInput","appendTo","ariaDateFormat","clickOpens","dateFormat","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enable","enableTime","enableSeconds","formatDate","hourIncrement","defaultDate","initialValue","inline","maxDate","minDate","minuteIncrement","mode","nextArrow","noCalendar","now","parseDate","prevArrow","shorthandCurrentMonth","showMonths","monthSelectorType","static","time24hr","weekNumbers","getWeek","wrap","plugins","locale","onChange","selectedDates","dateString","instance","flatpickrChange","emit","onOpen","flatpickrOpen","onClose","flatpickrClose","onMonthChange","flatpickrMonthChange","onYearChange","flatpickrYearChange","onReady","flatpickrReady","onValueUpdate","flatpickrValueUpdate","onDayCreate","dayElement","flatpickrDayCreate","Object","keys","forEach","key","time_24hr","nativeElement","className","flatpickr","setDisabledState","isDisabled","ngOnChanges","changes","inputKey","set","ngOnDestroy","destroy","writeValue","value","convertedValue","convertModelValue","from","to","setDate","registerOnChange","fn","onChangeFn","registerOnTouched","onTouchedFn","setProperty","_input","removeAttribute","inputChanged","dates","split","map","str","config","_a","o","n","m","Symbol","iterator","r","e","i","call","ar","next","done","push","error","__read","Directive","args","selector","providers","host","(blur)","ElementRef","Renderer2","Input","Output","HostListener","USER_DEFAULTS","InjectionToken","defaultsFactory","userDefaults","assign","FlatpickrModule","forRoot","ngModule","useValue","useFactory","deps","NgModule","declarations","exports"],"mappings":"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","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\n// tslint:disable no-inferrable-types\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 * 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 * 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@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 * Instead of `body`, appends the calendar to the specified node instead.\n */\n appendTo: HTMLElement = 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;\n\n /**\n * The minimum date that a user can start picking from (inclusive).\n */\n minDate: string | Date = 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","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} 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';\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), //tslint:disable-line\n multi: true\n};\n\n@Directive({\n selector: '[mwlFlatpickr]',\n providers: [FLATPICKR_CONTROL_VALUE_ACCESSOR],\n host: {\n // tslint:disable-line use-host-property-decorator\n '(blur)': 'onTouchedFn()'\n }\n})\nexport class FlatpickrDirective\n implements AfterViewInit, OnChanges, OnDestroy, ControlValueAccessor {\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 * 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 * 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 * 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<\n 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<\n 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<\n FlatPickrOutputOptions\n > = new EventEmitter();\n\n /**\n * Take full control of every date cell with this output\n */\n @Output()\n flatpickrDayCreate: EventEmitter<\n FlatPickrDayCreateOutputOptions\n > = new EventEmitter();\n\n private instance: flatpickr.Instance;\n private isDisabled = false;\n private initialValue: any;\n\n onChangeFn: (value: any) => void = () => {}; // tslint:disable-line\n\n onTouchedFn = () => {};\n\n constructor(\n private elm: ElementRef,\n private defaults: FlatpickrDefaults,\n private renderer: Renderer2\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 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 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 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[key] !== 'undefined') {\n options[key] = (this.options as any)[key];\n } else {\n options[key] = (this.defaults as any)[key];\n }\n }\n });\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 this.instance = flatpickr(\n this.elm.nativeElement,\n options\n ) as flatpickr.Instance;\n this.setDisabledState(this.isDisabled);\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\t\tthis.instance.destroy();\n\t}\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: Date[] = 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","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator];\r\n return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\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 {\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"]} | ||
| {"version":3,"sources":["ng://angularx-flatpickr/flatpickr-defaults.service.ts","ng://angularx-flatpickr/flatpickr.directive.ts","null","ng://angularx-flatpickr/flatpickr.module.ts"],"names":["FlatpickrDefaults","undefined","Date","Injectable","FLATPICKR_CONTROL_VALUE_ACCESSOR","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","FlatpickrDirective","multi","elm","defaults","renderer","this","EventEmitter","prototype","ngAfterViewInit","_this","options","altFormat","altInput","altInputClass","allowInput","appendTo","ariaDateFormat","clickOpens","dateFormat","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enable","enableTime","enableSeconds","formatDate","hourIncrement","defaultDate","initialValue","inline","maxDate","minDate","minuteIncrement","mode","nextArrow","noCalendar","now","parseDate","prevArrow","shorthandCurrentMonth","showMonths","monthSelectorType","static","time24hr","weekNumbers","getWeek","wrap","plugins","locale","onChange","selectedDates","dateString","instance","flatpickrChange","emit","onOpen","flatpickrOpen","onClose","flatpickrClose","onMonthChange","flatpickrMonthChange","onYearChange","flatpickrYearChange","onReady","flatpickrReady","onValueUpdate","flatpickrValueUpdate","onDayCreate","dayElement","flatpickrDayCreate","Object","keys","forEach","key","time_24hr","nativeElement","className","flatpickr","setDisabledState","isDisabled","ngOnChanges","changes","inputKey","set","ngOnDestroy","destroy","writeValue","value","convertedValue","convertModelValue","from","to","setDate","registerOnChange","fn","onChangeFn","registerOnTouched","onTouchedFn","setProperty","_input","removeAttribute","inputChanged","dates","split","map","str","config","_a","o","n","m","Symbol","iterator","r","e","i","call","ar","next","done","push","error","__read","Directive","args","selector","providers","host","(blur)","ElementRef","Renderer2","Input","Output","HostListener","USER_DEFAULTS","InjectionToken","defaultsFactory","userDefaults","assign","FlatpickrModule","forRoot","ngModule","useValue","useFactory","deps","NgModule","declarations","exports"],"mappings":"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","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\n// tslint:disable no-inferrable-types\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 * 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 * 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@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 * Instead of `body`, appends the calendar to the specified node instead.\n */\n appendTo: HTMLElement = 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;\n\n /**\n * The minimum date that a user can start picking from (inclusive).\n */\n minDate: string | Date = 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","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} 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';\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), //tslint:disable-line\n multi: true\n};\n\n@Directive({\n selector: '[mwlFlatpickr]',\n providers: [FLATPICKR_CONTROL_VALUE_ACCESSOR],\n host: {\n // tslint:disable-line use-host-property-decorator\n '(blur)': 'onTouchedFn()'\n }\n})\nexport class FlatpickrDirective\n implements AfterViewInit, OnChanges, OnDestroy, ControlValueAccessor {\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 * 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 * 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 * 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<\n 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<\n 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<\n FlatPickrOutputOptions\n > = new EventEmitter();\n\n /**\n * Take full control of every date cell with this output\n */\n @Output()\n flatpickrDayCreate: EventEmitter<\n FlatPickrDayCreateOutputOptions\n > = new EventEmitter();\n\n private instance: flatpickr.Instance;\n private isDisabled = false;\n private initialValue: any;\n\n onChangeFn: (value: any) => void = () => {}; // tslint:disable-line\n\n onTouchedFn = () => {};\n\n constructor(\n private elm: ElementRef,\n private defaults: FlatpickrDefaults,\n private renderer: Renderer2\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 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 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 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[key] !== 'undefined') {\n options[key] = (this.options as any)[key];\n } else {\n options[key] = (this.defaults as any)[key];\n }\n }\n });\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 this.instance = flatpickr(\n this.elm.nativeElement,\n options\n ) as flatpickr.Instance;\n this.setDisabledState(this.isDisabled);\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: Date[] = 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","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator];\r\n return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\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 {\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"]} |
+10
-0
@@ -5,2 +5,12 @@ # Change Log | ||
| <a name="6.5.3"></a> | ||
| ## [6.5.3](https://github.com/mattlewis92/angularx-flatpickr/compare/v6.5.2...v6.5.3) (2021-07-05) | ||
| ### Bug Fixes | ||
| * fix being able to select dates ([fe324c8](https://github.com/mattlewis92/angularx-flatpickr/commit/fe324c8)) | ||
| <a name="6.5.2"></a> | ||
@@ -7,0 +17,0 @@ ## [6.5.2](https://github.com/mattlewis92/angularx-flatpickr/compare/v6.5.1...v6.5.2) (2021-02-02) |
@@ -277,6 +277,2 @@ /** | ||
| /** | ||
| * See <a href="https://chmln.github.io/flatpickr/examples/#disabling-all-dates-except-select-few">enabling dates</a>. | ||
| */ | ||
| this.enable = []; | ||
| /** | ||
| * Enables time picker. | ||
@@ -592,2 +588,2 @@ */ | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdHBpY2tyLWRlZmF1bHRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyeC1mbGF0cGlja3IvIiwic291cmNlcyI6WyJmbGF0cGlja3ItZGVmYXVsdHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBc04zQyxNQUFNOzs7Ozt5QkFJZ0IsUUFBUTs7Ozt3QkFLUixLQUFLOzs7Ozs2QkFNRCxFQUFFOzs7OzBCQUtKLEtBQUs7Ozs7d0JBS0gsU0FBUzs7Ozs4QkFLUCxRQUFROzs7OzswQkFNWixJQUFJOzs7OzswQkFNTCxPQUFPOzs7OzJCQUtMLEVBQUU7Ozs7NkJBS0EsQ0FBQzs7Ozs4QkFLQSxDQUFDOzs7O3VCQUtJLEVBQUU7Ozs7OzZCQU1SLEtBQUs7Ozs7c0JBS0EsRUFBRTs7OzswQkFLVixLQUFLOzs7OzZCQUtGLEtBQUs7Ozs7MEJBS1EsU0FBUzs7Ozs2QkFLdkIsQ0FBQzs7OztzQkFLUCxLQUFLOzs7O3VCQUtFLFNBQVM7Ozs7dUJBS1QsU0FBUzs7OzsrQkFLUixDQUFDOzs7O29CQUthLFFBQVE7Ozs7eUJBSzVCLEdBQUc7Ozs7MEJBS0QsS0FBSzs7OzttQkFLRyxJQUFJLElBQUksRUFBRTs7Ozt5QkFVcEIsR0FBRzs7OztxQ0FLVSxLQUFLOzs7O3NCQUtwQixLQUFLOzs7O3dCQUtILEtBQUs7Ozs7O21CQU1WLEtBQUs7Ozs7MkJBS0csS0FBSzs7OztvQkFXWixLQUFLOzs7O3VCQUtKLEVBQUU7Ozs7c0JBS08sU0FBUzs7OztpQ0FLTixLQUFLOzs7OzBCQUtiLENBQUM7Ozs7aUNBS3FCLFFBQVE7Ozs7WUE5TXBELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIERpc2FibGVFbmFibGVEYXRlID1cbiAgfCBzdHJpbmdcbiAgfCBEYXRlXG4gIHwgeyBmcm9tOiBEYXRlIHwgc3RyaW5nOyB0bzogRGF0ZSB8IHN0cmluZyB9XG4gIHwgKChkYXRlOiBEYXRlKSA9PiBib29sZWFuKTtcblxuLy8gdHNsaW50OmRpc2FibGUgbm8taW5mZXJyYWJsZS10eXBlc1xuXG5leHBvcnQgaW50ZXJmYWNlIEZsYXRwaWNrckRlZmF1bHRzSW50ZXJmYWNlIHtcbiAgLyoqXG4gICAqIEV4YWN0bHkgdGhlIHNhbWUgYXMgZGF0ZSBmb3JtYXQsIGJ1dCBmb3IgdGhlIGFsdElucHV0IGZpZWxkLlxuICAgKi9cbiAgYWx0Rm9ybWF0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBcdFNob3cgdGhlIHVzZXIgYSByZWFkYWJsZSBkYXRlIChhcyBwZXIgYWx0Rm9ybWF0KSwgYnV0IHJldHVybiBzb21ldGhpbmcgdG90YWxseSBkaWZmZXJlbnQgdG8gdGhlIHNlcnZlci5cbiAgICovXG4gIGFsdElucHV0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhpcyBjbGFzcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBpbnB1dCBlbGVtZW50IGNyZWF0ZWQgYnkgdGhlIGFsdElucHV0IG9wdGlvbi5cbiAgICogTm90ZSB0aGF0IGBhbHRJbnB1dGAgYWxyZWFkeSBpbmhlcml0cyBjbGFzc2VzIGZyb20gdGhlIG9yaWdpbmFsIGlucHV0LlxuICAgKi9cbiAgYWx0SW5wdXRDbGFzcz86IHN0cmluZztcblxuICAvKipcbiAgICogQWxsb3dzIHRoZSB1c2VyIHRvIGVudGVyIGEgZGF0ZSBkaXJlY3RseSBpbnB1dCB0aGUgaW5wdXQgZmllbGQuIEJ5IGRlZmF1bHQsIGRpcmVjdCBlbnRyeSBpcyBkaXNhYmxlZC5cbiAgICovXG4gIGFsbG93SW5wdXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbnN0ZWFkIG9mIGBib2R5YCwgYXBwZW5kcyB0aGUgY2FsZW5kYXIgdG8gdGhlIHNwZWNpZmllZCBub2RlIGluc3RlYWQuXG4gICAqL1xuICBhcHBlbmRUbz86IEhUTUxFbGVtZW50O1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGhvdyB0aGUgZGF0ZSB3aWxsIGJlIGZvcm1hdHRlZCBpbiB0aGUgYXJpYS1sYWJlbCBmb3IgY2FsZW5kYXIgZGF5cywgdXNpbmcgdGhlIHNhbWUgdG9rZW5zIGFzIGRhdGVGb3JtYXQuIElmIHlvdSBjaGFuZ2UgdGhpcywgeW91IHNob3VsZCBjaG9vc2UgYSB2YWx1ZSB0aGF0IHdpbGwgbWFrZSBzZW5zZSBpZiBhIHNjcmVlbiByZWFkZXIgcmVhZHMgaXQgb3V0IGxvdWQuXG4gICAqL1xuICBhcmlhRGF0ZUZvcm1hdD86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBjbGlja2luZyBvbiB0aGUgaW5wdXQgc2hvdWxkIG9wZW4gdGhlIHBpY2tlci5cbiAgICogWW91IGNvdWxkIGRpc2FibGUgdGhpcyBpZiB5b3Ugd2lzaCB0byBvcGVuIHRoZSBjYWxlbmRhciBtYW51YWxseSBgd2l0aC5vcGVuKClgLlxuICAgKi9cbiAgY2xpY2tPcGVucz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgc3RyaW5nIG9mIGNoYXJhY3RlcnMgd2hpY2ggYXJlIHVzZWQgdG8gZGVmaW5lIGhvdyB0aGUgZGF0ZSB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgaW5wdXQgYm94LlxuICAgKiBUaGUgc3VwcG9ydGVkIGNoYXJhY3RlcnMgYXJlIGRlZmluZWQgaW4gdGhlIHRhYmxlIGJlbG93LlxuICAgKi9cbiAgZGF0ZUZvcm1hdD86IHN0cmluZztcbiAgLyoqXG4gICAqIEluaXRpYWwgdmFsdWUgb2YgdGhlIGhvdXIgZWxlbWVudC5cbiAgICovXG4gIGRlZmF1bHRIb3VyPzogbnVtYmVyO1xuICAvKipcbiAgICogSW5pdGlhbCB2YWx1ZSBvZiB0aGUgbWludXRlIGVsZW1lbnQuXG4gICAqL1xuICBkZWZhdWx0TWludXRlPzogbnVtYmVyO1xuICAvKipcbiAgICogSW5pdGlhbCB2YWx1ZSBvZiB0aGUgc2Vjb25kcyBlbGVtZW50LlxuICAgKi9cbiAgZGVmYXVsdFNlY29uZHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNlZSA8YSBocmVmPVwiaHR0cHM6Ly9jaG1sbi5naXRodWIuaW8vZmxhdHBpY2tyL2V4YW1wbGVzLyNkaXNhYmxpbmctc3BlY2lmaWMtZGF0ZXNcIj5kaXNhYmxpbmcgZGF0ZXM8L2E+LlxuICAgKi9cbiAgZGlzYWJsZT86IERpc2FibGVFbmFibGVEYXRlW107XG5cbiAgLyoqXG4gICAqIFNldCBkaXNhYmxlTW9iaWxlIHRvIHRydWUgdG8gYWx3YXlzIHVzZSB0aGUgbm9uLW5hdGl2ZSBwaWNrZXIuXG4gICAqIEJ5IGRlZmF1bHQsIEZsYXRwaWNrciB1dGlsaXplcyBuYXRpdmUgZGF0ZXRpbWUgd2lkZ2V0cyB1bmxlc3MgY2VydGFpbiBvcHRpb25zIChlLmcuIGRpc2FibGUpIGFyZSB1c2VkLlxuICAgKi9cbiAgZGlzYWJsZU1vYmlsZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNlZSA8YSBocmVmPVwiaHR0cHM6Ly9jaG1sbi5naXRodWIuaW8vZmxhdHBpY2tyL2V4YW1wbGVzLyNkaXNhYmxpbmctYWxsLWRhdGVzLWV4Y2VwdC1zZWxlY3QtZmV3XCI+ZW5hYmxpbmcgZGF0ZXM8L2E+LlxuICAgKi9cbiAgZW5hYmxlPzogRGlzYWJsZUVuYWJsZURhdGVbXTtcblxuICAvKipcbiAgICogRW5hYmxlcyB0aW1lIHBpY2tlci5cbiAgICovXG4gIGVuYWJsZVRpbWU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIHNlY29uZHMgaW4gdGhlIHRpbWUgcGlja2VyLlxuICAgKi9cbiAgZW5hYmxlU2Vjb25kcz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBbGxvd3MgdXNpbmcgYSBjdXN0b20gZGF0ZSBmb3JtYXR0aW5nIGZ1bmN0aW9uIGluc3RlYWQgb2YgdGhlIGJ1aWx0LWluIGhhbmRsaW5nIGZvciBkYXRlIGZvcm1hdHMgdXNpbmcgZGF0ZUZvcm1hdCwgYWx0Rm9ybWF0LCBldGMuXG4gICAqL1xuICBmb3JtYXREYXRlPzogKHZhbHVlOiBhbnkpID0+IHN0cmluZztcbiAgLyoqXG4gICAqIEFkanVzdHMgdGhlIHN0ZXAgZm9yIHRoZSBob3VyIGlucHV0IChpbmNsLiBzY3JvbGxpbmcpLlxuICAgKi9cbiAgaG91ckluY3JlbWVudD86IG51bWJlcjtcblxuICAvKipcbiAgICogRGlzcGxheXMgdGhlIGNhbGVuZGFyIGlubGluZS5cbiAgICovXG4gIGlubGluZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGRhdGUgdGhhdCBhIHVzZXIgY2FuIHBpY2sgdG8gKGluY2x1c2l2ZSkuXG4gICAqL1xuICBtYXhEYXRlPzogc3RyaW5nIHwgRGF0ZTtcblxuICAvKipcbiAgICogVGhlIG1pbmltdW0gZGF0ZSB0aGF0IGEgdXNlciBjYW4gc3RhcnQgcGlja2luZyBmcm9tIChpbmNsdXNpdmUpLlxuICAgKi9cbiAgbWluRGF0ZT86IHN0cmluZyB8IERhdGU7XG5cbiAgLyoqXG4gICAqIEFkanVzdHMgdGhlIHN0ZXAgZm9yIHRoZSBtaW51dGUgaW5wdXQgKGluY2wuIHNjcm9sbGluZykuXG4gICAqL1xuICBtaW51dGVJbmNyZW1lbnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBhIHNpbmdsZSBkYXRlLCBtdWx0aXBsZSBkYXRlcyBvciBhIGRhdGUgcmFuZ2UuXG4gICAqL1xuICBtb2RlPzogJ3NpbmdsZScgfCAnbXVsdGlwbGUnIHwgJ3JhbmdlJztcblxuICAvKipcbiAgICogSFRNTCBmb3IgdGhlIGFycm93IGljb24sIHVzZWQgdG8gc3dpdGNoIG1vbnRocy5cbiAgICovXG4gIG5leHRBcnJvdz86IHN0cmluZztcblxuICAvKipcbiAgICogSGlkZXMgdGhlIGRheSBzZWxlY3Rpb24gaW4gY2FsZW5kYXIuIFVzZSBpdCBhbG9uZyB3aXRoIGBlbmFibGVUaW1lYCB0byBjcmVhdGUgYSB0aW1lIHBpY2tlci5cbiAgICovXG4gIG5vQ2FsZW5kYXI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQcm92aWRlIGEgZGF0ZSBmb3IgJ3RvZGF5Jywgd2hpY2ggd2lsbCBiZSB1c2VkIGluc3RlYWQgb2YgXCJuZXcgRGF0ZSgpXCJcbiAgICovXG4gIG5vdz86IERhdGUgfCBzdHJpbmcgfCBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRoYXQgZXhwZWN0cyBhIGRhdGUgc3RyaW5nIGFuZCBtdXN0IHJldHVybiBhIERhdGUgb2JqZWN0LlxuICAgKi9cbiAgcGFyc2VEYXRlPzogKHN0cjogc3RyaW5nKSA9PiBEYXRlO1xuXG4gIC8qKlxuICAgKiBIVE1MIGZvciB0aGUgbGVmdCBhcnJvdyBpY29uLlxuICAgKi9cbiAgcHJldkFycm93Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaG93IHRoZSBtb250aCB1c2luZyB0aGUgc2hvcnRoYW5kIHZlcnNpb24gKGllLCBTZXAgaW5zdGVhZCBvZiBTZXB0ZW1iZXIpLlxuICAgKi9cbiAgc2hvcnRoYW5kQ3VycmVudE1vbnRoPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUG9zaXRpb24gdGhlIGNhbGVuZGFyIGluc2lkZSB0aGUgd3JhcHBlciBhbmQgbmV4dCB0byB0aGUgaW5wdXQgZWxlbWVudC4gKExlYXZlIGBmYWxzZWAgdW5sZXNzIHlvdSBrbm93IHdoYXQgeW91J3JlIGRvaW5nKS5cbiAgICovXG4gIHN0YXRpYz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIERpc3BsYXlzIHRpbWUgcGlja2VyIGluIDI0IGhvdXIgbW9kZSB3aXRob3V0IEFNL1BNIHNlbGVjdGlvbiB3aGVuIGVuYWJsZWQuXG4gICAqL1xuICB0aW1lMjRocj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSwgZGF0ZXMgd2lsbCBwYXJzZWQsIGZvcm1hdHRlZCwgYW5kIGRpc3BsYXllZCBpbiBVVEMuXG4gICAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCBkYXRlIHN0cmluZ3MgY29udGFpbiB0aGUgdGltZXpvbmUsIGJ1dCBub3QgbmVjZXNzYXJ5LlxuICAgKi9cbiAgdXRjPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlcyBkaXNwbGF5IG9mIHdlZWsgbnVtYmVycyBpbiBjYWxlbmRhci5cbiAgICovXG4gIHdlZWtOdW1iZXJzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogWW91IG1heSBvdmVycmlkZSB0aGUgZnVuY3Rpb24gdGhhdCBleHRyYWN0cyB0aGUgd2VlayBudW1iZXJzIGZyb20gYSBEYXRlIGJ5IHN1cHBseWluZyBhIGdldFdlZWsgZnVuY3Rpb24uXG4gICAqIEl0IHRha2VzIGluIGEgZGF0ZSBhcyBhIHBhcmFtZXRlciBhbmQgc2hvdWxkIHJldHVybiBhIGNvcnJlc3BvbmRpbmcgc3RyaW5nIHRoYXQgeW91IHdhbnQgdG8gYXBwZWFyIGxlZnQgb2YgZXZlcnkgd2Vlay5cbiAgICovXG4gIGdldFdlZWs/OiAoZGF0ZTogRGF0ZSkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gZWxlbWVudHMgYW5kIGlucHV0IGdyb3Vwcy5cbiAgICovXG4gIHdyYXA/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBcnJheSBvZiBwbHVnaW4gaW5zdGFuY2VzIHRvIHVzZS5cbiAgICovXG4gIHBsdWdpbnM/OiBhbnlbXTtcblxuICAvKipcbiAgICogVGhlIGxvY2FsZSBvYmplY3Qgb3Igc3RyaW5nIHRvIHVzZSBmb3IgdGhlIGxvY2FsZS5cbiAgICovXG4gIGxvY2FsZT86IG9iamVjdCB8IHN0cmluZztcblxuICAvKipcbiAgICogQXV0byBjb252ZXJ0IHRoZSBuZ01vZGVsIHZhbHVlIGZyb20gYSBzdHJpbmcgdG8gYSBkYXRlIC8gYXJyYXkgb2YgZGF0ZXMgLyBmcm9tIC0gdG8gZGF0ZSBvYmplY3QgZGVwZW5kaW5nIG9uIHRoZSBgbW9kZWBcbiAgICovXG4gIGNvbnZlcnRNb2RlbFZhbHVlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBtb250aHMgc2hvd24uXG4gICAqL1xuICBzaG93TW9udGhzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBIb3cgdGhlIG1vbnRoIHNob3VsZCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGhlYWRlciBvZiB0aGUgY2FsZW5kYXIuXG4gICAqL1xuICBtb250aFNlbGVjdG9yVHlwZT86ICdzdGF0aWMnIHwgJ2Ryb3Bkb3duJztcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZsYXRwaWNrckRlZmF1bHRzIGltcGxlbWVudHMgRmxhdHBpY2tyRGVmYXVsdHNJbnRlcmZhY2Uge1xuICAvKipcbiAgICogRXhhY3RseSB0aGUgc2FtZSBhcyBkYXRlIGZvcm1hdCwgYnV0IGZvciB0aGUgYWx0SW5wdXQgZmllbGQuXG4gICAqL1xuICBhbHRGb3JtYXQ6IHN0cmluZyA9ICdGIGosIFknO1xuXG4gIC8qKlxuICAgKiBcdFNob3cgdGhlIHVzZXIgYSByZWFkYWJsZSBkYXRlIChhcyBwZXIgYWx0Rm9ybWF0KSwgYnV0IHJldHVybiBzb21ldGhpbmcgdG90YWxseSBkaWZmZXJlbnQgdG8gdGhlIHNlcnZlci5cbiAgICovXG4gIGFsdElucHV0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoaXMgY2xhc3Mgd2lsbCBiZSBhZGRlZCB0byB0aGUgaW5wdXQgZWxlbWVudCBjcmVhdGVkIGJ5IHRoZSBhbHRJbnB1dCBvcHRpb24uXG4gICAqIE5vdGUgdGhhdCBgYWx0SW5wdXRgIGFscmVhZHkgaW5oZXJpdHMgY2xhc3NlcyBmcm9tIHRoZSBvcmlnaW5hbCBpbnB1dC5cbiAgICovXG4gIGFsdElucHV0Q2xhc3M6IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBBbGxvd3MgdGhlIHVzZXIgdG8gZW50ZXIgYSBkYXRlIGRpcmVjdGx5IGlucHV0IHRoZSBpbnB1dCBmaWVsZC4gQnkgZGVmYXVsdCwgZGlyZWN0IGVudHJ5IGlzIGRpc2FibGVkLlxuICAgKi9cbiAgYWxsb3dJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbnN0ZWFkIG9mIGBib2R5YCwgYXBwZW5kcyB0aGUgY2FsZW5kYXIgdG8gdGhlIHNwZWNpZmllZCBub2RlIGluc3RlYWQuXG4gICAqL1xuICBhcHBlbmRUbzogSFRNTEVsZW1lbnQgPSB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgaG93IHRoZSBkYXRlIHdpbGwgYmUgZm9ybWF0dGVkIGluIHRoZSBhcmlhLWxhYmVsIGZvciBjYWxlbmRhciBkYXlzLCB1c2luZyB0aGUgc2FtZSB0b2tlbnMgYXMgZGF0ZUZvcm1hdC4gSWYgeW91IGNoYW5nZSB0aGlzLCB5b3Ugc2hvdWxkIGNob29zZSBhIHZhbHVlIHRoYXQgd2lsbCBtYWtlIHNlbnNlIGlmIGEgc2NyZWVuIHJlYWRlciByZWFkcyBpdCBvdXQgbG91ZC5cbiAgICovXG4gIGFyaWFEYXRlRm9ybWF0Pzogc3RyaW5nID0gJ0YgaiwgWSc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgY2xpY2tpbmcgb24gdGhlIGlucHV0IHNob3VsZCBvcGVuIHRoZSBwaWNrZXIuXG4gICAqIFlvdSBjb3VsZCBkaXNhYmxlIHRoaXMgaWYgeW91IHdpc2ggdG8gb3BlbiB0aGUgY2FsZW5kYXIgbWFudWFsbHkgYHdpdGgub3BlbigpYC5cbiAgICovXG4gIGNsaWNrT3BlbnM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBBIHN0cmluZyBvZiBjaGFyYWN0ZXJzIHdoaWNoIGFyZSB1c2VkIHRvIGRlZmluZSBob3cgdGhlIGRhdGUgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGlucHV0IGJveC5cbiAgICogVGhlIHN1cHBvcnRlZCBjaGFyYWN0ZXJzIGFyZSBkZWZpbmVkIGluIHRoZSB0YWJsZSBiZWxvdy5cbiAgICovXG4gIGRhdGVGb3JtYXQ6IHN0cmluZyA9ICdZLW0tZCc7XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgdmFsdWUgb2YgdGhlIGhvdXIgZWxlbWVudC5cbiAgICovXG4gIGRlZmF1bHRIb3VyPzogbnVtYmVyID0gMTI7XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgdmFsdWUgb2YgdGhlIG1pbnV0ZSBlbGVtZW50LlxuICAgKi9cbiAgZGVmYXVsdE1pbnV0ZT86IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgdmFsdWUgb2YgdGhlIHNlY29uZHMgZWxlbWVudC5cbiAgICovXG4gIGRlZmF1bHRTZWNvbmRzPzogbnVtYmVyID0gMDtcblxuICAvKipcbiAgICogU2VlIDxhIGhyZWY9XCJodHRwczovL2NobWxuLmdpdGh1Yi5pby9mbGF0cGlja3IvZXhhbXBsZXMvI2Rpc2FibGluZy1zcGVjaWZpYy1kYXRlc1wiPmRpc2FibGluZyBkYXRlczwvYT4uXG4gICAqL1xuICBkaXNhYmxlOiBEaXNhYmxlRW5hYmxlRGF0ZVtdID0gW107XG5cbiAgLyoqXG4gICAqIFNldCBkaXNhYmxlTW9iaWxlIHRvIHRydWUgdG8gYWx3YXlzIHVzZSB0aGUgbm9uLW5hdGl2ZSBwaWNrZXIuXG4gICAqIEJ5IGRlZmF1bHQsIEZsYXRwaWNrciB1dGlsaXplcyBuYXRpdmUgZGF0ZXRpbWUgd2lkZ2V0cyB1bmxlc3MgY2VydGFpbiBvcHRpb25zIChlLmcuIGRpc2FibGUpIGFyZSB1c2VkLlxuICAgKi9cbiAgZGlzYWJsZU1vYmlsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTZWUgPGEgaHJlZj1cImh0dHBzOi8vY2htbG4uZ2l0aHViLmlvL2ZsYXRwaWNrci9leGFtcGxlcy8jZGlzYWJsaW5nLWFsbC1kYXRlcy1leGNlcHQtc2VsZWN0LWZld1wiPmVuYWJsaW5nIGRhdGVzPC9hPi5cbiAgICovXG4gIGVuYWJsZTogRGlzYWJsZUVuYWJsZURhdGVbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIHRpbWUgcGlja2VyLlxuICAgKi9cbiAgZW5hYmxlVGltZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIHNlY29uZHMgaW4gdGhlIHRpbWUgcGlja2VyLlxuICAgKi9cbiAgZW5hYmxlU2Vjb25kczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBBbGxvd3MgdXNpbmcgYSBjdXN0b20gZGF0ZSBmb3JtYXR0aW5nIGZ1bmN0aW9uIGluc3RlYWQgb2YgdGhlIGJ1aWx0LWluIGhhbmRsaW5nIGZvciBkYXRlIGZvcm1hdHMgdXNpbmcgZGF0ZUZvcm1hdCwgYWx0Rm9ybWF0LCBldGMuXG4gICAqL1xuICBmb3JtYXREYXRlPzogKHZhbHVlOiBhbnkpID0+IHN0cmluZyA9IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQWRqdXN0cyB0aGUgc3RlcCBmb3IgdGhlIGhvdXIgaW5wdXQgKGluY2wuIHNjcm9sbGluZykuXG4gICAqL1xuICBob3VySW5jcmVtZW50OiBudW1iZXIgPSAxO1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5cyB0aGUgY2FsZW5kYXIgaW5saW5lLlxuICAgKi9cbiAgaW5saW5lOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGRhdGUgdGhhdCBhIHVzZXIgY2FuIHBpY2sgdG8gKGluY2x1c2l2ZSkuXG4gICAqL1xuICBtYXhEYXRlOiBzdHJpbmcgfCBEYXRlID0gdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBkYXRlIHRoYXQgYSB1c2VyIGNhbiBzdGFydCBwaWNraW5nIGZyb20gKGluY2x1c2l2ZSkuXG4gICAqL1xuICBtaW5EYXRlOiBzdHJpbmcgfCBEYXRlID0gdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBBZGp1c3RzIHRoZSBzdGVwIGZvciB0aGUgbWludXRlIGlucHV0IChpbmNsLiBzY3JvbGxpbmcpLlxuICAgKi9cbiAgbWludXRlSW5jcmVtZW50OiBudW1iZXIgPSA1O1xuXG4gIC8qKlxuICAgKiBTZWxlY3QgYSBzaW5nbGUgZGF0ZSwgbXVsdGlwbGUgZGF0ZXMgb3IgYSBkYXRlIHJhbmdlLlxuICAgKi9cbiAgbW9kZTogJ3NpbmdsZScgfCAnbXVsdGlwbGUnIHwgJ3JhbmdlJyA9ICdzaW5nbGUnO1xuXG4gIC8qKlxuICAgKiBIVE1MIGZvciB0aGUgYXJyb3cgaWNvbiwgdXNlZCB0byBzd2l0Y2ggbW9udGhzLlxuICAgKi9cbiAgbmV4dEFycm93OiBzdHJpbmcgPSAnPic7XG5cbiAgLyoqXG4gICAqIEhpZGVzIHRoZSBkYXkgc2VsZWN0aW9uIGluIGNhbGVuZGFyLiBVc2UgaXQgYWxvbmcgd2l0aCBgZW5hYmxlVGltZWAgdG8gY3JlYXRlIGEgdGltZSBwaWNrZXIuXG4gICAqL1xuICBub0NhbGVuZGFyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgbm93IHRvIHRoZSBjdXJyZW50IGRhdGVcbiAgICovXG4gIG5vdzogRGF0ZSB8IHN0cmluZyB8IG51bWJlciA9IG5ldyBEYXRlKCk7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRoYXQgZXhwZWN0cyBhIGRhdGUgc3RyaW5nIGFuZCBtdXN0IHJldHVybiBhIERhdGUgb2JqZWN0LlxuICAgKi9cbiAgcGFyc2VEYXRlOiAoc3RyOiBzdHJpbmcpID0+IERhdGU7XG5cbiAgLyoqXG4gICAqIEhUTUwgZm9yIHRoZSBsZWZ0IGFycm93IGljb24uXG4gICAqL1xuICBwcmV2QXJyb3c6IHN0cmluZyA9ICc8JztcblxuICAvKipcbiAgICogU2hvdyB0aGUgbW9udGggdXNpbmcgdGhlIHNob3J0aGFuZCB2ZXJzaW9uIChpZSwgU2VwIGluc3RlYWQgb2YgU2VwdGVtYmVyKS5cbiAgICovXG4gIHNob3J0aGFuZEN1cnJlbnRNb250aDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBQb3NpdGlvbiB0aGUgY2FsZW5kYXIgaW5zaWRlIHRoZSB3cmFwcGVyIGFuZCBuZXh0IHRvIHRoZSBpbnB1dCBlbGVtZW50LiAoTGVhdmUgYGZhbHNlYCB1bmxlc3MgeW91IGtub3cgd2hhdCB5b3UncmUgZG9pbmcpLlxuICAgKi9cbiAgc3RhdGljOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIERpc3BsYXlzIHRpbWUgcGlja2VyIGluIDI0IGhvdXIgbW9kZSB3aXRob3V0IEFNL1BNIHNlbGVjdGlvbiB3aGVuIGVuYWJsZWQuXG4gICAqL1xuICB0aW1lMjRocjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGVuIHRydWUsIGRhdGVzIHdpbGwgcGFyc2VkLCBmb3JtYXR0ZWQsIGFuZCBkaXNwbGF5ZWQgaW4gVVRDLlxuICAgKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgZGF0ZSBzdHJpbmdzIGNvbnRhaW4gdGhlIHRpbWV6b25lLCBidXQgbm90IG5lY2Vzc2FyeS5cbiAgICovXG4gIHV0YzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIGRpc3BsYXkgb2Ygd2VlayBudW1iZXJzIGluIGNhbGVuZGFyLlxuICAgKi9cbiAgd2Vla051bWJlcnM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogWW91IG1heSBvdmVycmlkZSB0aGUgZnVuY3Rpb24gdGhhdCBleHRyYWN0cyB0aGUgd2VlayBudW1iZXJzIGZyb20gYSBEYXRlIGJ5IHN1cHBseWluZyBhIGdldFdlZWsgZnVuY3Rpb24uXG4gICAqIEl0IHRha2VzIGluIGEgZGF0ZSBhcyBhIHBhcmFtZXRlciBhbmQgc2hvdWxkIHJldHVybiBhIGNvcnJlc3BvbmRpbmcgc3RyaW5nIHRoYXQgeW91IHdhbnQgdG8gYXBwZWFyIGxlZnQgb2YgZXZlcnkgd2Vlay5cbiAgICovXG4gIGdldFdlZWs6IChkYXRlOiBEYXRlKSA9PiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBlbGVtZW50cyBhbmQgaW5wdXQgZ3JvdXBzLlxuICAgKi9cbiAgd3JhcDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBBcnJheSBvZiBwbHVnaW4gaW5zdGFuY2VzIHRvIHVzZS5cbiAgICovXG4gIHBsdWdpbnM6IGFueVtdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NhbGUgb2JqZWN0IG9yIHN0cmluZyB0byB1c2UgZm9yIHRoZSBsb2NhbGUuXG4gICAqL1xuICBsb2NhbGU6IG9iamVjdCB8IHN0cmluZyA9ICdkZWZhdWx0JztcblxuICAvKipcbiAgICogQXV0byBjb252ZXJ0IHRoZSBuZ01vZGVsIHZhbHVlIGZyb20gYSBzdHJpbmcgdG8gYSBkYXRlIC8gYXJyYXkgb2YgZGF0ZXMgLyBmcm9tIC0gdG8gZGF0ZSBvYmplY3QgZGVwZW5kaW5nIG9uIHRoZSBgbW9kZWBcbiAgICovXG4gIGNvbnZlcnRNb2RlbFZhbHVlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgbW9udGhzIHNob3duLlxuICAgKi9cbiAgc2hvd01vbnRoczogbnVtYmVyID0gMTtcblxuICAvKipcbiAgICogSG93IHRoZSBtb250aCBzaG91bGQgYmUgZGlzcGxheWVkIGluIHRoZSBoZWFkZXIgb2YgdGhlIGNhbGVuZGFyLlxuICAgKi9cbiAgbW9udGhTZWxlY3RvclR5cGU6ICdzdGF0aWMnIHwgJ2Ryb3Bkb3duJyA9ICdzdGF0aWMnO1xufVxuIl19 | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdHBpY2tyLWRlZmF1bHRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyeC1mbGF0cGlja3IvIiwic291cmNlcyI6WyJmbGF0cGlja3ItZGVmYXVsdHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBc04zQyxNQUFNOzs7Ozt5QkFJZ0IsUUFBUTs7Ozt3QkFLUixLQUFLOzs7Ozs2QkFNRCxFQUFFOzs7OzBCQUtKLEtBQUs7Ozs7d0JBS0gsU0FBUzs7Ozs4QkFLUCxRQUFROzs7OzswQkFNWixJQUFJOzs7OzswQkFNTCxPQUFPOzs7OzJCQUtMLEVBQUU7Ozs7NkJBS0EsQ0FBQzs7Ozs4QkFLQSxDQUFDOzs7O3VCQUtJLEVBQUU7Ozs7OzZCQU1SLEtBQUs7Ozs7MEJBVVIsS0FBSzs7Ozs2QkFLRixLQUFLOzs7OzBCQUtRLFNBQVM7Ozs7NkJBS3ZCLENBQUM7Ozs7c0JBS1AsS0FBSzs7Ozt1QkFLRSxTQUFTOzs7O3VCQUtULFNBQVM7Ozs7K0JBS1IsQ0FBQzs7OztvQkFLYSxRQUFROzs7O3lCQUs1QixHQUFHOzs7OzBCQUtELEtBQUs7Ozs7bUJBS0csSUFBSSxJQUFJLEVBQUU7Ozs7eUJBVXBCLEdBQUc7Ozs7cUNBS1UsS0FBSzs7OztzQkFLcEIsS0FBSzs7Ozt3QkFLSCxLQUFLOzs7OzttQkFNVixLQUFLOzs7OzJCQUtHLEtBQUs7Ozs7b0JBV1osS0FBSzs7Ozt1QkFLSixFQUFFOzs7O3NCQUtPLFNBQVM7Ozs7aUNBS04sS0FBSzs7OzswQkFLYixDQUFDOzs7O2lDQUtxQixRQUFROzs7O1lBOU1wRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBEaXNhYmxlRW5hYmxlRGF0ZSA9XG4gIHwgc3RyaW5nXG4gIHwgRGF0ZVxuICB8IHsgZnJvbTogRGF0ZSB8IHN0cmluZzsgdG86IERhdGUgfCBzdHJpbmcgfVxuICB8ICgoZGF0ZTogRGF0ZSkgPT4gYm9vbGVhbik7XG5cbi8vIHRzbGludDpkaXNhYmxlIG5vLWluZmVycmFibGUtdHlwZXNcblxuZXhwb3J0IGludGVyZmFjZSBGbGF0cGlja3JEZWZhdWx0c0ludGVyZmFjZSB7XG4gIC8qKlxuICAgKiBFeGFjdGx5IHRoZSBzYW1lIGFzIGRhdGUgZm9ybWF0LCBidXQgZm9yIHRoZSBhbHRJbnB1dCBmaWVsZC5cbiAgICovXG4gIGFsdEZvcm1hdD86IHN0cmluZztcblxuICAvKipcbiAgICogXHRTaG93IHRoZSB1c2VyIGEgcmVhZGFibGUgZGF0ZSAoYXMgcGVyIGFsdEZvcm1hdCksIGJ1dCByZXR1cm4gc29tZXRoaW5nIHRvdGFsbHkgZGlmZmVyZW50IHRvIHRoZSBzZXJ2ZXIuXG4gICAqL1xuICBhbHRJbnB1dD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoaXMgY2xhc3Mgd2lsbCBiZSBhZGRlZCB0byB0aGUgaW5wdXQgZWxlbWVudCBjcmVhdGVkIGJ5IHRoZSBhbHRJbnB1dCBvcHRpb24uXG4gICAqIE5vdGUgdGhhdCBgYWx0SW5wdXRgIGFscmVhZHkgaW5oZXJpdHMgY2xhc3NlcyBmcm9tIHRoZSBvcmlnaW5hbCBpbnB1dC5cbiAgICovXG4gIGFsdElucHV0Q2xhc3M/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFsbG93cyB0aGUgdXNlciB0byBlbnRlciBhIGRhdGUgZGlyZWN0bHkgaW5wdXQgdGhlIGlucHV0IGZpZWxkLiBCeSBkZWZhdWx0LCBkaXJlY3QgZW50cnkgaXMgZGlzYWJsZWQuXG4gICAqL1xuICBhbGxvd0lucHV0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5zdGVhZCBvZiBgYm9keWAsIGFwcGVuZHMgdGhlIGNhbGVuZGFyIHRvIHRoZSBzcGVjaWZpZWQgbm9kZSBpbnN0ZWFkLlxuICAgKi9cbiAgYXBwZW5kVG8/OiBIVE1MRWxlbWVudDtcblxuICAvKipcbiAgICogRGVmaW5lcyBob3cgdGhlIGRhdGUgd2lsbCBiZSBmb3JtYXR0ZWQgaW4gdGhlIGFyaWEtbGFiZWwgZm9yIGNhbGVuZGFyIGRheXMsIHVzaW5nIHRoZSBzYW1lIHRva2VucyBhcyBkYXRlRm9ybWF0LiBJZiB5b3UgY2hhbmdlIHRoaXMsIHlvdSBzaG91bGQgY2hvb3NlIGEgdmFsdWUgdGhhdCB3aWxsIG1ha2Ugc2Vuc2UgaWYgYSBzY3JlZW4gcmVhZGVyIHJlYWRzIGl0IG91dCBsb3VkLlxuICAgKi9cbiAgYXJpYURhdGVGb3JtYXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgY2xpY2tpbmcgb24gdGhlIGlucHV0IHNob3VsZCBvcGVuIHRoZSBwaWNrZXIuXG4gICAqIFlvdSBjb3VsZCBkaXNhYmxlIHRoaXMgaWYgeW91IHdpc2ggdG8gb3BlbiB0aGUgY2FsZW5kYXIgbWFudWFsbHkgYHdpdGgub3BlbigpYC5cbiAgICovXG4gIGNsaWNrT3BlbnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBIHN0cmluZyBvZiBjaGFyYWN0ZXJzIHdoaWNoIGFyZSB1c2VkIHRvIGRlZmluZSBob3cgdGhlIGRhdGUgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGlucHV0IGJveC5cbiAgICogVGhlIHN1cHBvcnRlZCBjaGFyYWN0ZXJzIGFyZSBkZWZpbmVkIGluIHRoZSB0YWJsZSBiZWxvdy5cbiAgICovXG4gIGRhdGVGb3JtYXQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJbml0aWFsIHZhbHVlIG9mIHRoZSBob3VyIGVsZW1lbnQuXG4gICAqL1xuICBkZWZhdWx0SG91cj86IG51bWJlcjtcbiAgLyoqXG4gICAqIEluaXRpYWwgdmFsdWUgb2YgdGhlIG1pbnV0ZSBlbGVtZW50LlxuICAgKi9cbiAgZGVmYXVsdE1pbnV0ZT86IG51bWJlcjtcbiAgLyoqXG4gICAqIEluaXRpYWwgdmFsdWUgb2YgdGhlIHNlY29uZHMgZWxlbWVudC5cbiAgICovXG4gIGRlZmF1bHRTZWNvbmRzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTZWUgPGEgaHJlZj1cImh0dHBzOi8vY2htbG4uZ2l0aHViLmlvL2ZsYXRwaWNrci9leGFtcGxlcy8jZGlzYWJsaW5nLXNwZWNpZmljLWRhdGVzXCI+ZGlzYWJsaW5nIGRhdGVzPC9hPi5cbiAgICovXG4gIGRpc2FibGU/OiBEaXNhYmxlRW5hYmxlRGF0ZVtdO1xuXG4gIC8qKlxuICAgKiBTZXQgZGlzYWJsZU1vYmlsZSB0byB0cnVlIHRvIGFsd2F5cyB1c2UgdGhlIG5vbi1uYXRpdmUgcGlja2VyLlxuICAgKiBCeSBkZWZhdWx0LCBGbGF0cGlja3IgdXRpbGl6ZXMgbmF0aXZlIGRhdGV0aW1lIHdpZGdldHMgdW5sZXNzIGNlcnRhaW4gb3B0aW9ucyAoZS5nLiBkaXNhYmxlKSBhcmUgdXNlZC5cbiAgICovXG4gIGRpc2FibGVNb2JpbGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZWUgPGEgaHJlZj1cImh0dHBzOi8vY2htbG4uZ2l0aHViLmlvL2ZsYXRwaWNrci9leGFtcGxlcy8jZGlzYWJsaW5nLWFsbC1kYXRlcy1leGNlcHQtc2VsZWN0LWZld1wiPmVuYWJsaW5nIGRhdGVzPC9hPi5cbiAgICovXG4gIGVuYWJsZT86IERpc2FibGVFbmFibGVEYXRlW107XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGltZSBwaWNrZXIuXG4gICAqL1xuICBlbmFibGVUaW1lPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlcyBzZWNvbmRzIGluIHRoZSB0aW1lIHBpY2tlci5cbiAgICovXG4gIGVuYWJsZVNlY29uZHM/OiBib29sZWFuO1xuICAvKipcbiAgICogQWxsb3dzIHVzaW5nIGEgY3VzdG9tIGRhdGUgZm9ybWF0dGluZyBmdW5jdGlvbiBpbnN0ZWFkIG9mIHRoZSBidWlsdC1pbiBoYW5kbGluZyBmb3IgZGF0ZSBmb3JtYXRzIHVzaW5nIGRhdGVGb3JtYXQsIGFsdEZvcm1hdCwgZXRjLlxuICAgKi9cbiAgZm9ybWF0RGF0ZT86ICh2YWx1ZTogYW55KSA9PiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBZGp1c3RzIHRoZSBzdGVwIGZvciB0aGUgaG91ciBpbnB1dCAoaW5jbC4gc2Nyb2xsaW5nKS5cbiAgICovXG4gIGhvdXJJbmNyZW1lbnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIERpc3BsYXlzIHRoZSBjYWxlbmRhciBpbmxpbmUuXG4gICAqL1xuICBpbmxpbmU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBkYXRlIHRoYXQgYSB1c2VyIGNhbiBwaWNrIHRvIChpbmNsdXNpdmUpLlxuICAgKi9cbiAgbWF4RGF0ZT86IHN0cmluZyB8IERhdGU7XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIGRhdGUgdGhhdCBhIHVzZXIgY2FuIHN0YXJ0IHBpY2tpbmcgZnJvbSAoaW5jbHVzaXZlKS5cbiAgICovXG4gIG1pbkRhdGU/OiBzdHJpbmcgfCBEYXRlO1xuXG4gIC8qKlxuICAgKiBBZGp1c3RzIHRoZSBzdGVwIGZvciB0aGUgbWludXRlIGlucHV0IChpbmNsLiBzY3JvbGxpbmcpLlxuICAgKi9cbiAgbWludXRlSW5jcmVtZW50PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTZWxlY3QgYSBzaW5nbGUgZGF0ZSwgbXVsdGlwbGUgZGF0ZXMgb3IgYSBkYXRlIHJhbmdlLlxuICAgKi9cbiAgbW9kZT86ICdzaW5nbGUnIHwgJ211bHRpcGxlJyB8ICdyYW5nZSc7XG5cbiAgLyoqXG4gICAqIEhUTUwgZm9yIHRoZSBhcnJvdyBpY29uLCB1c2VkIHRvIHN3aXRjaCBtb250aHMuXG4gICAqL1xuICBuZXh0QXJyb3c/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEhpZGVzIHRoZSBkYXkgc2VsZWN0aW9uIGluIGNhbGVuZGFyLiBVc2UgaXQgYWxvbmcgd2l0aCBgZW5hYmxlVGltZWAgdG8gY3JlYXRlIGEgdGltZSBwaWNrZXIuXG4gICAqL1xuICBub0NhbGVuZGFyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUHJvdmlkZSBhIGRhdGUgZm9yICd0b2RheScsIHdoaWNoIHdpbGwgYmUgdXNlZCBpbnN0ZWFkIG9mIFwibmV3IERhdGUoKVwiXG4gICAqL1xuICBub3c/OiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0aGF0IGV4cGVjdHMgYSBkYXRlIHN0cmluZyBhbmQgbXVzdCByZXR1cm4gYSBEYXRlIG9iamVjdC5cbiAgICovXG4gIHBhcnNlRGF0ZT86IChzdHI6IHN0cmluZykgPT4gRGF0ZTtcblxuICAvKipcbiAgICogSFRNTCBmb3IgdGhlIGxlZnQgYXJyb3cgaWNvbi5cbiAgICovXG4gIHByZXZBcnJvdz86IHN0cmluZztcblxuICAvKipcbiAgICogU2hvdyB0aGUgbW9udGggdXNpbmcgdGhlIHNob3J0aGFuZCB2ZXJzaW9uIChpZSwgU2VwIGluc3RlYWQgb2YgU2VwdGVtYmVyKS5cbiAgICovXG4gIHNob3J0aGFuZEN1cnJlbnRNb250aD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFBvc2l0aW9uIHRoZSBjYWxlbmRhciBpbnNpZGUgdGhlIHdyYXBwZXIgYW5kIG5leHQgdG8gdGhlIGlucHV0IGVsZW1lbnQuIChMZWF2ZSBgZmFsc2VgIHVubGVzcyB5b3Uga25vdyB3aGF0IHlvdSdyZSBkb2luZykuXG4gICAqL1xuICBzdGF0aWM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5cyB0aW1lIHBpY2tlciBpbiAyNCBob3VyIG1vZGUgd2l0aG91dCBBTS9QTSBzZWxlY3Rpb24gd2hlbiBlbmFibGVkLlxuICAgKi9cbiAgdGltZTI0aHI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGVuIHRydWUsIGRhdGVzIHdpbGwgcGFyc2VkLCBmb3JtYXR0ZWQsIGFuZCBkaXNwbGF5ZWQgaW4gVVRDLlxuICAgKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgZGF0ZSBzdHJpbmdzIGNvbnRhaW4gdGhlIHRpbWV6b25lLCBidXQgbm90IG5lY2Vzc2FyeS5cbiAgICovXG4gIHV0Yz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgZGlzcGxheSBvZiB3ZWVrIG51bWJlcnMgaW4gY2FsZW5kYXIuXG4gICAqL1xuICB3ZWVrTnVtYmVycz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFlvdSBtYXkgb3ZlcnJpZGUgdGhlIGZ1bmN0aW9uIHRoYXQgZXh0cmFjdHMgdGhlIHdlZWsgbnVtYmVycyBmcm9tIGEgRGF0ZSBieSBzdXBwbHlpbmcgYSBnZXRXZWVrIGZ1bmN0aW9uLlxuICAgKiBJdCB0YWtlcyBpbiBhIGRhdGUgYXMgYSBwYXJhbWV0ZXIgYW5kIHNob3VsZCByZXR1cm4gYSBjb3JyZXNwb25kaW5nIHN0cmluZyB0aGF0IHlvdSB3YW50IHRvIGFwcGVhciBsZWZ0IG9mIGV2ZXJ5IHdlZWsuXG4gICAqL1xuICBnZXRXZWVrPzogKGRhdGU6IERhdGUpID0+IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIGVsZW1lbnRzIGFuZCBpbnB1dCBncm91cHMuXG4gICAqL1xuICB3cmFwPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQXJyYXkgb2YgcGx1Z2luIGluc3RhbmNlcyB0byB1c2UuXG4gICAqL1xuICBwbHVnaW5zPzogYW55W107XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NhbGUgb2JqZWN0IG9yIHN0cmluZyB0byB1c2UgZm9yIHRoZSBsb2NhbGUuXG4gICAqL1xuICBsb2NhbGU/OiBvYmplY3QgfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEF1dG8gY29udmVydCB0aGUgbmdNb2RlbCB2YWx1ZSBmcm9tIGEgc3RyaW5nIHRvIGEgZGF0ZSAvIGFycmF5IG9mIGRhdGVzIC8gZnJvbSAtIHRvIGRhdGUgb2JqZWN0IGRlcGVuZGluZyBvbiB0aGUgYG1vZGVgXG4gICAqL1xuICBjb252ZXJ0TW9kZWxWYWx1ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgbW9udGhzIHNob3duLlxuICAgKi9cbiAgc2hvd01vbnRocz86IG51bWJlcjtcblxuICAvKipcbiAgICogSG93IHRoZSBtb250aCBzaG91bGQgYmUgZGlzcGxheWVkIGluIHRoZSBoZWFkZXIgb2YgdGhlIGNhbGVuZGFyLlxuICAgKi9cbiAgbW9udGhTZWxlY3RvclR5cGU/OiAnc3RhdGljJyB8ICdkcm9wZG93bic7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGbGF0cGlja3JEZWZhdWx0cyBpbXBsZW1lbnRzIEZsYXRwaWNrckRlZmF1bHRzSW50ZXJmYWNlIHtcbiAgLyoqXG4gICAqIEV4YWN0bHkgdGhlIHNhbWUgYXMgZGF0ZSBmb3JtYXQsIGJ1dCBmb3IgdGhlIGFsdElucHV0IGZpZWxkLlxuICAgKi9cbiAgYWx0Rm9ybWF0OiBzdHJpbmcgPSAnRiBqLCBZJztcblxuICAvKipcbiAgICogXHRTaG93IHRoZSB1c2VyIGEgcmVhZGFibGUgZGF0ZSAoYXMgcGVyIGFsdEZvcm1hdCksIGJ1dCByZXR1cm4gc29tZXRoaW5nIHRvdGFsbHkgZGlmZmVyZW50IHRvIHRoZSBzZXJ2ZXIuXG4gICAqL1xuICBhbHRJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGlzIGNsYXNzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGlucHV0IGVsZW1lbnQgY3JlYXRlZCBieSB0aGUgYWx0SW5wdXQgb3B0aW9uLlxuICAgKiBOb3RlIHRoYXQgYGFsdElucHV0YCBhbHJlYWR5IGluaGVyaXRzIGNsYXNzZXMgZnJvbSB0aGUgb3JpZ2luYWwgaW5wdXQuXG4gICAqL1xuICBhbHRJbnB1dENsYXNzOiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogQWxsb3dzIHRoZSB1c2VyIHRvIGVudGVyIGEgZGF0ZSBkaXJlY3RseSBpbnB1dCB0aGUgaW5wdXQgZmllbGQuIEJ5IGRlZmF1bHQsIGRpcmVjdCBlbnRyeSBpcyBkaXNhYmxlZC5cbiAgICovXG4gIGFsbG93SW5wdXQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogSW5zdGVhZCBvZiBgYm9keWAsIGFwcGVuZHMgdGhlIGNhbGVuZGFyIHRvIHRoZSBzcGVjaWZpZWQgbm9kZSBpbnN0ZWFkLlxuICAgKi9cbiAgYXBwZW5kVG86IEhUTUxFbGVtZW50ID0gdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGhvdyB0aGUgZGF0ZSB3aWxsIGJlIGZvcm1hdHRlZCBpbiB0aGUgYXJpYS1sYWJlbCBmb3IgY2FsZW5kYXIgZGF5cywgdXNpbmcgdGhlIHNhbWUgdG9rZW5zIGFzIGRhdGVGb3JtYXQuIElmIHlvdSBjaGFuZ2UgdGhpcywgeW91IHNob3VsZCBjaG9vc2UgYSB2YWx1ZSB0aGF0IHdpbGwgbWFrZSBzZW5zZSBpZiBhIHNjcmVlbiByZWFkZXIgcmVhZHMgaXQgb3V0IGxvdWQuXG4gICAqL1xuICBhcmlhRGF0ZUZvcm1hdD86IHN0cmluZyA9ICdGIGosIFknO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGNsaWNraW5nIG9uIHRoZSBpbnB1dCBzaG91bGQgb3BlbiB0aGUgcGlja2VyLlxuICAgKiBZb3UgY291bGQgZGlzYWJsZSB0aGlzIGlmIHlvdSB3aXNoIHRvIG9wZW4gdGhlIGNhbGVuZGFyIG1hbnVhbGx5IGB3aXRoLm9wZW4oKWAuXG4gICAqL1xuICBjbGlja09wZW5zOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogQSBzdHJpbmcgb2YgY2hhcmFjdGVycyB3aGljaCBhcmUgdXNlZCB0byBkZWZpbmUgaG93IHRoZSBkYXRlIHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSBpbnB1dCBib3guXG4gICAqIFRoZSBzdXBwb3J0ZWQgY2hhcmFjdGVycyBhcmUgZGVmaW5lZCBpbiB0aGUgdGFibGUgYmVsb3cuXG4gICAqL1xuICBkYXRlRm9ybWF0OiBzdHJpbmcgPSAnWS1tLWQnO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIHZhbHVlIG9mIHRoZSBob3VyIGVsZW1lbnQuXG4gICAqL1xuICBkZWZhdWx0SG91cj86IG51bWJlciA9IDEyO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIHZhbHVlIG9mIHRoZSBtaW51dGUgZWxlbWVudC5cbiAgICovXG4gIGRlZmF1bHRNaW51dGU/OiBudW1iZXIgPSAwO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIHZhbHVlIG9mIHRoZSBzZWNvbmRzIGVsZW1lbnQuXG4gICAqL1xuICBkZWZhdWx0U2Vjb25kcz86IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqIFNlZSA8YSBocmVmPVwiaHR0cHM6Ly9jaG1sbi5naXRodWIuaW8vZmxhdHBpY2tyL2V4YW1wbGVzLyNkaXNhYmxpbmctc3BlY2lmaWMtZGF0ZXNcIj5kaXNhYmxpbmcgZGF0ZXM8L2E+LlxuICAgKi9cbiAgZGlzYWJsZTogRGlzYWJsZUVuYWJsZURhdGVbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBTZXQgZGlzYWJsZU1vYmlsZSB0byB0cnVlIHRvIGFsd2F5cyB1c2UgdGhlIG5vbi1uYXRpdmUgcGlja2VyLlxuICAgKiBCeSBkZWZhdWx0LCBGbGF0cGlja3IgdXRpbGl6ZXMgbmF0aXZlIGRhdGV0aW1lIHdpZGdldHMgdW5sZXNzIGNlcnRhaW4gb3B0aW9ucyAoZS5nLiBkaXNhYmxlKSBhcmUgdXNlZC5cbiAgICovXG4gIGRpc2FibGVNb2JpbGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogU2VlIDxhIGhyZWY9XCJodHRwczovL2NobWxuLmdpdGh1Yi5pby9mbGF0cGlja3IvZXhhbXBsZXMvI2Rpc2FibGluZy1hbGwtZGF0ZXMtZXhjZXB0LXNlbGVjdC1mZXdcIj5lbmFibGluZyBkYXRlczwvYT4uXG4gICAqL1xuICBlbmFibGU6IERpc2FibGVFbmFibGVEYXRlW107XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGltZSBwaWNrZXIuXG4gICAqL1xuICBlbmFibGVUaW1lOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgc2Vjb25kcyBpbiB0aGUgdGltZSBwaWNrZXIuXG4gICAqL1xuICBlbmFibGVTZWNvbmRzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEFsbG93cyB1c2luZyBhIGN1c3RvbSBkYXRlIGZvcm1hdHRpbmcgZnVuY3Rpb24gaW5zdGVhZCBvZiB0aGUgYnVpbHQtaW4gaGFuZGxpbmcgZm9yIGRhdGUgZm9ybWF0cyB1c2luZyBkYXRlRm9ybWF0LCBhbHRGb3JtYXQsIGV0Yy5cbiAgICovXG4gIGZvcm1hdERhdGU/OiAodmFsdWU6IGFueSkgPT4gc3RyaW5nID0gdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBBZGp1c3RzIHRoZSBzdGVwIGZvciB0aGUgaG91ciBpbnB1dCAoaW5jbC4gc2Nyb2xsaW5nKS5cbiAgICovXG4gIGhvdXJJbmNyZW1lbnQ6IG51bWJlciA9IDE7XG5cbiAgLyoqXG4gICAqIERpc3BsYXlzIHRoZSBjYWxlbmRhciBpbmxpbmUuXG4gICAqL1xuICBpbmxpbmU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gZGF0ZSB0aGF0IGEgdXNlciBjYW4gcGljayB0byAoaW5jbHVzaXZlKS5cbiAgICovXG4gIG1heERhdGU6IHN0cmluZyB8IERhdGUgPSB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIGRhdGUgdGhhdCBhIHVzZXIgY2FuIHN0YXJ0IHBpY2tpbmcgZnJvbSAoaW5jbHVzaXZlKS5cbiAgICovXG4gIG1pbkRhdGU6IHN0cmluZyB8IERhdGUgPSB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEFkanVzdHMgdGhlIHN0ZXAgZm9yIHRoZSBtaW51dGUgaW5wdXQgKGluY2wuIHNjcm9sbGluZykuXG4gICAqL1xuICBtaW51dGVJbmNyZW1lbnQ6IG51bWJlciA9IDU7XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBhIHNpbmdsZSBkYXRlLCBtdWx0aXBsZSBkYXRlcyBvciBhIGRhdGUgcmFuZ2UuXG4gICAqL1xuICBtb2RlOiAnc2luZ2xlJyB8ICdtdWx0aXBsZScgfCAncmFuZ2UnID0gJ3NpbmdsZSc7XG5cbiAgLyoqXG4gICAqIEhUTUwgZm9yIHRoZSBhcnJvdyBpY29uLCB1c2VkIHRvIHN3aXRjaCBtb250aHMuXG4gICAqL1xuICBuZXh0QXJyb3c6IHN0cmluZyA9ICc+JztcblxuICAvKipcbiAgICogSGlkZXMgdGhlIGRheSBzZWxlY3Rpb24gaW4gY2FsZW5kYXIuIFVzZSBpdCBhbG9uZyB3aXRoIGBlbmFibGVUaW1lYCB0byBjcmVhdGUgYSB0aW1lIHBpY2tlci5cbiAgICovXG4gIG5vQ2FsZW5kYXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogRGVmYXVsdCBub3cgdG8gdGhlIGN1cnJlbnQgZGF0ZVxuICAgKi9cbiAgbm93OiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyID0gbmV3IERhdGUoKTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gdGhhdCBleHBlY3RzIGEgZGF0ZSBzdHJpbmcgYW5kIG11c3QgcmV0dXJuIGEgRGF0ZSBvYmplY3QuXG4gICAqL1xuICBwYXJzZURhdGU6IChzdHI6IHN0cmluZykgPT4gRGF0ZTtcblxuICAvKipcbiAgICogSFRNTCBmb3IgdGhlIGxlZnQgYXJyb3cgaWNvbi5cbiAgICovXG4gIHByZXZBcnJvdzogc3RyaW5nID0gJzwnO1xuXG4gIC8qKlxuICAgKiBTaG93IHRoZSBtb250aCB1c2luZyB0aGUgc2hvcnRoYW5kIHZlcnNpb24gKGllLCBTZXAgaW5zdGVhZCBvZiBTZXB0ZW1iZXIpLlxuICAgKi9cbiAgc2hvcnRoYW5kQ3VycmVudE1vbnRoOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFBvc2l0aW9uIHRoZSBjYWxlbmRhciBpbnNpZGUgdGhlIHdyYXBwZXIgYW5kIG5leHQgdG8gdGhlIGlucHV0IGVsZW1lbnQuIChMZWF2ZSBgZmFsc2VgIHVubGVzcyB5b3Uga25vdyB3aGF0IHlvdSdyZSBkb2luZykuXG4gICAqL1xuICBzdGF0aWM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogRGlzcGxheXMgdGltZSBwaWNrZXIgaW4gMjQgaG91ciBtb2RlIHdpdGhvdXQgQU0vUE0gc2VsZWN0aW9uIHdoZW4gZW5hYmxlZC5cbiAgICovXG4gIHRpbWUyNGhyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSwgZGF0ZXMgd2lsbCBwYXJzZWQsIGZvcm1hdHRlZCwgYW5kIGRpc3BsYXllZCBpbiBVVEMuXG4gICAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCBkYXRlIHN0cmluZ3MgY29udGFpbiB0aGUgdGltZXpvbmUsIGJ1dCBub3QgbmVjZXNzYXJ5LlxuICAgKi9cbiAgdXRjOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgZGlzcGxheSBvZiB3ZWVrIG51bWJlcnMgaW4gY2FsZW5kYXIuXG4gICAqL1xuICB3ZWVrTnVtYmVyczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBZb3UgbWF5IG92ZXJyaWRlIHRoZSBmdW5jdGlvbiB0aGF0IGV4dHJhY3RzIHRoZSB3ZWVrIG51bWJlcnMgZnJvbSBhIERhdGUgYnkgc3VwcGx5aW5nIGEgZ2V0V2VlayBmdW5jdGlvbi5cbiAgICogSXQgdGFrZXMgaW4gYSBkYXRlIGFzIGEgcGFyYW1ldGVyIGFuZCBzaG91bGQgcmV0dXJuIGEgY29ycmVzcG9uZGluZyBzdHJpbmcgdGhhdCB5b3Ugd2FudCB0byBhcHBlYXIgbGVmdCBvZiBldmVyeSB3ZWVrLlxuICAgKi9cbiAgZ2V0V2VlazogKGRhdGU6IERhdGUpID0+IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIGVsZW1lbnRzIGFuZCBpbnB1dCBncm91cHMuXG4gICAqL1xuICB3cmFwOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEFycmF5IG9mIHBsdWdpbiBpbnN0YW5jZXMgdG8gdXNlLlxuICAgKi9cbiAgcGx1Z2luczogYW55W10gPSBbXTtcblxuICAvKipcbiAgICogVGhlIGxvY2FsZSBvYmplY3Qgb3Igc3RyaW5nIHRvIHVzZSBmb3IgdGhlIGxvY2FsZS5cbiAgICovXG4gIGxvY2FsZTogb2JqZWN0IHwgc3RyaW5nID0gJ2RlZmF1bHQnO1xuXG4gIC8qKlxuICAgKiBBdXRvIGNvbnZlcnQgdGhlIG5nTW9kZWwgdmFsdWUgZnJvbSBhIHN0cmluZyB0byBhIGRhdGUgLyBhcnJheSBvZiBkYXRlcyAvIGZyb20gLSB0byBkYXRlIG9iamVjdCBkZXBlbmRpbmcgb24gdGhlIGBtb2RlYFxuICAgKi9cbiAgY29udmVydE1vZGVsVmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBtb250aHMgc2hvd24uXG4gICAqL1xuICBzaG93TW9udGhzOiBudW1iZXIgPSAxO1xuXG4gIC8qKlxuICAgKiBIb3cgdGhlIG1vbnRoIHNob3VsZCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGhlYWRlciBvZiB0aGUgY2FsZW5kYXIuXG4gICAqL1xuICBtb250aFNlbGVjdG9yVHlwZTogJ3N0YXRpYycgfCAnZHJvcGRvd24nID0gJ3N0YXRpYyc7XG59XG4iXX0= |
@@ -190,2 +190,5 @@ /** | ||
| (options.altInputClass || '') + ' ' + this.elm.nativeElement.className; | ||
| if (!options.enable) { | ||
| delete options.enable; | ||
| } | ||
| this.instance = /** @type {?} */ (flatpickr(this.elm.nativeElement, options)); | ||
@@ -635,2 +638,2 @@ this.setDisabledState(this.isDisabled); | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdHBpY2tyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXJ4LWZsYXRwaWNrci8iLCJzb3VyY2VzIjpbImZsYXRwaWNrci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUVWLEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUlaLFVBQVUsRUFDVixZQUFZLEVBQ1osU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxpQkFBaUIsRUFHbEIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxTQUFTLE1BQU0sV0FBVyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFhbEMsTUFBTSxDQUFDLHVCQUFNLGdDQUFnQyxHQUFRO0lBQ25ELE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQzs7SUFDakQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBVUYsTUFBTTs7Ozs7O0lBOFJKLFlBQ1UsS0FDQSxVQUNBO1FBRkEsUUFBRyxHQUFILEdBQUc7UUFDSCxhQUFRLEdBQVIsUUFBUTtRQUNSLGFBQVEsR0FBUixRQUFROzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt1QkE1UTZCLEVBQUU7Ozs7OEJBNk1NLElBQUksWUFBWSxFQUFFOzs7OytCQU1qQixJQUFJLFlBQVksRUFBRTs7OztvQ0FRdEUsSUFBSSxZQUFZLEVBQUU7Ozs7NkJBTWdDLElBQUksWUFBWSxFQUFFOzs7OzhCQU1qQixJQUFJLFlBQVksRUFBRTs7OztvQ0FRckUsSUFBSSxZQUFZLEVBQUU7Ozs7bUNBUWxCLElBQUksWUFBWSxFQUFFOzs7O2tDQVFsQixJQUFJLFlBQVksRUFBRTswQkFHRCxLQUFLOzBCQUdTLEdBQUcsRUFBRSxJQUFHOzJCQUU3QixHQUFHLEVBQUUsSUFBRztLQU1sQjs7OztJQUVKLGVBQWU7UUFDYix1QkFBTSxPQUFPLEdBQVE7WUFDbkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbkMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2pDLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNuQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2pDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2pDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQzlCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNiLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIscUJBQXFCLEVBQUUsSUFBSSxDQUFDLHFCQUFxQjtZQUNqRCxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtZQUN6QyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixRQUFRLEVBQUUsQ0FBQyxhQUFxQixFQUFFLFVBQWtCLEVBQUUsUUFBYSxFQUFFLEVBQUU7Z0JBQ3JFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQ3BFO1lBQ0QsTUFBTSxFQUFFLENBQUMsYUFBcUIsRUFBRSxVQUFrQixFQUFFLFFBQWEsRUFBRSxFQUFFO2dCQUNuRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQzthQUNsRTtZQUNELE9BQU8sRUFBRSxDQUFDLGFBQXFCLEVBQUUsVUFBa0IsRUFBRSxRQUFhLEVBQUUsRUFBRTtnQkFDcEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7YUFDbkU7WUFDRCxhQUFhLEVBQUUsQ0FDYixhQUFxQixFQUNyQixVQUFrQixFQUNsQixRQUFhLEVBQ2IsRUFBRTtnQkFDRixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQ3pFO1lBQ0QsWUFBWSxFQUFFLENBQ1osYUFBcUIsRUFDckIsVUFBa0IsRUFDbEIsUUFBYSxFQUNiLEVBQUU7Z0JBQ0YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQzthQUN4RTtZQUNELE9BQU8sRUFBRSxDQUFDLGFBQXFCLEVBQUUsVUFBa0IsRUFBRSxRQUFhLEVBQUUsRUFBRTtnQkFDcEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7YUFDbkU7WUFDRCxhQUFhLEVBQUUsQ0FDYixhQUFxQixFQUNyQixVQUFrQixFQUNsQixRQUFhLEVBQ2IsRUFBRTtnQkFDRixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQ3pFO1lBQ0QsV0FBVyxFQUFFLENBQ1gsYUFBcUIsRUFDckIsVUFBa0IsRUFDbEIsUUFBYSxFQUNiLFVBQXVCLEVBQ3ZCLEVBQUU7Z0JBQ0YsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQztvQkFDM0IsYUFBYTtvQkFDYixVQUFVO29CQUNWLFFBQVE7b0JBQ1IsVUFBVTtpQkFDWCxDQUFDLENBQUM7YUFDSjtTQUNGLENBQUM7UUFFRixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqQyxFQUFFLENBQUMsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUN4QyxFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztvQkFDN0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLG1CQUFDLElBQUksQ0FBQyxPQUFjLEVBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDM0M7Z0JBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLG1CQUFDLElBQUksQ0FBQyxRQUFlLEVBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDNUM7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQzs7O1FBSXJDLE9BQU8sQ0FBQyxhQUFhO1lBQ25CLENBQUMsT0FBTyxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO1FBRXpFLElBQUksQ0FBQyxRQUFRLHFCQUFHLFNBQVMsQ0FDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQ3RCLE9BQU8sQ0FDYyxDQUFBLENBQUM7UUFDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUN4Qzs7Ozs7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDbEIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxtQkFBQyxRQUFlLEdBQUUsbUJBQUMsSUFBVyxFQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQzthQUM3RCxDQUFDLENBQUM7U0FDSjtLQUNGOzs7O0lBRUQsV0FBVztRQUNULEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDeEI7S0FDQzs7Ozs7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNuQixxQkFBSSxjQUFjLEdBQVEsS0FBSyxDQUFDO1FBQ2hDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzdELGNBQWMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDdkM7UUFBQyxJQUFJLENBQUMsQ0FBQzs7WUFFTixJQUFJLENBQUMsWUFBWSxHQUFHLGNBQWMsQ0FBQztTQUNwQztLQUNGOzs7OztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7S0FDdEI7Ozs7O0lBRUQsaUJBQWlCLENBQUMsRUFBYztRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztLQUN2Qjs7Ozs7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNsQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2FBQ3pFO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7YUFDakU7U0FDRjtLQUNGOzs7O0lBR0QsWUFBWTtRQUNWLHVCQUFNLEtBQUssR0FBVyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUFDbkQsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDeEQsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ2xCLEtBQUssVUFBVTtvQkFDYix1QkFBTSxLQUFLLEdBQVcsS0FBSzt5QkFDeEIsS0FBSyxDQUFDLElBQUksQ0FBQzt5QkFDWCxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FDVCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FDckIsR0FBRyxFQUNILElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFDL0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQ2pDLENBQ0YsQ0FBQztvQkFDSixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUN2QixLQUFLLENBQUM7Z0JBRVIsS0FBSyxPQUFPO29CQUNWLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSzt5QkFDckIsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQzt5QkFDeEMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQ3JCLEdBQUcsRUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQy9CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUNqQyxDQUNGLENBQUM7b0JBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUM5QixLQUFLLENBQUM7Z0JBRVIsS0FBSyxRQUFRLENBQUM7Z0JBQ2Q7b0JBQ0UsSUFBSSxDQUFDLFVBQVUsQ0FDYixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FDckIsS0FBSyxFQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFDL0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQ2pDLENBQ0YsQ0FBQzthQUNMO1NBQ0Y7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDeEI7S0FDRjs7O1lBdmZGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQixTQUFTLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQztnQkFDN0MsSUFBSSxFQUFFOztvQkFFSixRQUFRLEVBQUUsZUFBZTtpQkFDMUI7YUFDRjs7OztZQTVDQyxVQUFVO1lBYVYsaUJBQWlCO1lBSGpCLFNBQVM7OztzQkF3RFIsS0FBSzt3QkFLTCxLQUFLO3VCQUtMLEtBQUs7NEJBTUwsS0FBSzt5QkFLTCxLQUFLO3VCQUtMLEtBQUs7NkJBS0wsS0FBSzt5QkFNTCxLQUFLO3lCQU1MLEtBQUs7MEJBS0wsS0FBSzs0QkFJTCxLQUFLOzZCQUtMLEtBQUs7c0JBS0wsS0FBSzs0QkFNTCxLQUFLO3FCQUtMLEtBQUs7eUJBS0wsS0FBSzs0QkFLTCxLQUFLO3lCQUtMLEtBQUs7NEJBS0wsS0FBSztxQkFLTCxLQUFLO3NCQUtMLEtBQUs7c0JBS0wsS0FBSzs4QkFLTCxLQUFLO21CQUtMLEtBQUs7d0JBS0wsS0FBSzt5QkFLTCxLQUFLO2tCQUtMLEtBQUs7d0JBS0wsS0FBSzt3QkFLTCxLQUFLO29DQUtMLEtBQUs7eUJBS0wsS0FBSztxQkFLTCxLQUFLO3VCQUtMLEtBQUs7MEJBS0wsS0FBSztzQkFNTCxLQUFLO21CQUtMLEtBQUs7c0JBS0wsS0FBSztxQkFLTCxLQUFLO2dDQUtMLEtBQUs7Z0NBS0wsS0FBSzs2QkFLTCxNQUFNOzhCQU1OLE1BQU07bUNBTU4sTUFBTTs0QkFRTixNQUFNOzZCQU1OLE1BQU07bUNBTU4sTUFBTTtrQ0FRTixNQUFNO2lDQVFOLE1BQU07MkJBa0xOLFlBQVksU0FBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBBZnRlclZpZXdJbml0LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBmb3J3YXJkUmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIFJlbmRlcmVyMlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEZsYXRwaWNrckRlZmF1bHRzLFxuICBEaXNhYmxlRW5hYmxlRGF0ZSxcbiAgRmxhdHBpY2tyRGVmYXVsdHNJbnRlcmZhY2Vcbn0gZnJvbSAnLi9mbGF0cGlja3ItZGVmYXVsdHMuc2VydmljZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgZmxhdHBpY2tyIGZyb20gJ2ZsYXRwaWNrcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxhdFBpY2tyT3V0cHV0T3B0aW9ucyB7XG4gIHNlbGVjdGVkRGF0ZXM6IERhdGVbXTtcbiAgZGF0ZVN0cmluZzogc3RyaW5nO1xuICBpbnN0YW5jZTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsYXRQaWNrckRheUNyZWF0ZU91dHB1dE9wdGlvbnNcbiAgZXh0ZW5kcyBGbGF0UGlja3JPdXRwdXRPcHRpb25zIHtcbiAgZGF5RWxlbWVudDogSFRNTEVsZW1lbnQ7XG59XG5cbmV4cG9ydCBjb25zdCBGTEFUUElDS1JfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRmxhdHBpY2tyRGlyZWN0aXZlKSwgLy90c2xpbnQ6ZGlzYWJsZS1saW5lXG4gIG11bHRpOiB0cnVlXG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbXdsRmxhdHBpY2tyXScsXG4gIHByb3ZpZGVyczogW0ZMQVRQSUNLUl9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SXSxcbiAgaG9zdDoge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLWxpbmUgdXNlLWhvc3QtcHJvcGVydHktZGVjb3JhdG9yXG4gICAgJyhibHVyKSc6ICdvblRvdWNoZWRGbigpJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIEZsYXRwaWNrckRpcmVjdGl2ZVxuICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIC8qKlxuICAgKiBPYmplY3Qtb3B0aW9ucyB0aGF0IGNhbiBiZSB1c2VyIGZvciBtdWx0aXBsZSBpbnN0YW5jZXMgb2YgRmxhdHBpY2tyLlxuICAgKiBPcHRpb24gZnJvbSB0aGlzIG9iamVjdCBpcyBhcHBsaWVkIG9ubHkgaWYgc3BlY2lmaWMgb3B0aW9uIGlzIG5vdCBzcGVjaWZpZWQuXG4gICAqIEV4YW1wbGU6XG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogb3B0aW9uczogRmxhdHBpY2tyRGVmYXVsdHNJbnRlcmZhY2UgPSB7XG4gICAqICAgICAgYWx0Rm9ybWF0OiAnZC9tL1knLCAgIC8vIHdpbGwgYmUgaWdub3JlZCBzaW5jZSBhbHRGb3JtYXQgaXMgcHJvdmlkZWQgdmlhIHNwZWNpZmljIGF0dHJpYnV0ZVxuICAgKiAgICAgIGFsdElucHV0OiB0cnVlICAgICAgICAvLyB3aWxsIGJlIHVzZWQgc2luY2Ugc3BlY2lmaWMgYXR0cmlidXRlIGlzIG5vdCBwcm92aWRlZFxuICAgKiB9O1xuICAgKiBgYGBcbiAgICogYGBgaHRtbFxuICAgKiA8aW5wdXRcbiAgICogICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAqICAgdHlwZT1cInRleHRcIlxuICAgKiAgIG13bEZsYXRwaWNrclxuICAgKiAgIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxuICAgKiAgIGFsdEZvcm1hdD1cImQvbS9ZXCI+XG4gICAqIGBgYFxuICAgKi9cbiAgQElucHV0KCkgb3B0aW9uczogRmxhdHBpY2tyRGVmYXVsdHNJbnRlcmZhY2UgPSB7fTtcblxuICAvKipcbiAgICogRXhhY3RseSB0aGUgc2FtZSBhcyBkYXRlIGZvcm1hdCwgYnV0IGZvciB0aGUgYWx0SW5wdXQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBhbHRGb3JtYXQ6IHN0cmluZztcblxuICAvKipcbiAgICogXHRTaG93IHRoZSB1c2VyIGEgcmVhZGFibGUgZGF0ZSAoYXMgcGVyIGFsdEZvcm1hdCksIGJ1dCByZXR1cm4gc29tZXRoaW5nIHRvdGFsbHkgZGlmZmVyZW50IHRvIHRoZSBzZXJ2ZXIuXG4gICAqL1xuICBASW5wdXQoKSBhbHRJbnB1dDogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhpcyBjbGFzcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBpbnB1dCBlbGVtZW50IGNyZWF0ZWQgYnkgdGhlIGFsdElucHV0IG9wdGlvbi5cbiAgICogTm90ZSB0aGF0IGBhbHRJbnB1dGAgYWxyZWFkeSBpbmhlcml0cyBjbGFzc2VzIGZyb20gdGhlIG9yaWdpbmFsIGlucHV0LlxuICAgKi9cbiAgQElucHV0KCkgYWx0SW5wdXRDbGFzczogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbGxvd3MgdGhlIHVzZXIgdG8gZW50ZXIgYSBkYXRlIGRpcmVjdGx5IGlucHV0IHRoZSBpbnB1dCBmaWVsZC4gQnkgZGVmYXVsdCwgZGlyZWN0IGVudHJ5IGlzIGRpc2FibGVkLlxuICAgKi9cbiAgQElucHV0KCkgYWxsb3dJbnB1dDogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5zdGVhZCBvZiBgYm9keWAsIGFwcGVuZHMgdGhlIGNhbGVuZGFyIHRvIHRoZSBzcGVjaWZpZWQgbm9kZSBpbnN0ZWFkLlxuICAgKi9cbiAgQElucHV0KCkgYXBwZW5kVG86IEhUTUxFbGVtZW50O1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGhvdyB0aGUgZGF0ZSB3aWxsIGJlIGZvcm1hdHRlZCBpbiB0aGUgYXJpYS1sYWJlbCBmb3IgY2FsZW5kYXIgZGF5cywgdXNpbmcgdGhlIHNhbWUgdG9rZW5zIGFzIGRhdGVGb3JtYXQuIElmIHlvdSBjaGFuZ2UgdGhpcywgeW91IHNob3VsZCBjaG9vc2UgYSB2YWx1ZSB0aGF0IHdpbGwgbWFrZSBzZW5zZSBpZiBhIHNjcmVlbiByZWFkZXIgcmVhZHMgaXQgb3V0IGxvdWQuXG4gICAqL1xuICBASW5wdXQoKSBhcmlhRGF0ZUZvcm1hdD86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBjbGlja2luZyBvbiB0aGUgaW5wdXQgc2hvdWxkIG9wZW4gdGhlIHBpY2tlci5cbiAgICogWW91IGNvdWxkIGRpc2FibGUgdGhpcyBpZiB5b3Ugd2lzaCB0byBvcGVuIHRoZSBjYWxlbmRhciBtYW51YWxseSBgd2l0aC5vcGVuKClgLlxuICAgKi9cbiAgQElucHV0KCkgY2xpY2tPcGVuczogYm9vbGVhbjtcblxuICAvKipcbiAgICogQSBzdHJpbmcgb2YgY2hhcmFjdGVycyB3aGljaCBhcmUgdXNlZCB0byBkZWZpbmUgaG93IHRoZSBkYXRlIHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSBpbnB1dCBib3guXG4gICAqIFRoZSBzdXBwb3J0ZWQgY2hhcmFjdGVycyBhcmUgZGVmaW5lZCBpbiB0aGUgdGFibGUgYmVsb3cuXG4gICAqL1xuICBASW5wdXQoKSBkYXRlRm9ybWF0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgdmFsdWUgb2YgdGhlIGhvdXIgZWxlbWVudC5cbiAgICovXG4gIEBJbnB1dCgpIGRlZmF1bHRIb3VyPzogbnVtYmVyO1xuICAvKipcbiAgICogSW5pdGlhbCB2YWx1ZSBvZiB0aGUgbWludXRlIGVsZW1lbnQuXG4gICAqL1xuICBASW5wdXQoKSBkZWZhdWx0TWludXRlPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIHZhbHVlIG9mIHRoZSBzZWNvbmRzIGVsZW1lbnQuXG4gICAqL1xuICBASW5wdXQoKSBkZWZhdWx0U2Vjb25kcz86IG51bWJlcjtcblxuICAvKipcbiAgICogU2VlIDxhIGhyZWY9XCJodHRwczovL2NobWxuLmdpdGh1Yi5pby9mbGF0cGlja3IvZXhhbXBsZXMvI2Rpc2FibGluZy1zcGVjaWZpYy1kYXRlc1wiPmRpc2FibGluZyBkYXRlczwvYT4uXG4gICAqL1xuICBASW5wdXQoKSBkaXNhYmxlOiBEaXNhYmxlRW5hYmxlRGF0ZVtdO1xuXG4gIC8qKlxuICAgKiBTZXQgZGlzYWJsZU1vYmlsZSB0byB0cnVlIHRvIGFsd2F5cyB1c2UgdGhlIG5vbi1uYXRpdmUgcGlja2VyLlxuICAgKiBCeSBkZWZhdWx0LCBGbGF0cGlja3IgdXRpbGl6ZXMgbmF0aXZlIGRhdGV0aW1lIHdpZGdldHMgdW5sZXNzIGNlcnRhaW4gb3B0aW9ucyAoZS5nLiBkaXNhYmxlKSBhcmUgdXNlZC5cbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVNb2JpbGU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNlZSA8YSBocmVmPVwiaHR0cHM6Ly9jaG1sbi5naXRodWIuaW8vZmxhdHBpY2tyL2V4YW1wbGVzLyNkaXNhYmxpbmctYWxsLWRhdGVzLWV4Y2VwdC1zZWxlY3QtZmV3XCI+ZW5hYmxpbmcgZGF0ZXM8L2E+LlxuICAgKi9cbiAgQElucHV0KCkgZW5hYmxlOiBEaXNhYmxlRW5hYmxlRGF0ZVtdO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIHRpbWUgcGlja2VyLlxuICAgKi9cbiAgQElucHV0KCkgZW5hYmxlVGltZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlcyBzZWNvbmRzIGluIHRoZSB0aW1lIHBpY2tlci5cbiAgICovXG4gIEBJbnB1dCgpIGVuYWJsZVNlY29uZHM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFsbG93cyB1c2luZyBhIGN1c3RvbSBkYXRlIGZvcm1hdHRpbmcgZnVuY3Rpb24gaW5zdGVhZCBvZiB0aGUgYnVpbHQtaW4gaGFuZGxpbmcgZm9yIGRhdGUgZm9ybWF0cyB1c2luZyBkYXRlRm9ybWF0LCBhbHRGb3JtYXQsIGV0Yy5cbiAgICovXG4gIEBJbnB1dCgpIGZvcm1hdERhdGU/OiAodmFsdWU6IGFueSkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGp1c3RzIHRoZSBzdGVwIGZvciB0aGUgaG91ciBpbnB1dCAoaW5jbC4gc2Nyb2xsaW5nKS5cbiAgICovXG4gIEBJbnB1dCgpIGhvdXJJbmNyZW1lbnQ6IG51bWJlcjtcblxuICAvKipcbiAgICogRGlzcGxheXMgdGhlIGNhbGVuZGFyIGlubGluZS5cbiAgICovXG4gIEBJbnB1dCgpIGlubGluZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gZGF0ZSB0aGF0IGEgdXNlciBjYW4gcGljayB0byAoaW5jbHVzaXZlKS5cbiAgICovXG4gIEBJbnB1dCgpIG1heERhdGU6IHN0cmluZyB8IERhdGU7XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIGRhdGUgdGhhdCBhIHVzZXIgY2FuIHN0YXJ0IHBpY2tpbmcgZnJvbSAoaW5jbHVzaXZlKS5cbiAgICovXG4gIEBJbnB1dCgpIG1pbkRhdGU6IHN0cmluZyB8IERhdGU7XG5cbiAgLyoqXG4gICAqIEFkanVzdHMgdGhlIHN0ZXAgZm9yIHRoZSBtaW51dGUgaW5wdXQgKGluY2wuIHNjcm9sbGluZykuXG4gICAqL1xuICBASW5wdXQoKSBtaW51dGVJbmNyZW1lbnQ6IG51bWJlcjtcblxuICAvKipcbiAgICogU2VsZWN0IGEgc2luZ2xlIGRhdGUsIG11bHRpcGxlIGRhdGVzIG9yIGEgZGF0ZSByYW5nZS5cbiAgICovXG4gIEBJbnB1dCgpIG1vZGU6ICdzaW5nbGUnIHwgJ211bHRpcGxlJyB8ICdyYW5nZSc7XG5cbiAgLyoqXG4gICAqIEhUTUwgZm9yIHRoZSBhcnJvdyBpY29uLCB1c2VkIHRvIHN3aXRjaCBtb250aHMuXG4gICAqL1xuICBASW5wdXQoKSBuZXh0QXJyb3c6IHN0cmluZztcblxuICAvKipcbiAgICogSGlkZXMgdGhlIGRheSBzZWxlY3Rpb24gaW4gY2FsZW5kYXIuIFVzZSBpdCBhbG9uZyB3aXRoIGBlbmFibGVUaW1lYCB0byBjcmVhdGUgYSB0aW1lIHBpY2tlci5cbiAgICovXG4gIEBJbnB1dCgpIG5vQ2FsZW5kYXI6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFByb3ZpZGUgYSBkYXRlIGZvciAndG9kYXknLCB3aGljaCB3aWxsIGJlIHVzZWQgaW5zdGVhZCBvZiBcIm5ldyBEYXRlKClcIlxuICAgKi9cbiAgQElucHV0KCkgbm93PzogRGF0ZSB8IHN0cmluZyB8IG51bWJlcjtcblxuICAvKipcbiAgICogRnVuY3Rpb24gdGhhdCBleHBlY3RzIGEgZGF0ZSBzdHJpbmcgYW5kIG11c3QgcmV0dXJuIGEgRGF0ZSBvYmplY3QuXG4gICAqL1xuICBASW5wdXQoKSBwYXJzZURhdGU6IChzdHI6IHN0cmluZykgPT4gRGF0ZTtcblxuICAvKipcbiAgICogSFRNTCBmb3IgdGhlIGxlZnQgYXJyb3cgaWNvbi5cbiAgICovXG4gIEBJbnB1dCgpIHByZXZBcnJvdzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaG93IHRoZSBtb250aCB1c2luZyB0aGUgc2hvcnRoYW5kIHZlcnNpb24gKGllLCBTZXAgaW5zdGVhZCBvZiBTZXB0ZW1iZXIpLlxuICAgKi9cbiAgQElucHV0KCkgc2hvcnRoYW5kQ3VycmVudE1vbnRoOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIG1vbnRocyBzaG93bi5cbiAgICovXG4gIEBJbnB1dCgpIHNob3dNb250aHM6IG51bWJlcjtcblxuICAvKipcbiAgICogUG9zaXRpb24gdGhlIGNhbGVuZGFyIGluc2lkZSB0aGUgd3JhcHBlciBhbmQgbmV4dCB0byB0aGUgaW5wdXQgZWxlbWVudC4gKExlYXZlIGBmYWxzZWAgdW5sZXNzIHlvdSBrbm93IHdoYXQgeW91J3JlIGRvaW5nKS5cbiAgICovXG4gIEBJbnB1dCgpIHN0YXRpYzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGlzcGxheXMgdGltZSBwaWNrZXIgaW4gMjQgaG91ciBtb2RlIHdpdGhvdXQgQU0vUE0gc2VsZWN0aW9uIHdoZW4gZW5hYmxlZC5cbiAgICovXG4gIEBJbnB1dCgpIHRpbWUyNGhyOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIGRpc3BsYXkgb2Ygd2VlayBudW1iZXJzIGluIGNhbGVuZGFyLlxuICAgKi9cbiAgQElucHV0KCkgd2Vla051bWJlcnM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFlvdSBtYXkgb3ZlcnJpZGUgdGhlIGZ1bmN0aW9uIHRoYXQgZXh0cmFjdHMgdGhlIHdlZWsgbnVtYmVycyBmcm9tIGEgRGF0ZSBieSBzdXBwbHlpbmcgYSBnZXRXZWVrIGZ1bmN0aW9uLlxuICAgKiBJdCB0YWtlcyBpbiBhIGRhdGUgYXMgYSBwYXJhbWV0ZXIgYW5kIHNob3VsZCByZXR1cm4gYSBjb3JyZXNwb25kaW5nIHN0cmluZyB0aGF0IHlvdSB3YW50IHRvIGFwcGVhciBsZWZ0IG9mIGV2ZXJ5IHdlZWsuXG4gICAqL1xuICBASW5wdXQoKSBnZXRXZWVrOiAoZGF0ZTogRGF0ZSkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gZWxlbWVudHMgYW5kIGlucHV0IGdyb3Vwcy5cbiAgICovXG4gIEBJbnB1dCgpIHdyYXA6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFycmF5IG9mIHBsdWdpbiBpbnN0YW5jZXMgdG8gdXNlLlxuICAgKi9cbiAgQElucHV0KCkgcGx1Z2luczogYW55W107XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NhbGUgb2JqZWN0IG9yIHN0cmluZyB0byB1c2UgZm9yIHRoZSBsb2NhbGUuXG4gICAqL1xuICBASW5wdXQoKSBsb2NhbGU6IG9iamVjdCB8IHN0cmluZztcblxuICAvKipcbiAgICogQXV0byBjb252ZXJ0IHRoZSBuZ01vZGVsIHZhbHVlIGZyb20gYSBzdHJpbmcgdG8gYSBkYXRlIC8gYXJyYXkgb2YgZGF0ZXMgLyBmcm9tIC0gdG8gZGF0ZSBvYmplY3QgZGVwZW5kaW5nIG9uIHRoZSBgbW9kZWBcbiAgICovXG4gIEBJbnB1dCgpIGNvbnZlcnRNb2RlbFZhbHVlOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBIb3cgdGhlIG1vbnRoIHNob3VsZCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGhlYWRlciBvZiB0aGUgY2FsZW5kYXIuXG4gICAqL1xuICBASW5wdXQoKSBtb250aFNlbGVjdG9yVHlwZTogJ3N0YXRpYycgfCAnZHJvcGRvd24nO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRyaWdnZXJlZCBvbmNlIHRoZSBjYWxlbmRhciBpcyBpbiBhIHJlYWR5IHN0YXRlXG4gICAqL1xuICBAT3V0cHV0KClcbiAgZmxhdHBpY2tyUmVhZHk6IEV2ZW50RW1pdHRlcjxGbGF0UGlja3JPdXRwdXRPcHRpb25zPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogR2V0cyB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBzZWxlY3RzIGEgZGF0ZSwgb3IgY2hhbmdlcyB0aGUgdGltZSBvbiBhIHNlbGVjdGVkIGRhdGUuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgZmxhdHBpY2tyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RmxhdFBpY2tyT3V0cHV0T3B0aW9ucz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEdldHMgdHJpZ2dlcmVkIHdoZW4gdGhlIGlucHV0IHZhbHVlIGlzIHVwZGF0ZWQgd2l0aCBhIG5ldyBkYXRlIHN0cmluZy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBmbGF0cGlja3JWYWx1ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPFxuICAgIEZsYXRQaWNrck91dHB1dE9wdGlvbnNcbiAgPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogR2V0cyB0cmlnZ2VyZWQgd2hlbiB0aGUgY2FsZW5kYXIgaXMgb3BlbmVkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGZsYXRwaWNrck9wZW46IEV2ZW50RW1pdHRlcjxGbGF0UGlja3JPdXRwdXRPcHRpb25zPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogR2V0cyB0cmlnZ2VyZWQgd2hlbiB0aGUgY2FsZW5kYXIgaXMgY2xvc2VkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGZsYXRwaWNrckNsb3NlOiBFdmVudEVtaXR0ZXI8RmxhdFBpY2tyT3V0cHV0T3B0aW9ucz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEdldHMgdHJpZ2dlcmVkIHdoZW4gdGhlIG1vbnRoIGlzIGNoYW5nZWQsIGVpdGhlciBieSB0aGUgdXNlciBvciBwcm9ncmFtbWF0aWNhbGx5LlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGZsYXRwaWNrck1vbnRoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8XG4gICAgRmxhdFBpY2tyT3V0cHV0T3B0aW9uc1xuICA+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRyaWdnZXJlZCB3aGVuIHRoZSB5ZWFyIGlzIGNoYW5nZWQsIGVpdGhlciBieSB0aGUgdXNlciBvciBwcm9ncmFtbWF0aWNhbGx5LlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGZsYXRwaWNrclllYXJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxcbiAgICBGbGF0UGlja3JPdXRwdXRPcHRpb25zXG4gID4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIFRha2UgZnVsbCBjb250cm9sIG9mIGV2ZXJ5IGRhdGUgY2VsbCB3aXRoIHRoaXMgb3V0cHV0XG4gICAqL1xuICBAT3V0cHV0KClcbiAgZmxhdHBpY2tyRGF5Q3JlYXRlOiBFdmVudEVtaXR0ZXI8XG4gICAgRmxhdFBpY2tyRGF5Q3JlYXRlT3V0cHV0T3B0aW9uc1xuICA+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByaXZhdGUgaW5zdGFuY2U6IGZsYXRwaWNrci5JbnN0YW5jZTtcbiAgcHJpdmF0ZSBpc0Rpc2FibGVkID0gZmFsc2U7XG4gIHByaXZhdGUgaW5pdGlhbFZhbHVlOiBhbnk7XG5cbiAgb25DaGFuZ2VGbjogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7fTsgLy8gdHNsaW50OmRpc2FibGUtbGluZVxuXG4gIG9uVG91Y2hlZEZuID0gKCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbG06IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBkZWZhdWx0czogRmxhdHBpY2tyRGVmYXVsdHMsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3Qgb3B0aW9uczogYW55ID0ge1xuICAgICAgYWx0Rm9ybWF0OiB0aGlzLmFsdEZvcm1hdCxcbiAgICAgIGFsdElucHV0OiB0aGlzLmFsdElucHV0LFxuICAgICAgYWx0SW5wdXRDbGFzczogdGhpcy5hbHRJbnB1dENsYXNzLFxuICAgICAgYWxsb3dJbnB1dDogdGhpcy5hbGxvd0lucHV0LFxuICAgICAgYXBwZW5kVG86IHRoaXMuYXBwZW5kVG8sXG4gICAgICBhcmlhRGF0ZUZvcm1hdDogdGhpcy5hcmlhRGF0ZUZvcm1hdCxcbiAgICAgIGNsaWNrT3BlbnM6IHRoaXMuY2xpY2tPcGVucyxcbiAgICAgIGRhdGVGb3JtYXQ6IHRoaXMuZGF0ZUZvcm1hdCxcbiAgICAgIGRlZmF1bHRIb3VyOiB0aGlzLmRlZmF1bHRIb3VyLFxuICAgICAgZGVmYXVsdE1pbnV0ZTogdGhpcy5kZWZhdWx0TWludXRlLFxuICAgICAgZGVmYXVsdFNlY29uZHM6IHRoaXMuZGVmYXVsdFNlY29uZHMsXG4gICAgICBkaXNhYmxlOiB0aGlzLmRpc2FibGUsXG4gICAgICBkaXNhYmxlTW9iaWxlOiB0aGlzLmRpc2FibGVNb2JpbGUsXG4gICAgICBlbmFibGU6IHRoaXMuZW5hYmxlLFxuICAgICAgZW5hYmxlVGltZTogdGhpcy5lbmFibGVUaW1lLFxuICAgICAgZW5hYmxlU2Vjb25kczogdGhpcy5lbmFibGVTZWNvbmRzLFxuICAgICAgZm9ybWF0RGF0ZTogdGhpcy5mb3JtYXREYXRlLFxuICAgICAgaG91ckluY3JlbWVudDogdGhpcy5ob3VySW5jcmVtZW50LFxuICAgICAgZGVmYXVsdERhdGU6IHRoaXMuaW5pdGlhbFZhbHVlLFxuICAgICAgaW5saW5lOiB0aGlzLmlubGluZSxcbiAgICAgIG1heERhdGU6IHRoaXMubWF4RGF0ZSxcbiAgICAgIG1pbkRhdGU6IHRoaXMubWluRGF0ZSxcbiAgICAgIG1pbnV0ZUluY3JlbWVudDogdGhpcy5taW51dGVJbmNyZW1lbnQsXG4gICAgICBtb2RlOiB0aGlzLm1vZGUsXG4gICAgICBuZXh0QXJyb3c6IHRoaXMubmV4dEFycm93LFxuICAgICAgbm9DYWxlbmRhcjogdGhpcy5ub0NhbGVuZGFyLFxuICAgICAgbm93OiB0aGlzLm5vdyxcbiAgICAgIHBhcnNlRGF0ZTogdGhpcy5wYXJzZURhdGUsXG4gICAgICBwcmV2QXJyb3c6IHRoaXMucHJldkFycm93LFxuICAgICAgc2hvcnRoYW5kQ3VycmVudE1vbnRoOiB0aGlzLnNob3J0aGFuZEN1cnJlbnRNb250aCxcbiAgICAgIHNob3dNb250aHM6IHRoaXMuc2hvd01vbnRocyxcbiAgICAgIG1vbnRoU2VsZWN0b3JUeXBlOiB0aGlzLm1vbnRoU2VsZWN0b3JUeXBlLFxuICAgICAgc3RhdGljOiB0aGlzLnN0YXRpYyxcbiAgICAgIHRpbWUyNGhyOiB0aGlzLnRpbWUyNGhyLFxuICAgICAgd2Vla051bWJlcnM6IHRoaXMud2Vla051bWJlcnMsXG4gICAgICBnZXRXZWVrOiB0aGlzLmdldFdlZWssXG4gICAgICB3cmFwOiB0aGlzLndyYXAsXG4gICAgICBwbHVnaW5zOiB0aGlzLnBsdWdpbnMsXG4gICAgICBsb2NhbGU6IHRoaXMubG9jYWxlLFxuICAgICAgb25DaGFuZ2U6IChzZWxlY3RlZERhdGVzOiBEYXRlW10sIGRhdGVTdHJpbmc6IHN0cmluZywgaW5zdGFuY2U6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmZsYXRwaWNrckNoYW5nZS5lbWl0KHsgc2VsZWN0ZWREYXRlcywgZGF0ZVN0cmluZywgaW5zdGFuY2UgfSk7XG4gICAgICB9LFxuICAgICAgb25PcGVuOiAoc2VsZWN0ZWREYXRlczogRGF0ZVtdLCBkYXRlU3RyaW5nOiBzdHJpbmcsIGluc3RhbmNlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5mbGF0cGlja3JPcGVuLmVtaXQoeyBzZWxlY3RlZERhdGVzLCBkYXRlU3RyaW5nLCBpbnN0YW5jZSB9KTtcbiAgICAgIH0sXG4gICAgICBvbkNsb3NlOiAoc2VsZWN0ZWREYXRlczogRGF0ZVtdLCBkYXRlU3RyaW5nOiBzdHJpbmcsIGluc3RhbmNlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5mbGF0cGlja3JDbG9zZS5lbWl0KHsgc2VsZWN0ZWREYXRlcywgZGF0ZVN0cmluZywgaW5zdGFuY2UgfSk7XG4gICAgICB9LFxuICAgICAgb25Nb250aENoYW5nZTogKFxuICAgICAgICBzZWxlY3RlZERhdGVzOiBEYXRlW10sXG4gICAgICAgIGRhdGVTdHJpbmc6IHN0cmluZyxcbiAgICAgICAgaW5zdGFuY2U6IGFueVxuICAgICAgKSA9PiB7XG4gICAgICAgIHRoaXMuZmxhdHBpY2tyTW9udGhDaGFuZ2UuZW1pdCh7IHNlbGVjdGVkRGF0ZXMsIGRhdGVTdHJpbmcsIGluc3RhbmNlIH0pO1xuICAgICAgfSxcbiAgICAgIG9uWWVhckNoYW5nZTogKFxuICAgICAgICBzZWxlY3RlZERhdGVzOiBEYXRlW10sXG4gICAgICAgIGRhdGVTdHJpbmc6IHN0cmluZyxcbiAgICAgICAgaW5zdGFuY2U6IGFueVxuICAgICAgKSA9PiB7XG4gICAgICAgIHRoaXMuZmxhdHBpY2tyWWVhckNoYW5nZS5lbWl0KHsgc2VsZWN0ZWREYXRlcywgZGF0ZVN0cmluZywgaW5zdGFuY2UgfSk7XG4gICAgICB9LFxuICAgICAgb25SZWFkeTogKHNlbGVjdGVkRGF0ZXM6IERhdGVbXSwgZGF0ZVN0cmluZzogc3RyaW5nLCBpbnN0YW5jZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuZmxhdHBpY2tyUmVhZHkuZW1pdCh7IHNlbGVjdGVkRGF0ZXMsIGRhdGVTdHJpbmcsIGluc3RhbmNlIH0pO1xuICAgICAgfSxcbiAgICAgIG9uVmFsdWVVcGRhdGU6IChcbiAgICAgICAgc2VsZWN0ZWREYXRlczogRGF0ZVtdLFxuICAgICAgICBkYXRlU3RyaW5nOiBzdHJpbmcsXG4gICAgICAgIGluc3RhbmNlOiBhbnlcbiAgICAgICkgPT4ge1xuICAgICAgICB0aGlzLmZsYXRwaWNrclZhbHVlVXBkYXRlLmVtaXQoeyBzZWxlY3RlZERhdGVzLCBkYXRlU3RyaW5nLCBpbnN0YW5jZSB9KTtcbiAgICAgIH0sXG4gICAgICBvbkRheUNyZWF0ZTogKFxuICAgICAgICBzZWxlY3RlZERhdGVzOiBEYXRlW10sXG4gICAgICAgIGRhdGVTdHJpbmc6IHN0cmluZyxcbiAgICAgICAgaW5zdGFuY2U6IGFueSxcbiAgICAgICAgZGF5RWxlbWVudDogSFRNTEVsZW1lbnRcbiAgICAgICkgPT4ge1xuICAgICAgICB0aGlzLmZsYXRwaWNrckRheUNyZWF0ZS5lbWl0KHtcbiAgICAgICAgICBzZWxlY3RlZERhdGVzLFxuICAgICAgICAgIGRhdGVTdHJpbmcsXG4gICAgICAgICAgaW5zdGFuY2UsXG4gICAgICAgICAgZGF5RWxlbWVudFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgT2JqZWN0LmtleXMob3B0aW9ucykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zW2tleV0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcHRpb25zW2tleV0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgb3B0aW9uc1trZXldID0gKHRoaXMub3B0aW9ucyBhcyBhbnkpW2tleV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3B0aW9uc1trZXldID0gKHRoaXMuZGVmYXVsdHMgYXMgYW55KVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgb3B0aW9ucy50aW1lXzI0aHIgPSBvcHRpb25zLnRpbWUyNGhyO1xuXG4gICAgLy8gd29ya2Fyb3VuZCBidWcgaW4gZmxhdHBpY2tyIDQuNiB3aGVyZSBpdCBkb2Vzbid0IGNvcHkgdGhlIGNsYXNzZXMgYWNyb3NzXG4gICAgLy8gVE9ETyAtIHJlbW92ZSBvbmNlIGZpeCBpbiBodHRwczovL2dpdGh1Yi5jb20vZmxhdHBpY2tyL2ZsYXRwaWNrci9pc3N1ZXMvMTg2MCBpcyByZWxlYXNlZFxuICAgIG9wdGlvbnMuYWx0SW5wdXRDbGFzcyA9XG4gICAgICAob3B0aW9ucy5hbHRJbnB1dENsYXNzIHx8ICcnKSArICcgJyArIHRoaXMuZWxtLm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lO1xuXG4gICAgdGhpcy5pbnN0YW5jZSA9IGZsYXRwaWNrcihcbiAgICAgIHRoaXMuZWxtLm5hdGl2ZUVsZW1lbnQsXG4gICAgICBvcHRpb25zXG4gICAgKSBhcyBmbGF0cGlja3IuSW5zdGFuY2U7XG4gICAgdGhpcy5zZXREaXNhYmxlZFN0YXRlKHRoaXMuaXNEaXNhYmxlZCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgIE9iamVjdC5rZXlzKGNoYW5nZXMpLmZvckVhY2goaW5wdXRLZXkgPT4ge1xuICAgICAgICB0aGlzLmluc3RhbmNlLnNldChpbnB1dEtleSBhcyBhbnksICh0aGlzIGFzIGFueSlbaW5wdXRLZXldKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XG5cdFx0dGhpcy5pbnN0YW5jZS5kZXN0cm95KCk7XG5cdH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGxldCBjb252ZXJ0ZWRWYWx1ZTogYW55ID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuY29udmVydE1vZGVsVmFsdWUgJiYgdGhpcy5tb2RlID09PSAncmFuZ2UnICYmIHZhbHVlKSB7XG4gICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFt2YWx1ZS5mcm9tLCB2YWx1ZS50b107XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgIHRoaXMuaW5zdGFuY2Uuc2V0RGF0ZShjb252ZXJ0ZWRWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGZsYXRwaWNrciBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCB5ZXQsIHN0b3JlIHRoZSB2YWx1ZSBmb3IgbGF0ZXIgdXNlXG4gICAgICB0aGlzLmluaXRpYWxWYWx1ZSA9IGNvbnZlcnRlZFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2VGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZEZuID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XG4gICAgICBpZiAodGhpcy5pc0Rpc2FibGVkKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5pbnN0YW5jZS5faW5wdXQsICdkaXNhYmxlZCcsICdkaXNhYmxlZCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5pbnN0YW5jZS5faW5wdXQsICdkaXNhYmxlZCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2lucHV0JylcbiAgaW5wdXRDaGFuZ2VkKCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlOiBzdHJpbmcgPSB0aGlzLmVsbS5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgIGlmICh0aGlzLmNvbnZlcnRNb2RlbFZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHN3aXRjaCAodGhpcy5tb2RlKSB7XG4gICAgICAgIGNhc2UgJ211bHRpcGxlJzpcbiAgICAgICAgICBjb25zdCBkYXRlczogRGF0ZVtdID0gdmFsdWVcbiAgICAgICAgICAgIC5zcGxpdCgnOyAnKVxuICAgICAgICAgICAgLm1hcChzdHIgPT5cbiAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5wYXJzZURhdGUoXG4gICAgICAgICAgICAgICAgc3RyLFxuICAgICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UuY29uZmlnLmRhdGVGb3JtYXQsXG4gICAgICAgICAgICAgICAgIXRoaXMuaW5zdGFuY2UuY29uZmlnLmVuYWJsZVRpbWVcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlRm4oZGF0ZXMpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3JhbmdlJzpcbiAgICAgICAgICBjb25zdCBbZnJvbSwgdG9dID0gdmFsdWVcbiAgICAgICAgICAgIC5zcGxpdCh0aGlzLmluc3RhbmNlLmwxMG4ucmFuZ2VTZXBhcmF0b3IpXG4gICAgICAgICAgICAubWFwKHN0ciA9PlxuICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlLnBhcnNlRGF0ZShcbiAgICAgICAgICAgICAgICBzdHIsXG4gICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5jb25maWcuZGF0ZUZvcm1hdCxcbiAgICAgICAgICAgICAgICAhdGhpcy5pbnN0YW5jZS5jb25maWcuZW5hYmxlVGltZVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMub25DaGFuZ2VGbih7IGZyb20sIHRvIH0pO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3NpbmdsZSc6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhpcy5vbkNoYW5nZUZuKFxuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5wYXJzZURhdGUoXG4gICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlLmNvbmZpZy5kYXRlRm9ybWF0LFxuICAgICAgICAgICAgICAhdGhpcy5pbnN0YW5jZS5jb25maWcuZW5hYmxlVGltZVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub25DaGFuZ2VGbih2YWx1ZSk7XG4gICAgfVxuICB9XG59XG4iXX0= | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdHBpY2tyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXJ4LWZsYXRwaWNrci8iLCJzb3VyY2VzIjpbImZsYXRwaWNrci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUVWLEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUlaLFVBQVUsRUFDVixZQUFZLEVBQ1osU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxpQkFBaUIsRUFHbEIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxTQUFTLE1BQU0sV0FBVyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFhbEMsTUFBTSxDQUFDLHVCQUFNLGdDQUFnQyxHQUFRO0lBQ25ELE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQzs7SUFDakQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBVUYsTUFBTTs7Ozs7O0lBOFJKLFlBQ1UsS0FDQSxVQUNBO1FBRkEsUUFBRyxHQUFILEdBQUc7UUFDSCxhQUFRLEdBQVIsUUFBUTtRQUNSLGFBQVEsR0FBUixRQUFROzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt1QkE1UTZCLEVBQUU7Ozs7OEJBNk1NLElBQUksWUFBWSxFQUFFOzs7OytCQU1qQixJQUFJLFlBQVksRUFBRTs7OztvQ0FRdEUsSUFBSSxZQUFZLEVBQUU7Ozs7NkJBTWdDLElBQUksWUFBWSxFQUFFOzs7OzhCQU1qQixJQUFJLFlBQVksRUFBRTs7OztvQ0FRckUsSUFBSSxZQUFZLEVBQUU7Ozs7bUNBUWxCLElBQUksWUFBWSxFQUFFOzs7O2tDQVFsQixJQUFJLFlBQVksRUFBRTswQkFHRCxLQUFLOzBCQUdTLEdBQUcsRUFBRSxJ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LEtBQUs7bUJBS0wsS0FBSztzQkFLTCxLQUFLO3FCQUtMLEtBQUs7Z0NBS0wsS0FBSztnQ0FLTCxLQUFLOzZCQUtMLE1BQU07OEJBTU4sTUFBTTttQ0FNTixNQUFNOzRCQVFOLE1BQU07NkJBTU4sTUFBTTttQ0FNTixNQUFNO2tDQVFOLE1BQU07aUNBUU4sTUFBTTsyQkFzTE4sWUFBWSxTQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEFmdGVyVmlld0luaXQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRmxhdHBpY2tyRGVmYXVsdHMsXG4gIERpc2FibGVFbmFibGVEYXRlLFxuICBGbGF0cGlja3JEZWZhdWx0c0ludGVyZmFjZVxufSBmcm9tICcuL2ZsYXRwaWNrci1kZWZhdWx0cy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCBmbGF0cGlja3IgZnJvbSAnZmxhdHBpY2tyJztcblxuZXhwb3J0IGludGVyZmFjZSBGbGF0UGlja3JPdXRwdXRPcHRpb25zIHtcbiAgc2VsZWN0ZWREYXRlczogRGF0ZVtdO1xuICBkYXRlU3RyaW5nOiBzdHJpbmc7XG4gIGluc3RhbmNlOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxhdFBpY2tyRGF5Q3JlYXRlT3V0cHV0T3B0aW9uc1xuICBleHRlbmRzIEZsYXRQaWNrck91dHB1dE9wdGlvbnMge1xuICBkYXlFbGVtZW50OiBIVE1MRWxlbWVudDtcbn1cblxuZXhwb3J0IGNvbnN0IEZMQVRQSUNLUl9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGbGF0cGlja3JEaXJlY3RpdmUpLCAvL3RzbGludDpkaXNhYmxlLWxpbmVcbiAgbXVsdGk6IHRydWVcbn07XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1ttd2xGbGF0cGlja3JdJyxcbiAgcHJvdmlkZXJzOiBbRkxBVFBJQ0tSX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JdLFxuICBob3N0OiB7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbGluZSB1c2UtaG9zdC1wcm9wZXJ0eS1kZWNvcmF0b3JcbiAgICAnKGJsdXIpJzogJ29uVG91Y2hlZEZuKCknXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgRmxhdHBpY2tyRGlyZWN0aXZlXG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgLyoqXG4gICAqIE9iamVjdC1vcHRpb25zIHRoYXQgY2FuIGJlIHVzZXIgZm9yIG11bHRpcGxlIGluc3RhbmNlcyBvZiBGbGF0cGlja3IuXG4gICAqIE9wdGlvbiBmcm9tIHRoaXMgb2JqZWN0IGlzIGFwcGxpZWQgb25seSBpZiBzcGVjaWZpYyBvcHRpb24gaXMgbm90IHNwZWNpZmllZC5cbiAgICogRXhhbXBsZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBvcHRpb25zOiBGbGF0cGlja3JEZWZhdWx0c0ludGVyZmFjZSA9IHtcbiAgICogICAgICBhbHRGb3JtYXQ6ICdkL20vWScsICAgLy8gd2lsbCBiZSBpZ25vcmVkIHNpbmNlIGFsdEZvcm1hdCBpcyBwcm92aWRlZCB2aWEgc3BlY2lmaWMgYXR0cmlidXRlXG4gICAqICAgICAgYWx0SW5wdXQ6IHRydWUgICAgICAgIC8vIHdpbGwgYmUgdXNlZCBzaW5jZSBzcGVjaWZpYyBhdHRyaWJ1dGUgaXMgbm90IHByb3ZpZGVkXG4gICAqIH07XG4gICAqIGBgYFxuICAgKiBgYGBodG1sXG4gICAqIDxpbnB1dFxuICAgKiAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICogICB0eXBlPVwidGV4dFwiXG4gICAqICAgbXdsRmxhdHBpY2tyXG4gICAqICAgW29wdGlvbnNdPVwib3B0aW9uc1wiXG4gICAqICAgYWx0Rm9ybWF0PVwiZC9tL1lcIj5cbiAgICogYGBgXG4gICAqL1xuICBASW5wdXQoKSBvcHRpb25zOiBGbGF0cGlja3JEZWZhdWx0c0ludGVyZmFjZSA9IHt9O1xuXG4gIC8qKlxuICAgKiBFeGFjdGx5IHRoZSBzYW1lIGFzIGRhdGUgZm9ybWF0LCBidXQgZm9yIHRoZSBhbHRJbnB1dCBmaWVsZC5cbiAgICovXG4gIEBJbnB1dCgpIGFsdEZvcm1hdDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBcdFNob3cgdGhlIHVzZXIgYSByZWFkYWJsZSBkYXRlIChhcyBwZXIgYWx0Rm9ybWF0KSwgYnV0IHJldHVybiBzb21ldGhpbmcgdG90YWxseSBkaWZmZXJlbnQgdG8gdGhlIHNlcnZlci5cbiAgICovXG4gIEBJbnB1dCgpIGFsdElucHV0OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGlzIGNsYXNzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGlucHV0IGVsZW1lbnQgY3JlYXRlZCBieSB0aGUgYWx0SW5wdXQgb3B0aW9uLlxuICAgKiBOb3RlIHRoYXQgYGFsdElucHV0YCBhbHJlYWR5IGluaGVyaXRzIGNsYXNzZXMgZnJvbSB0aGUgb3JpZ2luYWwgaW5wdXQuXG4gICAqL1xuICBASW5wdXQoKSBhbHRJbnB1dENsYXNzOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFsbG93cyB0aGUgdXNlciB0byBlbnRlciBhIGRhdGUgZGlyZWN0bHkgaW5wdXQgdGhlIGlucHV0IGZpZWxkLiBCeSBkZWZhdWx0LCBkaXJlY3QgZW50cnkgaXMgZGlzYWJsZWQuXG4gICAqL1xuICBASW5wdXQoKSBhbGxvd0lucHV0OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbnN0ZWFkIG9mIGBib2R5YCwgYXBwZW5kcyB0aGUgY2FsZW5kYXIgdG8gdGhlIHNwZWNpZmllZCBub2RlIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKSBhcHBlbmRUbzogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgaG93IHRoZSBkYXRlIHdpbGwgYmUgZm9ybWF0dGVkIGluIHRoZSBhcmlhLWxhYmVsIGZvciBjYWxlbmRhciBkYXlzLCB1c2luZyB0aGUgc2FtZSB0b2tlbnMgYXMgZGF0ZUZvcm1hdC4gSWYgeW91IGNoYW5nZSB0aGlzLCB5b3Ugc2hvdWxkIGNob29zZSBhIHZhbHVlIHRoYXQgd2lsbCBtYWtlIHNlbnNlIGlmIGEgc2NyZWVuIHJlYWRlciByZWFkcyBpdCBvdXQgbG91ZC5cbiAgICovXG4gIEBJbnB1dCgpIGFyaWFEYXRlRm9ybWF0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGNsaWNraW5nIG9uIHRoZSBpbnB1dCBzaG91bGQgb3BlbiB0aGUgcGlja2VyLlxuICAgKiBZb3UgY291bGQgZGlzYWJsZSB0aGlzIGlmIHlvdSB3aXNoIHRvIG9wZW4gdGhlIGNhbGVuZGFyIG1hbnVhbGx5IGB3aXRoLm9wZW4oKWAuXG4gICAqL1xuICBASW5wdXQoKSBjbGlja09wZW5zOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBIHN0cmluZyBvZiBjaGFyYWN0ZXJzIHdoaWNoIGFyZSB1c2VkIHRvIGRlZmluZSBob3cgdGhlIGRhdGUgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGlucHV0IGJveC5cbiAgICogVGhlIHN1cHBvcnRlZCBjaGFyYWN0ZXJzIGFyZSBkZWZpbmVkIGluIHRoZSB0YWJsZSBiZWxvdy5cbiAgICovXG4gIEBJbnB1dCgpIGRhdGVGb3JtYXQ6IHN0cmluZztcblxuICAvKipcbiAgICogSW5pdGlhbCB2YWx1ZSBvZiB0aGUgaG91ciBlbGVtZW50LlxuICAgKi9cbiAgQElucHV0KCkgZGVmYXVsdEhvdXI/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBJbml0aWFsIHZhbHVlIG9mIHRoZSBtaW51dGUgZWxlbWVudC5cbiAgICovXG4gIEBJbnB1dCgpIGRlZmF1bHRNaW51dGU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgdmFsdWUgb2YgdGhlIHNlY29uZHMgZWxlbWVudC5cbiAgICovXG4gIEBJbnB1dCgpIGRlZmF1bHRTZWNvbmRzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTZWUgPGEgaHJlZj1cImh0dHBzOi8vY2htbG4uZ2l0aHViLmlvL2ZsYXRwaWNrci9leGFtcGxlcy8jZGlzYWJsaW5nLXNwZWNpZmljLWRhdGVzXCI+ZGlzYWJsaW5nIGRhdGVzPC9hPi5cbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGU6IERpc2FibGVFbmFibGVEYXRlW107XG5cbiAgLyoqXG4gICAqIFNldCBkaXNhYmxlTW9iaWxlIHRvIHRydWUgdG8gYWx3YXlzIHVzZSB0aGUgbm9uLW5hdGl2ZSBwaWNrZXIuXG4gICAqIEJ5IGRlZmF1bHQsIEZsYXRwaWNrciB1dGlsaXplcyBuYXRpdmUgZGF0ZXRpbWUgd2lkZ2V0cyB1bmxlc3MgY2VydGFpbiBvcHRpb25zIChlLmcuIGRpc2FibGUpIGFyZSB1c2VkLlxuICAgKi9cbiAgQElucHV0KCkgZGlzYWJsZU1vYmlsZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2VlIDxhIGhyZWY9XCJodHRwczovL2NobWxuLmdpdGh1Yi5pby9mbGF0cGlja3IvZXhhbXBsZXMvI2Rpc2FibGluZy1hbGwtZGF0ZXMtZXhjZXB0LXNlbGVjdC1mZXdcIj5lbmFibGluZyBkYXRlczwvYT4uXG4gICAqL1xuICBASW5wdXQoKSBlbmFibGU6IERpc2FibGVFbmFibGVEYXRlW107XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGltZSBwaWNrZXIuXG4gICAqL1xuICBASW5wdXQoKSBlbmFibGVUaW1lOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIHNlY29uZHMgaW4gdGhlIHRpbWUgcGlja2VyLlxuICAgKi9cbiAgQElucHV0KCkgZW5hYmxlU2Vjb25kczogYm9vbGVhbjtcblxuICAvKipcbiAgICogQWxsb3dzIHVzaW5nIGEgY3VzdG9tIGRhdGUgZm9ybWF0dGluZyBmdW5jdGlvbiBpbnN0ZWFkIG9mIHRoZSBidWlsdC1pbiBoYW5kbGluZyBmb3IgZGF0ZSBmb3JtYXRzIHVzaW5nIGRhdGVGb3JtYXQsIGFsdEZvcm1hdCwgZXRjLlxuICAgKi9cbiAgQElucHV0KCkgZm9ybWF0RGF0ZT86ICh2YWx1ZTogYW55KSA9PiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkanVzdHMgdGhlIHN0ZXAgZm9yIHRoZSBob3VyIGlucHV0IChpbmNsLiBzY3JvbGxpbmcpLlxuICAgKi9cbiAgQElucHV0KCkgaG91ckluY3JlbWVudDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5cyB0aGUgY2FsZW5kYXIgaW5saW5lLlxuICAgKi9cbiAgQElucHV0KCkgaW5saW5lOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBkYXRlIHRoYXQgYSB1c2VyIGNhbiBwaWNrIHRvIChpbmNsdXNpdmUpLlxuICAgKi9cbiAgQElucHV0KCkgbWF4RGF0ZTogc3RyaW5nIHwgRGF0ZTtcblxuICAvKipcbiAgICogVGhlIG1pbmltdW0gZGF0ZSB0aGF0IGEgdXNlciBjYW4gc3RhcnQgcGlja2luZyBmcm9tIChpbmNsdXNpdmUpLlxuICAgKi9cbiAgQElucHV0KCkgbWluRGF0ZTogc3RyaW5nIHwgRGF0ZTtcblxuICAvKipcbiAgICogQWRqdXN0cyB0aGUgc3RlcCBmb3IgdGhlIG1pbnV0ZSBpbnB1dCAoaW5jbC4gc2Nyb2xsaW5nKS5cbiAgICovXG4gIEBJbnB1dCgpIG1pbnV0ZUluY3JlbWVudDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTZWxlY3QgYSBzaW5nbGUgZGF0ZSwgbXVsdGlwbGUgZGF0ZXMgb3IgYSBkYXRlIHJhbmdlLlxuICAgKi9cbiAgQElucHV0KCkgbW9kZTogJ3NpbmdsZScgfCAnbXVsdGlwbGUnIHwgJ3JhbmdlJztcblxuICAvKipcbiAgICogSFRNTCBmb3IgdGhlIGFycm93IGljb24sIHVzZWQgdG8gc3dpdGNoIG1vbnRocy5cbiAgICovXG4gIEBJbnB1dCgpIG5leHRBcnJvdzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIaWRlcyB0aGUgZGF5IHNlbGVjdGlvbiBpbiBjYWxlbmRhci4gVXNlIGl0IGFsb25nIHdpdGggYGVuYWJsZVRpbWVgIHRvIGNyZWF0ZSBhIHRpbWUgcGlja2VyLlxuICAgKi9cbiAgQElucHV0KCkgbm9DYWxlbmRhcjogYm9vbGVhbjtcblxuICAvKipcbiAgICogUHJvdmlkZSBhIGRhdGUgZm9yICd0b2RheScsIHdoaWNoIHdpbGwgYmUgdXNlZCBpbnN0ZWFkIG9mIFwibmV3IERhdGUoKVwiXG4gICAqL1xuICBASW5wdXQoKSBub3c/OiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0aGF0IGV4cGVjdHMgYSBkYXRlIHN0cmluZyBhbmQgbXVzdCByZXR1cm4gYSBEYXRlIG9iamVjdC5cbiAgICovXG4gIEBJbnB1dCgpIHBhcnNlRGF0ZTogKHN0cjogc3RyaW5nKSA9PiBEYXRlO1xuXG4gIC8qKlxuICAgKiBIVE1MIGZvciB0aGUgbGVmdCBhcnJvdyBpY29uLlxuICAgKi9cbiAgQElucHV0KCkgcHJldkFycm93OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNob3cgdGhlIG1vbnRoIHVzaW5nIHRoZSBzaG9ydGhhbmQgdmVyc2lvbiAoaWUsIFNlcCBpbnN0ZWFkIG9mIFNlcHRlbWJlcikuXG4gICAqL1xuICBASW5wdXQoKSBzaG9ydGhhbmRDdXJyZW50TW9udGg6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgbW9udGhzIHNob3duLlxuICAgKi9cbiAgQElucHV0KCkgc2hvd01vbnRoczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBQb3NpdGlvbiB0aGUgY2FsZW5kYXIgaW5zaWRlIHRoZSB3cmFwcGVyIGFuZCBuZXh0IHRvIHRoZSBpbnB1dCBlbGVtZW50LiAoTGVhdmUgYGZhbHNlYCB1bmxlc3MgeW91IGtub3cgd2hhdCB5b3UncmUgZG9pbmcpLlxuICAgKi9cbiAgQElucHV0KCkgc3RhdGljOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5cyB0aW1lIHBpY2tlciBpbiAyNCBob3VyIG1vZGUgd2l0aG91dCBBTS9QTSBzZWxlY3Rpb24gd2hlbiBlbmFibGVkLlxuICAgKi9cbiAgQElucHV0KCkgdGltZTI0aHI6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgZGlzcGxheSBvZiB3ZWVrIG51bWJlcnMgaW4gY2FsZW5kYXIuXG4gICAqL1xuICBASW5wdXQoKSB3ZWVrTnVtYmVyczogYm9vbGVhbjtcblxuICAvKipcbiAgICogWW91IG1heSBvdmVycmlkZSB0aGUgZnVuY3Rpb24gdGhhdCBleHRyYWN0cyB0aGUgd2VlayBudW1iZXJzIGZyb20gYSBEYXRlIGJ5IHN1cHBseWluZyBhIGdldFdlZWsgZnVuY3Rpb24uXG4gICAqIEl0IHRha2VzIGluIGEgZGF0ZSBhcyBhIHBhcmFtZXRlciBhbmQgc2hvdWxkIHJldHVybiBhIGNvcnJlc3BvbmRpbmcgc3RyaW5nIHRoYXQgeW91IHdhbnQgdG8gYXBwZWFyIGxlZnQgb2YgZXZlcnkgd2Vlay5cbiAgICovXG4gIEBJbnB1dCgpIGdldFdlZWs6IChkYXRlOiBEYXRlKSA9PiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBlbGVtZW50cyBhbmQgaW5wdXQgZ3JvdXBzLlxuICAgKi9cbiAgQElucHV0KCkgd3JhcDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQXJyYXkgb2YgcGx1Z2luIGluc3RhbmNlcyB0byB1c2UuXG4gICAqL1xuICBASW5wdXQoKSBwbHVnaW5zOiBhbnlbXTtcblxuICAvKipcbiAgICogVGhlIGxvY2FsZSBvYmplY3Qgb3Igc3RyaW5nIHRvIHVzZSBmb3IgdGhlIGxvY2FsZS5cbiAgICovXG4gIEBJbnB1dCgpIGxvY2FsZTogb2JqZWN0IHwgc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBdXRvIGNvbnZlcnQgdGhlIG5nTW9kZWwgdmFsdWUgZnJvbSBhIHN0cmluZyB0byBhIGRhdGUgLyBhcnJheSBvZiBkYXRlcyAvIGZyb20gLSB0byBkYXRlIG9iamVjdCBkZXBlbmRpbmcgb24gdGhlIGBtb2RlYFxuICAgKi9cbiAgQElucHV0KCkgY29udmVydE1vZGVsVmFsdWU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEhvdyB0aGUgbW9udGggc2hvdWxkIGJlIGRpc3BsYXllZCBpbiB0aGUgaGVhZGVyIG9mIHRoZSBjYWxlbmRhci5cbiAgICovXG4gIEBJbnB1dCgpIG1vbnRoU2VsZWN0b3JUeXBlOiAnc3RhdGljJyB8ICdkcm9wZG93bic7XG5cbiAgLyoqXG4gICAqIEdldHMgdHJpZ2dlcmVkIG9uY2UgdGhlIGNhbGVuZGFyIGlzIGluIGEgcmVhZHkgc3RhdGVcbiAgICovXG4gIEBPdXRwdXQoKVxuICBmbGF0cGlja3JSZWFkeTogRXZlbnRFbWl0dGVyPEZsYXRQaWNrck91dHB1dE9wdGlvbnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIHNlbGVjdHMgYSBkYXRlLCBvciBjaGFuZ2VzIHRoZSB0aW1lIG9uIGEgc2VsZWN0ZWQgZGF0ZS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBmbGF0cGlja3JDaGFuZ2U6IEV2ZW50RW1pdHRlcjxGbGF0UGlja3JPdXRwdXRPcHRpb25zPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogR2V0cyB0cmlnZ2VyZWQgd2hlbiB0aGUgaW5wdXQgdmFsdWUgaXMgdXBkYXRlZCB3aXRoIGEgbmV3IGRhdGUgc3RyaW5nLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGZsYXRwaWNrclZhbHVlVXBkYXRlOiBFdmVudEVtaXR0ZXI8XG4gICAgRmxhdFBpY2tyT3V0cHV0T3B0aW9uc1xuICA+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRyaWdnZXJlZCB3aGVuIHRoZSBjYWxlbmRhciBpcyBvcGVuZWQuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgZmxhdHBpY2tyT3BlbjogRXZlbnRFbWl0dGVyPEZsYXRQaWNrck91dHB1dE9wdGlvbnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRyaWdnZXJlZCB3aGVuIHRoZSBjYWxlbmRhciBpcyBjbG9zZWQuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgZmxhdHBpY2tyQ2xvc2U6IEV2ZW50RW1pdHRlcjxGbGF0UGlja3JPdXRwdXRPcHRpb25zPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogR2V0cyB0cmlnZ2VyZWQgd2hlbiB0aGUgbW9udGggaXMgY2hhbmdlZCwgZWl0aGVyIGJ5IHRoZSB1c2VyIG9yIHByb2dyYW1tYXRpY2FsbHkuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgZmxhdHBpY2tyTW9udGhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxcbiAgICBGbGF0UGlja3JPdXRwdXRPcHRpb25zXG4gID4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEdldHMgdHJpZ2dlcmVkIHdoZW4gdGhlIHllYXIgaXMgY2hhbmdlZCwgZWl0aGVyIGJ5IHRoZSB1c2VyIG9yIHByb2dyYW1tYXRpY2FsbHkuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgZmxhdHBpY2tyWWVhckNoYW5nZTogRXZlbnRFbWl0dGVyPFxuICAgIEZsYXRQaWNrck91dHB1dE9wdGlvbnNcbiAgPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogVGFrZSBmdWxsIGNvbnRyb2wgb2YgZXZlcnkgZGF0ZSBjZWxsIHdpdGggdGhpcyBvdXRwdXRcbiAgICovXG4gIEBPdXRwdXQoKVxuICBmbGF0cGlja3JEYXlDcmVhdGU6IEV2ZW50RW1pdHRlcjxcbiAgICBGbGF0UGlja3JEYXlDcmVhdGVPdXRwdXRPcHRpb25zXG4gID4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHJpdmF0ZSBpbnN0YW5jZTogZmxhdHBpY2tyLkluc3RhbmNlO1xuICBwcml2YXRlIGlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBpbml0aWFsVmFsdWU6IGFueTtcblxuICBvbkNoYW5nZUZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9OyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lXG5cbiAgb25Ub3VjaGVkRm4gPSAoKSA9PiB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsbTogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGRlZmF1bHRzOiBGbGF0cGlja3JEZWZhdWx0cyxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBvcHRpb25zOiBhbnkgPSB7XG4gICAgICBhbHRGb3JtYXQ6IHRoaXMuYWx0Rm9ybWF0LFxuICAgICAgYWx0SW5wdXQ6IHRoaXMuYWx0SW5wdXQsXG4gICAgICBhbHRJbnB1dENsYXNzOiB0aGlzLmFsdElucHV0Q2xhc3MsXG4gICAgICBhbGxvd0lucHV0OiB0aGlzLmFsbG93SW5wdXQsXG4gICAgICBhcHBlbmRUbzogdGhpcy5hcHBlbmRUbyxcbiAgICAgIGFyaWFEYXRlRm9ybWF0OiB0aGlzLmFyaWFEYXRlRm9ybWF0LFxuICAgICAgY2xpY2tPcGVuczogdGhpcy5jbGlja09wZW5zLFxuICAgICAgZGF0ZUZvcm1hdDogdGhpcy5kYXRlRm9ybWF0LFxuICAgICAgZGVmYXVsdEhvdXI6IHRoaXMuZGVmYXVsdEhvdXIsXG4gICAgICBkZWZhdWx0TWludXRlOiB0aGlzLmRlZmF1bHRNaW51dGUsXG4gICAgICBkZWZhdWx0U2Vjb25kczogdGhpcy5kZWZhdWx0U2Vjb25kcyxcbiAgICAgIGRpc2FibGU6IHRoaXMuZGlzYWJsZSxcbiAgICAgIGRpc2FibGVNb2JpbGU6IHRoaXMuZGlzYWJsZU1vYmlsZSxcbiAgICAgIGVuYWJsZTogdGhpcy5lbmFibGUsXG4gICAgICBlbmFibGVUaW1lOiB0aGlzLmVuYWJsZVRpbWUsXG4gICAgICBlbmFibGVTZWNvbmRzOiB0aGlzLmVuYWJsZVNlY29uZHMsXG4gICAgICBmb3JtYXREYXRlOiB0aGlzLmZvcm1hdERhdGUsXG4gICAgICBob3VySW5jcmVtZW50OiB0aGlzLmhvdXJJbmNyZW1lbnQsXG4gICAgICBkZWZhdWx0RGF0ZTogdGhpcy5pbml0aWFsVmFsdWUsXG4gICAgICBpbmxpbmU6IHRoaXMuaW5saW5lLFxuICAgICAgbWF4RGF0ZTogdGhpcy5tYXhEYXRlLFxuICAgICAgbWluRGF0ZTogdGhpcy5taW5EYXRlLFxuICAgICAgbWludXRlSW5jcmVtZW50OiB0aGlzLm1pbnV0ZUluY3JlbWVudCxcbiAgICAgIG1vZGU6IHRoaXMubW9kZSxcbiAgICAgIG5leHRBcnJvdzogdGhpcy5uZXh0QXJyb3csXG4gICAgICBub0NhbGVuZGFyOiB0aGlzLm5vQ2FsZW5kYXIsXG4gICAgICBub3c6IHRoaXMubm93LFxuICAgICAgcGFyc2VEYXRlOiB0aGlzLnBhcnNlRGF0ZSxcbiAgICAgIHByZXZBcnJvdzogdGhpcy5wcmV2QXJyb3csXG4gICAgICBzaG9ydGhhbmRDdXJyZW50TW9udGg6IHRoaXMuc2hvcnRoYW5kQ3VycmVudE1vbnRoLFxuICAgICAgc2hvd01vbnRoczogdGhpcy5zaG93TW9udGhzLFxuICAgICAgbW9udGhTZWxlY3RvclR5cGU6IHRoaXMubW9udGhTZWxlY3RvclR5cGUsXG4gICAgICBzdGF0aWM6IHRoaXMuc3RhdGljLFxuICAgICAgdGltZTI0aHI6IHRoaXMudGltZTI0aHIsXG4gICAgICB3ZWVrTnVtYmVyczogdGhpcy53ZWVrTnVtYmVycyxcbiAgICAgIGdldFdlZWs6IHRoaXMuZ2V0V2VlayxcbiAgICAgIHdyYXA6IHRoaXMud3JhcCxcbiAgICAgIHBsdWdpbnM6IHRoaXMucGx1Z2lucyxcbiAgICAgIGxvY2FsZTogdGhpcy5sb2NhbGUsXG4gICAgICBvbkNoYW5nZTogKHNlbGVjdGVkRGF0ZXM6IERhdGVbXSwgZGF0ZVN0cmluZzogc3RyaW5nLCBpbnN0YW5jZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuZmxhdHBpY2tyQ2hhbmdlLmVtaXQoeyBzZWxlY3RlZERhdGVzLCBkYXRlU3RyaW5nLCBpbnN0YW5jZSB9KTtcbiAgICAgIH0sXG4gICAgICBvbk9wZW46IChzZWxlY3RlZERhdGVzOiBEYXRlW10sIGRhdGVTdHJpbmc6IHN0cmluZywgaW5zdGFuY2U6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmZsYXRwaWNrck9wZW4uZW1pdCh7IHNlbGVjdGVkRGF0ZXMsIGRhdGVTdHJpbmcsIGluc3RhbmNlIH0pO1xuICAgICAgfSxcbiAgICAgIG9uQ2xvc2U6IChzZWxlY3RlZERhdGVzOiBEYXRlW10sIGRhdGVTdHJpbmc6IHN0cmluZywgaW5zdGFuY2U6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmZsYXRwaWNrckNsb3NlLmVtaXQoeyBzZWxlY3RlZERhdGVzLCBkYXRlU3RyaW5nLCBpbnN0YW5jZSB9KTtcbiAgICAgIH0sXG4gICAgICBvbk1vbnRoQ2hhbmdlOiAoXG4gICAgICAgIHNlbGVjdGVkRGF0ZXM6IERhdGVbXSxcbiAgICAgICAgZGF0ZVN0cmluZzogc3RyaW5nLFxuICAgICAgICBpbnN0YW5jZTogYW55XG4gICAgICApID0+IHtcbiAgICAgICAgdGhpcy5mbGF0cGlja3JNb250aENoYW5nZS5lbWl0KHsgc2VsZWN0ZWREYXRlcywgZGF0ZVN0cmluZywgaW5zdGFuY2UgfSk7XG4gICAgICB9LFxuICAgICAgb25ZZWFyQ2hhbmdlOiAoXG4gICAgICAgIHNlbGVjdGVkRGF0ZXM6IERhdGVbXSxcbiAgICAgICAgZGF0ZVN0cmluZzogc3RyaW5nLFxuICAgICAgICBpbnN0YW5jZTogYW55XG4gICAgICApID0+IHtcbiAgICAgICAgdGhpcy5mbGF0cGlja3JZZWFyQ2hhbmdlLmVtaXQoeyBzZWxlY3RlZERhdGVzLCBkYXRlU3RyaW5nLCBpbnN0YW5jZSB9KTtcbiAgICAgIH0sXG4gICAgICBvblJlYWR5OiAoc2VsZWN0ZWREYXRlczogRGF0ZVtdLCBkYXRlU3RyaW5nOiBzdHJpbmcsIGluc3RhbmNlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5mbGF0cGlja3JSZWFkeS5lbWl0KHsgc2VsZWN0ZWREYXRlcywgZGF0ZVN0cmluZywgaW5zdGFuY2UgfSk7XG4gICAgICB9LFxuICAgICAgb25WYWx1ZVVwZGF0ZTogKFxuICAgICAgICBzZWxlY3RlZERhdGVzOiBEYXRlW10sXG4gICAgICAgIGRhdGVTdHJpbmc6IHN0cmluZyxcbiAgICAgICAgaW5zdGFuY2U6IGFueVxuICAgICAgKSA9PiB7XG4gICAgICAgIHRoaXMuZmxhdHBpY2tyVmFsdWVVcGRhdGUuZW1pdCh7IHNlbGVjdGVkRGF0ZXMsIGRhdGVTdHJpbmcsIGluc3RhbmNlIH0pO1xuICAgICAgfSxcbiAgICAgIG9uRGF5Q3JlYXRlOiAoXG4gICAgICAgIHNlbGVjdGVkRGF0ZXM6IERhdGVbXSxcbiAgICAgICAgZGF0ZVN0cmluZzogc3RyaW5nLFxuICAgICAgICBpbnN0YW5jZTogYW55LFxuICAgICAgICBkYXlFbGVtZW50OiBIVE1MRWxlbWVudFxuICAgICAgKSA9PiB7XG4gICAgICAgIHRoaXMuZmxhdHBpY2tyRGF5Q3JlYXRlLmVtaXQoe1xuICAgICAgICAgIHNlbGVjdGVkRGF0ZXMsXG4gICAgICAgICAgZGF0ZVN0cmluZyxcbiAgICAgICAgICBpbnN0YW5jZSxcbiAgICAgICAgICBkYXlFbGVtZW50XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBPYmplY3Qua2V5cyhvcHRpb25zKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnNba2V5XSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9wdGlvbnNba2V5XSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICBvcHRpb25zW2tleV0gPSAodGhpcy5vcHRpb25zIGFzIGFueSlba2V5XTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvcHRpb25zW2tleV0gPSAodGhpcy5kZWZhdWx0cyBhcyBhbnkpW2tleV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICBvcHRpb25zLnRpbWVfMjRociA9IG9wdGlvbnMudGltZTI0aHI7XG5cbiAgICAvLyB3b3JrYXJvdW5kIGJ1ZyBpbiBmbGF0cGlja3IgNC42IHdoZXJlIGl0IGRvZXNuJ3QgY29weSB0aGUgY2xhc3NlcyBhY3Jvc3NcbiAgICAvLyBUT0RPIC0gcmVtb3ZlIG9uY2UgZml4IGluIGh0dHBzOi8vZ2l0aHViLmNvbS9mbGF0cGlja3IvZmxhdHBpY2tyL2lzc3Vlcy8xODYwIGlzIHJlbGVhc2VkXG4gICAgb3B0aW9ucy5hbHRJbnB1dENsYXNzID1cbiAgICAgIChvcHRpb25zLmFsdElucHV0Q2xhc3MgfHwgJycpICsgJyAnICsgdGhpcy5lbG0ubmF0aXZlRWxlbWVudC5jbGFzc05hbWU7XG5cbiAgICBpZiAoIW9wdGlvbnMuZW5hYmxlKSB7XG4gICAgICBkZWxldGUgb3B0aW9ucy5lbmFibGU7XG4gICAgfVxuXG4gICAgdGhpcy5pbnN0YW5jZSA9IGZsYXRwaWNrcihcbiAgICAgIHRoaXMuZWxtLm5hdGl2ZUVsZW1lbnQsXG4gICAgICBvcHRpb25zXG4gICAgKSBhcyBmbGF0cGlja3IuSW5zdGFuY2U7XG4gICAgdGhpcy5zZXREaXNhYmxlZFN0YXRlKHRoaXMuaXNEaXNhYmxlZCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgIE9iamVjdC5rZXlzKGNoYW5nZXMpLmZvckVhY2goaW5wdXRLZXkgPT4ge1xuICAgICAgICB0aGlzLmluc3RhbmNlLnNldChpbnB1dEtleSBhcyBhbnksICh0aGlzIGFzIGFueSlbaW5wdXRLZXldKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XG4gICAgICB0aGlzLmluc3RhbmNlLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBsZXQgY29udmVydGVkVmFsdWU6IGFueSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLmNvbnZlcnRNb2RlbFZhbHVlICYmIHRoaXMubW9kZSA9PT0gJ3JhbmdlJyAmJiB2YWx1ZSkge1xuICAgICAgY29udmVydGVkVmFsdWUgPSBbdmFsdWUuZnJvbSwgdmFsdWUudG9dO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XG4gICAgICB0aGlzLmluc3RhbmNlLnNldERhdGUoY29udmVydGVkVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBmbGF0cGlja3IgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgeWV0LCBzdG9yZSB0aGUgdmFsdWUgZm9yIGxhdGVyIHVzZVxuICAgICAgdGhpcy5pbml0aWFsVmFsdWUgPSBjb252ZXJ0ZWRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWRGbiA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICBpZiAodGhpcy5pbnN0YW5jZSkge1xuICAgICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuaW5zdGFuY2UuX2lucHV0LCAnZGlzYWJsZWQnLCAnZGlzYWJsZWQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuaW5zdGFuY2UuX2lucHV0LCAnZGlzYWJsZWQnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdpbnB1dCcpXG4gIGlucHV0Q2hhbmdlZCgpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZTogc3RyaW5nID0gdGhpcy5lbG0ubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICBpZiAodGhpcy5jb252ZXJ0TW9kZWxWYWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMubW9kZSkge1xuICAgICAgICBjYXNlICdtdWx0aXBsZSc6XG4gICAgICAgICAgY29uc3QgZGF0ZXM6IERhdGVbXSA9IHZhbHVlXG4gICAgICAgICAgICAuc3BsaXQoJzsgJylcbiAgICAgICAgICAgIC5tYXAoc3RyID0+XG4gICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UucGFyc2VEYXRlKFxuICAgICAgICAgICAgICAgIHN0cixcbiAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlLmNvbmZpZy5kYXRlRm9ybWF0LFxuICAgICAgICAgICAgICAgICF0aGlzLmluc3RhbmNlLmNvbmZpZy5lbmFibGVUaW1lXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5vbkNoYW5nZUZuKGRhdGVzKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdyYW5nZSc6XG4gICAgICAgICAgY29uc3QgW2Zyb20sIHRvXSA9IHZhbHVlXG4gICAgICAgICAgICAuc3BsaXQodGhpcy5pbnN0YW5jZS5sMTBuLnJhbmdlU2VwYXJhdG9yKVxuICAgICAgICAgICAgLm1hcChzdHIgPT5cbiAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5wYXJzZURhdGUoXG4gICAgICAgICAgICAgICAgc3RyLFxuICAgICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UuY29uZmlnLmRhdGVGb3JtYXQsXG4gICAgICAgICAgICAgICAgIXRoaXMuaW5zdGFuY2UuY29uZmlnLmVuYWJsZVRpbWVcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlRm4oeyBmcm9tLCB0byB9KTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdzaW5nbGUnOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRoaXMub25DaGFuZ2VGbihcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UucGFyc2VEYXRlKFxuICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5jb25maWcuZGF0ZUZvcm1hdCxcbiAgICAgICAgICAgICAgIXRoaXMuaW5zdGFuY2UuY29uZmlnLmVuYWJsZVRpbWVcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlRm4odmFsdWUpO1xuICAgIH1cbiAgfVxufVxuIl19 |
@@ -277,6 +277,2 @@ /** | ||
| /** | ||
| * See <a href="https://chmln.github.io/flatpickr/examples/#disabling-all-dates-except-select-few">enabling dates</a>. | ||
| */ | ||
| this.enable = []; | ||
| /** | ||
| * Enables time picker. | ||
@@ -594,2 +590,2 @@ */ | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdHBpY2tyLWRlZmF1bHRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyeC1mbGF0cGlja3IvIiwic291cmNlcyI6WyJmbGF0cGlja3ItZGVmYXVsdHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7eUJBME5yQixRQUFROzs7O3dCQUtSLEtBQUs7Ozs7OzZCQU1ELEVBQUU7Ozs7MEJBS0osS0FBSzs7Ozt3QkFLSCxTQUFTOzs7OzhCQUtQLFFBQVE7Ozs7OzBCQU1aLElBQUk7Ozs7OzBCQU1MLE9BQU87Ozs7MkJBS0wsRUFBRTs7Ozs2QkFLQSxDQUFDOzs7OzhCQUtBLENBQUM7Ozs7dUJBS0ksRUFBRTs7Ozs7NkJBTVIsS0FBSzs7OztzQkFLQSxFQUFFOzs7OzBCQUtWLEtBQUs7Ozs7NkJBS0YsS0FBSzs7OzswQkFLUSxTQUFTOzs7OzZCQUt2QixDQUFDOzs7O3NCQUtQLEtBQUs7Ozs7dUJBS0UsU0FBUzs7Ozt1QkFLVCxTQUFTOzs7OytCQUtSLENBQUM7Ozs7b0JBS2EsUUFBUTs7Ozt5QkFLNUIsR0FBRzs7OzswQkFLRCxLQUFLOzs7O21CQUtHLElBQUksSUFBSSxFQUFFOzs7O3lCQVVwQixHQUFHOzs7O3FDQUtVLEtBQUs7Ozs7c0JBS3BCLEtBQUs7Ozs7d0JBS0gsS0FBSzs7Ozs7bUJBTVYsS0FBSzs7OzsyQkFLRyxLQUFLOzs7O29CQVdaLEtBQUs7Ozs7dUJBS0osRUFBRTs7OztzQkFLTyxTQUFTOzs7O2lDQUtOLEtBQUs7Ozs7MEJBS2IsQ0FBQzs7OztpQ0FLcUIsUUFBUTs7O2dCQTlNcEQsVUFBVTs7NEJBck5YOztTQXNOYSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIERpc2FibGVFbmFibGVEYXRlID1cbiAgfCBzdHJpbmdcbiAgfCBEYXRlXG4gIHwgeyBmcm9tOiBEYXRlIHwgc3RyaW5nOyB0bzogRGF0ZSB8IHN0cmluZyB9XG4gIHwgKChkYXRlOiBEYXRlKSA9PiBib29sZWFuKTtcblxuLy8gdHNsaW50OmRpc2FibGUgbm8taW5mZXJyYWJsZS10eXBlc1xuXG5leHBvcnQgaW50ZXJmYWNlIEZsYXRwaWNrckRlZmF1bHRzSW50ZXJmYWNlIHtcbiAgLyoqXG4gICAqIEV4YWN0bHkgdGhlIHNhbWUgYXMgZGF0ZSBmb3JtYXQsIGJ1dCBmb3IgdGhlIGFsdElucHV0IGZpZWxkLlxuICAgKi9cbiAgYWx0Rm9ybWF0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBcdFNob3cgdGhlIHVzZXIgYSByZWFkYWJsZSBkYXRlIChhcyBwZXIgYWx0Rm9ybWF0KSwgYnV0IHJldHVybiBzb21ldGhpbmcgdG90YWxseSBkaWZmZXJlbnQgdG8gdGhlIHNlcnZlci5cbiAgICovXG4gIGFsdElucHV0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhpcyBjbGFzcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBpbnB1dCBlbGVtZW50IGNyZWF0ZWQgYnkgdGhlIGFsdElucHV0IG9wdGlvbi5cbiAgICogTm90ZSB0aGF0IGBhbHRJbnB1dGAgYWxyZWFkeSBpbmhlcml0cyBjbGFzc2VzIGZyb20gdGhlIG9yaWdpbmFsIGlucHV0LlxuICAgKi9cbiAgYWx0SW5wdXRDbGFzcz86IHN0cmluZztcblxuICAvKipcbiAgICogQWxsb3dzIHRoZSB1c2VyIHRvIGVudGVyIGEgZGF0ZSBkaXJlY3RseSBpbnB1dCB0aGUgaW5wdXQgZmllbGQuIEJ5IGRlZmF1bHQsIGRpcmVjdCBlbnRyeSBpcyBkaXNhYmxlZC5cbiAgICovXG4gIGFsbG93SW5wdXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbnN0ZWFkIG9mIGBib2R5YCwgYXBwZW5kcyB0aGUgY2FsZW5kYXIgdG8gdGhlIHNwZWNpZmllZCBub2RlIGluc3RlYWQuXG4gICAqL1xuICBhcHBlbmRUbz86IEhUTUxFbGVtZW50O1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGhvdyB0aGUgZGF0ZSB3aWxsIGJlIGZvcm1hdHRlZCBpbiB0aGUgYXJpYS1sYWJlbCBmb3IgY2FsZW5kYXIgZGF5cywgdXNpbmcgdGhlIHNhbWUgdG9rZW5zIGFzIGRhdGVGb3JtYXQuIElmIHlvdSBjaGFuZ2UgdGhpcywgeW91IHNob3VsZCBjaG9vc2UgYSB2YWx1ZSB0aGF0IHdpbGwgbWFrZSBzZW5zZSBpZiBhIHNjcmVlbiByZWFkZXIgcmVhZHMgaXQgb3V0IGxvdWQuXG4gICAqL1xuICBhcmlhRGF0ZUZvcm1hdD86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBjbGlja2luZyBvbiB0aGUgaW5wdXQgc2hvdWxkIG9wZW4gdGhlIHBpY2tlci5cbiAgICogWW91IGNvdWxkIGRpc2FibGUgdGhpcyBpZiB5b3Ugd2lzaCB0byBvcGVuIHRoZSBjYWxlbmRhciBtYW51YWxseSBgd2l0aC5vcGVuKClgLlxuICAgKi9cbiAgY2xpY2tPcGVucz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgc3RyaW5nIG9mIGNoYXJhY3RlcnMgd2hpY2ggYXJlIHVzZWQgdG8gZGVmaW5lIGhvdyB0aGUgZGF0ZSB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgaW5wdXQgYm94LlxuICAgKiBUaGUgc3VwcG9ydGVkIGNoYXJhY3RlcnMgYXJlIGRlZmluZWQgaW4gdGhlIHRhYmxlIGJlbG93LlxuICAgKi9cbiAgZGF0ZUZvcm1hdD86IHN0cmluZztcbiAgLyoqXG4gICAqIEluaXRpYWwgdmFsdWUgb2YgdGhlIGhvdXIgZWxlbWVudC5cbiAgICovXG4gIGRlZmF1bHRIb3VyPzogbnVtYmVyO1xuICAvKipcbiAgICogSW5pdGlhbCB2YWx1ZSBvZiB0aGUgbWludXRlIGVsZW1lbnQuXG4gICAqL1xuICBkZWZhdWx0TWludXRlPzogbnVtYmVyO1xuICAvKipcbiAgICogSW5pdGlhbCB2YWx1ZSBvZiB0aGUgc2Vjb25kcyBlbGVtZW50LlxuICAgKi9cbiAgZGVmYXVsdFNlY29uZHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNlZSA8YSBocmVmPVwiaHR0cHM6Ly9jaG1sbi5naXRodWIuaW8vZmxhdHBpY2tyL2V4YW1wbGVzLyNkaXNhYmxpbmctc3BlY2lmaWMtZGF0ZXNcIj5kaXNhYmxpbmcgZGF0ZXM8L2E+LlxuICAgKi9cbiAgZGlzYWJsZT86IERpc2FibGVFbmFibGVEYXRlW107XG5cbiAgLyoqXG4gICAqIFNldCBkaXNhYmxlTW9iaWxlIHRvIHRydWUgdG8gYWx3YXlzIHVzZSB0aGUgbm9uLW5hdGl2ZSBwaWNrZXIuXG4gICAqIEJ5IGRlZmF1bHQsIEZsYXRwaWNrciB1dGlsaXplcyBuYXRpdmUgZGF0ZXRpbWUgd2lkZ2V0cyB1bmxlc3MgY2VydGFpbiBvcHRpb25zIChlLmcuIGRpc2FibGUpIGFyZSB1c2VkLlxuICAgKi9cbiAgZGlzYWJsZU1vYmlsZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNlZSA8YSBocmVmPVwiaHR0cHM6Ly9jaG1sbi5naXRodWIuaW8vZmxhdHBpY2tyL2V4YW1wbGVzLyNkaXNhYmxpbmctYWxsLWRhdGVzLWV4Y2VwdC1zZWxlY3QtZmV3XCI+ZW5hYmxpbmcgZGF0ZXM8L2E+LlxuICAgKi9cbiAgZW5hYmxlPzogRGlzYWJsZUVuYWJsZURhdGVbXTtcblxuICAvKipcbiAgICogRW5hYmxlcyB0aW1lIHBpY2tlci5cbiAgICovXG4gIGVuYWJsZVRpbWU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIHNlY29uZHMgaW4gdGhlIHRpbWUgcGlja2VyLlxuICAgKi9cbiAgZW5hYmxlU2Vjb25kcz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBbGxvd3MgdXNpbmcgYSBjdXN0b20gZGF0ZSBmb3JtYXR0aW5nIGZ1bmN0aW9uIGluc3RlYWQgb2YgdGhlIGJ1aWx0LWluIGhhbmRsaW5nIGZvciBkYXRlIGZvcm1hdHMgdXNpbmcgZGF0ZUZvcm1hdCwgYWx0Rm9ybWF0LCBldGMuXG4gICAqL1xuICBmb3JtYXREYXRlPzogKHZhbHVlOiBhbnkpID0+IHN0cmluZztcbiAgLyoqXG4gICAqIEFkanVzdHMgdGhlIHN0ZXAgZm9yIHRoZSBob3VyIGlucHV0IChpbmNsLiBzY3JvbGxpbmcpLlxuICAgKi9cbiAgaG91ckluY3JlbWVudD86IG51bWJlcjtcblxuICAvKipcbiAgICogRGlzcGxheXMgdGhlIGNhbGVuZGFyIGlubGluZS5cbiAgICovXG4gIGlubGluZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGRhdGUgdGhhdCBhIHVzZXIgY2FuIHBpY2sgdG8gKGluY2x1c2l2ZSkuXG4gICAqL1xuICBtYXhEYXRlPzogc3RyaW5nIHwgRGF0ZTtcblxuICAvKipcbiAgICogVGhlIG1pbmltdW0gZGF0ZSB0aGF0IGEgdXNlciBjYW4gc3RhcnQgcGlja2luZyBmcm9tIChpbmNsdXNpdmUpLlxuICAgKi9cbiAgbWluRGF0ZT86IHN0cmluZyB8IERhdGU7XG5cbiAgLyoqXG4gICAqIEFkanVzdHMgdGhlIHN0ZXAgZm9yIHRoZSBtaW51dGUgaW5wdXQgKGluY2wuIHNjcm9sbGluZykuXG4gICAqL1xuICBtaW51dGVJbmNyZW1lbnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBhIHNpbmdsZSBkYXRlLCBtdWx0aXBsZSBkYXRlcyBvciBhIGRhdGUgcmFuZ2UuXG4gICAqL1xuICBtb2RlPzogJ3NpbmdsZScgfCAnbXVsdGlwbGUnIHwgJ3JhbmdlJztcblxuICAvKipcbiAgICogSFRNTCBmb3IgdGhlIGFycm93IGljb24sIHVzZWQgdG8gc3dpdGNoIG1vbnRocy5cbiAgICovXG4gIG5leHRBcnJvdz86IHN0cmluZztcblxuICAvKipcbiAgICogSGlkZXMgdGhlIGRheSBzZWxlY3Rpb24gaW4gY2FsZW5kYXIuIFVzZSBpdCBhbG9uZyB3aXRoIGBlbmFibGVUaW1lYCB0byBjcmVhdGUgYSB0aW1lIHBpY2tlci5cbiAgICovXG4gIG5vQ2FsZW5kYXI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQcm92aWRlIGEgZGF0ZSBmb3IgJ3RvZGF5Jywgd2hpY2ggd2lsbCBiZSB1c2VkIGluc3RlYWQgb2YgXCJuZXcgRGF0ZSgpXCJcbiAgICovXG4gIG5vdz86IERhdGUgfCBzdHJpbmcgfCBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRoYXQgZXhwZWN0cyBhIGRhdGUgc3RyaW5nIGFuZCBtdXN0IHJldHVybiBhIERhdGUgb2JqZWN0LlxuICAgKi9cbiAgcGFyc2VEYXRlPzogKHN0cjogc3RyaW5nKSA9PiBEYXRlO1xuXG4gIC8qKlxuICAgKiBIVE1MIGZvciB0aGUgbGVmdCBhcnJvdyBpY29uLlxuICAgKi9cbiAgcHJldkFycm93Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaG93IHRoZSBtb250aCB1c2luZyB0aGUgc2hvcnRoYW5kIHZlcnNpb24gKGllLCBTZXAgaW5zdGVhZCBvZiBTZXB0ZW1iZXIpLlxuICAgKi9cbiAgc2hvcnRoYW5kQ3VycmVudE1vbnRoPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUG9zaXRpb24gdGhlIGNhbGVuZGFyIGluc2lkZSB0aGUgd3JhcHBlciBhbmQgbmV4dCB0byB0aGUgaW5wdXQgZWxlbWVudC4gKExlYXZlIGBmYWxzZWAgdW5sZXNzIHlvdSBrbm93IHdoYXQgeW91J3JlIGRvaW5nKS5cbiAgICovXG4gIHN0YXRpYz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIERpc3BsYXlzIHRpbWUgcGlja2VyIGluIDI0IGhvdXIgbW9kZSB3aXRob3V0IEFNL1BNIHNlbGVjdGlvbiB3aGVuIGVuYWJsZWQuXG4gICAqL1xuICB0aW1lMjRocj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSwgZGF0ZXMgd2lsbCBwYXJzZWQsIGZvcm1hdHRlZCwgYW5kIGRpc3BsYXllZCBpbiBVVEMuXG4gICAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCBkYXRlIHN0cmluZ3MgY29udGFpbiB0aGUgdGltZXpvbmUsIGJ1dCBub3QgbmVjZXNzYXJ5LlxuICAgKi9cbiAgdXRjPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlcyBkaXNwbGF5IG9mIHdlZWsgbnVtYmVycyBpbiBjYWxlbmRhci5cbiAgICovXG4gIHdlZWtOdW1iZXJzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogWW91IG1heSBvdmVycmlkZSB0aGUgZnVuY3Rpb24gdGhhdCBleHRyYWN0cyB0aGUgd2VlayBudW1iZXJzIGZyb20gYSBEYXRlIGJ5IHN1cHBseWluZyBhIGdldFdlZWsgZnVuY3Rpb24uXG4gICAqIEl0IHRha2VzIGluIGEgZGF0ZSBhcyBhIHBhcmFtZXRlciBhbmQgc2hvdWxkIHJldHVybiBhIGNvcnJlc3BvbmRpbmcgc3RyaW5nIHRoYXQgeW91IHdhbnQgdG8gYXBwZWFyIGxlZnQgb2YgZXZlcnkgd2Vlay5cbiAgICovXG4gIGdldFdlZWs/OiAoZGF0ZTogRGF0ZSkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gZWxlbWVudHMgYW5kIGlucHV0IGdyb3Vwcy5cbiAgICovXG4gIHdyYXA/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBcnJheSBvZiBwbHVnaW4gaW5zdGFuY2VzIHRvIHVzZS5cbiAgICovXG4gIHBsdWdpbnM/OiBhbnlbXTtcblxuICAvKipcbiAgICogVGhlIGxvY2FsZSBvYmplY3Qgb3Igc3RyaW5nIHRvIHVzZSBmb3IgdGhlIGxvY2FsZS5cbiAgICovXG4gIGxvY2FsZT86IG9iamVjdCB8IHN0cmluZztcblxuICAvKipcbiAgICogQXV0byBjb252ZXJ0IHRoZSBuZ01vZGVsIHZhbHVlIGZyb20gYSBzdHJpbmcgdG8gYSBkYXRlIC8gYXJyYXkgb2YgZGF0ZXMgLyBmcm9tIC0gdG8gZGF0ZSBvYmplY3QgZGVwZW5kaW5nIG9uIHRoZSBgbW9kZWBcbiAgICovXG4gIGNvbnZlcnRNb2RlbFZhbHVlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBtb250aHMgc2hvd24uXG4gICAqL1xuICBzaG93TW9udGhzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBIb3cgdGhlIG1vbnRoIHNob3VsZCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGhlYWRlciBvZiB0aGUgY2FsZW5kYXIuXG4gICAqL1xuICBtb250aFNlbGVjdG9yVHlwZT86ICdzdGF0aWMnIHwgJ2Ryb3Bkb3duJztcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZsYXRwaWNrckRlZmF1bHRzIGltcGxlbWVudHMgRmxhdHBpY2tyRGVmYXVsdHNJbnRlcmZhY2Uge1xuICAvKipcbiAgICogRXhhY3RseSB0aGUgc2FtZSBhcyBkYXRlIGZvcm1hdCwgYnV0IGZvciB0aGUgYWx0SW5wdXQgZmllbGQuXG4gICAqL1xuICBhbHRGb3JtYXQ6IHN0cmluZyA9ICdGIGosIFknO1xuXG4gIC8qKlxuICAgKiBcdFNob3cgdGhlIHVzZXIgYSByZWFkYWJsZSBkYXRlIChhcyBwZXIgYWx0Rm9ybWF0KSwgYnV0IHJldHVybiBzb21ldGhpbmcgdG90YWxseSBkaWZmZXJlbnQgdG8gdGhlIHNlcnZlci5cbiAgICovXG4gIGFsdElucHV0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoaXMgY2xhc3Mgd2lsbCBiZSBhZGRlZCB0byB0aGUgaW5wdXQgZWxlbWVudCBjcmVhdGVkIGJ5IHRoZSBhbHRJbnB1dCBvcHRpb24uXG4gICAqIE5vdGUgdGhhdCBgYWx0SW5wdXRgIGFscmVhZHkgaW5oZXJpdHMgY2xhc3NlcyBmcm9tIHRoZSBvcmlnaW5hbCBpbnB1dC5cbiAgICovXG4gIGFsdElucHV0Q2xhc3M6IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBBbGxvd3MgdGhlIHVzZXIgdG8gZW50ZXIgYSBkYXRlIGRpcmVjdGx5IGlucHV0IHRoZSBpbnB1dCBmaWVsZC4gQnkgZGVmYXVsdCwgZGlyZWN0IGVudHJ5IGlzIGRpc2FibGVkLlxuICAgKi9cbiAgYWxsb3dJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbnN0ZWFkIG9mIGBib2R5YCwgYXBwZW5kcyB0aGUgY2FsZW5kYXIgdG8gdGhlIHNwZWNpZmllZCBub2RlIGluc3RlYWQuXG4gICAqL1xuICBhcHBlbmRUbzogSFRNTEVsZW1lbnQgPSB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgaG93IHRoZSBkYXRlIHdpbGwgYmUgZm9ybWF0dGVkIGluIHRoZSBhcmlhLWxhYmVsIGZvciBjYWxlbmRhciBkYXlzLCB1c2luZyB0aGUgc2FtZSB0b2tlbnMgYXMgZGF0ZUZvcm1hdC4gSWYgeW91IGNoYW5nZSB0aGlzLCB5b3Ugc2hvdWxkIGNob29zZSBhIHZhbHVlIHRoYXQgd2lsbCBtYWtlIHNlbnNlIGlmIGEgc2NyZWVuIHJlYWRlciByZWFkcyBpdCBvdXQgbG91ZC5cbiAgICovXG4gIGFyaWFEYXRlRm9ybWF0Pzogc3RyaW5nID0gJ0YgaiwgWSc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgY2xpY2tpbmcgb24gdGhlIGlucHV0IHNob3VsZCBvcGVuIHRoZSBwaWNrZXIuXG4gICAqIFlvdSBjb3VsZCBkaXNhYmxlIHRoaXMgaWYgeW91IHdpc2ggdG8gb3BlbiB0aGUgY2FsZW5kYXIgbWFudWFsbHkgYHdpdGgub3BlbigpYC5cbiAgICovXG4gIGNsaWNrT3BlbnM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBBIHN0cmluZyBvZiBjaGFyYWN0ZXJzIHdoaWNoIGFyZSB1c2VkIHRvIGRlZmluZSBob3cgdGhlIGRhdGUgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGlucHV0IGJveC5cbiAgICogVGhlIHN1cHBvcnRlZCBjaGFyYWN0ZXJzIGFyZSBkZWZpbmVkIGluIHRoZSB0YWJsZSBiZWxvdy5cbiAgICovXG4gIGRhdGVGb3JtYXQ6IHN0cmluZyA9ICdZLW0tZCc7XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgdmFsdWUgb2YgdGhlIGhvdXIgZWxlbWVudC5cbiAgICovXG4gIGRlZmF1bHRIb3VyPzogbnVtYmVyID0gMTI7XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgdmFsdWUgb2YgdGhlIG1pbnV0ZSBlbGVtZW50LlxuICAgKi9cbiAgZGVmYXVsdE1pbnV0ZT86IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgdmFsdWUgb2YgdGhlIHNlY29uZHMgZWxlbWVudC5cbiAgICovXG4gIGRlZmF1bHRTZWNvbmRzPzogbnVtYmVyID0gMDtcblxuICAvKipcbiAgICogU2VlIDxhIGhyZWY9XCJodHRwczovL2NobWxuLmdpdGh1Yi5pby9mbGF0cGlja3IvZXhhbXBsZXMvI2Rpc2FibGluZy1zcGVjaWZpYy1kYXRlc1wiPmRpc2FibGluZyBkYXRlczwvYT4uXG4gICAqL1xuICBkaXNhYmxlOiBEaXNhYmxlRW5hYmxlRGF0ZVtdID0gW107XG5cbiAgLyoqXG4gICAqIFNldCBkaXNhYmxlTW9iaWxlIHRvIHRydWUgdG8gYWx3YXlzIHVzZSB0aGUgbm9uLW5hdGl2ZSBwaWNrZXIuXG4gICAqIEJ5IGRlZmF1bHQsIEZsYXRwaWNrciB1dGlsaXplcyBuYXRpdmUgZGF0ZXRpbWUgd2lkZ2V0cyB1bmxlc3MgY2VydGFpbiBvcHRpb25zIChlLmcuIGRpc2FibGUpIGFyZSB1c2VkLlxuICAgKi9cbiAgZGlzYWJsZU1vYmlsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTZWUgPGEgaHJlZj1cImh0dHBzOi8vY2htbG4uZ2l0aHViLmlvL2ZsYXRwaWNrci9leGFtcGxlcy8jZGlzYWJsaW5nLWFsbC1kYXRlcy1leGNlcHQtc2VsZWN0LWZld1wiPmVuYWJsaW5nIGRhdGVzPC9hPi5cbiAgICovXG4gIGVuYWJsZTogRGlzYWJsZUVuYWJsZURhdGVbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIHRpbWUgcGlja2VyLlxuICAgKi9cbiAgZW5hYmxlVGltZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIHNlY29uZHMgaW4gdGhlIHRpbWUgcGlja2VyLlxuICAgKi9cbiAgZW5hYmxlU2Vjb25kczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBBbGxvd3MgdXNpbmcgYSBjdXN0b20gZGF0ZSBmb3JtYXR0aW5nIGZ1bmN0aW9uIGluc3RlYWQgb2YgdGhlIGJ1aWx0LWluIGhhbmRsaW5nIGZvciBkYXRlIGZvcm1hdHMgdXNpbmcgZGF0ZUZvcm1hdCwgYWx0Rm9ybWF0LCBldGMuXG4gICAqL1xuICBmb3JtYXREYXRlPzogKHZhbHVlOiBhbnkpID0+IHN0cmluZyA9IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQWRqdXN0cyB0aGUgc3RlcCBmb3IgdGhlIGhvdXIgaW5wdXQgKGluY2wuIHNjcm9sbGluZykuXG4gICAqL1xuICBob3VySW5jcmVtZW50OiBudW1iZXIgPSAxO1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5cyB0aGUgY2FsZW5kYXIgaW5saW5lLlxuICAgKi9cbiAgaW5saW5lOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGRhdGUgdGhhdCBhIHVzZXIgY2FuIHBpY2sgdG8gKGluY2x1c2l2ZSkuXG4gICAqL1xuICBtYXhEYXRlOiBzdHJpbmcgfCBEYXRlID0gdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBkYXRlIHRoYXQgYSB1c2VyIGNhbiBzdGFydCBwaWNraW5nIGZyb20gKGluY2x1c2l2ZSkuXG4gICAqL1xuICBtaW5EYXRlOiBzdHJpbmcgfCBEYXRlID0gdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBBZGp1c3RzIHRoZSBzdGVwIGZvciB0aGUgbWludXRlIGlucHV0IChpbmNsLiBzY3JvbGxpbmcpLlxuICAgKi9cbiAgbWludXRlSW5jcmVtZW50OiBudW1iZXIgPSA1O1xuXG4gIC8qKlxuICAgKiBTZWxlY3QgYSBzaW5nbGUgZGF0ZSwgbXVsdGlwbGUgZGF0ZXMgb3IgYSBkYXRlIHJhbmdlLlxuICAgKi9cbiAgbW9kZTogJ3NpbmdsZScgfCAnbXVsdGlwbGUnIHwgJ3JhbmdlJyA9ICdzaW5nbGUnO1xuXG4gIC8qKlxuICAgKiBIVE1MIGZvciB0aGUgYXJyb3cgaWNvbiwgdXNlZCB0byBzd2l0Y2ggbW9udGhzLlxuICAgKi9cbiAgbmV4dEFycm93OiBzdHJpbmcgPSAnPic7XG5cbiAgLyoqXG4gICAqIEhpZGVzIHRoZSBkYXkgc2VsZWN0aW9uIGluIGNhbGVuZGFyLiBVc2UgaXQgYWxvbmcgd2l0aCBgZW5hYmxlVGltZWAgdG8gY3JlYXRlIGEgdGltZSBwaWNrZXIuXG4gICAqL1xuICBub0NhbGVuZGFyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgbm93IHRvIHRoZSBjdXJyZW50IGRhdGVcbiAgICovXG4gIG5vdzogRGF0ZSB8IHN0cmluZyB8IG51bWJlciA9IG5ldyBEYXRlKCk7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRoYXQgZXhwZWN0cyBhIGRhdGUgc3RyaW5nIGFuZCBtdXN0IHJldHVybiBhIERhdGUgb2JqZWN0LlxuICAgKi9cbiAgcGFyc2VEYXRlOiAoc3RyOiBzdHJpbmcpID0+IERhdGU7XG5cbiAgLyoqXG4gICAqIEhUTUwgZm9yIHRoZSBsZWZ0IGFycm93IGljb24uXG4gICAqL1xuICBwcmV2QXJyb3c6IHN0cmluZyA9ICc8JztcblxuICAvKipcbiAgICogU2hvdyB0aGUgbW9udGggdXNpbmcgdGhlIHNob3J0aGFuZCB2ZXJzaW9uIChpZSwgU2VwIGluc3RlYWQgb2YgU2VwdGVtYmVyKS5cbiAgICovXG4gIHNob3J0aGFuZEN1cnJlbnRNb250aDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBQb3NpdGlvbiB0aGUgY2FsZW5kYXIgaW5zaWRlIHRoZSB3cmFwcGVyIGFuZCBuZXh0IHRvIHRoZSBpbnB1dCBlbGVtZW50LiAoTGVhdmUgYGZhbHNlYCB1bmxlc3MgeW91IGtub3cgd2hhdCB5b3UncmUgZG9pbmcpLlxuICAgKi9cbiAgc3RhdGljOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIERpc3BsYXlzIHRpbWUgcGlja2VyIGluIDI0IGhvdXIgbW9kZSB3aXRob3V0IEFNL1BNIHNlbGVjdGlvbiB3aGVuIGVuYWJsZWQuXG4gICAqL1xuICB0aW1lMjRocjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGVuIHRydWUsIGRhdGVzIHdpbGwgcGFyc2VkLCBmb3JtYXR0ZWQsIGFuZCBkaXNwbGF5ZWQgaW4gVVRDLlxuICAgKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgZGF0ZSBzdHJpbmdzIGNvbnRhaW4gdGhlIHRpbWV6b25lLCBidXQgbm90IG5lY2Vzc2FyeS5cbiAgICovXG4gIHV0YzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIGRpc3BsYXkgb2Ygd2VlayBudW1iZXJzIGluIGNhbGVuZGFyLlxuICAgKi9cbiAgd2Vla051bWJlcnM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogWW91IG1heSBvdmVycmlkZSB0aGUgZnVuY3Rpb24gdGhhdCBleHRyYWN0cyB0aGUgd2VlayBudW1iZXJzIGZyb20gYSBEYXRlIGJ5IHN1cHBseWluZyBhIGdldFdlZWsgZnVuY3Rpb24uXG4gICAqIEl0IHRha2VzIGluIGEgZGF0ZSBhcyBhIHBhcmFtZXRlciBhbmQgc2hvdWxkIHJldHVybiBhIGNvcnJlc3BvbmRpbmcgc3RyaW5nIHRoYXQgeW91IHdhbnQgdG8gYXBwZWFyIGxlZnQgb2YgZXZlcnkgd2Vlay5cbiAgICovXG4gIGdldFdlZWs6IChkYXRlOiBEYXRlKSA9PiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBlbGVtZW50cyBhbmQgaW5wdXQgZ3JvdXBzLlxuICAgKi9cbiAgd3JhcDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBBcnJheSBvZiBwbHVnaW4gaW5zdGFuY2VzIHRvIHVzZS5cbiAgICovXG4gIHBsdWdpbnM6IGFueVtdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NhbGUgb2JqZWN0IG9yIHN0cmluZyB0byB1c2UgZm9yIHRoZSBsb2NhbGUuXG4gICAqL1xuICBsb2NhbGU6IG9iamVjdCB8IHN0cmluZyA9ICdkZWZhdWx0JztcblxuICAvKipcbiAgICogQXV0byBjb252ZXJ0IHRoZSBuZ01vZGVsIHZhbHVlIGZyb20gYSBzdHJpbmcgdG8gYSBkYXRlIC8gYXJyYXkgb2YgZGF0ZXMgLyBmcm9tIC0gdG8gZGF0ZSBvYmplY3QgZGVwZW5kaW5nIG9uIHRoZSBgbW9kZWBcbiAgICovXG4gIGNvbnZlcnRNb2RlbFZhbHVlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgbW9udGhzIHNob3duLlxuICAgKi9cbiAgc2hvd01vbnRoczogbnVtYmVyID0gMTtcblxuICAvKipcbiAgICogSG93IHRoZSBtb250aCBzaG91bGQgYmUgZGlzcGxheWVkIGluIHRoZSBoZWFkZXIgb2YgdGhlIGNhbGVuZGFyLlxuICAgKi9cbiAgbW9udGhTZWxlY3RvclR5cGU6ICdzdGF0aWMnIHwgJ2Ryb3Bkb3duJyA9ICdzdGF0aWMnO1xufVxuIl19 | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdHBpY2tyLWRlZmF1bHRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyeC1mbGF0cGlja3IvIiwic291cmNlcyI6WyJmbGF0cGlja3ItZGVmYXVsdHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7eUJBME5yQixRQUFROzs7O3dCQUtSLEtBQUs7Ozs7OzZCQU1ELEVBQUU7Ozs7MEJBS0osS0FBSzs7Ozt3QkFLSCxTQUFTOzs7OzhCQUtQLFFBQVE7Ozs7OzBCQU1aLElBQUk7Ozs7OzBCQU1MLE9BQU87Ozs7MkJBS0wsRUFBRTs7Ozs2QkFLQSxDQUFDOzs7OzhCQUtBLENBQUM7Ozs7dUJBS0ksRUFBRTs7Ozs7NkJBTVIsS0FBSzs7OzswQkFVUixLQUFLOzs7OzZCQUtGLEtBQUs7Ozs7MEJBS1EsU0FBUzs7Ozs2QkFLdkIsQ0FBQzs7OztzQkFLUCxLQUFLOzs7O3VCQUtFLFNBQVM7Ozs7dUJBS1QsU0FBUzs7OzsrQkFLUixDQUFDOzs7O29CQUthLFFBQVE7Ozs7eUJBSzVCLEdBQUc7Ozs7MEJBS0QsS0FBSzs7OzttQkFLRyxJQUFJLElBQUksRUFBRTs7Ozt5QkFVcEIsR0FBRzs7OztxQ0FLVSxLQUFLOzs7O3NCQUtwQixLQUFLOzs7O3dCQUtILEtBQUs7Ozs7O21CQU1WLEtBQUs7Ozs7MkJBS0csS0FBSzs7OztvQkFXWixLQUFLOzs7O3VCQUtKLEVBQUU7Ozs7c0JBS08sU0FBUzs7OztpQ0FLTixLQUFLOzs7OzBCQUtiLENBQUM7Ozs7aUNBS3FCLFFBQVE7OztnQkE5TXBELFVBQVU7OzRCQXJOWDs7U0FzTmEsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBEaXNhYmxlRW5hYmxlRGF0ZSA9XG4gIHwgc3RyaW5nXG4gIHwgRGF0ZVxuICB8IHsgZnJvbTogRGF0ZSB8IHN0cmluZzsgdG86IERhdGUgfCBzdHJpbmcgfVxuICB8ICgoZGF0ZTogRGF0ZSkgPT4gYm9vbGVhbik7XG5cbi8vIHRzbGludDpkaXNhYmxlIG5vLWluZmVycmFibGUtdHlwZXNcblxuZXhwb3J0IGludGVyZmFjZSBGbGF0cGlja3JEZWZhdWx0c0ludGVyZmFjZSB7XG4gIC8qKlxuICAgKiBFeGFjdGx5IHRoZSBzYW1lIGFzIGRhdGUgZm9ybWF0LCBidXQgZm9yIHRoZSBhbHRJbnB1dCBmaWVsZC5cbiAgICovXG4gIGFsdEZvcm1hdD86IHN0cmluZztcblxuICAvKipcbiAgICogXHRTaG93IHRoZSB1c2VyIGEgcmVhZGFibGUgZGF0ZSAoYXMgcGVyIGFsdEZvcm1hdCksIGJ1dCByZXR1cm4gc29tZXRoaW5nIHRvdGFsbHkgZGlmZmVyZW50IHRvIHRoZSBzZXJ2ZXIuXG4gICAqL1xuICBhbHRJbnB1dD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoaXMgY2xhc3Mgd2lsbCBiZSBhZGRlZCB0byB0aGUgaW5wdXQgZWxlbWVudCBjcmVhdGVkIGJ5IHRoZSBhbHRJbnB1dCBvcHRpb24uXG4gICAqIE5vdGUgdGhhdCBgYWx0SW5wdXRgIGFscmVhZHkgaW5oZXJpdHMgY2xhc3NlcyBmcm9tIHRoZSBvcmlnaW5hbCBpbnB1dC5cbiAgICovXG4gIGFsdElucHV0Q2xhc3M/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFsbG93cyB0aGUgdXNlciB0byBlbnRlciBhIGRhdGUgZGlyZWN0bHkgaW5wdXQgdGhlIGlucHV0IGZpZWxkLiBCeSBkZWZhdWx0LCBkaXJlY3QgZW50cnkgaXMgZGlzYWJsZWQuXG4gICAqL1xuICBhbGxvd0lucHV0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5zdGVhZCBvZiBgYm9keWAsIGFwcGVuZHMgdGhlIGNhbGVuZGFyIHRvIHRoZSBzcGVjaWZpZWQgbm9kZSBpbnN0ZWFkLlxuICAgKi9cbiAgYXBwZW5kVG8/OiBIVE1MRWxlbWVudDtcblxuICAvKipcbiAgICogRGVmaW5lcyBob3cgdGhlIGRhdGUgd2lsbCBiZSBmb3JtYXR0ZWQgaW4gdGhlIGFyaWEtbGFiZWwgZm9yIGNhbGVuZGFyIGRheXMsIHVzaW5nIHRoZSBzYW1lIHRva2VucyBhcyBkYXRlRm9ybWF0LiBJZiB5b3UgY2hhbmdlIHRoaXMsIHlvdSBzaG91bGQgY2hvb3NlIGEgdmFsdWUgdGhhdCB3aWxsIG1ha2Ugc2Vuc2UgaWYgYSBzY3JlZW4gcmVhZGVyIHJlYWRzIGl0IG91dCBsb3VkLlxuICAgKi9cbiAgYXJpYURhdGVGb3JtYXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgY2xpY2tpbmcgb24gdGhlIGlucHV0IHNob3VsZCBvcGVuIHRoZSBwaWNrZXIuXG4gICAqIFlvdSBjb3VsZCBkaXNhYmxlIHRoaXMgaWYgeW91IHdpc2ggdG8gb3BlbiB0aGUgY2FsZW5kYXIgbWFudWFsbHkgYHdpdGgub3BlbigpYC5cbiAgICovXG4gIGNsaWNrT3BlbnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBIHN0cmluZyBvZiBjaGFyYWN0ZXJzIHdoaWNoIGFyZSB1c2VkIHRvIGRlZmluZSBob3cgdGhlIGRhdGUgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGlucHV0IGJveC5cbiAgICogVGhlIHN1cHBvcnRlZCBjaGFyYWN0ZXJzIGFyZSBkZWZpbmVkIGluIHRoZSB0YWJsZSBiZWxvdy5cbiAgICovXG4gIGRhdGVGb3JtYXQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJbml0aWFsIHZhbHVlIG9mIHRoZSBob3VyIGVsZW1lbnQuXG4gICAqL1xuICBkZWZhdWx0SG91cj86IG51bWJlcjtcbiAgLyoqXG4gICAqIEluaXRpYWwgdmFsdWUgb2YgdGhlIG1pbnV0ZSBlbGVtZW50LlxuICAgKi9cbiAgZGVmYXVsdE1pbnV0ZT86IG51bWJlcjtcbiAgLyoqXG4gICAqIEluaXRpYWwgdmFsdWUgb2YgdGhlIHNlY29uZHMgZWxlbWVudC5cbiAgICovXG4gIGRlZmF1bHRTZWNvbmRzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTZWUgPGEgaHJlZj1cImh0dHBzOi8vY2htbG4uZ2l0aHViLmlvL2ZsYXRwaWNrci9leGFtcGxlcy8jZGlzYWJsaW5nLXNwZWNpZmljLWRhdGVzXCI+ZGlzYWJsaW5nIGRhdGVzPC9hPi5cbiAgICovXG4gIGRpc2FibGU/OiBEaXNhYmxlRW5hYmxlRGF0ZVtdO1xuXG4gIC8qKlxuICAgKiBTZXQgZGlzYWJsZU1vYmlsZSB0byB0cnVlIHRvIGFsd2F5cyB1c2UgdGhlIG5vbi1uYXRpdmUgcGlja2VyLlxuICAgKiBCeSBkZWZhdWx0LCBGbGF0cGlja3IgdXRpbGl6ZXMgbmF0aXZlIGRhdGV0aW1lIHdpZGdldHMgdW5sZXNzIGNlcnRhaW4gb3B0aW9ucyAoZS5nLiBkaXNhYmxlKSBhcmUgdXNlZC5cbiAgICovXG4gIGRpc2FibGVNb2JpbGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZWUgPGEgaHJlZj1cImh0dHBzOi8vY2htbG4uZ2l0aHViLmlvL2ZsYXRwaWNrci9leGFtcGxlcy8jZGlzYWJsaW5nLWFsbC1kYXRlcy1leGNlcHQtc2VsZWN0LWZld1wiPmVuYWJsaW5nIGRhdGVzPC9hPi5cbiAgICovXG4gIGVuYWJsZT86IERpc2FibGVFbmFibGVEYXRlW107XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGltZSBwaWNrZXIuXG4gICAqL1xuICBlbmFibGVUaW1lPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlcyBzZWNvbmRzIGluIHRoZSB0aW1lIHBpY2tlci5cbiAgICovXG4gIGVuYWJsZVNlY29uZHM/OiBib29sZWFuO1xuICAvKipcbiAgICogQWxsb3dzIHVzaW5nIGEgY3VzdG9tIGRhdGUgZm9ybWF0dGluZyBmdW5jdGlvbiBpbnN0ZWFkIG9mIHRoZSBidWlsdC1pbiBoYW5kbGluZyBmb3IgZGF0ZSBmb3JtYXRzIHVzaW5nIGRhdGVGb3JtYXQsIGFsdEZvcm1hdCwgZXRjLlxuICAgKi9cbiAgZm9ybWF0RGF0ZT86ICh2YWx1ZTogYW55KSA9PiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBZGp1c3RzIHRoZSBzdGVwIGZvciB0aGUgaG91ciBpbnB1dCAoaW5jbC4gc2Nyb2xsaW5nKS5cbiAgICovXG4gIGhvdXJJbmNyZW1lbnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIERpc3BsYXlzIHRoZSBjYWxlbmRhciBpbmxpbmUuXG4gICAqL1xuICBpbmxpbmU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBkYXRlIHRoYXQgYSB1c2VyIGNhbiBwaWNrIHRvIChpbmNsdXNpdmUpLlxuICAgKi9cbiAgbWF4RGF0ZT86IHN0cmluZyB8IERhdGU7XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIGRhdGUgdGhhdCBhIHVzZXIgY2FuIHN0YXJ0IHBpY2tpbmcgZnJvbSAoaW5jbHVzaXZlKS5cbiAgICovXG4gIG1pbkRhdGU/OiBzdHJpbmcgfCBEYXRlO1xuXG4gIC8qKlxuICAgKiBBZGp1c3RzIHRoZSBzdGVwIGZvciB0aGUgbWludXRlIGlucHV0IChpbmNsLiBzY3JvbGxpbmcpLlxuICAgKi9cbiAgbWludXRlSW5jcmVtZW50PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTZWxlY3QgYSBzaW5nbGUgZGF0ZSwgbXVsdGlwbGUgZGF0ZXMgb3IgYSBkYXRlIHJhbmdlLlxuICAgKi9cbiAgbW9kZT86ICdzaW5nbGUnIHwgJ211bHRpcGxlJyB8ICdyYW5nZSc7XG5cbiAgLyoqXG4gICAqIEhUTUwgZm9yIHRoZSBhcnJvdyBpY29uLCB1c2VkIHRvIHN3aXRjaCBtb250aHMuXG4gICAqL1xuICBuZXh0QXJyb3c/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEhpZGVzIHRoZSBkYXkgc2VsZWN0aW9uIGluIGNhbGVuZGFyLiBVc2UgaXQgYWxvbmcgd2l0aCBgZW5hYmxlVGltZWAgdG8gY3JlYXRlIGEgdGltZSBwaWNrZXIuXG4gICAqL1xuICBub0NhbGVuZGFyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUHJvdmlkZSBhIGRhdGUgZm9yICd0b2RheScsIHdoaWNoIHdpbGwgYmUgdXNlZCBpbnN0ZWFkIG9mIFwibmV3IERhdGUoKVwiXG4gICAqL1xuICBub3c/OiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0aGF0IGV4cGVjdHMgYSBkYXRlIHN0cmluZyBhbmQgbXVzdCByZXR1cm4gYSBEYXRlIG9iamVjdC5cbiAgICovXG4gIHBhcnNlRGF0ZT86IChzdHI6IHN0cmluZykgPT4gRGF0ZTtcblxuICAvKipcbiAgICogSFRNTCBmb3IgdGhlIGxlZnQgYXJyb3cgaWNvbi5cbiAgICovXG4gIHByZXZBcnJvdz86IHN0cmluZztcblxuICAvKipcbiAgICogU2hvdyB0aGUgbW9udGggdXNpbmcgdGhlIHNob3J0aGFuZCB2ZXJzaW9uIChpZSwgU2VwIGluc3RlYWQgb2YgU2VwdGVtYmVyKS5cbiAgICovXG4gIHNob3J0aGFuZEN1cnJlbnRNb250aD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFBvc2l0aW9uIHRoZSBjYWxlbmRhciBpbnNpZGUgdGhlIHdyYXBwZXIgYW5kIG5leHQgdG8gdGhlIGlucHV0IGVsZW1lbnQuIChMZWF2ZSBgZmFsc2VgIHVubGVzcyB5b3Uga25vdyB3aGF0IHlvdSdyZSBkb2luZykuXG4gICAqL1xuICBzdGF0aWM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5cyB0aW1lIHBpY2tlciBpbiAyNCBob3VyIG1vZGUgd2l0aG91dCBBTS9QTSBzZWxlY3Rpb24gd2hlbiBlbmFibGVkLlxuICAgKi9cbiAgdGltZTI0aHI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGVuIHRydWUsIGRhdGVzIHdpbGwgcGFyc2VkLCBmb3JtYXR0ZWQsIGFuZCBkaXNwbGF5ZWQgaW4gVVRDLlxuICAgKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgZGF0ZSBzdHJpbmdzIGNvbnRhaW4gdGhlIHRpbWV6b25lLCBidXQgbm90IG5lY2Vzc2FyeS5cbiAgICovXG4gIHV0Yz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgZGlzcGxheSBvZiB3ZWVrIG51bWJlcnMgaW4gY2FsZW5kYXIuXG4gICAqL1xuICB3ZWVrTnVtYmVycz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFlvdSBtYXkgb3ZlcnJpZGUgdGhlIGZ1bmN0aW9uIHRoYXQgZXh0cmFjdHMgdGhlIHdlZWsgbnVtYmVycyBmcm9tIGEgRGF0ZSBieSBzdXBwbHlpbmcgYSBnZXRXZWVrIGZ1bmN0aW9uLlxuICAgKiBJdCB0YWtlcyBpbiBhIGRhdGUgYXMgYSBwYXJhbWV0ZXIgYW5kIHNob3VsZCByZXR1cm4gYSBjb3JyZXNwb25kaW5nIHN0cmluZyB0aGF0IHlvdSB3YW50IHRvIGFwcGVhciBsZWZ0IG9mIGV2ZXJ5IHdlZWsuXG4gICAqL1xuICBnZXRXZWVrPzogKGRhdGU6IERhdGUpID0+IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIGVsZW1lbnRzIGFuZCBpbnB1dCBncm91cHMuXG4gICAqL1xuICB3cmFwPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQXJyYXkgb2YgcGx1Z2luIGluc3RhbmNlcyB0byB1c2UuXG4gICAqL1xuICBwbHVnaW5zPzogYW55W107XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NhbGUgb2JqZWN0IG9yIHN0cmluZyB0byB1c2UgZm9yIHRoZSBsb2NhbGUuXG4gICAqL1xuICBsb2NhbGU/OiBvYmplY3QgfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEF1dG8gY29udmVydCB0aGUgbmdNb2RlbCB2YWx1ZSBmcm9tIGEgc3RyaW5nIHRvIGEgZGF0ZSAvIGFycmF5IG9mIGRhdGVzIC8gZnJvbSAtIHRvIGRhdGUgb2JqZWN0IGRlcGVuZGluZyBvbiB0aGUgYG1vZGVgXG4gICAqL1xuICBjb252ZXJ0TW9kZWxWYWx1ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgbW9udGhzIHNob3duLlxuICAgKi9cbiAgc2hvd01vbnRocz86IG51bWJlcjtcblxuICAvKipcbiAgICogSG93IHRoZSBtb250aCBzaG91bGQgYmUgZGlzcGxheWVkIGluIHRoZSBoZWFkZXIgb2YgdGhlIGNhbGVuZGFyLlxuICAgKi9cbiAgbW9udGhTZWxlY3RvclR5cGU/OiAnc3RhdGljJyB8ICdkcm9wZG93bic7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGbGF0cGlja3JEZWZhdWx0cyBpbXBsZW1lbnRzIEZsYXRwaWNrckRlZmF1bHRzSW50ZXJmYWNlIHtcbiAgLyoqXG4gICAqIEV4YWN0bHkgdGhlIHNhbWUgYXMgZGF0ZSBmb3JtYXQsIGJ1dCBmb3IgdGhlIGFsdElucHV0IGZpZWxkLlxuICAgKi9cbiAgYWx0Rm9ybWF0OiBzdHJpbmcgPSAnRiBqLCBZJztcblxuICAvKipcbiAgICogXHRTaG93IHRoZSB1c2VyIGEgcmVhZGFibGUgZGF0ZSAoYXMgcGVyIGFsdEZvcm1hdCksIGJ1dCByZXR1cm4gc29tZXRoaW5nIHRvdGFsbHkgZGlmZmVyZW50IHRvIHRoZSBzZXJ2ZXIuXG4gICAqL1xuICBhbHRJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGlzIGNsYXNzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGlucHV0IGVsZW1lbnQgY3JlYXRlZCBieSB0aGUgYWx0SW5wdXQgb3B0aW9uLlxuICAgKiBOb3RlIHRoYXQgYGFsdElucHV0YCBhbHJlYWR5IGluaGVyaXRzIGNsYXNzZXMgZnJvbSB0aGUgb3JpZ2luYWwgaW5wdXQuXG4gICAqL1xuICBhbHRJbnB1dENsYXNzOiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogQWxsb3dzIHRoZSB1c2VyIHRvIGVudGVyIGEgZGF0ZSBkaXJlY3RseSBpbnB1dCB0aGUgaW5wdXQgZmllbGQuIEJ5IGRlZmF1bHQsIGRpcmVjdCBlbnRyeSBpcyBkaXNhYmxlZC5cbiAgICovXG4gIGFsbG93SW5wdXQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogSW5zdGVhZCBvZiBgYm9keWAsIGFwcGVuZHMgdGhlIGNhbGVuZGFyIHRvIHRoZSBzcGVjaWZpZWQgbm9kZSBpbnN0ZWFkLlxuICAgKi9cbiAgYXBwZW5kVG86IEhUTUxFbGVtZW50ID0gdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGhvdyB0aGUgZGF0ZSB3aWxsIGJlIGZvcm1hdHRlZCBpbiB0aGUgYXJpYS1sYWJlbCBmb3IgY2FsZW5kYXIgZGF5cywgdXNpbmcgdGhlIHNhbWUgdG9rZW5zIGFzIGRhdGVGb3JtYXQuIElmIHlvdSBjaGFuZ2UgdGhpcywgeW91IHNob3VsZCBjaG9vc2UgYSB2YWx1ZSB0aGF0IHdpbGwgbWFrZSBzZW5zZSBpZiBhIHNjcmVlbiByZWFkZXIgcmVhZHMgaXQgb3V0IGxvdWQuXG4gICAqL1xuICBhcmlhRGF0ZUZvcm1hdD86IHN0cmluZyA9ICdGIGosIFknO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGNsaWNraW5nIG9uIHRoZSBpbnB1dCBzaG91bGQgb3BlbiB0aGUgcGlja2VyLlxuICAgKiBZb3UgY291bGQgZGlzYWJsZSB0aGlzIGlmIHlvdSB3aXNoIHRvIG9wZW4gdGhlIGNhbGVuZGFyIG1hbnVhbGx5IGB3aXRoLm9wZW4oKWAuXG4gICAqL1xuICBjbGlja09wZW5zOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogQSBzdHJpbmcgb2YgY2hhcmFjdGVycyB3aGljaCBhcmUgdXNlZCB0byBkZWZpbmUgaG93IHRoZSBkYXRlIHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSBpbnB1dCBib3guXG4gICAqIFRoZSBzdXBwb3J0ZWQgY2hhcmFjdGVycyBhcmUgZGVmaW5lZCBpbiB0aGUgdGFibGUgYmVsb3cuXG4gICAqL1xuICBkYXRlRm9ybWF0OiBzdHJpbmcgPSAnWS1tLWQnO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIHZhbHVlIG9mIHRoZSBob3VyIGVsZW1lbnQuXG4gICAqL1xuICBkZWZhdWx0SG91cj86IG51bWJlciA9IDEyO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIHZhbHVlIG9mIHRoZSBtaW51dGUgZWxlbWVudC5cbiAgICovXG4gIGRlZmF1bHRNaW51dGU/OiBudW1iZXIgPSAwO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIHZhbHVlIG9mIHRoZSBzZWNvbmRzIGVsZW1lbnQuXG4gICAqL1xuICBkZWZhdWx0U2Vjb25kcz86IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqIFNlZSA8YSBocmVmPVwiaHR0cHM6Ly9jaG1sbi5naXRodWIuaW8vZmxhdHBpY2tyL2V4YW1wbGVzLyNkaXNhYmxpbmctc3BlY2lmaWMtZGF0ZXNcIj5kaXNhYmxpbmcgZGF0ZXM8L2E+LlxuICAgKi9cbiAgZGlzYWJsZTogRGlzYWJsZUVuYWJsZURhdGVbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBTZXQgZGlzYWJsZU1vYmlsZSB0byB0cnVlIHRvIGFsd2F5cyB1c2UgdGhlIG5vbi1uYXRpdmUgcGlja2VyLlxuICAgKiBCeSBkZWZhdWx0LCBGbGF0cGlja3IgdXRpbGl6ZXMgbmF0aXZlIGRhdGV0aW1lIHdpZGdldHMgdW5sZXNzIGNlcnRhaW4gb3B0aW9ucyAoZS5nLiBkaXNhYmxlKSBhcmUgdXNlZC5cbiAgICovXG4gIGRpc2FibGVNb2JpbGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogU2VlIDxhIGhyZWY9XCJodHRwczovL2NobWxuLmdpdGh1Yi5pby9mbGF0cGlja3IvZXhhbXBsZXMvI2Rpc2FibGluZy1hbGwtZGF0ZXMtZXhjZXB0LXNlbGVjdC1mZXdcIj5lbmFibGluZyBkYXRlczwvYT4uXG4gICAqL1xuICBlbmFibGU6IERpc2FibGVFbmFibGVEYXRlW107XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGltZSBwaWNrZXIuXG4gICAqL1xuICBlbmFibGVUaW1lOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgc2Vjb25kcyBpbiB0aGUgdGltZSBwaWNrZXIuXG4gICAqL1xuICBlbmFibGVTZWNvbmRzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEFsbG93cyB1c2luZyBhIGN1c3RvbSBkYXRlIGZvcm1hdHRpbmcgZnVuY3Rpb24gaW5zdGVhZCBvZiB0aGUgYnVpbHQtaW4gaGFuZGxpbmcgZm9yIGRhdGUgZm9ybWF0cyB1c2luZyBkYXRlRm9ybWF0LCBhbHRGb3JtYXQsIGV0Yy5cbiAgICovXG4gIGZvcm1hdERhdGU/OiAodmFsdWU6IGFueSkgPT4gc3RyaW5nID0gdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBBZGp1c3RzIHRoZSBzdGVwIGZvciB0aGUgaG91ciBpbnB1dCAoaW5jbC4gc2Nyb2xsaW5nKS5cbiAgICovXG4gIGhvdXJJbmNyZW1lbnQ6IG51bWJlciA9IDE7XG5cbiAgLyoqXG4gICAqIERpc3BsYXlzIHRoZSBjYWxlbmRhciBpbmxpbmUuXG4gICAqL1xuICBpbmxpbmU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gZGF0ZSB0aGF0IGEgdXNlciBjYW4gcGljayB0byAoaW5jbHVzaXZlKS5cbiAgICovXG4gIG1heERhdGU6IHN0cmluZyB8IERhdGUgPSB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIGRhdGUgdGhhdCBhIHVzZXIgY2FuIHN0YXJ0IHBpY2tpbmcgZnJvbSAoaW5jbHVzaXZlKS5cbiAgICovXG4gIG1pbkRhdGU6IHN0cmluZyB8IERhdGUgPSB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEFkanVzdHMgdGhlIHN0ZXAgZm9yIHRoZSBtaW51dGUgaW5wdXQgKGluY2wuIHNjcm9sbGluZykuXG4gICAqL1xuICBtaW51dGVJbmNyZW1lbnQ6IG51bWJlciA9IDU7XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBhIHNpbmdsZSBkYXRlLCBtdWx0aXBsZSBkYXRlcyBvciBhIGRhdGUgcmFuZ2UuXG4gICAqL1xuICBtb2RlOiAnc2luZ2xlJyB8ICdtdWx0aXBsZScgfCAncmFuZ2UnID0gJ3NpbmdsZSc7XG5cbiAgLyoqXG4gICAqIEhUTUwgZm9yIHRoZSBhcnJvdyBpY29uLCB1c2VkIHRvIHN3aXRjaCBtb250aHMuXG4gICAqL1xuICBuZXh0QXJyb3c6IHN0cmluZyA9ICc+JztcblxuICAvKipcbiAgICogSGlkZXMgdGhlIGRheSBzZWxlY3Rpb24gaW4gY2FsZW5kYXIuIFVzZSBpdCBhbG9uZyB3aXRoIGBlbmFibGVUaW1lYCB0byBjcmVhdGUgYSB0aW1lIHBpY2tlci5cbiAgICovXG4gIG5vQ2FsZW5kYXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogRGVmYXVsdCBub3cgdG8gdGhlIGN1cnJlbnQgZGF0ZVxuICAgKi9cbiAgbm93OiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyID0gbmV3IERhdGUoKTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gdGhhdCBleHBlY3RzIGEgZGF0ZSBzdHJpbmcgYW5kIG11c3QgcmV0dXJuIGEgRGF0ZSBvYmplY3QuXG4gICAqL1xuICBwYXJzZURhdGU6IChzdHI6IHN0cmluZykgPT4gRGF0ZTtcblxuICAvKipcbiAgICogSFRNTCBmb3IgdGhlIGxlZnQgYXJyb3cgaWNvbi5cbiAgICovXG4gIHByZXZBcnJvdzogc3RyaW5nID0gJzwnO1xuXG4gIC8qKlxuICAgKiBTaG93IHRoZSBtb250aCB1c2luZyB0aGUgc2hvcnRoYW5kIHZlcnNpb24gKGllLCBTZXAgaW5zdGVhZCBvZiBTZXB0ZW1iZXIpLlxuICAgKi9cbiAgc2hvcnRoYW5kQ3VycmVudE1vbnRoOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFBvc2l0aW9uIHRoZSBjYWxlbmRhciBpbnNpZGUgdGhlIHdyYXBwZXIgYW5kIG5leHQgdG8gdGhlIGlucHV0IGVsZW1lbnQuIChMZWF2ZSBgZmFsc2VgIHVubGVzcyB5b3Uga25vdyB3aGF0IHlvdSdyZSBkb2luZykuXG4gICAqL1xuICBzdGF0aWM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogRGlzcGxheXMgdGltZSBwaWNrZXIgaW4gMjQgaG91ciBtb2RlIHdpdGhvdXQgQU0vUE0gc2VsZWN0aW9uIHdoZW4gZW5hYmxlZC5cbiAgICovXG4gIHRpbWUyNGhyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSwgZGF0ZXMgd2lsbCBwYXJzZWQsIGZvcm1hdHRlZCwgYW5kIGRpc3BsYXllZCBpbiBVVEMuXG4gICAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCBkYXRlIHN0cmluZ3MgY29udGFpbiB0aGUgdGltZXpvbmUsIGJ1dCBub3QgbmVjZXNzYXJ5LlxuICAgKi9cbiAgdXRjOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgZGlzcGxheSBvZiB3ZWVrIG51bWJlcnMgaW4gY2FsZW5kYXIuXG4gICAqL1xuICB3ZWVrTnVtYmVyczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBZb3UgbWF5IG92ZXJyaWRlIHRoZSBmdW5jdGlvbiB0aGF0IGV4dHJhY3RzIHRoZSB3ZWVrIG51bWJlcnMgZnJvbSBhIERhdGUgYnkgc3VwcGx5aW5nIGEgZ2V0V2VlayBmdW5jdGlvbi5cbiAgICogSXQgdGFrZXMgaW4gYSBkYXRlIGFzIGEgcGFyYW1ldGVyIGFuZCBzaG91bGQgcmV0dXJuIGEgY29ycmVzcG9uZGluZyBzdHJpbmcgdGhhdCB5b3Ugd2FudCB0byBhcHBlYXIgbGVmdCBvZiBldmVyeSB3ZWVrLlxuICAgKi9cbiAgZ2V0V2VlazogKGRhdGU6IERhdGUpID0+IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIGVsZW1lbnRzIGFuZCBpbnB1dCBncm91cHMuXG4gICAqL1xuICB3cmFwOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEFycmF5IG9mIHBsdWdpbiBpbnN0YW5jZXMgdG8gdXNlLlxuICAgKi9cbiAgcGx1Z2luczogYW55W10gPSBbXTtcblxuICAvKipcbiAgICogVGhlIGxvY2FsZSBvYmplY3Qgb3Igc3RyaW5nIHRvIHVzZSBmb3IgdGhlIGxvY2FsZS5cbiAgICovXG4gIGxvY2FsZTogb2JqZWN0IHwgc3RyaW5nID0gJ2RlZmF1bHQnO1xuXG4gIC8qKlxuICAgKiBBdXRvIGNvbnZlcnQgdGhlIG5nTW9kZWwgdmFsdWUgZnJvbSBhIHN0cmluZyB0byBhIGRhdGUgLyBhcnJheSBvZiBkYXRlcyAvIGZyb20gLSB0byBkYXRlIG9iamVjdCBkZXBlbmRpbmcgb24gdGhlIGBtb2RlYFxuICAgKi9cbiAgY29udmVydE1vZGVsVmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBtb250aHMgc2hvd24uXG4gICAqL1xuICBzaG93TW9udGhzOiBudW1iZXIgPSAxO1xuXG4gIC8qKlxuICAgKiBIb3cgdGhlIG1vbnRoIHNob3VsZCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGhlYWRlciBvZiB0aGUgY2FsZW5kYXIuXG4gICAqL1xuICBtb250aFNlbGVjdG9yVHlwZTogJ3N0YXRpYycgfCAnZHJvcGRvd24nID0gJ3N0YXRpYyc7XG59XG4iXX0= |
@@ -190,2 +190,5 @@ /** | ||
| (options.altInputClass || '') + ' ' + this.elm.nativeElement.className; | ||
| if (!options.enable) { | ||
| delete options.enable; | ||
| } | ||
| this.instance = /** @type {?} */ (flatpickr(this.elm.nativeElement, options)); | ||
@@ -669,2 +672,2 @@ this.setDisabledState(this.isDisabled); | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdHBpY2tyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXJ4LWZsYXRwaWNrci8iLCJzb3VyY2VzIjpbImZsYXRwaWNrci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFFVixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFJWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsaUJBQWlCLEVBR2xCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBYWxDLE1BQU0sQ0FBQyxxQkFBTSxnQ0FBZ0MsR0FBUTtJQUNuRCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLGtCQUFrQixFQUFsQixDQUFrQixDQUFDOztJQUNqRCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7O0lBd1NBLDRCQUNVLEtBQ0EsVUFDQTtRQUZBLFFBQUcsR0FBSCxHQUFHO1FBQ0gsYUFBUSxHQUFSLFFBQVE7UUFDUixhQUFRLEdBQVIsUUFBUTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7dUJBNVE2QixFQUFFOzs7OzhCQTZNTSxJQUFJLFlBQVksRUFBRTs7OzsrQkFNakIsSUFBSSxZQUFZLEVBQUU7Ozs7b0NBUXRFLElBQUksWUFBWSxFQUFFOzs7OzZCQU1nQyxJQUFJLFlBQVksRUFBRTs7Ozs4QkFNakIsSUFBSSxZQUFZLEVBQUU7Ozs7b0NBUXJFLElBQUksWUFBWSxFQUFFOzs7O21DQVFsQixJQUFJLFlBQVksRUFBRTs7OztrQ0FRbEIsSUFBSSxZQUFZLEVBQUU7MEJBR0QsS0FBSzswQkFHUyxlQUFROzJCQUU3QixlQUFR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QWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBBZnRlclZpZXdJbml0LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBmb3J3YXJkUmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIFJlbmRlcmVyMlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEZsYXRwaWNrckRlZmF1bHRzLFxuICBEaXNhYmxlRW5hYmxlRGF0ZSxcbiAgRmxhdHBpY2tyRGVmYXVsdHNJbnRlcmZhY2Vcbn0gZnJvbSAnLi9mbGF0cGlja3ItZGVmYXVsdHMuc2VydmljZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgZmxhdHBpY2tyIGZyb20gJ2ZsYXRwaWNrcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxhdFBpY2tyT3V0cHV0T3B0aW9ucyB7XG4gIHNlbGVjdGVkRGF0ZXM6IERhdGVbXTtcbiAgZGF0ZVN0cmluZzogc3RyaW5nO1xuICBpbnN0YW5jZTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsYXRQaWNrckRheUNyZWF0ZU91dHB1dE9wdGlvbnNcbiAgZXh0ZW5kcyBGbGF0UGlja3JPdXRwdXRPcHRpb25zIHtcbiAgZGF5RWxlbWVudDogSFRNTEVsZW1lbnQ7XG59XG5cbmV4cG9ydCBjb25zdCBGTEFUUElDS1JfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRmxhdHBpY2tyRGlyZWN0aXZlKSwgLy90c2xpbnQ6ZGlzYWJsZS1saW5lXG4gIG11bHRpOiB0cnVlXG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbXdsRmxhdHBpY2tyXScsXG4gIHByb3ZpZGVyczogW0ZMQVRQSUNLUl9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SXSxcbiAgaG9zdDoge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLWxpbmUgdXNlLWhvc3QtcHJvcGVydHktZGVjb3JhdG9yXG4gICAgJyhibHVyKSc6ICdvblRvdWNoZWRGbigpJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIEZsYXRwaWNrckRpcmVjdGl2ZVxuICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIC8qKlxuICAgKiBPYmplY3Qtb3B0aW9ucyB0aGF0IGNhbiBiZSB1c2VyIGZvciBtdWx0aXBsZSBpbnN0YW5jZXMgb2YgRmxhdHBpY2tyLlxuICAgKiBPcHRpb24gZnJvbSB0aGlzIG9iamVjdCBpcyBhcHBsaWVkIG9ubHkgaWYgc3BlY2lmaWMgb3B0aW9uIGlzIG5vdCBzcGVjaWZpZWQuXG4gICAqIEV4YW1wbGU6XG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogb3B0aW9uczogRmxhdHBpY2tyRGVmYXVsdHNJbnRlcmZhY2UgPSB7XG4gICAqICAgICAgYWx0Rm9ybWF0OiAnZC9tL1knLCAgIC8vIHdpbGwgYmUgaWdub3JlZCBzaW5jZSBhbHRGb3JtYXQgaXMgcHJvdmlkZWQgdmlhIHNwZWNpZmljIGF0dHJpYnV0ZVxuICAgKiAgICAgIGFsdElucHV0OiB0cnVlICAgICAgICAvLyB3aWxsIGJlIHVzZWQgc2luY2Ugc3BlY2lmaWMgYXR0cmlidXRlIGlzIG5vdCBwcm92aWRlZFxuICAgKiB9O1xuICAgKiBgYGBcbiAgICogYGBgaHRtbFxuICAgKiA8aW5wdXRcbiAgICogICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAqICAgdHlwZT1cInRleHRcIlxuICAgKiAgIG13bEZsYXRwaWNrclxuICAgKiAgIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxuICAgKiAgIGFsdEZvcm1hdD1cImQvbS9ZXCI+XG4gICAqIGBgYFxuICAgKi9cbiAgQElucHV0KCkgb3B0aW9uczogRmxhdHBpY2tyRGVmYXVsdHNJbnRlcmZhY2UgPSB7fTtcblxuICAvKipcbiAgICogRXhhY3RseSB0aGUgc2FtZSBhcyBkYXRlIGZvcm1hdCwgYnV0IGZvciB0aGUgYWx0SW5wdXQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBhbHRGb3JtYXQ6IHN0cmluZztcblxuICAvKipcbiAgICogXHRTaG93IHRoZSB1c2VyIGEgcmVhZGFibGUgZGF0ZSAoYXMgcGVyIGFsdEZvcm1hdCksIGJ1dCByZXR1cm4gc29tZXRoaW5nIHRvdGFsbHkgZGlmZmVyZW50IHRvIHRoZSBzZXJ2ZXIuXG4gICAqL1xuICBASW5wdXQoKSBhbHRJbnB1dDogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhpcyBjbGFzcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBpbnB1dCBlbGVtZW50IGNyZWF0ZWQgYnkgdGhlIGFsdElucHV0IG9wdGlvbi5cbiAgICogTm90ZSB0aGF0IGBhbHRJbnB1dGAgYWxyZWFkeSBpbmhlcml0cyBjbGFzc2VzIGZyb20gdGhlIG9yaWdpbmFsIGlucHV0LlxuICAgKi9cbiAgQElucHV0KCkgYWx0SW5wdXRDbGFzczogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbGxvd3MgdGhlIHVzZXIgdG8gZW50ZXIgYSBkYXRlIGRpcmVjdGx5IGlucHV0IHRoZSBpbnB1dCBmaWVsZC4gQnkgZGVmYXVsdCwgZGlyZWN0IGVudHJ5IGlzIGRpc2FibGVkLlxuICAgKi9cbiAgQElucHV0KCkgYWxsb3dJbnB1dDogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5zdGVhZCBvZiBgYm9keWAsIGFwcGVuZHMgdGhlIGNhbGVuZGFyIHRvIHRoZSBzcGVjaWZpZWQgbm9kZSBpbnN0ZWFkLlxuICAgKi9cbiAgQElucHV0KCkgYXBwZW5kVG86IEhUTUxFbGVtZW50O1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGhvdyB0aGUgZGF0ZSB3aWxsIGJlIGZvcm1hdHRlZCBpbiB0aGUgYXJpYS1sYWJlbCBmb3IgY2FsZW5kYXIgZGF5cywgdXNpbmcgdGhlIHNhbWUgdG9rZW5zIGFzIGRhdGVGb3JtYXQuIElmIHlvdSBjaGFuZ2UgdGhpcywgeW91IHNob3VsZCBjaG9vc2UgYSB2YWx1ZSB0aGF0IHdpbGwgbWFrZSBzZW5zZSBpZiBhIHNjcmVlbiByZWFkZXIgcmVhZHMgaXQgb3V0IGxvdWQuXG4gICAqL1xuICBASW5wdXQoKSBhcmlhRGF0ZUZvcm1hdD86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBjbGlja2luZyBvbiB0aGUgaW5wdXQgc2hvdWxkIG9wZW4gdGhlIHBpY2tlci5cbiAgICogWW91IGNvdWxkIGRpc2FibGUgdGhpcyBpZiB5b3Ugd2lzaCB0byBvcGVuIHRoZSBjYWxlbmRhciBtYW51YWxseSBgd2l0aC5vcGVuKClgLlxuICAgKi9cbiAgQElucHV0KCkgY2xpY2tPcGVuczogYm9vbGVhbjtcblxuICAvKipcbiAgICogQSBzdHJpbmcgb2YgY2hhcmFjdGVycyB3aGljaCBhcmUgdXNlZCB0byBkZWZpbmUgaG93IHRoZSBkYXRlIHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSBpbnB1dCBib3guXG4gICAqIFRoZSBzdXBwb3J0ZWQgY2hhcmFjdGVycyBhcmUgZGVmaW5lZCBpbiB0aGUgdGFibGUgYmVsb3cuXG4gICAqL1xuICBASW5wdXQoKSBkYXRlRm9ybWF0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgdmFsdWUgb2YgdGhlIGhvdXIgZWxlbWVudC5cbiAgICovXG4gIEBJbnB1dCgpIGRlZmF1bHRIb3VyPzogbnVtYmVyO1xuICAvKipcbiAgICogSW5pdGlhbCB2YWx1ZSBvZiB0aGUgbWludXRlIGVsZW1lbnQuXG4gICAqL1xuICBASW5wdXQoKSBkZWZhdWx0TWludXRlPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIHZhbHVlIG9mIHRoZSBzZWNvbmRzIGVsZW1lbnQuXG4gICAqL1xuICBASW5wdXQoKSBkZWZhdWx0U2Vjb25kcz86IG51bWJlcjtcblxuICAvKipcbiAgICogU2VlIDxhIGhyZWY9XCJodHRwczovL2NobWxuLmdpdGh1Yi5pby9mbGF0cGlja3IvZXhhbXBsZXMvI2Rpc2FibGluZy1zcGVjaWZpYy1kYXRlc1wiPmRpc2FibGluZyBkYXRlczwvYT4uXG4gICAqL1xuICBASW5wdXQoKSBkaXNhYmxlOiBEaXNhYmxlRW5hYmxlRGF0ZVtdO1xuXG4gIC8qKlxuICAgKiBTZXQgZGlzYWJsZU1vYmlsZSB0byB0cnVlIHRvIGFsd2F5cyB1c2UgdGhlIG5vbi1uYXRpdmUgcGlja2VyLlxuICAgKiBCeSBkZWZhdWx0LCBGbGF0cGlja3IgdXRpbGl6ZXMgbmF0aXZlIGRhdGV0aW1lIHdpZGdldHMgdW5sZXNzIGNlcnRhaW4gb3B0aW9ucyAoZS5nLiBkaXNhYmxlKSBhcmUgdXNlZC5cbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVNb2JpbGU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNlZSA8YSBocmVmPVwiaHR0cHM6Ly9jaG1sbi5naXRodWIuaW8vZmxhdHBpY2tyL2V4YW1wbGVzLyNkaXNhYmxpbmctYWxsLWRhdGVzLWV4Y2VwdC1zZWxlY3QtZmV3XCI+ZW5hYmxpbmcgZGF0ZXM8L2E+LlxuICAgKi9cbiAgQElucHV0KCkgZW5hYmxlOiBEaXNhYmxlRW5hYmxlRGF0ZVtdO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIHRpbWUgcGlja2VyLlxuICAgKi9cbiAgQElucHV0KCkgZW5hYmxlVGltZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlcyBzZWNvbmRzIGluIHRoZSB0aW1lIHBpY2tlci5cbiAgICovXG4gIEBJbnB1dCgpIGVuYWJsZVNlY29uZHM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFsbG93cyB1c2luZyBhIGN1c3RvbSBkYXRlIGZvcm1hdHRpbmcgZnVuY3Rpb24gaW5zdGVhZCBvZiB0aGUgYnVpbHQtaW4gaGFuZGxpbmcgZm9yIGRhdGUgZm9ybWF0cyB1c2luZyBkYXRlRm9ybWF0LCBhbHRGb3JtYXQsIGV0Yy5cbiAgICovXG4gIEBJbnB1dCgpIGZvcm1hdERhdGU/OiAodmFsdWU6IGFueSkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGp1c3RzIHRoZSBzdGVwIGZvciB0aGUgaG91ciBpbnB1dCAoaW5jbC4gc2Nyb2xsaW5nKS5cbiAgICovXG4gIEBJbnB1dCgpIGhvdXJJbmNyZW1lbnQ6IG51bWJlcjtcblxuICAvKipcbiAgICogRGlzcGxheXMgdGhlIGNhbGVuZGFyIGlubGluZS5cbiAgICovXG4gIEBJbnB1dCgpIGlubGluZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gZGF0ZSB0aGF0IGEgdXNlciBjYW4gcGljayB0byAoaW5jbHVzaXZlKS5cbiAgICovXG4gIEBJbnB1dCgpIG1heERhdGU6IHN0cmluZyB8IERhdGU7XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIGRhdGUgdGhhdCBhIHVzZXIgY2FuIHN0YXJ0IHBpY2tpbmcgZnJvbSAoaW5jbHVzaXZlKS5cbiAgICovXG4gIEBJbnB1dCgpIG1pbkRhdGU6IHN0cmluZyB8IERhdGU7XG5cbiAgLyoqXG4gICAqIEFkanVzdHMgdGhlIHN0ZXAgZm9yIHRoZSBtaW51dGUgaW5wdXQgKGluY2wuIHNjcm9sbGluZykuXG4gICAqL1xuICBASW5wdXQoKSBtaW51dGVJbmNyZW1lbnQ6IG51bWJlcjtcblxuICAvKipcbiAgICogU2VsZWN0IGEgc2luZ2xlIGRhdGUsIG11bHRpcGxlIGRhdGVzIG9yIGEgZGF0ZSByYW5nZS5cbiAgICovXG4gIEBJbnB1dCgpIG1vZGU6ICdzaW5nbGUnIHwgJ211bHRpcGxlJyB8ICdyYW5nZSc7XG5cbiAgLyoqXG4gICAqIEhUTUwgZm9yIHRoZSBhcnJvdyBpY29uLCB1c2VkIHRvIHN3aXRjaCBtb250aHMuXG4gICAqL1xuICBASW5wdXQoKSBuZXh0QXJyb3c6IHN0cmluZztcblxuICAvKipcbiAgICogSGlkZXMgdGhlIGRheSBzZWxlY3Rpb24gaW4gY2FsZW5kYXIuIFVzZSBpdCBhbG9uZyB3aXRoIGBlbmFibGVUaW1lYCB0byBjcmVhdGUgYSB0aW1lIHBpY2tlci5cbiAgICovXG4gIEBJbnB1dCgpIG5vQ2FsZW5kYXI6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFByb3ZpZGUgYSBkYXRlIGZvciAndG9kYXknLCB3aGljaCB3aWxsIGJlIHVzZWQgaW5zdGVhZCBvZiBcIm5ldyBEYXRlKClcIlxuICAgKi9cbiAgQElucHV0KCkgbm93PzogRGF0ZSB8IHN0cmluZyB8IG51bWJlcjtcblxuICAvKipcbiAgICogRnVuY3Rpb24gdGhhdCBleHBlY3RzIGEgZGF0ZSBzdHJpbmcgYW5kIG11c3QgcmV0dXJuIGEgRGF0ZSBvYmplY3QuXG4gICAqL1xuICBASW5wdXQoKSBwYXJzZURhdGU6IChzdHI6IHN0cmluZykgPT4gRGF0ZTtcblxuICAvKipcbiAgICogSFRNTCBmb3IgdGhlIGxlZnQgYXJyb3cgaWNvbi5cbiAgICovXG4gIEBJbnB1dCgpIHByZXZBcnJvdzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaG93IHRoZSBtb250aCB1c2luZyB0aGUgc2hvcnRoYW5kIHZlcnNpb24gKGllLCBTZXAgaW5zdGVhZCBvZiBTZXB0ZW1iZXIpLlxuICAgKi9cbiAgQElucHV0KCkgc2hvcnRoYW5kQ3VycmVudE1vbnRoOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIG1vbnRocyBzaG93bi5cbiAgICovXG4gIEBJbnB1dCgpIHNob3dNb250aHM6IG51bWJlcjtcblxuICAvKipcbiAgICogUG9zaXRpb24gdGhlIGNhbGVuZGFyIGluc2lkZSB0aGUgd3JhcHBlciBhbmQgbmV4dCB0byB0aGUgaW5wdXQgZWxlbWVudC4gKExlYXZlIGBmYWxzZWAgdW5sZXNzIHlvdSBrbm93IHdoYXQgeW91J3JlIGRvaW5nKS5cbiAgICovXG4gIEBJbnB1dCgpIHN0YXRpYzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGlzcGxheXMgdGltZSBwaWNrZXIgaW4gMjQgaG91ciBtb2RlIHdpdGhvdXQgQU0vUE0gc2VsZWN0aW9uIHdoZW4gZW5hYmxlZC5cbiAgICovXG4gIEBJbnB1dCgpIHRpbWUyNGhyOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIGRpc3BsYXkgb2Ygd2VlayBudW1iZXJzIGluIGNhbGVuZGFyLlxuICAgKi9cbiAgQElucHV0KCkgd2Vla051bWJlcnM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFlvdSBtYXkgb3ZlcnJpZGUgdGhlIGZ1bmN0aW9uIHRoYXQgZXh0cmFjdHMgdGhlIHdlZWsgbnVtYmVycyBmcm9tIGEgRGF0ZSBieSBzdXBwbHlpbmcgYSBnZXRXZWVrIGZ1bmN0aW9uLlxuICAgKiBJdCB0YWtlcyBpbiBhIGRhdGUgYXMgYSBwYXJhbWV0ZXIgYW5kIHNob3VsZCByZXR1cm4gYSBjb3JyZXNwb25kaW5nIHN0cmluZyB0aGF0IHlvdSB3YW50IHRvIGFwcGVhciBsZWZ0IG9mIGV2ZXJ5IHdlZWsuXG4gICAqL1xuICBASW5wdXQoKSBnZXRXZWVrOiAoZGF0ZTogRGF0ZSkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gZWxlbWVudHMgYW5kIGlucHV0IGdyb3Vwcy5cbiAgICovXG4gIEBJbnB1dCgpIHdyYXA6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFycmF5IG9mIHBsdWdpbiBpbnN0YW5jZXMgdG8gdXNlLlxuICAgKi9cbiAgQElucHV0KCkgcGx1Z2luczogYW55W107XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NhbGUgb2JqZWN0IG9yIHN0cmluZyB0byB1c2UgZm9yIHRoZSBsb2NhbGUuXG4gICAqL1xuICBASW5wdXQoKSBsb2NhbGU6IG9iamVjdCB8IHN0cmluZztcblxuICAvKipcbiAgICogQXV0byBjb252ZXJ0IHRoZSBuZ01vZGVsIHZhbHVlIGZyb20gYSBzdHJpbmcgdG8gYSBkYXRlIC8gYXJyYXkgb2YgZGF0ZXMgLyBmcm9tIC0gdG8gZGF0ZSBvYmplY3QgZGVwZW5kaW5nIG9uIHRoZSBgbW9kZWBcbiAgICovXG4gIEBJbnB1dCgpIGNvbnZlcnRNb2RlbFZhbHVlOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBIb3cgdGhlIG1vbnRoIHNob3VsZCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGhlYWRlciBvZiB0aGUgY2FsZW5kYXIuXG4gICAqL1xuICBASW5wdXQoKSBtb250aFNlbGVjdG9yVHlwZTogJ3N0YXRpYycgfCAnZHJvcGRvd24nO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRyaWdnZXJlZCBvbmNlIHRoZSBjYWxlbmRhciBpcyBpbiBhIHJlYWR5IHN0YXRlXG4gICAqL1xuICBAT3V0cHV0KClcbiAgZmxhdHBpY2tyUmVhZHk6IEV2ZW50RW1pdHRlcjxGbGF0UGlja3JPdXRwdXRPcHRpb25zPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogR2V0cyB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBzZWxlY3RzIGEgZGF0ZSwgb3IgY2hhbmdlcyB0aGUgdGltZSBvbiBhIHNlbGVjdGVkIGRhdGUuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgZmxhdHBpY2tyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RmxhdFBpY2tyT3V0cHV0T3B0aW9ucz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEdldHMgdHJpZ2dlcmVkIHdoZW4gdGhlIGlucHV0IHZhbHVlIGlzIHVwZGF0ZWQgd2l0aCBhIG5ldyBkYXRlIHN0cmluZy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBmbGF0cGlja3JWYWx1ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPFxuICAgIEZsYXRQaWNrck91dHB1dE9wdGlvbnNcbiAgPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogR2V0cyB0cmlnZ2VyZWQgd2hlbiB0aGUgY2FsZW5kYXIgaXMgb3BlbmVkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGZsYXRwaWNrck9wZW46IEV2ZW50RW1pdHRlcjxGbGF0UGlja3JPdXRwdXRPcHRpb25zPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogR2V0cyB0cmlnZ2VyZWQgd2hlbiB0aGUgY2FsZW5kYXIgaXMgY2xvc2VkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGZsYXRwaWNrckNsb3NlOiBFdmVudEVtaXR0ZXI8RmxhdFBpY2tyT3V0cHV0T3B0aW9ucz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEdldHMgdHJpZ2dlcmVkIHdoZW4gdGhlIG1vbnRoIGlzIGNoYW5nZWQsIGVpdGhlciBieSB0aGUgdXNlciBvciBwcm9ncmFtbWF0aWNhbGx5LlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGZsYXRwaWNrck1vbnRoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8XG4gICAgRmxhdFBpY2tyT3V0cHV0T3B0aW9uc1xuICA+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRyaWdnZXJlZCB3aGVuIHRoZSB5ZWFyIGlzIGNoYW5nZWQsIGVpdGhlciBieSB0aGUgdXNlciBvciBwcm9ncmFtbWF0aWNhbGx5LlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGZsYXRwaWNrclllYXJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxcbiAgICBGbGF0UGlja3JPdXRwdXRPcHRpb25zXG4gID4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIFRha2UgZnVsbCBjb250cm9sIG9mIGV2ZXJ5IGRhdGUgY2VsbCB3aXRoIHRoaXMgb3V0cHV0XG4gICAqL1xuICBAT3V0cHV0KClcbiAgZmxhdHBpY2tyRGF5Q3JlYXRlOiBFdmVudEVtaXR0ZXI8XG4gICAgRmxhdFBpY2tyRGF5Q3JlYXRlT3V0cHV0T3B0aW9uc1xuICA+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByaXZhdGUgaW5zdGFuY2U6IGZsYXRwaWNrci5JbnN0YW5jZTtcbiAgcHJpdmF0ZSBpc0Rpc2FibGVkID0gZmFsc2U7XG4gIHByaXZhdGUgaW5pdGlhbFZhbHVlOiBhbnk7XG5cbiAgb25DaGFuZ2VGbjogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7fTsgLy8gdHNsaW50OmRpc2FibGUtbGluZVxuXG4gIG9uVG91Y2hlZEZuID0gKCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbG06IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBkZWZhdWx0czogRmxhdHBpY2tyRGVmYXVsdHMsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3Qgb3B0aW9uczogYW55ID0ge1xuICAgICAgYWx0Rm9ybWF0OiB0aGlzLmFsdEZvcm1hdCxcbiAgICAgIGFsdElucHV0OiB0aGlzLmFsdElucHV0LFxuICAgICAgYWx0SW5wdXRDbGFzczogdGhpcy5hbHRJbnB1dENsYXNzLFxuICAgICAgYWxsb3dJbnB1dDogdGhpcy5hbGxvd0lucHV0LFxuICAgICAgYXBwZW5kVG86IHRoaXMuYXBwZW5kVG8sXG4gICAgICBhcmlhRGF0ZUZvcm1hdDogdGhpcy5hcmlhRGF0ZUZvcm1hdCxcbiAgICAgIGNsaWNrT3BlbnM6IHRoaXMuY2xpY2tPcGVucyxcbiAgICAgIGRhdGVGb3JtYXQ6IHRoaXMuZGF0ZUZvcm1hdCxcbiAgICAgIGRlZmF1bHRIb3VyOiB0aGlzLmRlZmF1bHRIb3VyLFxuICAgICAgZGVmYXVsdE1pbnV0ZTogdGhpcy5kZWZhdWx0TWludXRlLFxuICAgICAgZGVmYXVsdFNlY29uZHM6IHRoaXMuZGVmYXVsdFNlY29uZHMsXG4gICAgICBkaXNhYmxlOiB0aGlzLmRpc2FibGUsXG4gICAgICBkaXNhYmxlTW9iaWxlOiB0aGlzLmRpc2FibGVNb2JpbGUsXG4gICAgICBlbmFibGU6IHRoaXMuZW5hYmxlLFxuICAgICAgZW5hYmxlVGltZTogdGhpcy5lbmFibGVUaW1lLFxuICAgICAgZW5hYmxlU2Vjb25kczogdGhpcy5lbmFibGVTZWNvbmRzLFxuICAgICAgZm9ybWF0RGF0ZTogdGhpcy5mb3JtYXREYXRlLFxuICAgICAgaG91ckluY3JlbWVudDogdGhpcy5ob3VySW5jcmVtZW50LFxuICAgICAgZGVmYXVsdERhdGU6IHRoaXMuaW5pdGlhbFZhbHVlLFxuICAgICAgaW5saW5lOiB0aGlzLmlubGluZSxcbiAgICAgIG1heERhdGU6IHRoaXMubWF4RGF0ZSxcbiAgICAgIG1pbkRhdGU6IHRoaXMubWluRGF0ZSxcbiAgICAgIG1pbnV0ZUluY3JlbWVudDogdGhpcy5taW51dGVJbmNyZW1lbnQsXG4gICAgICBtb2RlOiB0aGlzLm1vZGUsXG4gICAgICBuZXh0QXJyb3c6IHRoaXMubmV4dEFycm93LFxuICAgICAgbm9DYWxlbmRhcjogdGhpcy5ub0NhbGVuZGFyLFxuICAgICAgbm93OiB0aGlzLm5vdyxcbiAgICAgIHBhcnNlRGF0ZTogdGhpcy5wYXJzZURhdGUsXG4gICAgICBwcmV2QXJyb3c6IHRoaXMucHJldkFycm93LFxuICAgICAgc2hvcnRoYW5kQ3VycmVudE1vbnRoOiB0aGlzLnNob3J0aGFuZEN1cnJlbnRNb250aCxcbiAgICAgIHNob3dNb250aHM6IHRoaXMuc2hvd01vbnRocyxcbiAgICAgIG1vbnRoU2VsZWN0b3JUeXBlOiB0aGlzLm1vbnRoU2VsZWN0b3JUeXBlLFxuICAgICAgc3RhdGljOiB0aGlzLnN0YXRpYyxcbiAgICAgIHRpbWUyNGhyOiB0aGlzLnRpbWUyNGhyLFxuICAgICAgd2Vla051bWJlcnM6IHRoaXMud2Vla051bWJlcnMsXG4gICAgICBnZXRXZWVrOiB0aGlzLmdldFdlZWssXG4gICAgICB3cmFwOiB0aGlzLndyYXAsXG4gICAgICBwbHVnaW5zOiB0aGlzLnBsdWdpbnMsXG4gICAgICBsb2NhbGU6IHRoaXMubG9jYWxlLFxuICAgICAgb25DaGFuZ2U6IChzZWxlY3RlZERhdGVzOiBEYXRlW10sIGRhdGVTdHJpbmc6IHN0cmluZywgaW5zdGFuY2U6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmZsYXRwaWNrckNoYW5nZS5lbWl0KHsgc2VsZWN0ZWREYXRlcywgZGF0ZVN0cmluZywgaW5zdGFuY2UgfSk7XG4gICAgICB9LFxuICAgICAgb25PcGVuOiAoc2VsZWN0ZWREYXRlczogRGF0ZVtdLCBkYXRlU3RyaW5nOiBzdHJpbmcsIGluc3RhbmNlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5mbGF0cGlja3JPcGVuLmVtaXQoeyBzZWxlY3RlZERhdGVzLCBkYXRlU3RyaW5nLCBpbnN0YW5jZSB9KTtcbiAgICAgIH0sXG4gICAgICBvbkNsb3NlOiAoc2VsZWN0ZWREYXRlczogRGF0ZVtdLCBkYXRlU3RyaW5nOiBzdHJpbmcsIGluc3RhbmNlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5mbGF0cGlja3JDbG9zZS5lbWl0KHsgc2VsZWN0ZWREYXRlcywgZGF0ZVN0cmluZywgaW5zdGFuY2UgfSk7XG4gICAgICB9LFxuICAgICAgb25Nb250aENoYW5nZTogKFxuICAgICAgICBzZWxlY3RlZERhdGVzOiBEYXRlW10sXG4gICAgICAgIGRhdGVTdHJpbmc6IHN0cmluZyxcbiAgICAgICAgaW5zdGFuY2U6IGFueVxuICAgICAgKSA9PiB7XG4gICAgICAgIHRoaXMuZmxhdHBpY2tyTW9udGhDaGFuZ2UuZW1pdCh7IHNlbGVjdGVkRGF0ZXMsIGRhdGVTdHJpbmcsIGluc3RhbmNlIH0pO1xuICAgICAgfSxcbiAgICAgIG9uWWVhckNoYW5nZTogKFxuICAgICAgICBzZWxlY3RlZERhdGVzOiBEYXRlW10sXG4gICAgICAgIGRhdGVTdHJpbmc6IHN0cmluZyxcbiAgICAgICAgaW5zdGFuY2U6IGFueVxuICAgICAgKSA9PiB7XG4gICAgICAgIHRoaXMuZmxhdHBpY2tyWWVhckNoYW5nZS5lbWl0KHsgc2VsZWN0ZWREYXRlcywgZGF0ZVN0cmluZywgaW5zdGFuY2UgfSk7XG4gICAgICB9LFxuICAgICAgb25SZWFkeTogKHNlbGVjdGVkRGF0ZXM6IERhdGVbXSwgZGF0ZVN0cmluZzogc3RyaW5nLCBpbnN0YW5jZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuZmxhdHBpY2tyUmVhZHkuZW1pdCh7IHNlbGVjdGVkRGF0ZXMsIGRhdGVTdHJpbmcsIGluc3RhbmNlIH0pO1xuICAgICAgfSxcbiAgICAgIG9uVmFsdWVVcGRhdGU6IChcbiAgICAgICAgc2VsZWN0ZWREYXRlczogRGF0ZVtdLFxuICAgICAgICBkYXRlU3RyaW5nOiBzdHJpbmcsXG4gICAgICAgIGluc3RhbmNlOiBhbnlcbiAgICAgICkgPT4ge1xuICAgICAgICB0aGlzLmZsYXRwaWNrclZhbHVlVXBkYXRlLmVtaXQoeyBzZWxlY3RlZERhdGVzLCBkYXRlU3RyaW5nLCBpbnN0YW5jZSB9KTtcbiAgICAgIH0sXG4gICAgICBvbkRheUNyZWF0ZTogKFxuICAgICAgICBzZWxlY3RlZERhdGVzOiBEYXRlW10sXG4gICAgICAgIGRhdGVTdHJpbmc6IHN0cmluZyxcbiAgICAgICAgaW5zdGFuY2U6IGFueSxcbiAgICAgICAgZGF5RWxlbWVudDogSFRNTEVsZW1lbnRcbiAgICAgICkgPT4ge1xuICAgICAgICB0aGlzLmZsYXRwaWNrckRheUNyZWF0ZS5lbWl0KHtcbiAgICAgICAgICBzZWxlY3RlZERhdGVzLFxuICAgICAgICAgIGRhdGVTdHJpbmcsXG4gICAgICAgICAgaW5zdGFuY2UsXG4gICAgICAgICAgZGF5RWxlbWVudFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgT2JqZWN0LmtleXMob3B0aW9ucykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zW2tleV0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcHRpb25zW2tleV0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgb3B0aW9uc1trZXldID0gKHRoaXMub3B0aW9ucyBhcyBhbnkpW2tleV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3B0aW9uc1trZXldID0gKHRoaXMuZGVmYXVsdHMgYXMgYW55KVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgb3B0aW9ucy50aW1lXzI0aHIgPSBvcHRpb25zLnRpbWUyNGhyO1xuXG4gICAgLy8gd29ya2Fyb3VuZCBidWcgaW4gZmxhdHBpY2tyIDQuNiB3aGVyZSBpdCBkb2Vzbid0IGNvcHkgdGhlIGNsYXNzZXMgYWNyb3NzXG4gICAgLy8gVE9ETyAtIHJlbW92ZSBvbmNlIGZpeCBpbiBodHRwczovL2dpdGh1Yi5jb20vZmxhdHBpY2tyL2ZsYXRwaWNrci9pc3N1ZXMvMTg2MCBpcyByZWxlYXNlZFxuICAgIG9wdGlvbnMuYWx0SW5wdXRDbGFzcyA9XG4gICAgICAob3B0aW9ucy5hbHRJbnB1dENsYXNzIHx8ICcnKSArICcgJyArIHRoaXMuZWxtLm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lO1xuXG4gICAgdGhpcy5pbnN0YW5jZSA9IGZsYXRwaWNrcihcbiAgICAgIHRoaXMuZWxtLm5hdGl2ZUVsZW1lbnQsXG4gICAgICBvcHRpb25zXG4gICAgKSBhcyBmbGF0cGlja3IuSW5zdGFuY2U7XG4gICAgdGhpcy5zZXREaXNhYmxlZFN0YXRlKHRoaXMuaXNEaXNhYmxlZCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgIE9iamVjdC5rZXlzKGNoYW5nZXMpLmZvckVhY2goaW5wdXRLZXkgPT4ge1xuICAgICAgICB0aGlzLmluc3RhbmNlLnNldChpbnB1dEtleSBhcyBhbnksICh0aGlzIGFzIGFueSlbaW5wdXRLZXldKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XG5cdFx0dGhpcy5pbnN0YW5jZS5kZXN0cm95KCk7XG5cdH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGxldCBjb252ZXJ0ZWRWYWx1ZTogYW55ID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuY29udmVydE1vZGVsVmFsdWUgJiYgdGhpcy5tb2RlID09PSAncmFuZ2UnICYmIHZhbHVlKSB7XG4gICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFt2YWx1ZS5mcm9tLCB2YWx1ZS50b107XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgIHRoaXMuaW5zdGFuY2Uuc2V0RGF0ZShjb252ZXJ0ZWRWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGZsYXRwaWNrciBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCB5ZXQsIHN0b3JlIHRoZSB2YWx1ZSBmb3IgbGF0ZXIgdXNlXG4gICAgICB0aGlzLmluaXRpYWxWYWx1ZSA9IGNvbnZlcnRlZFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2VGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZEZuID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XG4gICAgICBpZiAodGhpcy5pc0Rpc2FibGVkKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5pbnN0YW5jZS5faW5wdXQsICdkaXNhYmxlZCcsICdkaXNhYmxlZCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5pbnN0YW5jZS5faW5wdXQsICdkaXNhYmxlZCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2lucHV0JylcbiAgaW5wdXRDaGFuZ2VkKCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlOiBzdHJpbmcgPSB0aGlzLmVsbS5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgIGlmICh0aGlzLmNvbnZlcnRNb2RlbFZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHN3aXRjaCAodGhpcy5tb2RlKSB7XG4gICAgICAgIGNhc2UgJ211bHRpcGxlJzpcbiAgICAgICAgICBjb25zdCBkYXRlczogRGF0ZVtdID0gdmFsdWVcbiAgICAgICAgICAgIC5zcGxpdCgnOyAnKVxuICAgICAgICAgICAgLm1hcChzdHIgPT5cbiAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5wYXJzZURhdGUoXG4gICAgICAgICAgICAgICAgc3RyLFxuICAgICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UuY29uZmlnLmRhdGVGb3JtYXQsXG4gICAgICAgICAgICAgICAgIXRoaXMuaW5zdGFuY2UuY29uZmlnLmVuYWJsZVRpbWVcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlRm4oZGF0ZXMpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3JhbmdlJzpcbiAgICAgICAgICBjb25zdCBbZnJvbSwgdG9dID0gdmFsdWVcbiAgICAgICAgICAgIC5zcGxpdCh0aGlzLmluc3RhbmNlLmwxMG4ucmFuZ2VTZXBhcmF0b3IpXG4gICAgICAgICAgICAubWFwKHN0ciA9PlxuICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlLnBhcnNlRGF0ZShcbiAgICAgICAgICAgICAgICBzdHIsXG4gICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5jb25maWcuZGF0ZUZvcm1hdCxcbiAgICAgICAgICAgICAgICAhdGhpcy5pbnN0YW5jZS5jb25maWcuZW5hYmxlVGltZVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMub25DaGFuZ2VGbih7IGZyb20sIHRvIH0pO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3NpbmdsZSc6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhpcy5vbkNoYW5nZUZuKFxuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5wYXJzZURhdGUoXG4gICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlLmNvbmZpZy5kYXRlRm9ybWF0LFxuICAgICAgICAgICAgICAhdGhpcy5pbnN0YW5jZS5jb25maWcuZW5hYmxlVGltZVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub25DaGFuZ2VGbih2YWx1ZSk7XG4gICAgfVxuICB9XG59XG4iXX0= | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdHBpY2tyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXJ4LWZsYXRwaWNrci8iLCJzb3VyY2VzIjpbImZsYXRwaWNrci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFFVixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFJWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsaUJBQWlCLEVBR2xCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBYWxDLE1BQU0sQ0FBQyxxQkFBTSxnQ0FBZ0MsR0FBUTtJQUNuRCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLGtCQUFrQixFQUFsQixDQUFrQixDQUFDOztJQUNqRCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7O0lBd1NBLDRCQUNVLEtBQ0EsVUFDQTtRQUZBLFFBQUcsR0FBSCxHQUFHO1FBQ0gsYUFBUSxHQUFSLFFBQVE7UUFDUixhQUFRLEdBQVIsUUFBUTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7dUJBNVE2QixFQUFFOzs7OzhCQTZNTSxJQUFJLFlBQVksRUFBRTs7OzsrQkFNakIsSUFBSSxZQUFZLEVBQUU7Ozs7b0NBUXRFLElBQUksWUFBWSxFQUFFOzs7OzZCQU1nQyxJQUFJLFlBQVksRUFBRTs7Ozs4QkFNakIsSUFBSSxZQUFZLEVBQUU7Ozs7b0NBUXJFLElBQUksWUFBWSxFQUFFOzs7O21DQVFsQixJQUFJLFlBQVksRUFBRTs7OztrQ0FRbEIsSUFBSSxZQUFZLEVBQUU7MEJBR0QsS0FBSzswQkFHUyxlQUFROzJCQUU3QixlQUFR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TixNQUFNO2lDQU1OLE1BQU07dUNBTU4sTUFBTTtzQ0FRTixNQUFNO3FDQVFOLE1BQU07K0JBc0xOLFlBQVksU0FBQyxPQUFPOzs2QkF0ZnZCOztTQStDYSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEFmdGVyVmlld0luaXQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRmxhdHBpY2tyRGVmYXVsdHMsXG4gIERpc2FibGVFbmFibGVEYXRlLFxuICBGbGF0cGlja3JEZWZhdWx0c0ludGVyZmFjZVxufSBmcm9tICcuL2ZsYXRwaWNrci1kZWZhdWx0cy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCBmbGF0cGlja3IgZnJvbSAnZmxhdHBpY2tyJztcblxuZXhwb3J0IGludGVyZmFjZSBGbGF0UGlja3JPdXRwdXRPcHRpb25zIHtcbiAgc2VsZWN0ZWREYXRlczogRGF0ZVtdO1xuICBkYXRlU3RyaW5nOiBzdHJpbmc7XG4gIGluc3RhbmNlOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxhdFBpY2tyRGF5Q3JlYXRlT3V0cHV0T3B0aW9uc1xuICBleHRlbmRzIEZsYXRQaWNrck91dHB1dE9wdGlvbnMge1xuICBkYXlFbGVtZW50OiBIVE1MRWxlbWVudDtcbn1cblxuZXhwb3J0IGNvbnN0IEZMQVRQSUNLUl9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGbGF0cGlja3JEaXJlY3RpdmUpLCAvL3RzbGludDpkaXNhYmxlLWxpbmVcbiAgbXVsdGk6IHRydWVcbn07XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1ttd2xGbGF0cGlja3JdJyxcbiAgcHJvdmlkZXJzOiBbRkxBVFBJQ0tSX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JdLFxuICBob3N0OiB7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbGluZSB1c2UtaG9zdC1wcm9wZXJ0eS1kZWNvcmF0b3JcbiAgICAnKGJsdXIpJzogJ29uVG91Y2hlZEZuKCknXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgRmxhdHBpY2tyRGlyZWN0aXZlXG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgLyoqXG4gICAqIE9iamVjdC1vcHRpb25zIHRoYXQgY2FuIGJlIHVzZXIgZm9yIG11bHRpcGxlIGluc3RhbmNlcyBvZiBGbGF0cGlja3IuXG4gICAqIE9wdGlvbiBmcm9tIHRoaXMgb2JqZWN0IGlzIGFwcGxpZWQgb25seSBpZiBzcGVjaWZpYyBvcHRpb24gaXMgbm90IHNwZWNpZmllZC5cbiAgICogRXhhbXBsZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBvcHRpb25zOiBGbGF0cGlja3JEZWZhdWx0c0ludGVyZmFjZSA9IHtcbiAgICogICAgICBhbHRGb3JtYXQ6ICdkL20vWScsICAgLy8gd2lsbCBiZSBpZ25vcmVkIHNpbmNlIGFsdEZvcm1hdCBpcyBwcm92aWRlZCB2aWEgc3BlY2lmaWMgYXR0cmlidXRlXG4gICAqICAgICAgYWx0SW5wdXQ6IHRydWUgICAgICAgIC8vIHdpbGwgYmUgdXNlZCBzaW5jZSBzcGVjaWZpYyBhdHRyaWJ1dGUgaXMgbm90IHByb3ZpZGVkXG4gICAqIH07XG4gICAqIGBgYFxuICAgKiBgYGBodG1sXG4gICAqIDxpbnB1dFxuICAgKiAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICogICB0eXBlPVwidGV4dFwiXG4gICAqICAgbXdsRmxhdHBpY2tyXG4gICAqICAgW29wdGlvbnNdPVwib3B0aW9uc1wiXG4gICAqICAgYWx0Rm9ybWF0PVwiZC9tL1lcIj5cbiAgICogYGBgXG4gICAqL1xuICBASW5wdXQoKSBvcHRpb25zOiBGbGF0cGlja3JEZWZhdWx0c0ludGVyZmFjZSA9IHt9O1xuXG4gIC8qKlxuICAgKiBFeGFjdGx5IHRoZSBzYW1lIGFzIGRhdGUgZm9ybWF0LCBidXQgZm9yIHRoZSBhbHRJbnB1dCBmaWVsZC5cbiAgICovXG4gIEBJbnB1dCgpIGFsdEZvcm1hdDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBcdFNob3cgdGhlIHVzZXIgYSByZWFkYWJsZSBkYXRlIChhcyBwZXIgYWx0Rm9ybWF0KSwgYnV0IHJldHVybiBzb21ldGhpbmcgdG90YWxseSBkaWZmZXJlbnQgdG8gdGhlIHNlcnZlci5cbiAgICovXG4gIEBJbnB1dCgpIGFsdElucHV0OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGlzIGNsYXNzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGlucHV0IGVsZW1lbnQgY3JlYXRlZCBieSB0aGUgYWx0SW5wdXQgb3B0aW9uLlxuICAgKiBOb3RlIHRoYXQgYGFsdElucHV0YCBhbHJlYWR5IGluaGVyaXRzIGNsYXNzZXMgZnJvbSB0aGUgb3JpZ2luYWwgaW5wdXQuXG4gICAqL1xuICBASW5wdXQoKSBhbHRJbnB1dENsYXNzOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFsbG93cyB0aGUgdXNlciB0byBlbnRlciBhIGRhdGUgZGlyZWN0bHkgaW5wdXQgdGhlIGlucHV0IGZpZWxkLiBCeSBkZWZhdWx0LCBkaXJlY3QgZW50cnkgaXMgZGlzYWJsZWQuXG4gICAqL1xuICBASW5wdXQoKSBhbGxvd0lucHV0OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbnN0ZWFkIG9mIGBib2R5YCwgYXBwZW5kcyB0aGUgY2FsZW5kYXIgdG8gdGhlIHNwZWNpZmllZCBub2RlIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKSBhcHBlbmRUbzogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgaG93IHRoZSBkYXRlIHdpbGwgYmUgZm9ybWF0dGVkIGluIHRoZSBhcmlhLWxhYmVsIGZvciBjYWxlbmRhciBkYXlzLCB1c2luZyB0aGUgc2FtZSB0b2tlbnMgYXMgZGF0ZUZvcm1hdC4gSWYgeW91IGNoYW5nZSB0aGlzLCB5b3Ugc2hvdWxkIGNob29zZSBhIHZhbHVlIHRoYXQgd2lsbCBtYWtlIHNlbnNlIGlmIGEgc2NyZWVuIHJlYWRlciByZWFkcyBpdCBvdXQgbG91ZC5cbiAgICovXG4gIEBJbnB1dCgpIGFyaWFEYXRlRm9ybWF0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGNsaWNraW5nIG9uIHRoZSBpbnB1dCBzaG91bGQgb3BlbiB0aGUgcGlja2VyLlxuICAgKiBZb3UgY291bGQgZGlzYWJsZSB0aGlzIGlmIHlvdSB3aXNoIHRvIG9wZW4gdGhlIGNhbGVuZGFyIG1hbnVhbGx5IGB3aXRoLm9wZW4oKWAuXG4gICAqL1xuICBASW5wdXQoKSBjbGlja09wZW5zOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBIHN0cmluZyBvZiBjaGFyYWN0ZXJzIHdoaWNoIGFyZSB1c2VkIHRvIGRlZmluZSBob3cgdGhlIGRhdGUgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGlucHV0IGJveC5cbiAgICogVGhlIHN1cHBvcnRlZCBjaGFyYWN0ZXJzIGFyZSBkZWZpbmVkIGluIHRoZSB0YWJsZSBiZWxvdy5cbiAgICovXG4gIEBJbnB1dCgpIGRhdGVGb3JtYXQ6IHN0cmluZztcblxuICAvKipcbiAgICogSW5pdGlhbCB2YWx1ZSBvZiB0aGUgaG91ciBlbGVtZW50LlxuICAgKi9cbiAgQElucHV0KCkgZGVmYXVsdEhvdXI/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBJbml0aWFsIHZhbHVlIG9mIHRoZSBtaW51dGUgZWxlbWVudC5cbiAgICovXG4gIEBJbnB1dCgpIGRlZmF1bHRNaW51dGU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgdmFsdWUgb2YgdGhlIHNlY29uZHMgZWxlbWVudC5cbiAgICovXG4gIEBJbnB1dCgpIGRlZmF1bHRTZWNvbmRzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTZWUgPGEgaHJlZj1cImh0dHBzOi8vY2htbG4uZ2l0aHViLmlvL2ZsYXRwaWNrci9leGFtcGxlcy8jZGlzYWJsaW5nLXNwZWNpZmljLWRhdGVzXCI+ZGlzYWJsaW5nIGRhdGVzPC9hPi5cbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGU6IERpc2FibGVFbmFibGVEYXRlW107XG5cbiAgLyoqXG4gICAqIFNldCBkaXNhYmxlTW9iaWxlIHRvIHRydWUgdG8gYWx3YXlzIHVzZSB0aGUgbm9uLW5hdGl2ZSBwaWNrZXIuXG4gICAqIEJ5IGRlZmF1bHQsIEZsYXRwaWNrciB1dGlsaXplcyBuYXRpdmUgZGF0ZXRpbWUgd2lkZ2V0cyB1bmxlc3MgY2VydGFpbiBvcHRpb25zIChlLmcuIGRpc2FibGUpIGFyZSB1c2VkLlxuICAgKi9cbiAgQElucHV0KCkgZGlzYWJsZU1vYmlsZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2VlIDxhIGhyZWY9XCJodHRwczovL2NobWxuLmdpdGh1Yi5pby9mbGF0cGlja3IvZXhhbXBsZXMvI2Rpc2FibGluZy1hbGwtZGF0ZXMtZXhjZXB0LXNlbGVjdC1mZXdcIj5lbmFibGluZyBkYXRlczwvYT4uXG4gICAqL1xuICBASW5wdXQoKSBlbmFibGU6IERpc2FibGVFbmFibGVEYXRlW107XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGltZSBwaWNrZXIuXG4gICAqL1xuICBASW5wdXQoKSBlbmFibGVUaW1lOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIHNlY29uZHMgaW4gdGhlIHRpbWUgcGlja2VyLlxuICAgKi9cbiAgQElucHV0KCkgZW5hYmxlU2Vjb25kczogYm9vbGVhbjtcblxuICAvKipcbiAgICogQWxsb3dzIHVzaW5nIGEgY3VzdG9tIGRhdGUgZm9ybWF0dGluZyBmdW5jdGlvbiBpbnN0ZWFkIG9mIHRoZSBidWlsdC1pbiBoYW5kbGluZyBmb3IgZGF0ZSBmb3JtYXRzIHVzaW5nIGRhdGVGb3JtYXQsIGFsdEZvcm1hdCwgZXRjLlxuICAgKi9cbiAgQElucHV0KCkgZm9ybWF0RGF0ZT86ICh2YWx1ZTogYW55KSA9PiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkanVzdHMgdGhlIHN0ZXAgZm9yIHRoZSBob3VyIGlucHV0IChpbmNsLiBzY3JvbGxpbmcpLlxuICAgKi9cbiAgQElucHV0KCkgaG91ckluY3JlbWVudDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5cyB0aGUgY2FsZW5kYXIgaW5saW5lLlxuICAgKi9cbiAgQElucHV0KCkgaW5saW5lOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBkYXRlIHRoYXQgYSB1c2VyIGNhbiBwaWNrIHRvIChpbmNsdXNpdmUpLlxuICAgKi9cbiAgQElucHV0KCkgbWF4RGF0ZTogc3RyaW5nIHwgRGF0ZTtcblxuICAvKipcbiAgICogVGhlIG1pbmltdW0gZGF0ZSB0aGF0IGEgdXNlciBjYW4gc3RhcnQgcGlja2luZyBmcm9tIChpbmNsdXNpdmUpLlxuICAgKi9cbiAgQElucHV0KCkgbWluRGF0ZTogc3RyaW5nIHwgRGF0ZTtcblxuICAvKipcbiAgICogQWRqdXN0cyB0aGUgc3RlcCBmb3IgdGhlIG1pbnV0ZSBpbnB1dCAoaW5jbC4gc2Nyb2xsaW5nKS5cbiAgICovXG4gIEBJbnB1dCgpIG1pbnV0ZUluY3JlbWVudDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTZWxlY3QgYSBzaW5nbGUgZGF0ZSwgbXVsdGlwbGUgZGF0ZXMgb3IgYSBkYXRlIHJhbmdlLlxuICAgKi9cbiAgQElucHV0KCkgbW9kZTogJ3NpbmdsZScgfCAnbXVsdGlwbGUnIHwgJ3JhbmdlJztcblxuICAvKipcbiAgICogSFRNTCBmb3IgdGhlIGFycm93IGljb24sIHVzZWQgdG8gc3dpdGNoIG1vbnRocy5cbiAgICovXG4gIEBJbnB1dCgpIG5leHRBcnJvdzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIaWRlcyB0aGUgZGF5IHNlbGVjdGlvbiBpbiBjYWxlbmRhci4gVXNlIGl0IGFsb25nIHdpdGggYGVuYWJsZVRpbWVgIHRvIGNyZWF0ZSBhIHRpbWUgcGlja2VyLlxuICAgKi9cbiAgQElucHV0KCkgbm9DYWxlbmRhcjogYm9vbGVhbjtcblxuICAvKipcbiAgICogUHJvdmlkZSBhIGRhdGUgZm9yICd0b2RheScsIHdoaWNoIHdpbGwgYmUgdXNlZCBpbnN0ZWFkIG9mIFwibmV3IERhdGUoKVwiXG4gICAqL1xuICBASW5wdXQoKSBub3c/OiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0aGF0IGV4cGVjdHMgYSBkYXRlIHN0cmluZyBhbmQgbXVzdCByZXR1cm4gYSBEYXRlIG9iamVjdC5cbiAgICovXG4gIEBJbnB1dCgpIHBhcnNlRGF0ZTogKHN0cjogc3RyaW5nKSA9PiBEYXRlO1xuXG4gIC8qKlxuICAgKiBIVE1MIGZvciB0aGUgbGVmdCBhcnJvdyBpY29uLlxuICAgKi9cbiAgQElucHV0KCkgcHJldkFycm93OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNob3cgdGhlIG1vbnRoIHVzaW5nIHRoZSBzaG9ydGhhbmQgdmVyc2lvbiAoaWUsIFNlcCBpbnN0ZWFkIG9mIFNlcHRlbWJlcikuXG4gICAqL1xuICBASW5wdXQoKSBzaG9ydGhhbmRDdXJyZW50TW9udGg6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgbW9udGhzIHNob3duLlxuICAgKi9cbiAgQElucHV0KCkgc2hvd01vbnRoczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBQb3NpdGlvbiB0aGUgY2FsZW5kYXIgaW5zaWRlIHRoZSB3cmFwcGVyIGFuZCBuZXh0IHRvIHRoZSBpbnB1dCBlbGVtZW50LiAoTGVhdmUgYGZhbHNlYCB1bmxlc3MgeW91IGtub3cgd2hhdCB5b3UncmUgZG9pbmcpLlxuICAgKi9cbiAgQElucHV0KCkgc3RhdGljOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5cyB0aW1lIHBpY2tlciBpbiAyNCBob3VyIG1vZGUgd2l0aG91dCBBTS9QTSBzZWxlY3Rpb24gd2hlbiBlbmFibGVkLlxuICAgKi9cbiAgQElucHV0KCkgdGltZTI0aHI6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgZGlzcGxheSBvZiB3ZWVrIG51bWJlcnMgaW4gY2FsZW5kYXIuXG4gICAqL1xuICBASW5wdXQoKSB3ZWVrTnVtYmVyczogYm9vbGVhbjtcblxuICAvKipcbiAgICogWW91IG1heSBvdmVycmlkZSB0aGUgZnVuY3Rpb24gdGhhdCBleHRyYWN0cyB0aGUgd2VlayBudW1iZXJzIGZyb20gYSBEYXRlIGJ5IHN1cHBseWluZyBhIGdldFdlZWsgZnVuY3Rpb24uXG4gICAqIEl0IHRha2VzIGluIGEgZGF0ZSBhcyBhIHBhcmFtZXRlciBhbmQgc2hvdWxkIHJldHVybiBhIGNvcnJlc3BvbmRpbmcgc3RyaW5nIHRoYXQgeW91IHdhbnQgdG8gYXBwZWFyIGxlZnQgb2YgZXZlcnkgd2Vlay5cbiAgICovXG4gIEBJbnB1dCgpIGdldFdlZWs6IChkYXRlOiBEYXRlKSA9PiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBlbGVtZW50cyBhbmQgaW5wdXQgZ3JvdXBzLlxuICAgKi9cbiAgQElucHV0KCkgd3JhcDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQXJyYXkgb2YgcGx1Z2luIGluc3RhbmNlcyB0byB1c2UuXG4gICAqL1xuICBASW5wdXQoKSBwbHVnaW5zOiBhbnlbXTtcblxuICAvKipcbiAgICogVGhlIGxvY2FsZSBvYmplY3Qgb3Igc3RyaW5nIHRvIHVzZSBmb3IgdGhlIGxvY2FsZS5cbiAgICovXG4gIEBJbnB1dCgpIGxvY2FsZTogb2JqZWN0IHwgc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBdXRvIGNvbnZlcnQgdGhlIG5nTW9kZWwgdmFsdWUgZnJvbSBhIHN0cmluZyB0byBhIGRhdGUgLyBhcnJheSBvZiBkYXRlcyAvIGZyb20gLSB0byBkYXRlIG9iamVjdCBkZXBlbmRpbmcgb24gdGhlIGBtb2RlYFxuICAgKi9cbiAgQElucHV0KCkgY29udmVydE1vZGVsVmFsdWU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEhvdyB0aGUgbW9udGggc2hvdWxkIGJlIGRpc3BsYXllZCBpbiB0aGUgaGVhZGVyIG9mIHRoZSBjYWxlbmRhci5cbiAgICovXG4gIEBJbnB1dCgpIG1vbnRoU2VsZWN0b3JUeXBlOiAnc3RhdGljJyB8ICdkcm9wZG93bic7XG5cbiAgLyoqXG4gICAqIEdldHMgdHJpZ2dlcmVkIG9uY2UgdGhlIGNhbGVuZGFyIGlzIGluIGEgcmVhZHkgc3RhdGVcbiAgICovXG4gIEBPdXRwdXQoKVxuICBmbGF0cGlja3JSZWFkeTogRXZlbnRFbWl0dGVyPEZsYXRQaWNrck91dHB1dE9wdGlvbnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIHNlbGVjdHMgYSBkYXRlLCBvciBjaGFuZ2VzIHRoZSB0aW1lIG9uIGEgc2VsZWN0ZWQgZGF0ZS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBmbGF0cGlja3JDaGFuZ2U6IEV2ZW50RW1pdHRlcjxGbGF0UGlja3JPdXRwdXRPcHRpb25zPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogR2V0cyB0cmlnZ2VyZWQgd2hlbiB0aGUgaW5wdXQgdmFsdWUgaXMgdXBkYXRlZCB3aXRoIGEgbmV3IGRhdGUgc3RyaW5nLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGZsYXRwaWNrclZhbHVlVXBkYXRlOiBFdmVudEVtaXR0ZXI8XG4gICAgRmxhdFBpY2tyT3V0cHV0T3B0aW9uc1xuICA+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRyaWdnZXJlZCB3aGVuIHRoZSBjYWxlbmRhciBpcyBvcGVuZWQuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgZmxhdHBpY2tyT3BlbjogRXZlbnRFbWl0dGVyPEZsYXRQaWNrck91dHB1dE9wdGlvbnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRyaWdnZXJlZCB3aGVuIHRoZSBjYWxlbmRhciBpcyBjbG9zZWQuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgZmxhdHBpY2tyQ2xvc2U6IEV2ZW50RW1pdHRlcjxGbGF0UGlja3JPdXRwdXRPcHRpb25zPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogR2V0cyB0cmlnZ2VyZWQgd2hlbiB0aGUgbW9udGggaXMgY2hhbmdlZCwgZWl0aGVyIGJ5IHRoZSB1c2VyIG9yIHByb2dyYW1tYXRpY2FsbHkuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgZmxhdHBpY2tyTW9udGhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxcbiAgICBGbGF0UGlja3JPdXRwdXRPcHRpb25zXG4gID4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEdldHMgdHJpZ2dlcmVkIHdoZW4gdGhlIHllYXIgaXMgY2hhbmdlZCwgZWl0aGVyIGJ5IHRoZSB1c2VyIG9yIHByb2dyYW1tYXRpY2FsbHkuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgZmxhdHBpY2tyWWVhckNoYW5nZTogRXZlbnRFbWl0dGVyPFxuICAgIEZsYXRQaWNrck91dHB1dE9wdGlvbnNcbiAgPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogVGFrZSBmdWxsIGNvbnRyb2wgb2YgZXZlcnkgZGF0ZSBjZWxsIHdpdGggdGhpcyBvdXRwdXRcbiAgICovXG4gIEBPdXRwdXQoKVxuICBmbGF0cGlja3JEYXlDcmVhdGU6IEV2ZW50RW1pdHRlcjxcbiAgICBGbGF0UGlja3JEYXlDcmVhdGVPdXRwdXRPcHRpb25zXG4gID4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHJpdmF0ZSBpbnN0YW5jZTogZmxhdHBpY2tyLkluc3RhbmNlO1xuICBwcml2YXRlIGlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBpbml0aWFsVmFsdWU6IGFueTtcblxuICBvbkNoYW5nZUZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9OyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lXG5cbiAgb25Ub3VjaGVkRm4gPSAoKSA9PiB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsbTogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGRlZmF1bHRzOiBGbGF0cGlja3JEZWZhdWx0cyxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBvcHRpb25zOiBhbnkgPSB7XG4gICAgICBhbHRGb3JtYXQ6IHRoaXMuYWx0Rm9ybWF0LFxuICAgICAgYWx0SW5wdXQ6IHRoaXMuYWx0SW5wdXQsXG4gICAgICBhbHRJbnB1dENsYXNzOiB0aGlzLmFsdElucHV0Q2xhc3MsXG4gICAgICBhbGxvd0lucHV0OiB0aGlzLmFsbG93SW5wdXQsXG4gICAgICBhcHBlbmRUbzogdGhpcy5hcHBlbmRUbyxcbiAgICAgIGFyaWFEYXRlRm9ybWF0OiB0aGlzLmFyaWFEYXRlRm9ybWF0LFxuICAgICAgY2xpY2tPcGVuczogdGhpcy5jbGlja09wZW5zLFxuICAgICAgZGF0ZUZvcm1hdDogdGhpcy5kYXRlRm9ybWF0LFxuICAgICAgZGVmYXVsdEhvdXI6IHRoaXMuZGVmYXVsdEhvdXIsXG4gICAgICBkZWZhdWx0TWludXRlOiB0aGlzLmRlZmF1bHRNaW51dGUsXG4gICAgICBkZWZhdWx0U2Vjb25kczogdGhpcy5kZWZhdWx0U2Vjb25kcyxcbiAgICAgIGRpc2FibGU6IHRoaXMuZGlzYWJsZSxcbiAgICAgIGRpc2FibGVNb2JpbGU6IHRoaXMuZGlzYWJsZU1vYmlsZSxcbiAgICAgIGVuYWJsZTogdGhpcy5lbmFibGUsXG4gICAgICBlbmFibGVUaW1lOiB0aGlzLmVuYWJsZVRpbWUsXG4gICAgICBlbmFibGVTZWNvbmRzOiB0aGlzLmVuYWJsZVNlY29uZHMsXG4gICAgICBmb3JtYXREYXRlOiB0aGlzLmZvcm1hdERhdGUsXG4gICAgICBob3VySW5jcmVtZW50OiB0aGlzLmhvdXJJbmNyZW1lbnQsXG4gICAgICBkZWZhdWx0RGF0ZTogdGhpcy5pbml0aWFsVmFsdWUsXG4gICAgICBpbmxpbmU6IHRoaXMuaW5saW5lLFxuICAgICAgbWF4RGF0ZTogdGhpcy5tYXhEYXRlLFxuICAgICAgbWluRGF0ZTogdGhpcy5taW5EYXRlLFxuICAgICAgbWludXRlSW5jcmVtZW50OiB0aGlzLm1pbnV0ZUluY3JlbWVudCxcbiAgICAgIG1vZGU6IHRoaXMubW9kZSxcbiAgICAgIG5leHRBcnJvdzogdGhpcy5uZXh0QXJyb3csXG4gICAgICBub0NhbGVuZGFyOiB0aGlzLm5vQ2FsZW5kYXIsXG4gICAgICBub3c6IHRoaXMubm93LFxuICAgICAgcGFyc2VEYXRlOiB0aGlzLnBhcnNlRGF0ZSxcbiAgICAgIHByZXZBcnJvdzogdGhpcy5wcmV2QXJyb3csXG4gICAgICBzaG9ydGhhbmRDdXJyZW50TW9udGg6IHRoaXMuc2hvcnRoYW5kQ3VycmVudE1vbnRoLFxuICAgICAgc2hvd01vbnRoczogdGhpcy5zaG93TW9udGhzLFxuICAgICAgbW9udGhTZWxlY3RvclR5cGU6IHRoaXMubW9udGhTZWxlY3RvclR5cGUsXG4gICAgICBzdGF0aWM6IHRoaXMuc3RhdGljLFxuICAgICAgdGltZTI0aHI6IHRoaXMudGltZTI0aHIsXG4gICAgICB3ZWVrTnVtYmVyczogdGhpcy53ZWVrTnVtYmVycyxcbiAgICAgIGdldFdlZWs6IHRoaXMuZ2V0V2VlayxcbiAgICAgIHdyYXA6IHRoaXMud3JhcCxcbiAgICAgIHBsdWdpbnM6IHRoaXMucGx1Z2lucyxcbiAgICAgIGxvY2FsZTogdGhpcy5sb2NhbGUsXG4gICAgICBvbkNoYW5nZTogKHNlbGVjdGVkRGF0ZXM6IERhdGVbXSwgZGF0ZVN0cmluZzogc3RyaW5nLCBpbnN0YW5jZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuZmxhdHBpY2tyQ2hhbmdlLmVtaXQoeyBzZWxlY3RlZERhdGVzLCBkYXRlU3RyaW5nLCBpbnN0YW5jZSB9KTtcbiAgICAgIH0sXG4gICAgICBvbk9wZW46IChzZWxlY3RlZERhdGVzOiBEYXRlW10sIGRhdGVTdHJpbmc6IHN0cmluZywgaW5zdGFuY2U6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmZsYXRwaWNrck9wZW4uZW1pdCh7IHNlbGVjdGVkRGF0ZXMsIGRhdGVTdHJpbmcsIGluc3RhbmNlIH0pO1xuICAgICAgfSxcbiAgICAgIG9uQ2xvc2U6IChzZWxlY3RlZERhdGVzOiBEYXRlW10sIGRhdGVTdHJpbmc6IHN0cmluZywgaW5zdGFuY2U6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmZsYXRwaWNrckNsb3NlLmVtaXQoeyBzZWxlY3RlZERhdGVzLCBkYXRlU3RyaW5nLCBpbnN0YW5jZSB9KTtcbiAgICAgIH0sXG4gICAgICBvbk1vbnRoQ2hhbmdlOiAoXG4gICAgICAgIHNlbGVjdGVkRGF0ZXM6IERhdGVbXSxcbiAgICAgICAgZGF0ZVN0cmluZzogc3RyaW5nLFxuICAgICAgICBpbnN0YW5jZTogYW55XG4gICAgICApID0+IHtcbiAgICAgICAgdGhpcy5mbGF0cGlja3JNb250aENoYW5nZS5lbWl0KHsgc2VsZWN0ZWREYXRlcywgZGF0ZVN0cmluZywgaW5zdGFuY2UgfSk7XG4gICAgICB9LFxuICAgICAgb25ZZWFyQ2hhbmdlOiAoXG4gICAgICAgIHNlbGVjdGVkRGF0ZXM6IERhdGVbXSxcbiAgICAgICAgZGF0ZVN0cmluZzogc3RyaW5nLFxuICAgICAgICBpbnN0YW5jZTogYW55XG4gICAgICApID0+IHtcbiAgICAgICAgdGhpcy5mbGF0cGlja3JZZWFyQ2hhbmdlLmVtaXQoeyBzZWxlY3RlZERhdGVzLCBkYXRlU3RyaW5nLCBpbnN0YW5jZSB9KTtcbiAgICAgIH0sXG4gICAgICBvblJlYWR5OiAoc2VsZWN0ZWREYXRlczogRGF0ZVtdLCBkYXRlU3RyaW5nOiBzdHJpbmcsIGluc3RhbmNlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5mbGF0cGlja3JSZWFkeS5lbWl0KHsgc2VsZWN0ZWREYXRlcywgZGF0ZVN0cmluZywgaW5zdGFuY2UgfSk7XG4gICAgICB9LFxuICAgICAgb25WYWx1ZVVwZGF0ZTogKFxuICAgICAgICBzZWxlY3RlZERhdGVzOiBEYXRlW10sXG4gICAgICAgIGRhdGVTdHJpbmc6IHN0cmluZyxcbiAgICAgICAgaW5zdGFuY2U6IGFueVxuICAgICAgKSA9PiB7XG4gICAgICAgIHRoaXMuZmxhdHBpY2tyVmFsdWVVcGRhdGUuZW1pdCh7IHNlbGVjdGVkRGF0ZXMsIGRhdGVTdHJpbmcsIGluc3RhbmNlIH0pO1xuICAgICAgfSxcbiAgICAgIG9uRGF5Q3JlYXRlOiAoXG4gICAgICAgIHNlbGVjdGVkRGF0ZXM6IERhdGVbXSxcbiAgICAgICAgZGF0ZVN0cmluZzogc3RyaW5nLFxuICAgICAgICBpbnN0YW5jZTogYW55LFxuICAgICAgICBkYXlFbGVtZW50OiBIVE1MRWxlbWVudFxuICAgICAgKSA9PiB7XG4gICAgICAgIHRoaXMuZmxhdHBpY2tyRGF5Q3JlYXRlLmVtaXQoe1xuICAgICAgICAgIHNlbGVjdGVkRGF0ZXMsXG4gICAgICAgICAgZGF0ZVN0cmluZyxcbiAgICAgICAgICBpbnN0YW5jZSxcbiAgICAgICAgICBkYXlFbGVtZW50XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBPYmplY3Qua2V5cyhvcHRpb25zKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnNba2V5XSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9wdGlvbnNba2V5XSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICBvcHRpb25zW2tleV0gPSAodGhpcy5vcHRpb25zIGFzIGFueSlba2V5XTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvcHRpb25zW2tleV0gPSAodGhpcy5kZWZhdWx0cyBhcyBhbnkpW2tleV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICBvcHRpb25zLnRpbWVfMjRociA9IG9wdGlvbnMudGltZTI0aHI7XG5cbiAgICAvLyB3b3JrYXJvdW5kIGJ1ZyBpbiBmbGF0cGlja3IgNC42IHdoZXJlIGl0IGRvZXNuJ3QgY29weSB0aGUgY2xhc3NlcyBhY3Jvc3NcbiAgICAvLyBUT0RPIC0gcmVtb3ZlIG9uY2UgZml4IGluIGh0dHBzOi8vZ2l0aHViLmNvbS9mbGF0cGlja3IvZmxhdHBpY2tyL2lzc3Vlcy8xODYwIGlzIHJlbGVhc2VkXG4gICAgb3B0aW9ucy5hbHRJbnB1dENsYXNzID1cbiAgICAgIChvcHRpb25zLmFsdElucHV0Q2xhc3MgfHwgJycpICsgJyAnICsgdGhpcy5lbG0ubmF0aXZlRWxlbWVudC5jbGFzc05hbWU7XG5cbiAgICBpZiAoIW9wdGlvbnMuZW5hYmxlKSB7XG4gICAgICBkZWxldGUgb3B0aW9ucy5lbmFibGU7XG4gICAgfVxuXG4gICAgdGhpcy5pbnN0YW5jZSA9IGZsYXRwaWNrcihcbiAgICAgIHRoaXMuZWxtLm5hdGl2ZUVsZW1lbnQsXG4gICAgICBvcHRpb25zXG4gICAgKSBhcyBmbGF0cGlja3IuSW5zdGFuY2U7XG4gICAgdGhpcy5zZXREaXNhYmxlZFN0YXRlKHRoaXMuaXNEaXNhYmxlZCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgIE9iamVjdC5rZXlzKGNoYW5nZXMpLmZvckVhY2goaW5wdXRLZXkgPT4ge1xuICAgICAgICB0aGlzLmluc3RhbmNlLnNldChpbnB1dEtleSBhcyBhbnksICh0aGlzIGFzIGFueSlbaW5wdXRLZXldKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XG4gICAgICB0aGlzLmluc3RhbmNlLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBsZXQgY29udmVydGVkVmFsdWU6IGFueSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLmNvbnZlcnRNb2RlbFZhbHVlICYmIHRoaXMubW9kZSA9PT0gJ3JhbmdlJyAmJiB2YWx1ZSkge1xuICAgICAgY29udmVydGVkVmFsdWUgPSBbdmFsdWUuZnJvbSwgdmFsdWUudG9dO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XG4gICAgICB0aGlzLmluc3RhbmNlLnNldERhdGUoY29udmVydGVkVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBmbGF0cGlja3IgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgeWV0LCBzdG9yZSB0aGUgdmFsdWUgZm9yIGxhdGVyIHVzZVxuICAgICAgdGhpcy5pbml0aWFsVmFsdWUgPSBjb252ZXJ0ZWRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWRGbiA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICBpZiAodGhpcy5pbnN0YW5jZSkge1xuICAgICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuaW5zdGFuY2UuX2lucHV0LCAnZGlzYWJsZWQnLCAnZGlzYWJsZWQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuaW5zdGFuY2UuX2lucHV0LCAnZGlzYWJsZWQnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdpbnB1dCcpXG4gIGlucHV0Q2hhbmdlZCgpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZTogc3RyaW5nID0gdGhpcy5lbG0ubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICBpZiAodGhpcy5jb252ZXJ0TW9kZWxWYWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMubW9kZSkge1xuICAgICAgICBjYXNlICdtdWx0aXBsZSc6XG4gICAgICAgICAgY29uc3QgZGF0ZXM6IERhdGVbXSA9IHZhbHVlXG4gICAgICAgICAgICAuc3BsaXQoJzsgJylcbiAgICAgICAgICAgIC5tYXAoc3RyID0+XG4gICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UucGFyc2VEYXRlKFxuICAgICAgICAgICAgICAgIHN0cixcbiAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlLmNvbmZpZy5kYXRlRm9ybWF0LFxuICAgICAgICAgICAgICAgICF0aGlzLmluc3RhbmNlLmNvbmZpZy5lbmFibGVUaW1lXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5vbkNoYW5nZUZuKGRhdGVzKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdyYW5nZSc6XG4gICAgICAgICAgY29uc3QgW2Zyb20sIHRvXSA9IHZhbHVlXG4gICAgICAgICAgICAuc3BsaXQodGhpcy5pbnN0YW5jZS5sMTBuLnJhbmdlU2VwYXJhdG9yKVxuICAgICAgICAgICAgLm1hcChzdHIgPT5cbiAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5wYXJzZURhdGUoXG4gICAgICAgICAgICAgICAgc3RyLFxuICAgICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UuY29uZmlnLmRhdGVGb3JtYXQsXG4gICAgICAgICAgICAgICAgIXRoaXMuaW5zdGFuY2UuY29uZmlnLmVuYWJsZVRpbWVcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlRm4oeyBmcm9tLCB0byB9KTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdzaW5nbGUnOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRoaXMub25DaGFuZ2VGbihcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UucGFyc2VEYXRlKFxuICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5jb25maWcuZGF0ZUZvcm1hdCxcbiAgICAgICAgICAgICAgIXRoaXMuaW5zdGFuY2UuY29uZmlnLmVuYWJsZVRpbWVcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlRm4odmFsdWUpO1xuICAgIH1cbiAgfVxufVxuIl19 |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"angularx-flatpickr.js.map","sources":["ng://angularx-flatpickr/flatpickr-defaults.service.ts","ng://angularx-flatpickr/flatpickr.directive.ts","ng://angularx-flatpickr/flatpickr.module.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\n// tslint:disable no-inferrable-types\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 * 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 * 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@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 * Instead of `body`, appends the calendar to the specified node instead.\n */\n appendTo: HTMLElement = 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;\n\n /**\n * The minimum date that a user can start picking from (inclusive).\n */\n minDate: string | Date = 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","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} 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';\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), //tslint:disable-line\n multi: true\n};\n\n@Directive({\n selector: '[mwlFlatpickr]',\n providers: [FLATPICKR_CONTROL_VALUE_ACCESSOR],\n host: {\n // tslint:disable-line use-host-property-decorator\n '(blur)': 'onTouchedFn()'\n }\n})\nexport class FlatpickrDirective\n implements AfterViewInit, OnChanges, OnDestroy, ControlValueAccessor {\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 * 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 * 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 * 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<\n 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<\n 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<\n FlatPickrOutputOptions\n > = new EventEmitter();\n\n /**\n * Take full control of every date cell with this output\n */\n @Output()\n flatpickrDayCreate: EventEmitter<\n FlatPickrDayCreateOutputOptions\n > = new EventEmitter();\n\n private instance: flatpickr.Instance;\n private isDisabled = false;\n private initialValue: any;\n\n onChangeFn: (value: any) => void = () => {}; // tslint:disable-line\n\n onTouchedFn = () => {};\n\n constructor(\n private elm: ElementRef,\n private defaults: FlatpickrDefaults,\n private renderer: Renderer2\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 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 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 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[key] !== 'undefined') {\n options[key] = (this.options as any)[key];\n } else {\n options[key] = (this.defaults as any)[key];\n }\n }\n });\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 this.instance = flatpickr(\n this.elm.nativeElement,\n options\n ) as flatpickr.Instance;\n this.setDisabledState(this.isDisabled);\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\t\tthis.instance.destroy();\n\t}\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: Date[] = 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 {\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"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"angularx-flatpickr.js.map","sources":["ng://angularx-flatpickr/flatpickr-defaults.service.ts","ng://angularx-flatpickr/flatpickr.directive.ts","ng://angularx-flatpickr/flatpickr.module.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\n// tslint:disable no-inferrable-types\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 * 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 * 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@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 * Instead of `body`, appends the calendar to the specified node instead.\n */\n appendTo: HTMLElement = 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;\n\n /**\n * The minimum date that a user can start picking from (inclusive).\n */\n minDate: string | Date = 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","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} 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';\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), //tslint:disable-line\n multi: true\n};\n\n@Directive({\n selector: '[mwlFlatpickr]',\n providers: [FLATPICKR_CONTROL_VALUE_ACCESSOR],\n host: {\n // tslint:disable-line use-host-property-decorator\n '(blur)': 'onTouchedFn()'\n }\n})\nexport class FlatpickrDirective\n implements AfterViewInit, OnChanges, OnDestroy, ControlValueAccessor {\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 * 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 * 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 * 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<\n 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<\n 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<\n FlatPickrOutputOptions\n > = new EventEmitter();\n\n /**\n * Take full control of every date cell with this output\n */\n @Output()\n flatpickrDayCreate: EventEmitter<\n FlatPickrDayCreateOutputOptions\n > = new EventEmitter();\n\n private instance: flatpickr.Instance;\n private isDisabled = false;\n private initialValue: any;\n\n onChangeFn: (value: any) => void = () => {}; // tslint:disable-line\n\n onTouchedFn = () => {};\n\n constructor(\n private elm: ElementRef,\n private defaults: FlatpickrDefaults,\n private renderer: Renderer2\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 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 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 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[key] !== 'undefined') {\n options[key] = (this.options as any)[key];\n } else {\n options[key] = (this.defaults as any)[key];\n }\n }\n });\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 this.instance = flatpickr(\n this.elm.nativeElement,\n options\n ) as flatpickr.Instance;\n this.setDisabledState(this.isDisabled);\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: Date[] = 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 {\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"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"angularx-flatpickr.js.map","sources":["ng://angularx-flatpickr/flatpickr-defaults.service.ts","ng://angularx-flatpickr/flatpickr.directive.ts","ng://angularx-flatpickr/flatpickr.module.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\n// tslint:disable no-inferrable-types\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 * 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 * 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@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 * Instead of `body`, appends the calendar to the specified node instead.\n */\n appendTo: HTMLElement = 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;\n\n /**\n * The minimum date that a user can start picking from (inclusive).\n */\n minDate: string | Date = 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","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} 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';\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), //tslint:disable-line\n multi: true\n};\n\n@Directive({\n selector: '[mwlFlatpickr]',\n providers: [FLATPICKR_CONTROL_VALUE_ACCESSOR],\n host: {\n // tslint:disable-line use-host-property-decorator\n '(blur)': 'onTouchedFn()'\n }\n})\nexport class FlatpickrDirective\n implements AfterViewInit, OnChanges, OnDestroy, ControlValueAccessor {\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 * 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 * 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 * 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<\n 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<\n 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<\n FlatPickrOutputOptions\n > = new EventEmitter();\n\n /**\n * Take full control of every date cell with this output\n */\n @Output()\n flatpickrDayCreate: EventEmitter<\n FlatPickrDayCreateOutputOptions\n > = new EventEmitter();\n\n private instance: flatpickr.Instance;\n private isDisabled = false;\n private initialValue: any;\n\n onChangeFn: (value: any) => void = () => {}; // tslint:disable-line\n\n onTouchedFn = () => {};\n\n constructor(\n private elm: ElementRef,\n private defaults: FlatpickrDefaults,\n private renderer: Renderer2\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 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 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 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[key] !== 'undefined') {\n options[key] = (this.options as any)[key];\n } else {\n options[key] = (this.defaults as any)[key];\n }\n }\n });\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 this.instance = flatpickr(\n this.elm.nativeElement,\n options\n ) as flatpickr.Instance;\n this.setDisabledState(this.isDisabled);\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\t\tthis.instance.destroy();\n\t}\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: Date[] = 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 {\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"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"angularx-flatpickr.js.map","sources":["ng://angularx-flatpickr/flatpickr-defaults.service.ts","ng://angularx-flatpickr/flatpickr.directive.ts","ng://angularx-flatpickr/flatpickr.module.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\n// tslint:disable no-inferrable-types\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 * 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 * 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@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 * Instead of `body`, appends the calendar to the specified node instead.\n */\n appendTo: HTMLElement = 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;\n\n /**\n * The minimum date that a user can start picking from (inclusive).\n */\n minDate: string | Date = 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","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} 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';\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), //tslint:disable-line\n multi: true\n};\n\n@Directive({\n selector: '[mwlFlatpickr]',\n providers: [FLATPICKR_CONTROL_VALUE_ACCESSOR],\n host: {\n // tslint:disable-line use-host-property-decorator\n '(blur)': 'onTouchedFn()'\n }\n})\nexport class FlatpickrDirective\n implements AfterViewInit, OnChanges, OnDestroy, ControlValueAccessor {\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 * 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 * 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 * 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<\n 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<\n 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<\n FlatPickrOutputOptions\n > = new EventEmitter();\n\n /**\n * Take full control of every date cell with this output\n */\n @Output()\n flatpickrDayCreate: EventEmitter<\n FlatPickrDayCreateOutputOptions\n > = new EventEmitter();\n\n private instance: flatpickr.Instance;\n private isDisabled = false;\n private initialValue: any;\n\n onChangeFn: (value: any) => void = () => {}; // tslint:disable-line\n\n onTouchedFn = () => {};\n\n constructor(\n private elm: ElementRef,\n private defaults: FlatpickrDefaults,\n private renderer: Renderer2\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 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 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 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[key] !== 'undefined') {\n options[key] = (this.options as any)[key];\n } else {\n options[key] = (this.defaults as any)[key];\n }\n }\n });\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 this.instance = flatpickr(\n this.elm.nativeElement,\n options\n ) as flatpickr.Instance;\n this.setDisabledState(this.isDisabled);\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: Date[] = 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 {\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"],"names":[],"mappings":"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"} |
+2
-2
| { | ||
| "name": "angularx-flatpickr", | ||
| "version": "6.5.2", | ||
| "version": "6.5.3", | ||
| "description": "An angular 5.0+ wrapper for flatpickr", | ||
@@ -49,3 +49,3 @@ "repository": { | ||
| "del-cli": "^1.1.0", | ||
| "flatpickr": "^4.6.3", | ||
| "flatpickr": "^4.6.9", | ||
| "fork-ts-checker-webpack-plugin": "^0.4.2", | ||
@@ -52,0 +52,0 @@ "html-webpack-plugin": "^3.2.0", |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
632678
0.18%5020
-0.1%