@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.
62 lines • 22.8 kB
JavaScript
import { Directive, ContentChildren, ContentChild } from '@angular/core';
import { ComplexBase, ArrayBase, setValue } from '@syncfusion/ej2-angular-base';
import { NodeFixedUserHandlesDirective } from './node-fixeduserhandle.directive';
import { NodeAnnotationsDirective } from './node-annotation.directive';
import { PortsDirective } from './ports.directive';
import * as i0 from "@angular/core";
let input = ['addInfo', 'annotations', 'backgroundColor', 'borderColor', 'borderWidth', 'branch', 'children', 'collapseIcon', 'columnIndex', 'columnSpan', 'columns', 'constraints', 'container', 'data', 'dragSize', 'excludeFromLayout', 'expandIcon', 'fixedUserHandles', 'flip', 'flipMode', 'height', 'horizontalAlignment', 'id', 'isExpanded', 'layoutInfo', 'margin', 'maxHeight', 'maxWidth', 'minHeight', 'minWidth', 'offsetX', 'offsetY', 'padding', 'pivot', 'ports', 'previewSize', 'rotateAngle', 'rowIndex', 'rowSpan', 'rows', 'shadow', 'shape', 'style', 'symbolInfo', 'tooltip', 'verticalAlignment', 'visible', 'width', 'wrapper', 'zIndex'];
let outputs = [];
/**
* Nodes Directive
* ```html
* <e-nodes>
* <e-node></e-node>
* </e-nodes>
* ```
*/
export class NodeDirective extends ComplexBase {
constructor(viewContainerRef) {
super();
this.viewContainerRef = viewContainerRef;
this.tags = ['fixedUserHandles', 'annotations', 'ports'];
setValue('currentInstance', this, this.viewContainerRef);
this.registerEvents(outputs);
this.directivePropList = input;
}
}
NodeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NodeDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
NodeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: NodeDirective, selector: "e-nodes>e-node", inputs: { addInfo: "addInfo", annotations: "annotations", backgroundColor: "backgroundColor", borderColor: "borderColor", borderWidth: "borderWidth", branch: "branch", children: "children", collapseIcon: "collapseIcon", columnIndex: "columnIndex", columnSpan: "columnSpan", columns: "columns", constraints: "constraints", container: "container", data: "data", dragSize: "dragSize", excludeFromLayout: "excludeFromLayout", expandIcon: "expandIcon", fixedUserHandles: "fixedUserHandles", flip: "flip", flipMode: "flipMode", height: "height", horizontalAlignment: "horizontalAlignment", id: "id", isExpanded: "isExpanded", layoutInfo: "layoutInfo", margin: "margin", maxHeight: "maxHeight", maxWidth: "maxWidth", minHeight: "minHeight", minWidth: "minWidth", offsetX: "offsetX", offsetY: "offsetY", padding: "padding", pivot: "pivot", ports: "ports", previewSize: "previewSize", rotateAngle: "rotateAngle", rowIndex: "rowIndex", rowSpan: "rowSpan", rows: "rows", shadow: "shadow", shape: "shape", style: "style", symbolInfo: "symbolInfo", tooltip: "tooltip", verticalAlignment: "verticalAlignment", visible: "visible", width: "width", wrapper: "wrapper", zIndex: "zIndex" }, queries: [{ propertyName: "childFixedUserHandles", first: true, predicate: NodeFixedUserHandlesDirective, descendants: true }, { propertyName: "childAnnotations", first: true, predicate: NodeAnnotationsDirective, descendants: true }, { propertyName: "childPorts", first: true, predicate: PortsDirective, descendants: true }], usesInheritance: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NodeDirective, decorators: [{
type: Directive,
args: [{
selector: 'e-nodes>e-node',
inputs: input,
outputs: outputs,
queries: {
childFixedUserHandles: new ContentChild(NodeFixedUserHandlesDirective),
childAnnotations: new ContentChild(NodeAnnotationsDirective),
childPorts: new ContentChild(PortsDirective)
}
}]
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; } });
/**
* Node Array Directive
* @private
*/
export class NodesDirective extends ArrayBase {
constructor() {
super('nodes');
}
}
NodesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NodesDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
NodesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: NodesDirective, selector: "ej-diagram>e-nodes", queries: [{ propertyName: "children", predicate: NodeDirective }], usesInheritance: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NodesDirective, decorators: [{
type: Directive,
args: [{
selector: 'ej-diagram>e-nodes',
queries: {
children: new ContentChildren(NodeDirective)
},
}]
}], ctorParameters: function () { return []; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZXMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RpYWdyYW0vbm9kZXMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFaEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUVuRCxJQUFJLEtBQUssR0FBYSxDQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDN29CLElBQUksT0FBTyxHQUFhLEVBQUUsQ0FBQztBQUMzQjs7Ozs7OztHQU9HO0FBV0gsTUFBTSxPQUFPLGFBQWMsU0FBUSxXQUEwQjtJQW1VekQsWUFBb0IsZ0JBQWlDO1FBQ2pELEtBQUssRUFBRSxDQUFDO1FBRFEscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQTdUOUMsU0FBSSxHQUFhLENBQUMsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBK1RqRSxRQUFRLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUNuQyxDQUFDOzswR0F4VVEsYUFBYTs4RkFBYixhQUFhLDZ2Q0FMc0IsNkJBQTZCLG1GQUNsQyx3QkFBd0IsNkVBQzlCLGNBQWM7MkZBR3RDLGFBQWE7a0JBVnpCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsTUFBTSxFQUFFLEtBQUs7b0JBQ2IsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE9BQU8sRUFBRTt3QkFDTCxxQkFBcUIsRUFBRSxJQUFJLFlBQVksQ0FBQyw2QkFBNkIsQ0FBQzt3QkFDdEUsZ0JBQWdCLEVBQUUsSUFBSSxZQUFZLENBQUMsd0JBQXdCLENBQUM7d0JBQzVELFVBQVUsRUFBRSxJQUFJLFlBQVksQ0FBQyxjQUFjLENBQUM7cUJBQy9DO2lCQUNKOztBQTRVRDs7O0dBR0c7QUFPSCxNQUFNLE9BQU8sY0FBZSxTQUFRLFNBQXlCO0lBQ3pEO1FBQ0ksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25CLENBQUM7OzJHQUhRLGNBQWM7K0ZBQWQsY0FBYyxtRkFIVyxhQUFhOzJGQUd0QyxjQUFjO2tCQU4xQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLE9BQU8sRUFBRTt3QkFDTCxRQUFRLEVBQUUsSUFBSSxlQUFlLENBQUMsYUFBYSxDQUFDO3FCQUMvQztpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVmlld0NvbnRhaW5lclJlZiwgQ29udGVudENoaWxkcmVuLCBDb250ZW50Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBsZXhCYXNlLCBBcnJheUJhc2UsIHNldFZhbHVlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYmFzZSc7XG5cbmltcG9ydCB7IE5vZGVGaXhlZFVzZXJIYW5kbGVzRGlyZWN0aXZlIH0gZnJvbSAnLi9ub2RlLWZpeGVkdXNlcmhhbmRsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTm9kZUFubm90YXRpb25zRGlyZWN0aXZlIH0gZnJvbSAnLi9ub2RlLWFubm90YXRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IFBvcnRzRGlyZWN0aXZlIH0gZnJvbSAnLi9wb3J0cy5kaXJlY3RpdmUnO1xuXG5sZXQgaW5wdXQ6IHN0cmluZ1tdID0gWydhZGRJbmZvJywgJ2Fubm90YXRpb25zJywgJ2JhY2tncm91bmRDb2xvcicsICdib3JkZXJDb2xvcicsICdib3JkZXJXaWR0aCcsICdicmFuY2gnLCAnY2hpbGRyZW4nLCAnY29sbGFwc2VJY29uJywgJ2NvbHVtbkluZGV4JywgJ2NvbHVtblNwYW4nLCAnY29sdW1ucycsICdjb25zdHJhaW50cycsICdjb250YWluZXInLCAnZGF0YScsICdkcmFnU2l6ZScsICdleGNsdWRlRnJvbUxheW91dCcsICdleHBhbmRJY29uJywgJ2ZpeGVkVXNlckhhbmRsZXMnLCAnZmxpcCcsICdmbGlwTW9kZScsICdoZWlnaHQnLCAnaG9yaXpvbnRhbEFsaWdubWVudCcsICdpZCcsICdpc0V4cGFuZGVkJywgJ2xheW91dEluZm8nLCAnbWFyZ2luJywgJ21heEhlaWdodCcsICdtYXhXaWR0aCcsICdtaW5IZWlnaHQnLCAnbWluV2lkdGgnLCAnb2Zmc2V0WCcsICdvZmZzZXRZJywgJ3BhZGRpbmcnLCAncGl2b3QnLCAncG9ydHMnLCAncHJldmlld1NpemUnLCAncm90YXRlQW5nbGUnLCAncm93SW5kZXgnLCAncm93U3BhbicsICdyb3dzJywgJ3NoYWRvdycsICdzaGFwZScsICdzdHlsZScsICdzeW1ib2xJbmZvJywgJ3Rvb2x0aXAnLCAndmVydGljYWxBbGlnbm1lbnQnLCAndmlzaWJsZScsICd3aWR0aCcsICd3cmFwcGVyJywgJ3pJbmRleCddO1xubGV0IG91dHB1dHM6IHN0cmluZ1tdID0gW107XG4vKipcbiAqIE5vZGVzIERpcmVjdGl2ZVxuICogYGBgaHRtbFxuICogPGUtbm9kZXM+XG4gKiA8ZS1ub2RlPjwvZS1ub2RlPlxuICogPC9lLW5vZGVzPlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZS1ub2Rlcz5lLW5vZGUnLFxuICAgIGlucHV0czogaW5wdXQsXG4gICAgb3V0cHV0czogb3V0cHV0cywgICAgXG4gICAgcXVlcmllczoge1xuICAgICAgICBjaGlsZEZpeGVkVXNlckhhbmRsZXM6IG5ldyBDb250ZW50Q2hpbGQoTm9kZUZpeGVkVXNlckhhbmRsZXNEaXJlY3RpdmUpLCBcbiAgICAgICAgY2hpbGRBbm5vdGF0aW9uczogbmV3IENvbnRlbnRDaGlsZChOb2RlQW5ub3RhdGlvbnNEaXJlY3RpdmUpLCBcbiAgICAgICAgY2hpbGRQb3J0czogbmV3IENvbnRlbnRDaGlsZChQb3J0c0RpcmVjdGl2ZSlcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIE5vZGVEaXJlY3RpdmUgZXh0ZW5kcyBDb21wbGV4QmFzZTxOb2RlRGlyZWN0aXZlPiB7XG4gICAgcHVibGljIGRpcmVjdGl2ZVByb3BMaXN0OiBhbnk7XG5cdFxuICAgIHB1YmxpYyBjaGlsZEZpeGVkVXNlckhhbmRsZXM6IGFueTtcbiAgICBwdWJsaWMgY2hpbGRBbm5vdGF0aW9uczogYW55O1xuICAgIHB1YmxpYyBjaGlsZFBvcnRzOiBhbnk7XG4gICAgcHVibGljIHRhZ3M6IHN0cmluZ1tdID0gWydmaXhlZFVzZXJIYW5kbGVzJywgJ2Fubm90YXRpb25zJywgJ3BvcnRzJ107XG4gICAgLyoqIFxuICAgICAqIEFsbG93cyB0aGUgdXNlciB0byBzYXZlIGN1c3RvbSBpbmZvcm1hdGlvbi9kYXRhIGFib3V0IGEgbm9kZS9jb25uZWN0b3JcbiAgICAgKiBAYXNwZGVmYXVsdHZhbHVlaWdub3JlIFxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqL1xuICAgIHB1YmxpYyBhZGRJbmZvOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGNvbGxlY3Rpb24gb2YgdGV4dHVhbCBhbm5vdGF0aW9ucyBvZiBub2Rlcy9jb25uZWN0b3JzXG4gICAgICogQGFzcGRlZmF1bHR2YWx1ZWlnbm9yZSBcbiAgICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgYW5ub3RhdGlvbnM6IGFueTtcbiAgICAvKiogXG4gICAgICogU2V0cyB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGUgc2hhcGVcbiAgICAgKiBAZGVmYXVsdCAndHJhbnNwYXJlbnQnXG4gICAgICovXG4gICAgcHVibGljIGJhY2tncm91bmRDb2xvcjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTZXRzIHRoZSBib3JkZXIgY29sb3Igb2YgdGhlIG5vZGVcbiAgICAgKiBAZGVwcmVjYXRlZCBcbiAgICAgKiBAZGVmYXVsdCAnbm9uZSdcbiAgICAgKi9cbiAgICBwdWJsaWMgYm9yZGVyQ29sb3I6IGFueTtcbiAgICAvKiogXG4gICAgICogU2V0cyB0aGUgYm9yZGVyIHdpZHRoIG9mIHRoZSBub2RlXG4gICAgICogQGRlcHJlY2F0ZWQgXG4gICAgICogQGRlZmF1bHQgMFxuICAgICAqL1xuICAgIHB1YmxpYyBib3JkZXJXaWR0aDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTZXQgdGhlIGJyYW5jaCBmb3IgdGhlIG1pbmQgbWFwXG4gICAgICogQGFzcGRlZmF1bHR2YWx1ZWlnbm9yZSBcbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyBicmFuY2g6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgY2hpbGRyZW4gb2YgZ3JvdXAgZWxlbWVudFxuICAgICAqIEBhc3BkZWZhdWx0dmFsdWVpZ25vcmUgXG4gICAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAgICovXG4gICAgcHVibGljIGNoaWxkcmVuOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGNvbGxhcHNlZCBzdGF0ZSBvZiBhIG5vZGVcbiAgICAgKiBAZGVmYXVsdCB7fVxuICAgICAqL1xuICAgIHB1YmxpYyBjb2xsYXBzZUljb246IGFueTtcbiAgICAvKiogXG4gICAgICogVXNlZCB0byBkZWZpbmUgYSBpbmRleCBvZiBjb2x1bW4gaW4gdGhlIGdyaWRcbiAgICAgKiBAYXNwZGVmYXVsdHZhbHVlaWdub3JlIFxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqL1xuICAgIHB1YmxpYyBjb2x1bW5JbmRleDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBNZXJnZSB0aGUgY29sdW1uIHVzZSB0aGUgcHJvcGVydHkgaW4gdGhlIGdyaWQgY29udGFpbmVyXG4gICAgICogQGFzcGRlZmF1bHR2YWx1ZWlnbm9yZSBcbiAgICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgY29sdW1uU3BhbjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBVc2VkIHRvIGRlZmluZSB0aGUgY29sdW1uIGZvciB0aGUgZ3JpZCBjb250YWluZXJcbiAgICAgKiBAYXNwZGVmYXVsdHZhbHVlaWdub3JlIFxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqL1xuICAgIHB1YmxpYyBjb2x1bW5zOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEVuYWJsZXMvRGlzYWJsZXMgY2VydGFpbiBmZWF0dXJlcyBvZiBub2RlcyBcbiAgICAgKiAqIE5vbmUgLSBEaXNhYmxlIGFsbCBub2RlIENvbnN0cmFpbnRzIFxuICAgICAqICogU2VsZWN0IC0gRW5hYmxlcyBub2RlIHRvIGJlIHNlbGVjdGVkIFxuICAgICAqICogRHJhZyAtIEVuYWJsZXMgbm9kZSB0byBiZSBEcmFnZ2VkIFxuICAgICAqICogUm90YXRlIC0gRW5hYmxlcyBub2RlIHRvIGJlIFJvdGF0ZSBcbiAgICAgKiAqIFNoYWRvdyAtIEVuYWJsZXMgbm9kZSB0byBkaXNwbGF5IHNoYWRvdyBcbiAgICAgKiAqIFBvaW50ZXJFdmVudHMgLSBFbmFibGVzIG5vZGUgdG8gcHJvdmlkZSBwb2ludGVyICBvcHRpb24gXG4gICAgICogKiBEZWxldGUgLSBFbmFibGVzIG5vZGUgdG8gZGVsZXRlIFxuICAgICAqICogSW5Db25uZWN0IC0gRW5hYmxlcyBub2RlIHRvIHByb3ZpZGUgaW4gY29ubmVjdCBvcHRpb24gXG4gICAgICogKiBPdXRDb25uZWN0IC0gRW5hYmxlcyBub2RlIHRvIHByb3ZpZGUgb3V0IGNvbm5lY3Qgb3B0aW9uIFxuICAgICAqICogSW5kaXZpZHVhbCAtIEVuYWJsZXMgbm9kZSB0byBwcm92aWRlIGluZGl2aWR1YWwgcmVzaXplIG9wdGlvbiBcbiAgICAgKiAqIEV4cGFuZGFibGUgLSBFbmFibGVzIG5vZGUgdG8gcHJvdmlkZSBFeHBhbmRhYmxlIG9wdGlvbiBcbiAgICAgKiAqIEFsbG93RHJvcCAtIEVuYWJsZXMgbm9kZSB0byBwcm92aWRlIGFsbG93IHRvIGRyb3Agb3B0aW9uIFxuICAgICAqICogSW5oZXJpdCAtIEVuYWJsZXMgbm9kZSB0byBpbmhlcml0IHRoZSBpbnRlcmFjdGlvbiBvcHRpb24gXG4gICAgICogKiBSZXNpemVOb3J0aEVhc3QgLSBFbmFibGUgUmVzaXplTm9ydGhFYXN0IG9mIHRoZSBub2RlIFxuICAgICAqICogUmVzaXplRWFzdCAtIEVuYWJsZSBSZXNpemVFYXN0IG9mIHRoZSBub2RlIFxuICAgICAqICogUmVzaXplU291dGhFYXN0IC0gRW5hYmxlIFJlc2l6ZVNvdXRoRWFzdCBvZiB0aGUgbm9kZSBcbiAgICAgKiAqIFJlc2l6ZVNvdXRoIC0gRW5hYmxlIFJlc2l6ZVNvdXRoV2VzdCBvZiB0aGUgbm9kZSBcbiAgICAgKiAqIFJlc2l6ZVNvdXRoV2VzdCAtIEVuYWJsZSBSZXNpemVTb3V0aFdlc3Qgb2YgdGhlIG5vZGUgXG4gICAgICogKiBSZXNpemVTb3V0aCAtIEVuYWJsZSBSZXNpemVTb3V0aCBvZiB0aGUgbm9kZSBcbiAgICAgKiAqIFJlc2l6ZVNvdXRoV2VzdCAtIEVuYWJsZSBSZXNpemVTb3V0aFdlc3Qgb2YgdGhlIG5vZGUgXG4gICAgICogKiBSZXNpemVXZXN0IC0gRW5hYmxlIFJlc2l6ZVdlc3Qgb2YgdGhlIG5vZGUgXG4gICAgICogKiBSZXNpemVOb3J0aCAtIEVuYWJsZSBSZXNpemVOb3J0aCBvZiB0aGUgbm9kZSBcbiAgICAgKiAqIFJlc2l6ZSAtIEVuYWJsZXMgdGhlIEFzcGVjdCByYXRpbyBmbyB0aGUgbm9kZSBcbiAgICAgKiAqIEFzcGVjdFJhdGlvIC0gRW5hYmxlcyB0aGUgQXNwZWN0IHJhdGlvIGZvIHRoZSBub2RlIFxuICAgICAqICogVG9vbHRpcCAtIEVuYWJsZXMgb3IgZGlzYWJsZXMgdG9vbCB0aXAgZm9yIHRoZSBOb2RlcyBcbiAgICAgKiAqIEluaGVyaXRUb29sdGlwIC0gRW5hYmxlcyBvciBkaXNhYmxlcyB0b29sIHRpcCBmb3IgdGhlIE5vZGVzIFxuICAgICAqICogUmVhZE9ubHkgLSBFbmFibGVzIHRoZSAgUmVhZE9ubHkgc3VwcG9ydCBmb3IgQW5ub3RhdGlvblxuICAgICAqIEBkZWZhdWx0ICdEZWZhdWx0J1xuICAgICAqIEBhc3BudW1iZXJlbnVtIFxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJhaW50czogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSB0eXBlIG9mIHRoZSBjb250YWluZXJcbiAgICAgKiBAYXNwZGVmYXVsdHZhbHVlaWdub3JlIFxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKiBAZGVwcmVjYXRlZCBcbiAgICAgKi9cbiAgICBwdWJsaWMgY29udGFpbmVyOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNldHMgdGhlIGRhdGEgc291cmNlIG9mIHRoZSBub2RlXG4gICAgICovXG4gICAgcHVibGljIGRhdGE6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgc2l6ZSBvZiBhIGRyb3Agc3ltYm9sXG4gICAgICogQGFzcGRlZmF1bHR2YWx1ZWlnbm9yZSBcbiAgICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgZHJhZ1NpemU6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB3aGV0aGVyIHRoZSBub2RlIHNob3VsZCBiZSBhdXRvbWF0aWNhbGx5IHBvc2l0aW9uZWQgb3Igbm90LiBBcHBsaWNhYmxlLCBpZiBsYXlvdXQgb3B0aW9uIGlzIGVuYWJsZWQuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgZXhjbHVkZUZyb21MYXlvdXQ6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgZXhwYW5kZWQgc3RhdGUgb2YgYSBub2RlXG4gICAgICogQGRlZmF1bHQge31cbiAgICAgKi9cbiAgICBwdWJsaWMgZXhwYW5kSWNvbjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgdGhlIGNvbGxlY3Rpb24gb2YgdGhlIGZpeGVkIHVzZXIgaGFuZGxlXG4gICAgICogQGFzcGRlZmF1bHR2YWx1ZWlnbm9yZSBcbiAgICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgZml4ZWRVc2VySGFuZGxlczogYW55O1xuICAgIC8qKiBcbiAgICAgKiBGbGlwIHRoZSBlbGVtZW50IGluIEhvcml6b250YWwvVmVydGljYWwgZGlyZWN0aW9uc1xuICAgICAqIEBhc3BkZWZhdWx0dmFsdWVpZ25vcmUgXG4gICAgICogQGRlZmF1bHQgTm9uZVxuICAgICAqL1xuICAgIHB1YmxpYyBmbGlwOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEFsbG93cyB5b3UgdG8gZmxpcCBvbmx5IHRoZSBub2RlIG9yIGFsb25nIHdpdGggcG9ydCBhbmQgbGFiZWwuXG4gICAgICogXG4gICAgICogVGhpcyBmdW5jdGlvbmFsaXR5IGlzIGFwcGxpY2FibGUgb25seSBmb3Igbm9kZXMuXG4gICAgICogICAgIFxuICAgICAqIEBhc3BkZWZhdWx0dmFsdWVpZ25vcmUgXG4gICAgICogQGRlZmF1bHQgQWxsXG4gICAgICovXG4gICAgcHVibGljIGZsaXBNb2RlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNldHMgdGhlIGhlaWdodCBvZiB0aGUgbm9kZVxuICAgICAqIEBhc3BkZWZhdWx0dmFsdWVpZ25vcmUgXG4gICAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAgICovXG4gICAgcHVibGljIGhlaWdodDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTZXRzIHRoZSBob3Jpem9udGFsQWxpZ25tZW50IG9mIHRoZSBub2RlXG4gICAgICogQGRlZmF1bHQgJ1N0cmV0Y2gnXG4gICAgICovXG4gICAgcHVibGljIGhvcml6b250YWxBbGlnbm1lbnQ6IGFueTtcbiAgICAvKiogXG4gICAgICogUmVwcmVzZW50cyB0aGUgdW5pcXVlIGlkIG9mIG5vZGVzL2Nvbm5lY3RvcnNcbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyBpZDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIG5vZGUgaXMgZXhwYW5kZWQgb3Igbm90XG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBpc0V4cGFuZGVkOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNldHMgdGhlIGxheW91dCBwcm9wZXJ0aWVzIHVzaW5nIG5vZGUgcHJvcGVydHlcbiAgICAgKiBAZGVmYXVsdCBuZXcgTm9kZUxheW91dEluZm8oKVxuICAgICAqIEBhc3B0eXBlIG9iamVjdFxuICAgICAqL1xuICAgIHB1YmxpYyBsYXlvdXRJbmZvOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIHNwYWNlIHRvIGJlIGxlZnQgYmV0d2VlbiB0aGUgbm9kZSBhbmQgaXRzIGltbWVkaWF0ZSBwYXJlbnRcbiAgICAgKiBAZGVmYXVsdCB7fVxuICAgICAqL1xuICAgIHB1YmxpYyBtYXJnaW46IGFueTtcbiAgICAvKiogXG4gICAgICogU2V0cyB0aGUgbWF4aW11bSBoZWlnaHQgb2YgdGhlIG5vZGVcbiAgICAgKiBAYXNwZGVmYXVsdHZhbHVlaWdub3JlIFxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqL1xuICAgIHB1YmxpYyBtYXhIZWlnaHQ6IGFueTtcbiAgICAvKiogXG4gICAgICogU2V0cyB0aGUgbWF4aW11bSB3aWR0aCBvZiB0aGUgbm9kZVxuICAgICAqIEBhc3BkZWZhdWx0dmFsdWVpZ25vcmUgXG4gICAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAgICovXG4gICAgcHVibGljIG1heFdpZHRoOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNldHMgdGhlIG1pbmltdW0gaGVpZ2h0IG9mIHRoZSBub2RlXG4gICAgICogQGFzcGRlZmF1bHR2YWx1ZWlnbm9yZSBcbiAgICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgbWluSGVpZ2h0OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNldHMgdGhlIG1pbmltdW0gd2lkdGggb2YgdGhlIG5vZGVcbiAgICAgKiBAYXNwZGVmYXVsdHZhbHVlaWdub3JlIFxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqL1xuICAgIHB1YmxpYyBtaW5XaWR0aDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTZXRzIHRoZSB4LWNvb3JkaW5hdGUgb2YgdGhlIHBvc2l0aW9uIG9mIHRoZSBub2RlXG4gICAgICogQGRlZmF1bHQgMFxuICAgICAqL1xuICAgIHB1YmxpYyBvZmZzZXRYOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNldHMgdGhlIHktY29vcmRpbmF0ZSBvZiB0aGUgcG9zaXRpb24gb2YgdGhlIG5vZGVcbiAgICAgKiBAZGVmYXVsdCAwXG4gICAgICovXG4gICAgcHVibGljIG9mZnNldFk6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgc3BhY2UgYmV0d2VlbiB0aGUgZ3JvdXAgbm9kZSBlZGdlcyBhbmQgaXRzIGNoaWxkcmVuXG4gICAgICogQGFzcGRlZmF1bHR2YWx1ZWlnbm9yZSBcbiAgICAgKiBAZGVmYXVsdCAwXG4gICAgICovXG4gICAgcHVibGljIHBhZGRpbmc6IGFueTtcbiAgICAvKiogXG4gICAgICogU2V0cyB0aGUgcmVmZXJlbmNlIHBvaW50LCB0aGF0IHdpbGwgYWN0IGFzIHRoZSBvZmZzZXQgdmFsdWVzKG9mZnNldFgsIG9mZnNldFkpIG9mIGEgbm9kZVxuICAgICAqIEBkZWZhdWx0IG5ldyBQb2ludCgwLjUsMC41KVxuICAgICAqL1xuICAgIHB1YmxpYyBwaXZvdDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBjb2xsZWN0aW9uIG9mIGNvbm5lY3Rpb24gcG9pbnRzIG9mIG5vZGVzL2Nvbm5lY3RvcnNcbiAgICAgKiBAYXNwZGVmYXVsdHZhbHVlaWdub3JlIFxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqL1xuICAgIHB1YmxpYyBwb3J0czogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBzaXplIG9mIHRoZSBzeW1ib2wgcHJldmlld1xuICAgICAqIEBhc3BkZWZhdWx0dmFsdWVpZ25vcmUgXG4gICAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAgICovXG4gICAgcHVibGljIHByZXZpZXdTaXplOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNldHMgdGhlIHJvdGF0ZSBhbmdsZSBvZiB0aGUgbm9kZVxuICAgICAqIEBkZWZhdWx0IDBcbiAgICAgKi9cbiAgICBwdWJsaWMgcm90YXRlQW5nbGU6IGFueTtcbiAgICAvKiogXG4gICAgICogVXNlZCB0byBkZWZpbmUgYSBpbmRleCBvZiByb3cgaW4gdGhlIGdyaWRcbiAgICAgKiBAYXNwZGVmYXVsdHZhbHVlaWdub3JlIFxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqL1xuICAgIHB1YmxpYyByb3dJbmRleDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBNZXJnZSB0aGUgcm93IHVzZSB0aGUgcHJvcGVydHkgaW4gdGhlIGdyaWQgY29udGFpbmVyXG4gICAgICogQGFzcGRlZmF1bHR2YWx1ZWlnbm9yZSBcbiAgICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgcm93U3BhbjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBVc2VkIHRvIGRlZmluZSB0aGUgcm93cyBmb3IgdGhlIGdyaWQgY29udGFpbmVyXG4gICAgICogQGFzcGRlZmF1bHR2YWx1ZWlnbm9yZSBcbiAgICAgKiBAZGVwcmVjYXRlZCBcbiAgICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgcm93czogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBzaGFkb3cgb2YgYSBzaGFwZS9wYXRoXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBzaGFkb3c6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgc2hhcGUgb2YgYSBub2RlXG4gICAgICogQGRlZmF1bHQgQmFzaWMgU2hhcGVcbiAgICAgKiBAYXNwdHlwZSBvYmplY3RcbiAgICAgKi9cbiAgICBwdWJsaWMgc2hhcGU6IGFueTtcbiAgICAvKiogXG4gICAgICogU2V0cyB0aGUgc2hhcGUgc3R5bGUgb2YgdGhlIG5vZGVcbiAgICAgKiBAZGVmYXVsdCBuZXcgU2hhcGVTdHlsZSgpXG4gICAgICogQGFzcHR5cGUgb2JqZWN0XG4gICAgICovXG4gICAgcHVibGljIHN0eWxlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIHN5bWJvbCBpbmZvIG9mIGEgY29ubmVjdG9yXG4gICAgICogQGFzcGRlZmF1bHR2YWx1ZWlnbm9yZSBcbiAgICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICAgKiBAaWdub3JlYXBpbGluayBcbiAgICAgKi9cbiAgICBwdWJsaWMgc3ltYm9sSW5mbzogYW55O1xuICAgIC8qKiBcbiAgICAgKiBkZWZpbmVzIHRoZSB0b29sdGlwIGZvciB0aGUgbm9kZVxuICAgICAqIEBkZWZhdWx0IHt9XG4gICAgICovXG4gICAgcHVibGljIHRvb2x0aXA6IGFueTtcbiAgICAvKiogXG4gICAgICogU2V0cyB0aGUgdmVydGljYWxBbGlnbm1lbnQgb2YgdGhlIG5vZGVcbiAgICAgKiBAZGVmYXVsdCAnU3RyZXRjaCdcbiAgICAgKi9cbiAgICBwdWJsaWMgdmVydGljYWxBbGlnbm1lbnQ6IGFueTtcbiAgICAvKiogXG4gICAgICogU2V0cyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgbm9kZS9jb25uZWN0b3JcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIHZpc2libGU6IGFueTtcbiAgICAvKiogXG4gICAgICogU2V0cyB0aGUgd2lkdGggb2YgdGhlIG5vZGVcbiAgICAgKiBAYXNwZGVmYXVsdHZhbHVlaWdub3JlIFxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqL1xuICAgIHB1YmxpYyB3aWR0aDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTZXRzIG9yIGdldHMgdGhlIFVJIG9mIGEgbm9kZVxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKiBAZGVwcmVjYXRlZCBcbiAgICAgKi9cbiAgICBwdWJsaWMgd3JhcHBlcjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSB2aXN1YWwgb3JkZXIgb2YgdGhlIG5vZGUvY29ubmVjdG9yIGluIERPTVxuICAgICAqIEBhc3BkZWZhdWx0dmFsdWUgNWUtMzI0XG4gICAgICogQGRlZmF1bHQgTnVtYmVyLk1JTl9WQUxVRVxuICAgICAqL1xuICAgIHB1YmxpYyB6SW5kZXg6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjpWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHNldFZhbHVlKCdjdXJyZW50SW5zdGFuY2UnLCB0aGlzLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyRXZlbnRzKG91dHB1dHMpO1xuICAgICAgICB0aGlzLmRpcmVjdGl2ZVByb3BMaXN0ID0gaW5wdXQ7XG4gICAgfVxufVxuXG4vKipcbiAqIE5vZGUgQXJyYXkgRGlyZWN0aXZlXG4gKiBAcHJpdmF0ZVxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2VqLWRpYWdyYW0+ZS1ub2RlcycsXG4gICAgcXVlcmllczoge1xuICAgICAgICBjaGlsZHJlbjogbmV3IENvbnRlbnRDaGlsZHJlbihOb2RlRGlyZWN0aXZlKVxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIE5vZGVzRGlyZWN0aXZlIGV4dGVuZHMgQXJyYXlCYXNlPE5vZGVzRGlyZWN0aXZlPiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCdub2RlcycpO1xuICAgIH1cbn0iXX0=