UNPKG

@syncfusion/ej2-angular-gantt

Version:
96 lines 22.5 kB
import { __decorate } from "tslib"; import { Directive, ContentChildren, ContentChild } from '@angular/core'; import { ComplexBase, ArrayBase, setValue } from '@syncfusion/ej2-angular-base'; import { Template } from '@syncfusion/ej2-angular-base'; import * as i0 from "@angular/core"; let input = ['allowEditing', 'allowFiltering', 'allowReordering', 'allowResizing', 'allowSorting', 'clipMode', 'customAttributes', 'disableHtmlEncode', 'displayAsCheckBox', 'edit', 'editType', 'field', 'filter', 'filterTemplate', 'format', 'formatter', 'freeze', 'headerTemplate', 'headerText', 'headerTextAlign', 'hideAtMedia', 'isFrozen', 'isPrimaryKey', 'lockColumn', 'maxWidth', 'minWidth', 'showColumnMenu', 'sortComparer', 'template', 'textAlign', 'type', 'validationRules', 'valueAccessor', 'visible', 'width']; let outputs = []; /** * `e-column` directive represent a column of the Angular Gantt. * It must be contained in a Gantt component(`ejs-gantt`). * ```html * <ejs-gantt [dataSource]='data' allowSelection='true' allowSorting='true'> * <e-columns> * <e-column field='ID' width='150'></e-column> * <e-column field='taskName' headerText='Task Name' width='200'></e-column> * </e-columns> * </ejs-gantt> * ``` */ export class ColumnDirective extends ComplexBase { constructor(viewContainerRef) { super(); this.viewContainerRef = viewContainerRef; setValue('currentInstance', this, this.viewContainerRef); this.registerEvents(outputs); this.directivePropList = input; } } ColumnDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ColumnDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); ColumnDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ColumnDirective, selector: "ejs-gantt>e-columns>e-column", inputs: { allowEditing: "allowEditing", allowFiltering: "allowFiltering", allowReordering: "allowReordering", allowResizing: "allowResizing", allowSorting: "allowSorting", clipMode: "clipMode", customAttributes: "customAttributes", disableHtmlEncode: "disableHtmlEncode", displayAsCheckBox: "displayAsCheckBox", edit: "edit", editType: "editType", field: "field", filter: "filter", filterTemplate: "filterTemplate", format: "format", formatter: "formatter", freeze: "freeze", headerTemplate: "headerTemplate", headerText: "headerText", headerTextAlign: "headerTextAlign", hideAtMedia: "hideAtMedia", isFrozen: "isFrozen", isPrimaryKey: "isPrimaryKey", lockColumn: "lockColumn", maxWidth: "maxWidth", minWidth: "minWidth", showColumnMenu: "showColumnMenu", sortComparer: "sortComparer", template: "template", textAlign: "textAlign", type: "type", validationRules: "validationRules", valueAccessor: "valueAccessor", visible: "visible", width: "width" }, queries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true }, { propertyName: "headerTemplate", first: true, predicate: ["headerTemplate"], descendants: true }, { propertyName: "editTemplate", first: true, predicate: ["editTemplate"], descendants: true }, { propertyName: "filter_itemTemplate", first: true, predicate: ["filterItemTemplate"], descendants: true }, { propertyName: "filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true }, { propertyName: "emptyRecordTemplate", first: true, predicate: ["emptyRecordTemplate"], descendants: true }], usesInheritance: true, ngImport: i0 }); __decorate([ Template() ], ColumnDirective.prototype, "template", void 0); __decorate([ Template() ], ColumnDirective.prototype, "headerTemplate", void 0); __decorate([ Template() ], ColumnDirective.prototype, "editTemplate", void 0); __decorate([ Template() ], ColumnDirective.prototype, "filter_itemTemplate", void 0); __decorate([ Template() ], ColumnDirective.prototype, "filterTemplate", void 0); __decorate([ Template() ], ColumnDirective.prototype, "emptyRecordTemplate", void 0); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ColumnDirective, decorators: [{ type: Directive, args: [{ selector: 'ejs-gantt>e-columns>e-column', inputs: input, outputs: outputs, queries: {} }] }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { template: [{ type: ContentChild, args: ['template'] }], headerTemplate: [{ type: ContentChild, args: ['headerTemplate'] }], editTemplate: [{ type: ContentChild, args: ['editTemplate'] }], filter_itemTemplate: [{ type: ContentChild, args: ['filterItemTemplate'] }], filterTemplate: [{ type: ContentChild, args: ['filterTemplate'] }], emptyRecordTemplate: [{ type: ContentChild, args: ['emptyRecordTemplate'] }] } }); /** * Column Array Directive * @private */ export class ColumnsDirective extends ArrayBase { constructor() { super('columns'); } } ColumnsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ColumnsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); ColumnsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ColumnsDirective, selector: "ejs-gantt>e-columns", queries: [{ propertyName: "children", predicate: ColumnDirective }], usesInheritance: true, ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ColumnsDirective, decorators: [{ type: Directive, args: [{ selector: 'ejs-gantt>e-columns', queries: { children: new ContentChildren(ColumnDirective) }, }] }], ctorParameters: function () { return []; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2FudHQvY29sdW1ucy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQUd4RCxJQUFJLEtBQUssR0FBYSxDQUFDLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2hoQixJQUFJLE9BQU8sR0FBYSxFQUFFLENBQUM7QUFDM0I7Ozs7Ozs7Ozs7O0dBV0c7QUFTSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUE0QjtJQW9PN0QsWUFBb0IsZ0JBQWlDO1FBQ2pELEtBQUssRUFBRSxDQUFDO1FBRFEscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUVqRCxRQUFRLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUNuQyxDQUFDOzs0R0F6T1EsZUFBZTtnR0FBZixlQUFlO0FBME14QjtJQURDLFFBQVEsRUFBRTtpREFDVTtBQVFyQjtJQURDLFFBQVEsRUFBRTt1REFDZ0I7QUFHM0I7SUFEQyxRQUFRLEVBQUU7cURBQ2M7QUFHekI7SUFEQyxRQUFRLEVBQUU7NERBQ3FCO0FBT2hDO0lBREMsUUFBUSxFQUFFO3VEQUNnQjtBQUczQjtJQURDLFFBQVEsRUFBRTs0REFDcUI7MkZBbE92QixlQUFlO2tCQVIzQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw4QkFBOEI7b0JBQ3hDLE1BQU0sRUFBRSxLQUFLO29CQUNiLE9BQU8sRUFBRSxPQUFPO29CQUNoQixPQUFPLEVBQUUsRUFFUjtpQkFDSjt1R0EyTVUsUUFBUTtzQkFGZCxZQUFZO3VCQUFDLFVBQVU7Z0JBVWpCLGNBQWM7c0JBRnBCLFlBQVk7dUJBQUMsZ0JBQWdCO2dCQUt2QixZQUFZO3NCQUZsQixZQUFZO3VCQUFDLGNBQWM7Z0JBS3JCLG1CQUFtQjtzQkFGekIsWUFBWTt1QkFBQyxvQkFBb0I7Z0JBUzNCLGNBQWM7c0JBRnBCLFlBQVk7dUJBQUMsZ0JBQWdCO2dCQUt2QixtQkFBbUI7c0JBRnpCLFlBQVk7dUJBQUMscUJBQXFCOztBQVl2Qzs7O0dBR0c7QUFPSCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsU0FBMkI7SUFDN0Q7UUFDSSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckIsQ0FBQzs7NkdBSFEsZ0JBQWdCO2lHQUFoQixnQkFBZ0Isb0ZBSFMsZUFBZTsyRkFHeEMsZ0JBQWdCO2tCQU41QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLE9BQU8sRUFBRTt3QkFDTCxRQUFRLEVBQUUsSUFBSSxlQUFlLENBQUMsZUFBZSxDQUFDO3FCQUNqRDtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVmlld0NvbnRhaW5lclJlZiwgQ29udGVudENoaWxkcmVuLCBDb250ZW50Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBsZXhCYXNlLCBBcnJheUJhc2UsIHNldFZhbHVlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYmFzZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWJhc2UnO1xuXG5cbmxldCBpbnB1dDogc3RyaW5nW10gPSBbJ2FsbG93RWRpdGluZycsICdhbGxvd0ZpbHRlcmluZycsICdhbGxvd1Jlb3JkZXJpbmcnLCAnYWxsb3dSZXNpemluZycsICdhbGxvd1NvcnRpbmcnLCAnY2xpcE1vZGUnLCAnY3VzdG9tQXR0cmlidXRlcycsICdkaXNhYmxlSHRtbEVuY29kZScsICdkaXNwbGF5QXNDaGVja0JveCcsICdlZGl0JywgJ2VkaXRUeXBlJywgJ2ZpZWxkJywgJ2ZpbHRlcicsICdmaWx0ZXJUZW1wbGF0ZScsICdmb3JtYXQnLCAnZm9ybWF0dGVyJywgJ2ZyZWV6ZScsICdoZWFkZXJUZW1wbGF0ZScsICdoZWFkZXJUZXh0JywgJ2hlYWRlclRleHRBbGlnbicsICdoaWRlQXRNZWRpYScsICdpc0Zyb3plbicsICdpc1ByaW1hcnlLZXknLCAnbG9ja0NvbHVtbicsICdtYXhXaWR0aCcsICdtaW5XaWR0aCcsICdzaG93Q29sdW1uTWVudScsICdzb3J0Q29tcGFyZXInLCAndGVtcGxhdGUnLCAndGV4dEFsaWduJywgJ3R5cGUnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlQWNjZXNzb3InLCAndmlzaWJsZScsICd3aWR0aCddO1xubGV0IG91dHB1dHM6IHN0cmluZ1tdID0gW107XG4vKipcbiAqIGBlLWNvbHVtbmAgZGlyZWN0aXZlIHJlcHJlc2VudCBhIGNvbHVtbiBvZiB0aGUgQW5ndWxhciBHYW50dC4gXG4gKiBJdCBtdXN0IGJlIGNvbnRhaW5lZCBpbiBhIEdhbnR0IGNvbXBvbmVudChgZWpzLWdhbnR0YCkuIFxuICogYGBgaHRtbFxuICogPGVqcy1nYW50dCBbZGF0YVNvdXJjZV09J2RhdGEnIGFsbG93U2VsZWN0aW9uPSd0cnVlJyBhbGxvd1NvcnRpbmc9J3RydWUnPiBcbiAqICAgPGUtY29sdW1ucz5cbiAqICAgIDxlLWNvbHVtbiBmaWVsZD0nSUQnIHdpZHRoPScxNTAnPjwvZS1jb2x1bW4+XG4gKiAgICA8ZS1jb2x1bW4gZmllbGQ9J3Rhc2tOYW1lJyBoZWFkZXJUZXh0PSdUYXNrIE5hbWUnIHdpZHRoPScyMDAnPjwvZS1jb2x1bW4+XG4gKiAgIDwvZS1jb2x1bW5zPlxuICogPC9lanMtZ2FudHQ+XG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdlanMtZ2FudHQ+ZS1jb2x1bW5zPmUtY29sdW1uJyxcbiAgICBpbnB1dHM6IGlucHV0LFxuICAgIG91dHB1dHM6IG91dHB1dHMsICAgIFxuICAgIHF1ZXJpZXM6IHtcblxuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgQ29sdW1uRGlyZWN0aXZlIGV4dGVuZHMgQ29tcGxleEJhc2U8Q29sdW1uRGlyZWN0aXZlPiB7XG4gICAgcHVibGljIGRpcmVjdGl2ZVByb3BMaXN0OiBhbnk7XG5cdFxuXG5cbiAgICAvKiogXG4gICAgICogVG8gZGVmaW5lIGNvbHVtbiB0eXBlLlxuICAgICAqL1xuICAgIHB1YmxpYyB0eXBlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBhbGxvd0VkaXRpbmdgIHNldCB0byBmYWxzZSwgdGhlbiBpdCBkaXNhYmxlcyBlZGl0aW5nIG9mIGEgcGFydGljdWxhciBjb2x1bW4uIFxuICAgICAqIEJ5IGRlZmF1bHQgYWxsIGNvbHVtbnMgYXJlIGVkaXRhYmxlLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWxsb3dFZGl0aW5nOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBhbGxvd0ZpbHRlcmluZ2Agc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGVzIGZpbHRlcmluZyBvcHRpb24gYW5kIGZpbHRlciBiYXIgZWxlbWVudCBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLiBcbiAgICAgKiBCeSBkZWZhdWx0IGFsbCBjb2x1bW5zIGFyZSBmaWx0ZXJhYmxlLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWxsb3dGaWx0ZXJpbmc6IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgYGFsbG93UmVvcmRlcmluZ2Agc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGVzIHJlb3JkZXIgb2YgYSBwYXJ0aWN1bGFyIGNvbHVtbi4gXG4gICAgICogQnkgZGVmYXVsdCBhbGwgY29sdW1ucyBjYW4gYmUgcmVvcmRlci5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIGFsbG93UmVvcmRlcmluZzogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJZiBgYWxsb3dSZXNpemluZ2AgaXMgc2V0IHRvIGZhbHNlLCBpdCBkaXNhYmxlcyByZXNpemUgb3B0aW9uIG9mIGEgcGFydGljdWxhciBjb2x1bW4uIFxuICAgICAqIEJ5IGRlZmF1bHQgYWxsIHRoZSBjb2x1bW5zIGNhbiBiZSByZXNpemVkLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWxsb3dSZXNpemluZzogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJZiBgYWxsb3dTb3J0aW5nYCBzZXQgdG8gZmFsc2UsIHRoZW4gaXQgZGlzYWJsZXMgc29ydGluZyBvcHRpb24gb2YgYSBwYXJ0aWN1bGFyIGNvbHVtbi4gXG4gICAgICogQnkgZGVmYXVsdCBhbGwgY29sdW1ucyBhcmUgc29ydGFibGUuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBhbGxvd1NvcnRpbmc6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgb3ZlcmZsb3cgbW9kZSBmb3IgY2VsbCBjb250ZW50LiBUaGUgYXZhaWxhYmxlIG1vZGVzIGFyZTogXG4gICAgICogKiBgQ2xpcGAgLSAgVHJ1bmNhdGVzIHRoZSBjZWxsIGNvbnRlbnQgd2hlbiBpdCBvdmVyZmxvd3MgaXRzIGFyZWEuIFxuICAgICAqICogYEVsbGlwc2lzYCAtICBEaXNwbGF5cyBhbiBlbGxpcHNpcyB3aGVuIHRoZSBjZWxsIGNvbnRlbnQgb3ZlcmZsb3dzIGl0cyBhcmVhLiBcbiAgICAgKiAqIGBFbGxpcHNpc1dpdGhUb29sdGlwYCAtIERpc3BsYXlzIGFuIGVsbGlwc2lzIHdoZW4gdGhlIGNlbGwgY29udGVudCBvdmVyZmxvd3MgaXRzIGFyZWEsIGFuZCBzaG93cyBhIHRvb2x0aXAgb24gaG92ZXIgb3ZlciB0aGUgZWxsaXBzaXMuXG4gICAgICogQGRlZmF1bHQgU3luY2Z1c2lvbi5FSjIuR3JpZHMuQ2xpcE1vZGUuRWxsaXBzaXNXaXRoVG9vbHRpcFxuICAgICAqIEBpc2VudW1lcmF0aW9uIHRydWVcbiAgICAgKiBAYXNwdHlwZSBTeW5jZnVzaW9uLkVKMi5Hcmlkcy5DbGlwTW9kZVxuICAgICAqL1xuICAgIHB1YmxpYyBjbGlwTW9kZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgQ1NTIHN0eWxlcyBhbmQgYXR0cmlidXRlcyBvZiB0aGUgY29udGVudCBjZWxscyBvZiBhIHBhcnRpY3VsYXIgY29sdW1uIGNhbiBiZSBjdXN0b21pemVkLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgY3VzdG9tQXR0cmlidXRlczogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJZiBgZGlzYWJsZUh0bWxFbmNvZGVgIGlzIHNldCB0byB0cnVlLCBpdCBkaXNhYmxlcyBIVE1MIGVuY29kaW5nIGZvciB0aGUgY29udGVudCBvZiBzcGVjaWZpYyBjb2x1bW4uXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgZGlzYWJsZUh0bWxFbmNvZGU6IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgYGRpc3BsYXlBc0NoZWNrQm94YCBpcyBzZXQgdG8gdHJ1ZSwgaXQgZGlzcGxheXMgdGhlIGNvbHVtbiB2YWx1ZSBhcyBhIGNoZWNrIGJveCBpbnN0ZWFkIG9mIEJvb2xlYW4gdmFsdWUuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgZGlzcGxheUFzQ2hlY2tCb3g6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgYElFZGl0Q2VsbGAgb2JqZWN0IHRvIGN1c3RvbWl6ZSBkZWZhdWx0IGVkaXQgY2VsbC5cbiAgICAgKiBAZGVmYXVsdCB7fVxuICAgICAqL1xuICAgIHB1YmxpYyBlZGl0OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIHR5cGUgb2YgY29tcG9uZW50IHVzZWQgZm9yIGVkaXRpbmcgdGhlIGZpZWxkLlxuICAgICAqIEBkZWZhdWx0ICdzdHJpbmdlZGl0J1xuICAgICAqL1xuICAgIHB1YmxpYyBlZGl0VHlwZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBmaWVsZCBuYW1lIG9mIGNvbHVtbiB3aGljaCBpcyBtYXBwZWQgd2l0aCBtYXBwaW5nIG5hbWUgb2YgRGF0YVNvdXJjZS4gXG4gICAgICogVGhlIGBmaWVsZGAgbmFtZSBtdXN0IGJlIGEgdmFsaWQgSmF2YVNjcmlwdCBpZGVudGlmaWVyLCBcbiAgICAgKiB0aGUgZmlyc3QgY2hhcmFjdGVyIG11c3QgYmUgYW4gYWxwaGFiZXQgYW5kIHNob3VsZCBub3QgY29udGFpbiBzcGFjZXMgYW5kIHNwZWNpYWwgY2hhcmFjdGVycy5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGZpZWxkOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEl0IGlzIHVzZWQgdG8gY3VzdG9taXplIHRoZSBkZWZhdWx0IGZpbHRlciBvcHRpb25zIGZvciBhIHNwZWNpZmljIGNvbHVtbnMuIFxuICAgICAqICogdWkgLSB0byByZW5kZXIgY3VzdG9tIGNvbXBvbmVudCBmb3Igc3BlY2lmaWMgY29sdW1uLiBJdCBoYXMgZm9sbG93aW5nIGZ1bmN0aW9uczogXG4gICAgICogKiB1aS5jcmVhdGUgLSBJdCBpcyB1c2VkIGZvciBjcmVhdGluZyBjdXN0b20gY29tcG9uZW50cy4gXG4gICAgICogKiB1aS5yZWFkIC0gSXQgaXMgdXNlZCBmb3IgcmVhZCB0aGUgdmFsdWUgZnJvbSB0aGUgY29tcG9uZW50LiBcbiAgICAgKiAqIHVpLndyaXRlIC0gSXQgaXMgdXNlZCB0byBhcHBseSBjb21wb25lbnQgbW9kZWwgYXMgZHluYW1pY2FsbHkuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBmaWx0ZXI6IGFueTtcbiAgICAvKiogXG4gICAgICogSXQgaXMgdXNlZCB0byBjaGFuZ2UgZGlzcGxheSB2YWx1ZSB3aXRoIHRoZSBnaXZlbiBmb3JtYXQgYW5kIGRvZXMgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgZGF0YS4gXG4gICAgICogR2V0cyB0aGUgZm9ybWF0IGZyb20gdGhlIHVzZXIgd2hpY2ggY2FuIGJlIHN0YW5kYXJkIG9yIGN1c3RvbSBcbiAgICAgKiBbYG51bWJlcmBdKGh0dHBzOi8vZWoyLnN5bmNmdXNpb24uY29tL2RvY3VtZW50YXRpb24vY29tbW9uL2ludGVybmF0aW9uYWxpemF0aW9uLyNudW1iZXItZm9ybWF0dGluZykgXG4gICAgICogYW5kIFtgZGF0ZWBdKGh0dHBzOi8vZWoyLnN5bmNmdXNpb24uY29tL2RvY3VtZW50YXRpb24vY29tbW9uL2ludGVybmF0aW9uYWxpemF0aW9uLyNkYXRlLWZvcm1hdHRpbmcpIGZvcm1hdHMuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIHB1YmxpYyBmb3JtYXQ6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgbWV0aG9kIHdoaWNoIGlzIHVzZWQgdG8gYWNoaWV2ZSBjdXN0b20gZm9ybWF0dGluZyBmcm9tIGFuIGV4dGVybmFsIGZ1bmN0aW9uLiBcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIHRyaWdnZXJzIGJlZm9yZSByZW5kZXJpbmcgb2YgZWFjaCBjZWxsLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgZm9ybWF0dGVyOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERldGVybWluZXMgd2hpY2ggc2lkZSAobGVmdCwgcmlnaHQsIG9yIGZpeGVkKSB0aGUgY29sdW1uIHNob3VsZCBiZSBmcm96ZW4gb24uXG4gICAgICogQGRlZmF1bHQgU3luY2Z1c2lvbi5FSjIuR3JpZHMuRnJlZXplRGlyZWN0aW9uLk5vbmVcbiAgICAgKiBAaXNlbnVtZXJhdGlvbiB0cnVlXG4gICAgICogQGFzcHR5cGUgU3luY2Z1c2lvbi5FSjIuR3JpZHMuRnJlZXplRGlyZWN0aW9uXG4gICAgICovXG4gICAgcHVibGljIGZyZWV6ZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBoZWFkZXIgdGV4dCBvZiBjb2x1bW4gd2hpY2ggaXMgdXNlZCB0byBkaXNwbGF5IGluIGNvbHVtbiBoZWFkZXIuIFxuICAgICAqIElmIGBoZWFkZXJUZXh0YCBpcyBub3QgZGVmaW5lZCwgdGhlbiBmaWVsZCBuYW1lIHZhbHVlIHdpbGwgYmUgYXNzaWduZWQgdG8gaGVhZGVyIHRleHQuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBoZWFkZXJUZXh0OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZSB0aGUgYWxpZ25tZW50IG9mIGNvbHVtbiBoZWFkZXIgd2hpY2ggaXMgdXNlZCB0byBhbGlnbiB0aGUgdGV4dCBvZiBjb2x1bW4gaGVhZGVyLlxuICAgICAqIEBkZWZhdWx0IFN5bmNmdXNpb24uRUoyLkdyaWRzLlRleHRBbGlnbi5MZWZ0XG4gICAgICogQGlzZW51bWVyYXRpb24gdHJ1ZVxuICAgICAqIEBhc3B0eXBlIFN5bmNmdXNpb24uRUoyLkdyaWRzLlRleHRBbGlnblxuICAgICAqL1xuICAgIHB1YmxpYyBoZWFkZXJUZXh0QWxpZ246IGFueTtcbiAgICAvKiogXG4gICAgICogQ29sdW1uIHZpc2liaWxpdHkgY2FuIGNoYW5nZSBiYXNlZCBvbiBbYE1lZGlhIFF1ZXJpZXNgXShodHRwOi8vY3NzbWVkaWFxdWVyaWVzLmNvbS93aGF0LWFyZS1jc3MtbWVkaWEtcXVlcmllcy5odG1sKS4gXG4gICAgICogYGhpZGVBdE1lZGlhYCBhY2NlcHRzIG9ubHkgdmFsaWQgTWVkaWEgUXVlcmllcy5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGhpZGVBdE1lZGlhOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEZyZWV6ZXMgdGhlIGNvbHVtbiBpZiBzZXQgdG8gYHRydWVgLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIGlzRnJvemVuOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBpc1ByaW1hcnlLZXlgIGlzIHNldCB0byB0cnVlLCBjb25zaWRlcnMgdGhpcyBjb2x1bW4gYXMgdGhlIHByaW1hcnkga2V5IGNvbnN0cmFpbnQuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNQcmltYXJ5S2V5OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFByZXZlbnRzIGNvbHVtbiByZW9yZGVyaW5nIHdoZW4gc2V0IHRvIHRydWUsIGxvY2tpbmcgdGhlIGNvbHVtbiBpbnRvIGEgc2V0IHBvc2l0aW9uLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIGxvY2tDb2x1bW46IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgbWF4aW11bSB3aWR0aCBvZiB0aGUgY29sdW1uIGluIHBpeGVsIG9yIHBlcmNlbnRhZ2UsIHdoaWNoIHdpbGwgcmVzdHJpY3QgcmVzaXppbmcgYmV5b25kIHRoaXMgcGl4ZWwgb3IgcGVyY2VudGFnZS5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIG1heFdpZHRoOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIG1pbmltdW0gd2lkdGggb2YgdGhlIGNvbHVtbiBpbiBwaXhlbHMgb3IgcGVyY2VudGFnZS5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIG1pbldpZHRoOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlY2lkZXMgaWYgdGhlIGNvbHVtbiBtZW51IHNob3VsZCBiZSBhdmFpbGFibGUsIHByb3ZpZGluZyBvcHRpb25zIGZvciBjb2x1bW4gY3VzdG9taXphdGlvbi5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIHNob3dDb2x1bW5NZW51OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIHNvcnQgY29tcGFyZXIgcHJvcGVydHkuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBzb3J0Q29tcGFyZXI6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgYWxpZ25tZW50IG9mIHRoZSBjb2x1bW4gaW4gYm90aCBoZWFkZXIgYW5kIGNvbnRlbnQgY2VsbHMuXG4gICAgICogQGRlZmF1bHQgU3luY2Z1c2lvbi5FSjIuR3JpZHMuVGV4dEFsaWduLkxlZnRcbiAgICAgKiBAaXNlbnVtZXJhdGlvbiB0cnVlXG4gICAgICogQGFzcHR5cGUgU3luY2Z1c2lvbi5FSjIuR3JpZHMuVGV4dEFsaWduXG4gICAgICovXG4gICAgcHVibGljIHRleHRBbGlnbjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHZhbGlkYXRpb24gcnVsZXMgZm9yIGRhdGEgYmVmb3JlIGNyZWF0aW5nIG9yIHVwZGF0aW5nIHJlY29yZHMuIFxuICAgICAqIFRoZSBydWxlcyBhcmUgdXNlZCB0byBlbnN1cmUgdGhhdCBkYXRhIG1lZXRzIHNwZWNpZmljIGNyaXRlcmlhIGJlZm9yZSBpdCBpcyBzYXZlZCBvciB1cGRhdGVkLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGlvblJ1bGVzOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIG1ldGhvZCB1c2VkIHRvIGFwcGx5IGN1c3RvbSBjZWxsIHZhbHVlcyBmcm9tIGV4dGVybmFsIGZ1bmN0aW9uIGFuZCBkaXNwbGF5IHRoaXMgb24gZWFjaCBjZWxsIHJlbmRlcmVkLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsdWVBY2Nlc3NvcjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJZiBgdmlzaWJsZWAgaXMgc2V0IHRvIGZhbHNlLCBoaWRlcyB0aGUgcGFydGljdWxhciBjb2x1bW4uIEJ5IGRlZmF1bHQsIGNvbHVtbnMgYXJlIGRpc3BsYXllZC5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIHZpc2libGU6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbiBpbiBwaXhlbHMgb3IgcGVyY2VudGFnZS5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIHdpZHRoOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGNvbHVtbiB0ZW1wbGF0ZSB0aGF0IHJlbmRlcnMgY3VzdG9taXplZCBlbGVtZW50IGluIGVhY2ggY2VsbCBvZiB0aGUgY29sdW1uLiBcbiAgICAgKiBJdCBhY2NlcHRzIGVpdGhlciB0ZW1wbGF0ZSBzdHJpbmcgb3IgSFRNTCBlbGVtZW50IElELlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKiBAYXNwdHlwZSBzdHJpbmdcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCd0ZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgdGVtcGxhdGU6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgaGVhZGVyIHRlbXBsYXRlIGFzIHN0cmluZyBvciBIVE1MIGVsZW1lbnQgSUQgd2hpY2ggaXMgdXNlZCB0byBhZGQgY3VzdG9taXplZCBlbGVtZW50IGluIHRoZSBjb2x1bW4gaGVhZGVyLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKiBAYXNwdHlwZSBzdHJpbmdcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdoZWFkZXJUZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgaGVhZGVyVGVtcGxhdGU6IGFueTtcbiAgICBAQ29udGVudENoaWxkKCdlZGl0VGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGVkaXRUZW1wbGF0ZTogYW55O1xuICAgIEBDb250ZW50Q2hpbGQoJ2ZpbHRlckl0ZW1UZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgZmlsdGVyX2l0ZW1UZW1wbGF0ZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgYSBjdXN0b20gdGVtcGxhdGUgb3IgVUkgZm9yIGZpbHRlcmluZyB3aXRoaW4gdGhpcyBjb2x1bW4sIHV0aWxpemluZyBlaXRoZXIgc3RyaW5nIHRlbXBsYXRlcyBvciBIVE1MIGVsZW1lbnQgSURzLlxuICAgICAqIEBhc3BpZ25vcmUgXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnZmlsdGVyVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGZpbHRlclRlbXBsYXRlOiBhbnk7XG4gICAgQENvbnRlbnRDaGlsZCgnZW1wdHlSZWNvcmRUZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgZW1wdHlSZWNvcmRUZW1wbGF0ZTogYW55O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOlZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgc2V0VmFsdWUoJ2N1cnJlbnRJbnN0YW5jZScsIHRoaXMsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJFdmVudHMob3V0cHV0cyk7XG4gICAgICAgIHRoaXMuZGlyZWN0aXZlUHJvcExpc3QgPSBpbnB1dDtcbiAgICB9XG59XG5cbi8qKlxuICogQ29sdW1uIEFycmF5IERpcmVjdGl2ZVxuICogQHByaXZhdGVcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdlanMtZ2FudHQ+ZS1jb2x1bW5zJyxcbiAgICBxdWVyaWVzOiB7XG4gICAgICAgIGNoaWxkcmVuOiBuZXcgQ29udGVudENoaWxkcmVuKENvbHVtbkRpcmVjdGl2ZSlcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBDb2x1bW5zRGlyZWN0aXZlIGV4dGVuZHMgQXJyYXlCYXNlPENvbHVtbnNEaXJlY3RpdmU+IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoJ2NvbHVtbnMnKTtcbiAgICB9XG59Il19