@syncfusion/ej2-angular-diagrams
Version:
Feature-rich diagram control to create diagrams like flow charts, organizational charts, mind maps, and BPMN diagrams. Its rich feature set includes built-in shapes, editing, serializing, exporting, printing, overview, data binding, and automatic layouts.
60 lines • 20.6 kB
JavaScript
import { Directive, ContentChildren, ContentChild } from '@angular/core';
import { ComplexBase, ArrayBase, setValue } from '@syncfusion/ej2-angular-base';
import { ConnectorFixedUserHandlesDirective } from './connector-fixeduserhandle.directive';
import { ConnectorAnnotationsDirective } from './connector-annotation.directive';
import * as i0 from "@angular/core";
let input = ['addInfo', 'allowNodeOverlap', 'annotations', 'bezierSettings', 'bridgeSpace', 'connectionPadding', 'connectorSpacing', 'constraints', 'cornerRadius', 'dragSize', 'excludeFromLayout', 'fixedUserHandles', 'flip', 'flipMode', 'hitPadding', 'id', 'margin', 'maxSegmentThumb', 'ports', 'previewSize', 'segmentThumbShape', 'segmentThumbSize', 'segments', 'shape', 'sourceDecorator', 'sourceID', 'sourcePadding', 'sourcePoint', 'sourcePortID', 'style', 'symbolInfo', 'targetDecorator', 'targetID', 'targetPadding', 'targetPoint', 'targetPortID', 'tooltip', 'type', 'visible', 'wrapper', 'zIndex'];
let outputs = [];
/**
* Connectors Directive
* ```html
* <e-connectors>
* <e-connector></e-connector>
* </e-connectors>
* ```
*/
export class ConnectorDirective extends ComplexBase {
constructor(viewContainerRef) {
super();
this.viewContainerRef = viewContainerRef;
this.tags = ['fixedUserHandles', 'annotations'];
setValue('currentInstance', this, this.viewContainerRef);
this.registerEvents(outputs);
this.directivePropList = input;
}
}
ConnectorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ConnectorDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
ConnectorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ConnectorDirective, selector: "e-connectors>e-connector", inputs: { addInfo: "addInfo", allowNodeOverlap: "allowNodeOverlap", annotations: "annotations", bezierSettings: "bezierSettings", bridgeSpace: "bridgeSpace", connectionPadding: "connectionPadding", connectorSpacing: "connectorSpacing", constraints: "constraints", cornerRadius: "cornerRadius", dragSize: "dragSize", excludeFromLayout: "excludeFromLayout", fixedUserHandles: "fixedUserHandles", flip: "flip", flipMode: "flipMode", hitPadding: "hitPadding", id: "id", margin: "margin", maxSegmentThumb: "maxSegmentThumb", ports: "ports", previewSize: "previewSize", segmentThumbShape: "segmentThumbShape", segmentThumbSize: "segmentThumbSize", segments: "segments", shape: "shape", sourceDecorator: "sourceDecorator", sourceID: "sourceID", sourcePadding: "sourcePadding", sourcePoint: "sourcePoint", sourcePortID: "sourcePortID", style: "style", symbolInfo: "symbolInfo", targetDecorator: "targetDecorator", targetID: "targetID", targetPadding: "targetPadding", targetPoint: "targetPoint", targetPortID: "targetPortID", tooltip: "tooltip", type: "type", visible: "visible", wrapper: "wrapper", zIndex: "zIndex" }, queries: [{ propertyName: "childFixedUserHandles", first: true, predicate: ConnectorFixedUserHandlesDirective, descendants: true }, { propertyName: "childAnnotations", first: true, predicate: ConnectorAnnotationsDirective, descendants: true }], usesInheritance: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ConnectorDirective, decorators: [{
type: Directive,
args: [{
selector: 'e-connectors>e-connector',
inputs: input,
outputs: outputs,
queries: {
childFixedUserHandles: new ContentChild(ConnectorFixedUserHandlesDirective),
childAnnotations: new ContentChild(ConnectorAnnotationsDirective)
}
}]
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; } });
/**
* Connector Array Directive
* @private
*/
export class ConnectorsDirective extends ArrayBase {
constructor() {
super('connectors');
}
}
ConnectorsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ConnectorsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
ConnectorsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ConnectorsDirective, selector: "ej-diagram>e-connectors", queries: [{ propertyName: "children", predicate: ConnectorDirective }], usesInheritance: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ConnectorsDirective, decorators: [{
type: Directive,
args: [{
selector: 'ej-diagram>e-connectors',
queries: {
children: new ContentChildren(ConnectorDirective)
},
}]
}], ctorParameters: function () { return []; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdG9ycy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGlhZ3JhbS9jb25uZWN0b3JzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFvQixlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWhGLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUVqRixJQUFJLEtBQUssR0FBYSxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDdG1CLElBQUksT0FBTyxHQUFhLEVBQUUsQ0FBQztBQUMzQjs7Ozs7OztHQU9HO0FBVUgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFdBQStCO0lBa1FuRSxZQUFvQixnQkFBaUM7UUFDakQsS0FBSyxFQUFFLENBQUM7UUFEUSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBN1A5QyxTQUFJLEdBQWEsQ0FBQyxrQkFBa0IsRUFBRSxhQUFhLENBQUMsQ0FBQztRQStQeEQsUUFBUSxDQUFDLGlCQUFpQixFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFDbkMsQ0FBQzs7K0dBdlFRLGtCQUFrQjttR0FBbEIsa0JBQWtCLDJzQ0FKaUIsa0NBQWtDLG1GQUN2Qyw2QkFBNkI7MkZBRzNELGtCQUFrQjtrQkFUOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxNQUFNLEVBQUUsS0FBSztvQkFDYixPQUFPLEVBQUUsT0FBTztvQkFDaEIsT0FBTyxFQUFFO3dCQUNMLHFCQUFxQixFQUFFLElBQUksWUFBWSxDQUFDLGtDQUFrQyxDQUFDO3dCQUMzRSxnQkFBZ0IsRUFBRSxJQUFJLFlBQVksQ0FBQyw2QkFBNkIsQ0FBQztxQkFDcEU7aUJBQ0o7O0FBMlFEOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxTQUE4QjtJQUNuRTtRQUNJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4QixDQUFDOztnSEFIUSxtQkFBbUI7b0dBQW5CLG1CQUFtQix3RkFITSxrQkFBa0I7MkZBRzNDLG1CQUFtQjtrQkFOL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxPQUFPLEVBQUU7d0JBQ0wsUUFBUSxFQUFFLElBQUksZUFBZSxDQUFDLGtCQUFrQixDQUFDO3FCQUNwRDtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVmlld0NvbnRhaW5lclJlZiwgQ29udGVudENoaWxkcmVuLCBDb250ZW50Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBsZXhCYXNlLCBBcnJheUJhc2UsIHNldFZhbHVlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYmFzZSc7XG5cbmltcG9ydCB7IENvbm5lY3RvckZpeGVkVXNlckhhbmRsZXNEaXJlY3RpdmUgfSBmcm9tICcuL2Nvbm5lY3Rvci1maXhlZHVzZXJoYW5kbGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbm5lY3RvckFubm90YXRpb25zRGlyZWN0aXZlIH0gZnJvbSAnLi9jb25uZWN0b3ItYW5ub3RhdGlvbi5kaXJlY3RpdmUnO1xuXG5sZXQgaW5wdXQ6IHN0cmluZ1tdID0gWydhZGRJbmZvJywgJ2FsbG93Tm9kZU92ZXJsYXAnLCAnYW5ub3RhdGlvbnMnLCAnYmV6aWVyU2V0dGluZ3MnLCAnYnJpZGdlU3BhY2UnLCAnY29ubmVjdGlvblBhZGRpbmcnLCAnY29ubmVjdG9yU3BhY2luZycsICdjb25zdHJhaW50cycsICdjb3JuZXJSYWRpdXMnLCAnZHJhZ1NpemUnLCAnZXhjbHVkZUZyb21MYXlvdXQnLCAnZml4ZWRVc2VySGFuZGxlcycsICdmbGlwJywgJ2ZsaXBNb2RlJywgJ2hpdFBhZGRpbmcnLCAnaWQnLCAnbWFyZ2luJywgJ21heFNlZ21lbnRUaHVtYicsICdwb3J0cycsICdwcmV2aWV3U2l6ZScsICdzZWdtZW50VGh1bWJTaGFwZScsICdzZWdtZW50VGh1bWJTaXplJywgJ3NlZ21lbnRzJywgJ3NoYXBlJywgJ3NvdXJjZURlY29yYXRvcicsICdzb3VyY2VJRCcsICdzb3VyY2VQYWRkaW5nJywgJ3NvdXJjZVBvaW50JywgJ3NvdXJjZVBvcnRJRCcsICdzdHlsZScsICdzeW1ib2xJbmZvJywgJ3RhcmdldERlY29yYXRvcicsICd0YXJnZXRJRCcsICd0YXJnZXRQYWRkaW5nJywgJ3RhcmdldFBvaW50JywgJ3RhcmdldFBvcnRJRCcsICd0b29sdGlwJywgJ3R5cGUnLCAndmlzaWJsZScsICd3cmFwcGVyJywgJ3pJbmRleCddO1xubGV0IG91dHB1dHM6IHN0cmluZ1tdID0gW107XG4vKipcbiAqIENvbm5lY3RvcnMgRGlyZWN0aXZlXG4gKiBgYGBodG1sXG4gKiA8ZS1jb25uZWN0b3JzPlxuICogPGUtY29ubmVjdG9yPjwvZS1jb25uZWN0b3I+XG4gKiA8L2UtY29ubmVjdG9ycz5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2UtY29ubmVjdG9ycz5lLWNvbm5lY3RvcicsXG4gICAgaW5wdXRzOiBpbnB1dCxcbiAgICBvdXRwdXRzOiBvdXRwdXRzLCAgICBcbiAgICBxdWVyaWVzOiB7XG4gICAgICAgIGNoaWxkRml4ZWRVc2VySGFuZGxlczogbmV3IENvbnRlbnRDaGlsZChDb25uZWN0b3JGaXhlZFVzZXJIYW5kbGVzRGlyZWN0aXZlKSwgXG4gICAgICAgIGNoaWxkQW5ub3RhdGlvbnM6IG5ldyBDb250ZW50Q2hpbGQoQ29ubmVjdG9yQW5ub3RhdGlvbnNEaXJlY3RpdmUpXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBDb25uZWN0b3JEaXJlY3RpdmUgZXh0ZW5kcyBDb21wbGV4QmFzZTxDb25uZWN0b3JEaXJlY3RpdmU+IHtcbiAgICBwdWJsaWMgZGlyZWN0aXZlUHJvcExpc3Q6IGFueTtcblx0XG4gICAgcHVibGljIGNoaWxkRml4ZWRVc2VySGFuZGxlczogYW55O1xuICAgIHB1YmxpYyBjaGlsZEFubm90YXRpb25zOiBhbnk7XG4gICAgcHVibGljIHRhZ3M6IHN0cmluZ1tdID0gWydmaXhlZFVzZXJIYW5kbGVzJywgJ2Fubm90YXRpb25zJ107XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIHR5cGUgb2YgdGhlIGNvbm5lY3RvciBcbiAgICAgKiAqIFN0cmFpZ2h0IC0gU2V0cyB0aGUgc2VnbWVudCB0eXBlIGFzIFN0cmFpZ2h0IFxuICAgICAqICogT3J0aG9nb25hbCAtIFNldHMgdGhlIHNlZ21lbnQgdHlwZSBhcyBPcnRob2dvbmFsIFxuICAgICAqICogQmV6aWVyIC0gU2V0cyB0aGUgc2VnbWVudCB0eXBlIGFzIEJlemllclxuICAgICAqIEBkZWZhdWx0ICdTdHJhaWdodCdcbiAgICAgKiBAYXNwdHlwZSBTeW5jZnVzaW9uLkVKMi5EaWFncmFtcy5TZWdtZW50c1xuICAgICAqL1xuICAgIHB1YmxpYyB0eXBlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEFsbG93cyB0aGUgdXNlciB0byBzYXZlIGN1c3RvbSBpbmZvcm1hdGlvbi9kYXRhIGFib3V0IGEgbm9kZS9jb25uZWN0b3JcbiAgICAgKiBAYXNwZGVmYXVsdHZhbHVlaWdub3JlIFxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqL1xuICAgIHB1YmxpYyBhZGRJbmZvOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNwZWNpZmllcyBhIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0byBvdmVybGFwIHRoZSBjb25uZWN0b3Igb3ZlciB3aXRoIHRoZSBzb3VyY2UgYW5kIHRhcmdldCBub2RlLiBcbiAgICAgKiBJZiB0aGUgTGluZVJvdXRpbmcgaXMgZW5hYmxlZCBpbiB0aGUgZGlhZ3JhbSwgdGhlbiBhbGxvd05vZGVPdmVybGFwIHByb3BlcnR5IHdpbGwgbm90IHdvcmsuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgYWxsb3dOb2RlT3ZlcmxhcDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBcbiAgICAgKi9cbiAgICBwdWJsaWMgYW5ub3RhdGlvbnM6IGFueTtcbiAgICAvKiogXG4gICAgICogU2V0cyB0aGUgYmV6aWVyIHNldHRpbmdzIG9mIGVkaXRpbmcgdGhlIHNlZ21lbnRzLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgYmV6aWVyU2V0dGluZ3M6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgYnJpZGdlU3BhY2Ugb2YgY29ubmVjdG9yXG4gICAgICogQGRlZmF1bHQgMTBcbiAgICAgKi9cbiAgICBwdWJsaWMgYnJpZGdlU3BhY2U6IGFueTtcbiAgICAvKiogXG4gICAgICogU2V0cyB0aGUgY29ubmVjdG9yIHBhZGRpbmcgdmFsdWVcbiAgICAgKiBAZGVmYXVsdCAwXG4gICAgICovXG4gICAgcHVibGljIGNvbm5lY3Rpb25QYWRkaW5nOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNldHMgdGhlIGRpc3RhbmNlIGJldHdlZW4gc291cmNlIG5vZGUgYW5kIGNvbm5lY3RvclxuICAgICAqIEBkZWZhdWx0IDEzXG4gICAgICovXG4gICAgcHVibGljIGNvbm5lY3RvclNwYWNpbmc6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgY29uc3RyYWludHMgb2YgY29ubmVjdG9yIFxuICAgICAqICogTm9uZSAtIEludGVyYWN0aW9uIG9mIHRoZSBjb25uZWN0b3JzIGNhbm5vdCBiZSBkb25lLiBcbiAgICAgKiAqIFNlbGVjdCAtIFNlbGVjdHMgdGhlIGNvbm5lY3Rvci4gXG4gICAgICogKiBEZWxldGUgLSBEZWxldGUgdGhlIGNvbm5lY3Rvci4gXG4gICAgICogKiBEcmFnIC0gRHJhZyB0aGUgY29ubmVjdG9yLiBcbiAgICAgKiAqIERyYWdTb3VyY2VFbmQgLSBEcmFnIHRoZSBzb3VyY2UgZW5kIG9mIHRoZSBjb25uZWN0b3IuIFxuICAgICAqICogRHJhZ1RhcmdldEVuZCAtIERyYWcgdGhlIHRhcmdldCBlbmQgb2YgdGhlIGNvbm5lY3Rvci4gXG4gICAgICogKiBEcmFnU2VnbWVudFRodW1wIC0gRHJhZyB0aGUgc2VnbWVudCB0aHVtYiBvZiB0aGUgY29ubmVjdG9yLiBcbiAgICAgKiAqIEFsbG93RHJvcCAtIEFsbG93IHRvIGRyb3AgYSBub2RlLiBcbiAgICAgKiAqIEJyaWRnaW5nIC0gQ3JlYXRlcyBicmlkZ2UgIG9uIGludGVyc2VjdGlvbiBvZiB0d28gY29ubmVjdG9ycy4gXG4gICAgICogKiBJbmhlcml0QnJpZGdpbmcgLSBDcmVhdGVzIGJyaWRnZSAgb24gaW50ZXJzZWN0aW9uIG9mIHR3byBjb25uZWN0b3JzLiBcbiAgICAgKiAqIFBvaW50ZXJFdmVudHMgLSBTZXRzIHRoZSBwb2ludGVyIGV2ZW50cy4gXG4gICAgICogKiBUb29sdGlwIC0gRGlzcGxheXMgYSB0b29sdGlwIGZvciB0aGUgY29ubmVjdG9ycy4gXG4gICAgICogKiBJbmhlcml0VG9vbFRpcCAtIERpc3BsYXlzIGEgdG9vbHRpcCBmb3IgdGhlIGNvbm5lY3RvcnMuIFxuICAgICAqICogSW50ZXJhY3Rpb24gLSBGZWF0dXJlcyBvZiB0aGUgY29ubmVjdG9yIHVzZWQgZm9yIGludGVyYWN0aW9uLiBcbiAgICAgKiAqIFJlYWRPbmx5IC0gRW5hYmxlcyBSZWFkT25seVxuICAgICAqIEBkZWZhdWx0ICdEZWZhdWx0J1xuICAgICAqIEBhc3BudW1iZXJlbnVtIFxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJhaW50czogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTZXRzIHRoZSBjb3JuZXIgcmFkaXVzIG9mIHRoZSBjb25uZWN0b3JcbiAgICAgKiBAZGVmYXVsdCAwXG4gICAgICovXG4gICAgcHVibGljIGNvcm5lclJhZGl1czogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBzaXplIG9mIGEgZHJvcCBzeW1ib2xcbiAgICAgKiBAYXNwZGVmYXVsdHZhbHVlaWdub3JlIFxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqL1xuICAgIHB1YmxpYyBkcmFnU2l6ZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIG5vZGUgc2hvdWxkIGJlIGF1dG9tYXRpY2FsbHkgcG9zaXRpb25lZCBvciBub3QuIEFwcGxpY2FibGUsIGlmIGxheW91dCBvcHRpb24gaXMgZW5hYmxlZC5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBleGNsdWRlRnJvbUxheW91dDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgdGhlIGNvbGxlY3Rpb24gb2YgdGhlIGZpeGVkIHVzZXIgaGFuZGxlXG4gICAgICogQGFzcGRlZmF1bHR2YWx1ZWlnbm9yZSBcbiAgICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgZml4ZWRVc2VySGFuZGxlczogYW55O1xuICAgIC8qKiBcbiAgICAgKiBGbGlwIHRoZSBlbGVtZW50IGluIEhvcml6b250YWwvVmVydGljYWwgZGlyZWN0aW9uc1xuICAgICAqIEBhc3BkZWZhdWx0dmFsdWVpZ25vcmUgXG4gICAgICogQGRlZmF1bHQgTm9uZVxuICAgICAqL1xuICAgIHB1YmxpYyBmbGlwOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEFsbG93cyB5b3UgdG8gZmxpcCBvbmx5IHRoZSBub2RlIG9yIGFsb25nIHdpdGggcG9ydCBhbmQgbGFiZWxcbiAgICAgKiBAYXNwZGVmYXVsdHZhbHVlaWdub3JlIFxuICAgICAqIEBkZWZhdWx0IEFsbFxuICAgICAqL1xuICAgIHB1YmxpYyBmbGlwTW9kZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTZXRzIHRoZSBjb25uZWN0b3IgcGFkZGluZyB2YWx1ZVxuICAgICAqIEBkZWZhdWx0IDEwXG4gICAgICovXG4gICAgcHVibGljIGhpdFBhZGRpbmc6IGFueTtcbiAgICAvKiogXG4gICAgICogUmVwcmVzZW50cyB0aGUgdW5pcXVlIGlkIG9mIG5vZGVzL2Nvbm5lY3RvcnNcbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyBpZDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBzcGFjZSB0byBiZSBsZWZ0IGJldHdlZW4gdGhlIG5vZGUgYW5kIGl0cyBpbW1lZGlhdGUgcGFyZW50XG4gICAgICogQGRlZmF1bHQge31cbiAgICAgKi9cbiAgICBwdWJsaWMgbWFyZ2luOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNldHMgdGhlIG1heGltdW0gc2VnbWVudCB0aHVtYiBmb3IgdGhlIGNvbm5lY3RvclxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgbWF4U2VnbWVudFRodW1iOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGJlaGF2aW9yIG9mIGNvbm5lY3Rpb24gcG9ydHNcbiAgICAgKiBAYXNwZGVmYXVsdHZhbHVlaWdub3JlIFxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqL1xuICAgIHB1YmxpYyBwb3J0czogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBzaXplIG9mIHRoZSBzeW1ib2wgcHJldmlld1xuICAgICAqIEBhc3BkZWZhdWx0dmFsdWVpZ25vcmUgXG4gICAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAgICovXG4gICAgcHVibGljIHByZXZpZXdTaXplOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIHNoYXBlIGZvciB0aGUgY29ubmVjdG9yIHNlZ21lbnRUaHVtYiBcbiAgICAgKiBSaG9tYnVzIC0gU2V0cyB0aGUgc2VnbWVudFRodW1iIHNoYXBlIGFzIFJob21idXMgXG4gICAgICogU3F1YXJlIC0gU2V0cyB0aGUgc2VnbWVudFRodW1iIHNoYXBlIGFzIFNxdWFyZSBcbiAgICAgKiBSZWN0YW5nbGUgLSBTZXRzIHRoZSBzZWdtZW50VGh1bWIgc2hhcGUgYXMgUmVjdGFuZ2xlIFxuICAgICAqIEVsbGlwc2UgLSBTZXRzIHRoZSBzZWdtZW50VGh1bWIgc2hhcGUgYXMgRWxsaXBzZSBcbiAgICAgKiBBcnJvdyAtIFNldHMgdGhlIHNlZ21lbnRUaHVtYiBzaGFwZSBhcyBBcnJvdyBcbiAgICAgKiBEaWFtb25kIC0gU2V0cyB0aGUgc2VnbWVudFRodW1iIHNoYXBlIGFzIERpYW1vbmQgXG4gICAgICogT3BlbkFycm93IC0gU2V0cyB0aGUgc2VnbWVudFRodW1iIHNoYXBlIGFzIE9wZW5BcnJvdyBcbiAgICAgKiBDaXJjbGUgLSBTZXRzIHRoZSBzZWdtZW50VGh1bWIgc2hhcGUgYXMgQ2lyY2xlIFxuICAgICAqIEZsZXRjaCAtIFNldHMgdGhlIHNlZ21lbnRUaHVtYiBzaGFwZSBhcyBGbGV0Y2ggXG4gICAgICogT3BlbkZldGNoIC0gU2V0cyB0aGUgc2VnbWVudFRodW1iIHNoYXBlIGFzIE9wZW5GZXRjaCBcbiAgICAgKiBJbmRlbnRlZEFycm93IC0gU2V0cyB0aGUgc2VnbWVudFRodW1iIHNoYXBlIGFzIEluZGVudGVkIEFycm93IFxuICAgICAqIE91dGRlbnRlZEFycm93IC0gU2V0cyB0aGUgc2VnbWVudFRodW1iIHNoYXBlIGFzIE91dGRlbnRlZCBBcnJvdyBcbiAgICAgKiBEb3VibGVBcnJvdyAtIFNldHMgdGhlIHNlZ21lbnRUaHVtYiBzaGFwZSBhcyBEb3VibGVBcnJvd1xuICAgICAqIEBkZWZhdWx0ICdDaXJjbGUnXG4gICAgICovXG4gICAgcHVibGljIHNlZ21lbnRUaHVtYlNoYXBlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNwZWNpZmllcyB0aGUgc2l6ZSBvZiB0aGUgc2VnbWVudCB0aHVtYiBmb3IgaW5kaXZpZHVhbCBjb25uZWN0b3IuIFdoZW4gbm90IHNldCwgaXQgZGVmYXVsdHMgdG8gbWF0Y2hpbmcgdGhlIHVuZGVybHlpbmcgcGF0aCBkYXRhXG4gICAgICogQGRlZmF1bHQgMTBcbiAgICAgKi9cbiAgICBwdWJsaWMgc2VnbWVudFRodW1iU2l6ZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBzZWdtZW50c1xuICAgICAqIEBkZWZhdWx0IFtdXG4gICAgICogQGFzcHR5cGUgb2JqZWN0XG4gICAgICovXG4gICAgcHVibGljIHNlZ21lbnRzOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIHNoYXBlIG9mIHRoZSBjb25uZWN0b3JcbiAgICAgKiBAZGVmYXVsdCAnQnBtbidcbiAgICAgKiBAYXNwdHlwZSBvYmplY3RcbiAgICAgKi9cbiAgICBwdWJsaWMgc2hhcGU6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgc291cmNlIGRlY29yYXRvciBvZiB0aGUgY29ubmVjdG9yXG4gICAgICogQGRlZmF1bHQgbmV3IERlY29yYXRvcigpXG4gICAgICovXG4gICAgcHVibGljIHNvdXJjZURlY29yYXRvcjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTZXRzIHRoZSBzb3VyY2Ugbm9kZS9jb25uZWN0b3Igb2JqZWN0IG9mIHRoZSBjb25uZWN0b3JcbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIHNvdXJjZUlEOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNldHMgdGhlIHNvdXJjZSBwYWRkaW5nIG9mIHRoZSBjb25uZWN0b3JcbiAgICAgKiBAZGVmYXVsdCAwXG4gICAgICovXG4gICAgcHVibGljIHNvdXJjZVBhZGRpbmc6IGFueTtcbiAgICAvKiogXG4gICAgICogU2V0cyB0aGUgYmVnaW5uaW5nIHBvaW50IG9mIHRoZSBjb25uZWN0b3JcbiAgICAgKiBAZGVmYXVsdCBuZXcgUG9pbnQoMCwwKVxuICAgICAqL1xuICAgIHB1YmxpYyBzb3VyY2VQb2ludDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTZXRzIHRoZSB1bmlxdWUgaWQgb2YgdGhlIHNvdXJjZSBwb3J0IG9mIHRoZSBjb25uZWN0b3JcbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyBzb3VyY2VQb3J0SUQ6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgYXBwZWFyYW5jZSBvZiB0aGUgY29ubmVjdGlvbiBwYXRoXG4gICAgICogQGRlZmF1bHQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgc3R5bGU6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgc3ltYm9sIGluZm8gb2YgYSBjb25uZWN0b3JcbiAgICAgKiBAYXNwZGVmYXVsdHZhbHVlaWdub3JlIFxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqIEBpZ25vcmVhcGlsaW5rIFxuICAgICAqL1xuICAgIHB1YmxpYyBzeW1ib2xJbmZvOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIHRhcmdldCBkZWNvcmF0b3Igb2YgdGhlIGNvbm5lY3RvclxuICAgICAqIEBkZWZhdWx0IG5ldyBEZWNvcmF0b3IoKVxuICAgICAqL1xuICAgIHB1YmxpYyB0YXJnZXREZWNvcmF0b3I6IGFueTtcbiAgICAvKiogXG4gICAgICogU2V0cyB0aGUgdGFyZ2V0IG5vZGUvY29ubmVjdG9yIG9iamVjdCBvZiB0aGUgY29ubmVjdG9yXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyB0YXJnZXRJRDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTZXRzIHRoZSB0YXJnZXQgcGFkZGluZyBvZiB0aGUgY29ubmVjdG9yXG4gICAgICogQGRlZmF1bHQgMFxuICAgICAqL1xuICAgIHB1YmxpYyB0YXJnZXRQYWRkaW5nOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNldHMgdGhlIGVuZCBwb2ludCBvZiB0aGUgY29ubmVjdG9yXG4gICAgICogQGRlZmF1bHQgbmV3IFBvaW50KDAsMClcbiAgICAgKi9cbiAgICBwdWJsaWMgdGFyZ2V0UG9pbnQ6IGFueTtcbiAgICAvKiogXG4gICAgICogU2V0cyB0aGUgdW5pcXVlIGlkIG9mIHRoZSB0YXJnZXQgcG9ydCBvZiB0aGUgY29ubmVjdG9yXG4gICAgICogQGRlZmF1bHQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgdGFyZ2V0UG9ydElEOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIGRlZmluZXMgdGhlIHRvb2x0aXAgZm9yIHRoZSBjb25uZWN0b3JcbiAgICAgKiBAZGVmYXVsdCBuZXcgRGlhZ3JhbVRvb2xUaXAoKTtcbiAgICAgKi9cbiAgICBwdWJsaWMgdG9vbHRpcDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTZXRzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBub2RlL2Nvbm5lY3RvclxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgdmlzaWJsZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBVSSBvZiB0aGUgY29ubmVjdG9yXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBkZXByZWNhdGVkIFxuICAgICAqL1xuICAgIHB1YmxpYyB3cmFwcGVyOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIHZpc3VhbCBvcmRlciBvZiB0aGUgbm9kZS9jb25uZWN0b3IgaW4gRE9NXG4gICAgICogQGFzcGRlZmF1bHR2YWx1ZSA1ZS0zMjRcbiAgICAgKiBAZGVmYXVsdCBOdW1iZXIuTUlOX1ZBTFVFXG4gICAgICovXG4gICAgcHVibGljIHpJbmRleDogYW55O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOlZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgc2V0VmFsdWUoJ2N1cnJlbnRJbnN0YW5jZScsIHRoaXMsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJFdmVudHMob3V0cHV0cyk7XG4gICAgICAgIHRoaXMuZGlyZWN0aXZlUHJvcExpc3QgPSBpbnB1dDtcbiAgICB9XG59XG5cbi8qKlxuICogQ29ubmVjdG9yIEFycmF5IERpcmVjdGl2ZVxuICogQHByaXZhdGVcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdlai1kaWFncmFtPmUtY29ubmVjdG9ycycsXG4gICAgcXVlcmllczoge1xuICAgICAgICBjaGlsZHJlbjogbmV3IENvbnRlbnRDaGlsZHJlbihDb25uZWN0b3JEaXJlY3RpdmUpXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQ29ubmVjdG9yc0RpcmVjdGl2ZSBleHRlbmRzIEFycmF5QmFzZTxDb25uZWN0b3JzRGlyZWN0aXZlPiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCdjb25uZWN0b3JzJyk7XG4gICAgfVxufSJdfQ==