UNPKG

@syncfusion/ej2-angular-dropdowns

Version:
142 lines 25.3 kB
var MultiSelectComponent_1; import { __decorate } from "tslib"; import { Component, ChangeDetectionStrategy, forwardRef, ContentChild } from '@angular/core'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; import { ComponentBase, ComponentMixins, FormBase, setValue } from '@syncfusion/ej2-angular-base'; import { MultiSelect } from '@syncfusion/ej2-dropdowns'; import { Template } from '@syncfusion/ej2-angular-base'; import * as i0 from "@angular/core"; export const inputs = ['actionFailureTemplate', 'addTagOnBlur', 'allowCustomValue', 'allowFiltering', 'allowObjectBinding', 'allowResize', 'changeOnBlur', 'closePopupOnSelect', 'cssClass', 'dataSource', 'debounceDelay', 'delimiterChar', 'enableGroupCheckBox', 'enableHtmlSanitizer', 'enablePersistence', 'enableRtl', 'enableSelectionOrder', 'enableVirtualization', 'enabled', 'fields', 'filterBarPlaceholder', 'filterType', 'floatLabelType', 'footerTemplate', 'groupTemplate', 'headerTemplate', 'hideSelectedItem', 'htmlAttributes', 'ignoreAccent', 'ignoreCase', 'isDeviceFullScreen', 'itemTemplate', 'locale', 'maximumSelectionLength', 'mode', 'noRecordsTemplate', 'openOnClick', 'placeholder', 'popupHeight', 'popupWidth', 'query', 'readonly', 'selectAllText', 'showClearButton', 'showDropDownIcon', 'showSelectAll', 'sortOrder', 'text', 'unSelectAllText', 'value', 'valueTemplate', 'width', 'zIndex']; export const outputs = ['actionBegin', 'actionComplete', 'actionFailure', 'beforeOpen', 'beforeSelectAll', 'blur', 'change', 'chipSelection', 'close', 'created', 'customValueSelection', 'dataBound', 'destroyed', 'filtering', 'focus', 'open', 'removed', 'removing', 'resizeStart', 'resizeStop', 'resizing', 'select', 'selectedAll', 'tagging', 'valueChange']; export const twoWays = ['value']; /** * The MultiSelect allows the user to pick a values from the predefined list of values. *```html *<ejs-multiselect></ejs-multiselect> *``` */ let MultiSelectComponent = MultiSelectComponent_1 = class MultiSelectComponent extends MultiSelect { constructor(ngEle, srenderer, viewContainerRef, injector, cdr) { super(); this.ngEle = ngEle; this.srenderer = srenderer; this.viewContainerRef = viewContainerRef; this.injector = injector; this.cdr = cdr; this.skipFromEvent = true; this.element = this.ngEle.nativeElement; this.injectedModules = this.injectedModules || []; try { let mod = this.injector.get('DropDownsCheckBoxSelection'); if (this.injectedModules.indexOf(mod) === -1) { this.injectedModules.push(mod); } } catch { } try { let mod = this.injector.get('DropDownsVirtualScroll'); if (this.injectedModules.indexOf(mod) === -1) { this.injectedModules.push(mod); } } catch { } this.registerEvents(outputs); this.addTwoWay.call(this, twoWays); setValue('currentInstance', this, this.viewContainerRef); this.formContext = new FormBase(); this.formCompContext = new ComponentBase(); } registerOnChange(registerFunction) { } registerOnTouched(registerFunction) { } writeValue(value) { } setDisabledState(disabled) { } ngOnInit() { this.formCompContext.ngOnInit(this); } ngAfterViewInit() { this.formContext.ngAfterViewInit(this); } ngOnDestroy() { this.formCompContext.ngOnDestroy(this); } ngAfterContentChecked() { this.formCompContext.ngAfterContentChecked(this); } }; MultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: MultiSelectComponent, selector: "ejs-multiselect", inputs: { actionFailureTemplate: "actionFailureTemplate", addTagOnBlur: "addTagOnBlur", allowCustomValue: "allowCustomValue", allowFiltering: "allowFiltering", allowObjectBinding: "allowObjectBinding", allowResize: "allowResize", changeOnBlur: "changeOnBlur", closePopupOnSelect: "closePopupOnSelect", cssClass: "cssClass", dataSource: "dataSource", debounceDelay: "debounceDelay", delimiterChar: "delimiterChar", enableGroupCheckBox: "enableGroupCheckBox", enableHtmlSanitizer: "enableHtmlSanitizer", enablePersistence: "enablePersistence", enableRtl: "enableRtl", enableSelectionOrder: "enableSelectionOrder", enableVirtualization: "enableVirtualization", enabled: "enabled", fields: "fields", filterBarPlaceholder: "filterBarPlaceholder", filterType: "filterType", floatLabelType: "floatLabelType", footerTemplate: "footerTemplate", groupTemplate: "groupTemplate", headerTemplate: "headerTemplate", hideSelectedItem: "hideSelectedItem", htmlAttributes: "htmlAttributes", ignoreAccent: "ignoreAccent", ignoreCase: "ignoreCase", isDeviceFullScreen: "isDeviceFullScreen", itemTemplate: "itemTemplate", locale: "locale", maximumSelectionLength: "maximumSelectionLength", mode: "mode", noRecordsTemplate: "noRecordsTemplate", openOnClick: "openOnClick", placeholder: "placeholder", popupHeight: "popupHeight", popupWidth: "popupWidth", query: "query", readonly: "readonly", selectAllText: "selectAllText", showClearButton: "showClearButton", showDropDownIcon: "showDropDownIcon", showSelectAll: "showSelectAll", sortOrder: "sortOrder", text: "text", unSelectAllText: "unSelectAllText", value: "value", valueTemplate: "valueTemplate", width: "width", zIndex: "zIndex" }, outputs: { actionBegin: "actionBegin", actionComplete: "actionComplete", actionFailure: "actionFailure", beforeOpen: "beforeOpen", beforeSelectAll: "beforeSelectAll", blur: "blur", change: "change", chipSelection: "chipSelection", close: "close", created: "created", customValueSelection: "customValueSelection", dataBound: "dataBound", destroyed: "destroyed", filtering: "filtering", focus: "focus", open: "open", removed: "removed", removing: "removing", resizeStart: "resizeStart", resizeStop: "resizeStop", resizing: "resizing", select: "select", selectedAll: "selectedAll", tagging: "tagging", valueChange: "valueChange" }, providers: [ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => MultiSelectComponent_1), multi: true } ], queries: [{ propertyName: "footerTemplate", first: true, predicate: ["footerTemplate"], descendants: true }, { propertyName: "headerTemplate", first: true, predicate: ["headerTemplate"], descendants: true }, { propertyName: "valueTemplate", first: true, predicate: ["valueTemplate"], descendants: true }, { propertyName: "itemTemplate", first: true, predicate: ["itemTemplate"], descendants: true }, { propertyName: "groupTemplate", first: true, predicate: ["groupTemplate"], descendants: true }, { propertyName: "noRecordsTemplate", first: true, predicate: ["noRecordsTemplate"], descendants: true }, { propertyName: "actionFailureTemplate", first: true, predicate: ["actionFailureTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); __decorate([ Template() ], MultiSelectComponent.prototype, "footerTemplate", void 0); __decorate([ Template() ], MultiSelectComponent.prototype, "headerTemplate", void 0); __decorate([ Template() ], MultiSelectComponent.prototype, "valueTemplate", void 0); __decorate([ Template() ], MultiSelectComponent.prototype, "itemTemplate", void 0); __decorate([ Template() ], MultiSelectComponent.prototype, "groupTemplate", void 0); __decorate([ Template('No records found') ], MultiSelectComponent.prototype, "noRecordsTemplate", void 0); __decorate([ Template('Request failed') ], MultiSelectComponent.prototype, "actionFailureTemplate", void 0); MultiSelectComponent = MultiSelectComponent_1 = __decorate([ ComponentMixins([ComponentBase, FormBase]) ], MultiSelectComponent); export { MultiSelectComponent }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectComponent, decorators: [{ type: Component, args: [{ selector: 'ejs-multiselect', inputs: inputs, outputs: outputs, template: '', changeDetection: ChangeDetectionStrategy.OnPush, providers: [ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => MultiSelectComponent), multi: true } ], queries: {} }] }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { footerTemplate: [{ type: ContentChild, args: ['footerTemplate'] }], headerTemplate: [{ type: ContentChild, args: ['headerTemplate'] }], valueTemplate: [{ type: ContentChild, args: ['valueTemplate'] }], itemTemplate: [{ type: ContentChild, args: ['itemTemplate'] }], groupTemplate: [{ type: ContentChild, args: ['groupTemplate'] }], noRecordsTemplate: [{ type: ContentChild, args: ['noRecordsTemplate'] }], actionFailureTemplate: [{ type: ContentChild, args: ['actionFailureTemplate'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlzZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL211bHRpLXNlbGVjdC9tdWx0aXNlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFvRSx1QkFBdUIsRUFBcUIsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsTCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUErQixlQUFlLEVBQTBCLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2SixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQUd4RCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQWEsQ0FBQyx1QkFBdUIsRUFBQyxjQUFjLEVBQUMsa0JBQWtCLEVBQUMsZ0JBQWdCLEVBQUMsb0JBQW9CLEVBQUMsYUFBYSxFQUFDLGNBQWMsRUFBQyxvQkFBb0IsRUFBQyxVQUFVLEVBQUMsWUFBWSxFQUFDLGVBQWUsRUFBQyxlQUFlLEVBQUMscUJBQXFCLEVBQUMscUJBQXFCLEVBQUMsbUJBQW1CLEVBQUMsV0FBVyxFQUFDLHNCQUFzQixFQUFDLHNCQUFzQixFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsc0JBQXNCLEVBQUMsWUFBWSxFQUFDLGdCQUFnQixFQUFDLGdCQUFnQixFQUFDLGVBQWUsRUFBQyxnQkFBZ0IsRUFBQyxrQkFBa0IsRUFBQyxnQkFBZ0IsRUFBQyxjQUFjLEVBQUMsWUFBWSxFQUFDLG9CQUFvQixFQUFDLGNBQWMsRUFBQyxRQUFRLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxFQUFDLG1CQUFtQixFQUFDLGFBQWEsRUFBQyxhQUFhLEVBQUMsYUFBYSxFQUFD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QUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjtvQkFDRCxPQUFPLEVBQUUsRUFFUjtpQkFDSjsrTUF5Q1UsY0FBYztzQkFGcEIsWUFBWTt1QkFBQyxnQkFBZ0I7Z0JBV3ZCLGNBQWM7c0JBRnBCLFlBQVk7dUJBQUMsZ0JBQWdCO2dCQWlCdkIsYUFBYTtzQkFGbkIsWUFBWTt1QkFBQyxlQUFlO2dCQWdCdEIsWUFBWTtzQkFGbEIsWUFBWTt1QkFBQyxjQUFjO2dCQVVyQixhQUFhO3NCQUZuQixZQUFZO3VCQUFDLGVBQWU7Z0JBS3RCLGlCQUFpQjtzQkFGdkIsWUFBWTt1QkFBQyxtQkFBbUI7Z0JBSzFCLHFCQUFxQjtzQkFGM0IsWUFBWTt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDb250YWluZXJSZWYsIFZhbHVlUHJvdmlkZXIsIFJlbmRlcmVyMiwgSW5qZWN0b3IsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgZm9yd2FyZFJlZiwgQ29udGVudENoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbXBvbmVudEJhc2UsIElDb21wb25lbnRCYXNlLCBhcHBseU1peGlucywgQ29tcG9uZW50TWl4aW5zLCBQcm9wZXJ0eUNvbGxlY3Rpb25JbmZvLCBGb3JtQmFzZSwgc2V0VmFsdWUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1iYXNlJztcbmltcG9ydCB7IE11bHRpU2VsZWN0IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWRyb3Bkb3ducyc7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWJhc2UnO1xuXG5cbmV4cG9ydCBjb25zdCBpbnB1dHM6IHN0cmluZ1tdID0gWydhY3Rpb25GYWlsdXJlVGVtcGxhdGUnLCdhZGRUYWdPbkJsdXInLCdhbGxvd0N1c3RvbVZhbHVlJywnYWxsb3dGaWx0ZXJpbmcnLCdhbGxvd09iamVjdEJpbmRpbmcnLCdhbGxvd1Jlc2l6ZScsJ2NoYW5nZU9uQmx1cicsJ2Nsb3NlUG9wdXBPblNlbGVjdCcsJ2Nzc0NsYXNzJywnZGF0YVNvdXJjZScsJ2RlYm91bmNlRGVsYXknLCdkZWxpbWl0ZXJDaGFyJywnZW5hYmxlR3JvdXBDaGVja0JveCcsJ2VuYWJsZUh0bWxTYW5pdGl6ZXInLCdlbmFibGVQZXJzaXN0ZW5jZScsJ2VuYWJsZVJ0bCcsJ2VuYWJsZVNlbGVjdGlvbk9yZGVyJywnZW5hYmxlVmlydHVhbGl6YXRpb24nLCdlbmFibGVkJywnZmllbGRzJywnZmlsdGVyQmFyUGxhY2Vob2xkZXInLCdmaWx0ZXJUeXBlJywnZmxvYXRMYWJlbFR5cGUnLCdmb290ZXJUZW1wbGF0ZScsJ2dyb3VwVGVtcGxhdGUnLCdoZWFkZXJUZW1wbGF0ZScsJ2hpZGVTZWxlY3RlZEl0ZW0nLCdodG1sQXR0cmlidXRlcycsJ2lnbm9yZUFjY2VudCcsJ2lnbm9yZUNhc2UnLCdpc0RldmljZUZ1bGxTY3JlZW4nLCdpdGVtVGVtcGxhdGUnLCdsb2NhbGUnLCdtYXhpbXVtU2VsZWN0aW9uTGVuZ3RoJywnbW9kZScsJ25vUmVjb3Jkc1RlbXBsYXRlJywnb3Blbk9uQ2xpY2snLCdwbGFjZWhvbGRlcicsJ3BvcHVwSGVpZ2h0JywncG9wdXBXaWR0aCcsJ3F1ZXJ5JywncmVhZG9ubHknLCdzZWxlY3RBbGxUZXh0Jywnc2hvd0NsZWFyQnV0dG9uJywnc2hvd0Ryb3BEb3duSWNvbicsJ3Nob3dTZWxlY3RBbGwnLCdzb3J0T3JkZXInLCd0ZXh0JywndW5TZWxlY3RBbGxUZXh0JywndmFsdWUnLCd2YWx1ZVRlbXBsYXRlJywnd2lkdGgnLCd6SW5kZXgnXTtcbmV4cG9ydCBjb25zdCBvdXRwdXRzOiBzdHJpbmdbXSA9IFsnYWN0aW9uQmVnaW4nLCdhY3Rpb25Db21wbGV0ZScsJ2FjdGlvbkZhaWx1cmUnLCdiZWZvcmVPcGVuJywnYmVmb3JlU2VsZWN0QWxsJywnYmx1cicsJ2NoYW5nZScsJ2NoaXBTZWxlY3Rpb24nLCdjbG9zZScsJ2NyZWF0ZWQnLCdjdXN0b21WYWx1ZVNlbGVjdGlvbicsJ2RhdGFCb3VuZCcsJ2Rlc3Ryb3llZCcsJ2ZpbHRlcmluZycsJ2ZvY3VzJywnb3BlbicsJ3JlbW92ZWQnLCdyZW1vdmluZycsJ3Jlc2l6ZVN0YXJ0JywncmVzaXplU3RvcCcsJ3Jlc2l6aW5nJywnc2VsZWN0Jywnc2VsZWN0ZWRBbGwnLCd0YWdnaW5nJywndmFsdWVDaGFuZ2UnXTtcbmV4cG9ydCBjb25zdCB0d29XYXlzOiBzdHJpbmdbXSA9IFsndmFsdWUnXTtcblxuLyoqXG4qIFRoZSBNdWx0aVNlbGVjdCBhbGxvd3MgdGhlIHVzZXIgdG8gcGljayBhIHZhbHVlcyBmcm9tIHRoZSBwcmVkZWZpbmVkIGxpc3Qgb2YgdmFsdWVzLlxuKmBgYGh0bWxcbio8ZWpzLW11bHRpc2VsZWN0PjwvZWpzLW11bHRpc2VsZWN0PlxuKmBgYFxuKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWpzLW11bHRpc2VsZWN0JyxcbiAgICBpbnB1dHM6IGlucHV0cyxcbiAgICBvdXRwdXRzOiBvdXRwdXRzLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNdWx0aVNlbGVjdENvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBxdWVyaWVzOiB7XG5cbiAgICB9XG59KVxuQENvbXBvbmVudE1peGlucyhbQ29tcG9uZW50QmFzZSwgRm9ybUJhc2VdKVxuZXhwb3J0IGNsYXNzIE11bHRpU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgTXVsdGlTZWxlY3QgaW1wbGVtZW50cyBJQ29tcG9uZW50QmFzZSB7XG4gICAgcHVibGljIGZvcm1Db21wQ29udGV4dCA6IGFueTtcbiAgICBwdWJsaWMgZm9ybUNvbnRleHQgOiBhbnk7XG4gICAgcHVibGljIHRhZ09iamVjdHM6IGFueTtcblx0YWN0aW9uQmVnaW46IGFueTtcblx0YWN0aW9uQ29tcGxldGU6IGFueTtcblx0YWN0aW9uRmFpbHVyZTogYW55O1xuXHRiZWZvcmVPcGVuOiBhbnk7XG5cdGJlZm9yZVNlbGVjdEFsbDogYW55O1xuXHRibHVyOiBhbnk7XG5cdGNoYW5nZTogYW55O1xuXHRjaGlwU2VsZWN0aW9uOiBhbnk7XG5cdGNsb3NlOiBhbnk7XG5cdGNyZWF0ZWQ6IGFueTtcblx0Y3VzdG9tVmFsdWVTZWxlY3Rpb246IGFueTtcblx0ZGF0YUJvdW5kOiBhbnk7XG5cdGRlc3Ryb3llZDogYW55O1xuXHRmaWx0ZXJpbmc6IGFueTtcblx0Zm9jdXM6IGFueTtcblx0b3BlbjogYW55O1xuXHRyZW1vdmVkOiBhbnk7XG5cdHJlbW92aW5nOiBhbnk7XG5cdHJlc2l6ZVN0YXJ0OiBhbnk7XG5cdHJlc2l6ZVN0b3A6IGFueTtcblx0cmVzaXppbmc6IGFueTtcblx0c2VsZWN0OiBhbnk7XG5cdHNlbGVjdGVkQWxsOiBhbnk7XG5cdHRhZ2dpbmc6IGFueTtcblx0cHVibGljIHZhbHVlQ2hhbmdlOiBhbnk7XG5cblxuICAgIC8qKiBcbiAgICAgKiBBY2NlcHRzIHRoZSB0ZW1wbGF0ZSBkZXNpZ24gYW5kIGFzc2lnbnMgaXQgdG8gdGhlIGZvb3RlciBjb250YWluZXIgb2YgdGhlIHBvcHVwIGxpc3QuIFxuICAgICAqID4gRm9yIG1vcmUgZGV0YWlscyBhYm91dCB0aGUgYXZhaWxhYmxlIHRlbXBsYXRlIG9wdGlvbnMgcmVmZXIgdG8gW2BUZW1wbGF0ZWBdKC4uLy4uL211bHRpLXNlbGVjdC90ZW1wbGF0ZXMpIGRvY3VtZW50YXRpb24uXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2Zvb3RlclRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBmb290ZXJUZW1wbGF0ZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBBY2NlcHRzIHRoZSB0ZW1wbGF0ZSBkZXNpZ24gYW5kIGFzc2lnbnMgaXQgdG8gdGhlIGhlYWRlciBjb250YWluZXIgb2YgdGhlIHBvcHVwIGxpc3QuIFxuICAgICAqID4gRm9yIG1vcmUgZGV0YWlscyBhYm91dCB0aGUgYXZhaWxhYmxlIHRlbXBsYXRlIG9wdGlvbnMgcmVmZXIgdG8gW2BUZW1wbGF0ZWBdKC4uLy4uL211bHRpLXNlbGVjdC90ZW1wbGF0ZXMpIGRvY3VtZW50YXRpb24uXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2hlYWRlclRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBoZWFkZXJUZW1wbGF0ZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBBY2NlcHRzIHRoZSB0ZW1wbGF0ZSBkZXNpZ24gYW5kIGFzc2lnbnMgaXQgdG8gdGhlIHNlbGVjdGVkIGxpc3QgaXRlbSBpbiB0aGUgaW5wdXQgZWxlbWVudCBvZiB0aGUgY29tcG9uZW50LiBcbiAgICAgKiBGb3IgbW9yZSBkZXRhaWxzIGFib3V0IHRoZSBhdmFpbGFibGUgdGVtcGxhdGUgb3B0aW9ucyByZWZlciB0byBcbiAgICAgKiBbYFRlbXBsYXRlYF0oLi4vLi4vbXVsdGktc2VsZWN0L3RlbXBsYXRlcykgZG9jdW1lbnRhdGlvbi5cbiAgICAgKiBcbiAgICAgKiBXZSBoYXZlIGJ1aWx0LWluIGB0ZW1wbGF0ZSBlbmdpbmVgXG4gICAgICp3aGljaCBwcm92aWRlcyBvcHRpb25zIHRvIGNvbXBpbGUgdGVtcGxhdGUgc3RyaW5nIGludG8gYSBleGVjdXRhYmxlIGZ1bmN0aW9uLlxuICAgICAqRm9yIEVYOiBXZSBoYXZlIGV4cHJlc3Npb24gZXZvbHV0aW9uIGFzIGxpa2UgRVM2IGV4cHJlc3Npb24gc3RyaW5nIGxpdGVyYWxzLlxuICAgICAqICAgICBcbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICogQGFzcHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgndmFsdWVUZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgdmFsdWVUZW1wbGF0ZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBBY2NlcHRzIHRoZSB0ZW1wbGF0ZSBkZXNpZ24gYW5kIGFzc2lnbnMgaXQgdG8gZWFjaCBsaXN0IGl0ZW0gcHJlc2VudCBpbiB0aGUgcG9wdXAuIFxuICAgICAqID4gRm9yIG1vcmUgZGV0YWlscyBhYm91dCB0aGUgYXZhaWxhYmxlIHRlbXBsYXRlIG9wdGlvbnMgcmVmZXIgdG8gW2BUZW1wbGF0ZWBdKC4uLy4uL211bHRpLXNlbGVjdC90ZW1wbGF0ZXMpIGRvY3VtZW50YXRpb24uXG4gICAgICogXG4gICAgICogV2UgaGF2ZSBidWlsdC1pbiBgdGVtcGxhdGUgZW5naW5lYFxuICAgICAqd2hpY2ggcHJvdmlkZXMgb3B0aW9ucyB0byBjb21waWxlIHRlbXBsYXRlIHN0cmluZyBpbnRvIGEgZXhlY3V0YWJsZSBmdW5jdGlvbi5cbiAgICAgKkZvciBFWDogV2UgaGF2ZSBleHByZXNzaW9uIGV2b2x1dGlvbiBhcyBsaWtlIEVTNiBleHByZXNzaW9uIHN0cmluZyBsaXRlcmFscy5cbiAgICAgKiAgICAgXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2l0ZW1UZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgaXRlbVRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEFjY2VwdHMgdGhlIHRlbXBsYXRlIGRlc2lnbiBhbmQgYXNzaWducyBpdCB0byB0aGUgZ3JvdXAgaGVhZGVycyBwcmVzZW50IGluIHRoZSBNdWx0aVNlbGVjdCBwb3B1cCBsaXN0LlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKiBAYXNwdHlwZSBzdHJpbmdcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdncm91cFRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBncm91cFRlbXBsYXRlOiBhbnk7XG4gICAgQENvbnRlbnRDaGlsZCgnbm9SZWNvcmRzVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgnTm8gcmVjb3JkcyBmb3VuZCcpXG4gICAgcHVibGljIG5vUmVjb3Jkc1RlbXBsYXRlOiBhbnk7XG4gICAgQENvbnRlbnRDaGlsZCgnYWN0aW9uRmFpbHVyZVRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoJ1JlcXVlc3QgZmFpbGVkJylcbiAgICBwdWJsaWMgYWN0aW9uRmFpbHVyZVRlbXBsYXRlOiBhbnk7XG5cbiAgICBwcml2YXRlIHNraXBGcm9tRXZlbnQ6Ym9vbGVhbiA9IHRydWU7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ0VsZTogRWxlbWVudFJlZiwgcHJpdmF0ZSBzcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOlZpZXdDb250YWluZXJSZWYsIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLCBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5lbGVtZW50ID0gdGhpcy5uZ0VsZS5uYXRpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcyA9IHRoaXMuaW5qZWN0ZWRNb2R1bGVzIHx8IFtdO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnRHJvcERvd25zQ2hlY2tCb3hTZWxlY3Rpb24nKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0Ryb3BEb3duc1ZpcnR1YWxTY3JvbGwnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cclxuICAgICAgICB0aGlzLnJlZ2lzdGVyRXZlbnRzKG91dHB1dHMpO1xuICAgICAgICB0aGlzLmFkZFR3b1dheS5jYWxsKHRoaXMsIHR3b1dheXMpO1xuICAgICAgICBzZXRWYWx1ZSgnY3VycmVudEluc3RhbmNlJywgdGhpcywgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgdGhpcy5mb3JtQ29udGV4dCAgPSBuZXcgRm9ybUJhc2UoKTtcbiAgICAgICAgdGhpcy5mb3JtQ29tcENvbnRleHQgID0gbmV3IENvbXBvbmVudEJhc2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShyZWdpc3RlckZ1bmN0aW9uOiAoXzogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKHJlZ2lzdGVyRnVuY3Rpb246ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgfVxuICAgIFxuICAgIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmZvcm1Db21wQ29udGV4dC5uZ09uSW5pdCh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1Db250ZXh0Lm5nQWZ0ZXJWaWV3SW5pdCh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybUNvbXBDb250ZXh0Lm5nT25EZXN0cm95KHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIFxuICAgICAgICB0aGlzLmZvcm1Db21wQ29udGV4dC5uZ0FmdGVyQ29udGVudENoZWNrZWQodGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyRXZlbnRzOiAoZXZlbnRMaXN0OiBzdHJpbmdbXSkgPT4gdm9pZDtcbiAgICBwdWJsaWMgYWRkVHdvV2F5OiAocHJvcExpc3Q6IHN0cmluZ1tdKSA9PiB2b2lkO1xufVxuXG4iXX0=