@unovis/angular 1.6.0-pre.2 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/bundles/unovis-angular.umd.js +301 -16
- package/dist/lib/bundles/unovis-angular.umd.js.map +1 -1
- package/dist/lib/components/brush/brush.component.d.ts +1 -1
- package/dist/lib/components/crosshair/crosshair.component.d.ts +21 -8
- package/dist/lib/components/graph/graph.component.d.ts +9 -1
- package/dist/lib/components/nested-donut/nested-donut.component.d.ts +1 -1
- package/dist/lib/components/plotband/plotband.component.d.ts +81 -0
- package/dist/lib/components/plotband/plotband.module.d.ts +7 -0
- package/dist/lib/components/plotline/plotline.component.d.ts +87 -0
- package/dist/lib/components/plotline/plotline.module.d.ts +7 -0
- package/dist/lib/components/timeline/timeline.component.d.ts +60 -15
- package/dist/lib/components.d.ts +6 -0
- package/dist/lib/esm2015/components/brush/brush.component.js +1 -1
- package/dist/lib/esm2015/components/crosshair/crosshair.component.js +8 -4
- package/dist/lib/esm2015/components/graph/graph.component.js +8 -4
- package/dist/lib/esm2015/components/nested-donut/nested-donut.component.js +1 -1
- package/dist/lib/esm2015/components/plotband/plotband.component.js +61 -0
- package/dist/lib/esm2015/components/plotband/plotband.module.js +18 -0
- package/dist/lib/esm2015/components/plotline/plotline.component.js +63 -0
- package/dist/lib/esm2015/components/plotline/plotline.module.js +18 -0
- package/dist/lib/esm2015/components/timeline/timeline.component.js +53 -11
- package/dist/lib/esm2015/components.js +7 -1
- package/dist/lib/esm2015/html-components/rolling-pin-legend/rolling-pin-legend.component.js +48 -0
- package/dist/lib/esm2015/html-components/rolling-pin-legend/rolling-pin-legend.module.js +18 -0
- package/dist/lib/fesm2015/unovis-angular.js +273 -18
- package/dist/lib/fesm2015/unovis-angular.js.map +1 -1
- package/dist/lib/html-components/rolling-pin-legend/rolling-pin-legend.component.d.ts +24 -0
- package/dist/lib/html-components/rolling-pin-legend/rolling-pin-legend.module.d.ts +7 -0
- package/dist/lib/package.json +2 -2
- package/package.json +2 -2
|
@@ -69,7 +69,7 @@ export declare class VisBrushComponent<Datum> implements BrushConfigInterface<Da
|
|
|
69
69
|
/** Allow dragging the selected area as a whole in order to change the selected range. Default: `false` */
|
|
70
70
|
draggable?: boolean;
|
|
71
71
|
/** Position of the handle: `Arrangement.Inside` or `Arrangement.Outside`. Default: `Arrangement.Inside` */
|
|
72
|
-
handlePosition?: Arrangement | string;
|
|
72
|
+
handlePosition?: Arrangement.Inside | Arrangement.Outside | string;
|
|
73
73
|
/** Constraint Brush selection to a minimal length in data units. Default: `undefined` */
|
|
74
74
|
selectionMinLength?: number;
|
|
75
75
|
data: Datum[];
|
|
@@ -80,9 +80,11 @@ export declare class VisCrosshairComponent<Datum> implements CrosshairConfigInte
|
|
|
80
80
|
baseline?: NumericAccessor<Datum>;
|
|
81
81
|
/** An instance of the Tooltip component to be used with Crosshair. Default: `undefined` */
|
|
82
82
|
tooltip?: Tooltip | undefined;
|
|
83
|
-
/** Tooltip template accessor. The function is supposed to return either a valid HTML string or an HTMLElement.
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
/** Tooltip template accessor. The function is supposed to return either a valid HTML string or an HTMLElement.
|
|
84
|
+
* When `snapToData` is `false`, `datum` will be `undefined` but `data` and `leftNearestDatumIndex` will be provided.
|
|
85
|
+
* Default: `d => ''` */
|
|
86
|
+
template?: (datum: Datum, x: number | Date, data: Datum[], leftNearestDatumIndex: number) => string | HTMLElement;
|
|
87
|
+
/** Hide Crosshair when the corresponding datum element is far from mouse pointer. Default: `true` */
|
|
86
88
|
hideWhenFarFromPointer?: boolean;
|
|
87
89
|
/** Distance in pixels to check in the hideWhenFarFromPointer condition. Default: `100` */
|
|
88
90
|
hideWhenFarFromPointerDistance?: number;
|
|
@@ -92,11 +94,22 @@ export declare class VisCrosshairComponent<Datum> implements CrosshairConfigInte
|
|
|
92
94
|
* Default: `true` */
|
|
93
95
|
snapToData?: boolean;
|
|
94
96
|
/** Custom function for setting up the crosshair circles, usually needed when `snapToData` is set to `false`.
|
|
95
|
-
* The function receives the horizontal position of the crosshair (in the data space, not in pixels), the data array
|
|
96
|
-
*
|
|
97
|
-
* It has to return an array of the CrosshairCircle objects: `{ y: number; color: string; opacity?: number }[]`.
|
|
97
|
+
* The function receives the horizontal position of the crosshair (in the data space, not in pixels), the data array,
|
|
98
|
+
* the `yScale` instance to help you calculate the correct vertical position of the circles, and the nearest datum index.
|
|
99
|
+
* It has to return an array of the `CrosshairCircle` objects: `{ y: number; color: string; opacity?: number }[]`.
|
|
98
100
|
* Default: `undefined` */
|
|
99
|
-
getCircles?: (x: number | Date
|
|
101
|
+
getCircles?: (x: number | Date, data: Datum[], yScale: ContinuousScale, leftNearestDatumIndex: number) => CrosshairCircle[];
|
|
102
|
+
/** Callback function that is called when the crosshair is moved:
|
|
103
|
+
* - `x` is the horizontal position of the crosshair in the data space;
|
|
104
|
+
* - `datum` is the nearest datum to the crosshair;
|
|
105
|
+
* - `datumIndex` is the index of the nearest datum.
|
|
106
|
+
* - `event` is the event that triggered the crosshair move (mouse or wheel).
|
|
107
|
+
*
|
|
108
|
+
* When the mouse goes out of the container and on wheel events, all the arguments are `undefined` except for `event`.
|
|
109
|
+
* Default: `undefined` */
|
|
110
|
+
onCrosshairMove?: (x?: number | Date, datum?: Datum, datumIndex?: number, event?: MouseEvent | WheelEvent) => void;
|
|
111
|
+
/** Force the crosshair to show at a specific position. Default: `undefined` */
|
|
112
|
+
forceShowAt?: number | Date;
|
|
100
113
|
data: Datum[];
|
|
101
114
|
component: Crosshair<Datum> | undefined;
|
|
102
115
|
componentContainer: ContainerCore | undefined;
|
|
@@ -104,5 +117,5 @@ export declare class VisCrosshairComponent<Datum> implements CrosshairConfigInte
|
|
|
104
117
|
ngOnChanges(changes: SimpleChanges): void;
|
|
105
118
|
private getConfig;
|
|
106
119
|
static ɵfac: i0.ɵɵFactoryDeclaration<VisCrosshairComponent<any>, never>;
|
|
107
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<VisCrosshairComponent<any>, "vis-crosshair", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "x": "x"; "y": "y"; "id": "id"; "color": "color"; "xScale": "xScale"; "yScale": "yScale"; "excludeFromDomainCalculation": "excludeFromDomainCalculation"; "strokeColor": "strokeColor"; "strokeWidth": "strokeWidth"; "yStacked": "yStacked"; "baseline": "baseline"; "tooltip": "tooltip"; "template": "template"; "hideWhenFarFromPointer": "hideWhenFarFromPointer"; "hideWhenFarFromPointerDistance": "hideWhenFarFromPointerDistance"; "snapToData": "snapToData"; "getCircles": "getCircles"; "data": "data"; }, {}, never, never>;
|
|
120
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VisCrosshairComponent<any>, "vis-crosshair", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "x": "x"; "y": "y"; "id": "id"; "color": "color"; "xScale": "xScale"; "yScale": "yScale"; "excludeFromDomainCalculation": "excludeFromDomainCalculation"; "strokeColor": "strokeColor"; "strokeWidth": "strokeWidth"; "yStacked": "yStacked"; "baseline": "baseline"; "tooltip": "tooltip"; "template": "template"; "hideWhenFarFromPointer": "hideWhenFarFromPointer"; "hideWhenFarFromPointerDistance": "hideWhenFarFromPointerDistance"; "snapToData": "snapToData"; "getCircles": "getCircles"; "onCrosshairMove": "onCrosshairMove"; "forceShowAt": "forceShowAt"; "data": "data"; }, {}, never, never>;
|
|
108
121
|
}
|
|
@@ -105,6 +105,14 @@ export declare class VisGraphComponent<N extends GraphInputNode, L extends Graph
|
|
|
105
105
|
* Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.
|
|
106
106
|
* Default: `1` */
|
|
107
107
|
layoutParallelSubGroupsPerRow?: number;
|
|
108
|
+
/** Spacing between nodes, dynamic by default.
|
|
109
|
+
* Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.
|
|
110
|
+
* Default: `undefined` */
|
|
111
|
+
layoutParallelNodeSpacing?: number | [number, number];
|
|
112
|
+
/** Spacing between sub-groups.
|
|
113
|
+
* Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.
|
|
114
|
+
* Default: `40` */
|
|
115
|
+
layoutParallelSubGroupSpacing?: number;
|
|
108
116
|
/** Spacing between groups.
|
|
109
117
|
* Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.
|
|
110
118
|
* Default: `undefined` */
|
|
@@ -284,5 +292,5 @@ export declare class VisGraphComponent<N extends GraphInputNode, L extends Graph
|
|
|
284
292
|
ngOnChanges(changes: SimpleChanges): void;
|
|
285
293
|
private getConfig;
|
|
286
294
|
static ɵfac: i0.ɵɵFactoryDeclaration<VisGraphComponent<any, any>, never>;
|
|
287
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<VisGraphComponent<any, any>, "vis-graph", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "zoomScaleExtent": "zoomScaleExtent"; "disableZoom": "disableZoom"; "zoomEventFilter": "zoomEventFilter"; "disableDrag": "disableDrag"; "disableBrush": "disableBrush"; "zoomThrottledUpdateNodeThreshold": "zoomThrottledUpdateNodeThreshold"; "fitViewPadding": "fitViewPadding"; "fitViewAlign": "fitViewAlign"; "layoutType": "layoutType"; "layoutAutofit": "layoutAutofit"; "layoutAutofitTolerance": "layoutAutofitTolerance"; "layoutNonConnectedAside": "layoutNonConnectedAside"; "layoutNodeGroup": "layoutNodeGroup"; "layoutGroupOrder": "layoutGroupOrder"; "layoutParallelNodesPerColumn": "layoutParallelNodesPerColumn"; "layoutParallelNodeSubGroup": "layoutParallelNodeSubGroup"; "layoutParallelSubGroupsPerRow": "layoutParallelSubGroupsPerRow"; "layoutParallelGroupSpacing": "layoutParallelGroupSpacing"; "layoutParallelSortConnectionsByGroup": "layoutParallelSortConnectionsByGroup"; "forceLayoutSettings": "forceLayoutSettings"; "dagreLayoutSettings": "dagreLayoutSettings"; "layoutElkSettings": "layoutElkSettings"; "layoutElkNodeGroups": "layoutElkNodeGroups"; "layoutElkGetNodeShape": "layoutElkGetNodeShape"; "linkWidth": "linkWidth"; "linkStyle": "linkStyle"; "linkBandWidth": "linkBandWidth"; "linkArrow": "linkArrow"; "linkStroke": "linkStroke"; "linkDisabled": "linkDisabled"; "linkFlow": "linkFlow"; "linkFlowAnimDuration": "linkFlowAnimDuration"; "linkFlowParticleSize": "linkFlowParticleSize"; "linkFlowParticleSpeed": "linkFlowParticleSpeed"; "linkLabel": "linkLabel"; "linkLabelShiftFromCenter": "linkLabelShiftFromCenter"; "linkNeighborSpacing": "linkNeighborSpacing"; "linkCurvature": "linkCurvature"; "linkHighlightOnHover": "linkHighlightOnHover"; "linkSourcePointOffset": "linkSourcePointOffset"; "linkTargetPointOffset": "linkTargetPointOffset"; "selectedLinkId": "selectedLinkId"; "nodeSize": "nodeSize"; "nodeStrokeWidth": "nodeStrokeWidth"; "nodeShape": "nodeShape"; "nodeGaugeValue": "nodeGaugeValue"; "nodeGaugeFill": "nodeGaugeFill"; "nodeGaugeAnimDuration": "nodeGaugeAnimDuration"; "nodeIcon": "nodeIcon"; "nodeIconSize": "nodeIconSize"; "nodeLabel": "nodeLabel"; "nodeLabelTrim": "nodeLabelTrim"; "nodeLabelTrimMode": "nodeLabelTrimMode"; "nodeLabelTrimLength": "nodeLabelTrimLength"; "nodeSubLabel": "nodeSubLabel"; "nodeSubLabelTrim": "nodeSubLabelTrim"; "nodeSubLabelTrimMode": "nodeSubLabelTrimMode"; "nodeSubLabelTrimLength": "nodeSubLabelTrimLength"; "nodeSideLabels": "nodeSideLabels"; "nodeBottomIcon": "nodeBottomIcon"; "nodeDisabled": "nodeDisabled"; "nodeFill": "nodeFill"; "nodeStroke": "nodeStroke"; "nodeSort": "nodeSort"; "nodeEnterPosition": "nodeEnterPosition"; "nodeEnterScale": "nodeEnterScale"; "nodeExitPosition": "nodeExitPosition"; "nodeExitScale": "nodeExitScale"; "nodeEnterCustomRenderFunction": "nodeEnterCustomRenderFunction"; "nodeUpdateCustomRenderFunction": "nodeUpdateCustomRenderFunction"; "nodePartialUpdateCustomRenderFunction": "nodePartialUpdateCustomRenderFunction"; "nodeExitCustomRenderFunction": "nodeExitCustomRenderFunction"; "nodeOnZoomCustomRenderFunction": "nodeOnZoomCustomRenderFunction"; "nodeSelectionHighlightMode": "nodeSelectionHighlightMode"; "selectedNodeId": "selectedNodeId"; "selectedNodeIds": "selectedNodeIds"; "panels": "panels"; "onNodeDragStart": "onNodeDragStart"; "onNodeDrag": "onNodeDrag"; "onNodeDragEnd": "onNodeDragEnd"; "onZoom": "onZoom"; "onZoomStart": "onZoomStart"; "onZoomEnd": "onZoomEnd"; "onLayoutCalculated": "onLayoutCalculated"; "onNodeSelectionBrush": "onNodeSelectionBrush"; "onNodeSelectionDrag": "onNodeSelectionDrag"; "onRenderComplete": "onRenderComplete"; "shouldDataUpdate": "shouldDataUpdate"; "data": "data"; }, {}, never, never>;
|
|
295
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VisGraphComponent<any, any>, "vis-graph", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "zoomScaleExtent": "zoomScaleExtent"; "disableZoom": "disableZoom"; "zoomEventFilter": "zoomEventFilter"; "disableDrag": "disableDrag"; "disableBrush": "disableBrush"; "zoomThrottledUpdateNodeThreshold": "zoomThrottledUpdateNodeThreshold"; "fitViewPadding": "fitViewPadding"; "fitViewAlign": "fitViewAlign"; "layoutType": "layoutType"; "layoutAutofit": "layoutAutofit"; "layoutAutofitTolerance": "layoutAutofitTolerance"; "layoutNonConnectedAside": "layoutNonConnectedAside"; "layoutNodeGroup": "layoutNodeGroup"; "layoutGroupOrder": "layoutGroupOrder"; "layoutParallelNodesPerColumn": "layoutParallelNodesPerColumn"; "layoutParallelNodeSubGroup": "layoutParallelNodeSubGroup"; "layoutParallelSubGroupsPerRow": "layoutParallelSubGroupsPerRow"; "layoutParallelNodeSpacing": "layoutParallelNodeSpacing"; "layoutParallelSubGroupSpacing": "layoutParallelSubGroupSpacing"; "layoutParallelGroupSpacing": "layoutParallelGroupSpacing"; "layoutParallelSortConnectionsByGroup": "layoutParallelSortConnectionsByGroup"; "forceLayoutSettings": "forceLayoutSettings"; "dagreLayoutSettings": "dagreLayoutSettings"; "layoutElkSettings": "layoutElkSettings"; "layoutElkNodeGroups": "layoutElkNodeGroups"; "layoutElkGetNodeShape": "layoutElkGetNodeShape"; "linkWidth": "linkWidth"; "linkStyle": "linkStyle"; "linkBandWidth": "linkBandWidth"; "linkArrow": "linkArrow"; "linkStroke": "linkStroke"; "linkDisabled": "linkDisabled"; "linkFlow": "linkFlow"; "linkFlowAnimDuration": "linkFlowAnimDuration"; "linkFlowParticleSize": "linkFlowParticleSize"; "linkFlowParticleSpeed": "linkFlowParticleSpeed"; "linkLabel": "linkLabel"; "linkLabelShiftFromCenter": "linkLabelShiftFromCenter"; "linkNeighborSpacing": "linkNeighborSpacing"; "linkCurvature": "linkCurvature"; "linkHighlightOnHover": "linkHighlightOnHover"; "linkSourcePointOffset": "linkSourcePointOffset"; "linkTargetPointOffset": "linkTargetPointOffset"; "selectedLinkId": "selectedLinkId"; "nodeSize": "nodeSize"; "nodeStrokeWidth": "nodeStrokeWidth"; "nodeShape": "nodeShape"; "nodeGaugeValue": "nodeGaugeValue"; "nodeGaugeFill": "nodeGaugeFill"; "nodeGaugeAnimDuration": "nodeGaugeAnimDuration"; "nodeIcon": "nodeIcon"; "nodeIconSize": "nodeIconSize"; "nodeLabel": "nodeLabel"; "nodeLabelTrim": "nodeLabelTrim"; "nodeLabelTrimMode": "nodeLabelTrimMode"; "nodeLabelTrimLength": "nodeLabelTrimLength"; "nodeSubLabel": "nodeSubLabel"; "nodeSubLabelTrim": "nodeSubLabelTrim"; "nodeSubLabelTrimMode": "nodeSubLabelTrimMode"; "nodeSubLabelTrimLength": "nodeSubLabelTrimLength"; "nodeSideLabels": "nodeSideLabels"; "nodeBottomIcon": "nodeBottomIcon"; "nodeDisabled": "nodeDisabled"; "nodeFill": "nodeFill"; "nodeStroke": "nodeStroke"; "nodeSort": "nodeSort"; "nodeEnterPosition": "nodeEnterPosition"; "nodeEnterScale": "nodeEnterScale"; "nodeExitPosition": "nodeExitPosition"; "nodeExitScale": "nodeExitScale"; "nodeEnterCustomRenderFunction": "nodeEnterCustomRenderFunction"; "nodeUpdateCustomRenderFunction": "nodeUpdateCustomRenderFunction"; "nodePartialUpdateCustomRenderFunction": "nodePartialUpdateCustomRenderFunction"; "nodeExitCustomRenderFunction": "nodeExitCustomRenderFunction"; "nodeOnZoomCustomRenderFunction": "nodeOnZoomCustomRenderFunction"; "nodeSelectionHighlightMode": "nodeSelectionHighlightMode"; "selectedNodeId": "selectedNodeId"; "selectedNodeIds": "selectedNodeIds"; "panels": "panels"; "onNodeDragStart": "onNodeDragStart"; "onNodeDrag": "onNodeDrag"; "onNodeDragEnd": "onNodeDragEnd"; "onZoom": "onZoom"; "onZoomStart": "onZoomStart"; "onZoomEnd": "onZoomEnd"; "onLayoutCalculated": "onLayoutCalculated"; "onNodeSelectionBrush": "onNodeSelectionBrush"; "onNodeSelectionDrag": "onNodeSelectionDrag"; "onRenderComplete": "onRenderComplete"; "shouldDataUpdate": "shouldDataUpdate"; "data": "data"; }, {}, never, never>;
|
|
288
296
|
}
|
|
@@ -69,7 +69,7 @@ export declare class VisNestedDonutComponent<Datum> implements NestedDonutConfig
|
|
|
69
69
|
showBackground?: boolean;
|
|
70
70
|
/** Sort function for segments. Default `undefined` */
|
|
71
71
|
sort?: (a: NestedDonutSegment<Datum>, b: NestedDonutSegment<Datum>) => number;
|
|
72
|
-
/** Array of accessor functions to defined the nested groups */
|
|
72
|
+
/** Array of accessor functions to defined the nested groups. Default: `[]` */
|
|
73
73
|
layers: StringAccessor<Datum>[];
|
|
74
74
|
/** Configuration properties for individual layers. Accepts an accessor or constant of type:
|
|
75
75
|
* {
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { AfterViewInit, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { Plotband, PlotbandConfigInterface, ContainerCore, VisEventType, VisEventCallback, AxisType, PlotbandLabelPosition, PlotbandLabelOrientation } from '@unovis/ts';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class VisPlotbandComponent<Datum> implements PlotbandConfigInterface<Datum>, AfterViewInit {
|
|
5
|
+
/** Duration of the animation in milliseconds. */
|
|
6
|
+
duration?: number;
|
|
7
|
+
/** Events configuration. An object containing properties in the following format:
|
|
8
|
+
*
|
|
9
|
+
* ```
|
|
10
|
+
* {
|
|
11
|
+
* \[selectorString]: {
|
|
12
|
+
* \[eventType]: callbackFunction
|
|
13
|
+
* }
|
|
14
|
+
* }
|
|
15
|
+
* ```
|
|
16
|
+
* e.g.:
|
|
17
|
+
* ```
|
|
18
|
+
* {
|
|
19
|
+
* \[Area.selectors.area]: {
|
|
20
|
+
* click: (d) => console.log("Clicked Area", d)
|
|
21
|
+
* }
|
|
22
|
+
* }
|
|
23
|
+
* ``` */
|
|
24
|
+
events?: {
|
|
25
|
+
[selector: string]: {
|
|
26
|
+
[eventType in VisEventType]?: VisEventCallback;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
/** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful
|
|
30
|
+
* when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:
|
|
31
|
+
*
|
|
32
|
+
* ```
|
|
33
|
+
* {
|
|
34
|
+
* \[selectorString]: {
|
|
35
|
+
* \[attributeName]: attribute constant value or accessor function
|
|
36
|
+
* }
|
|
37
|
+
* }
|
|
38
|
+
* ```
|
|
39
|
+
* e.g.:
|
|
40
|
+
* ```
|
|
41
|
+
* {
|
|
42
|
+
* \[Area.selectors.area]: {
|
|
43
|
+
* "test-value": d => d.value
|
|
44
|
+
* }
|
|
45
|
+
* }
|
|
46
|
+
* ``` */
|
|
47
|
+
attributes?: {
|
|
48
|
+
[selector: string]: {
|
|
49
|
+
[attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
/** Axis to draw the plotband on. */
|
|
53
|
+
axis?: AxisType;
|
|
54
|
+
/** Start coordinate for the plotband. */
|
|
55
|
+
from?: number | null | undefined;
|
|
56
|
+
/** End coordinate for the plotband. */
|
|
57
|
+
to?: number | null | undefined;
|
|
58
|
+
/** Optional text to display on the plotband */
|
|
59
|
+
labelText?: string;
|
|
60
|
+
/** Position of the label relative to the plotband area (e.g., 'top-left-outside').
|
|
61
|
+
* Can be customized with a string. */
|
|
62
|
+
labelPosition?: PlotbandLabelPosition;
|
|
63
|
+
/** Horizontal offset (in pixels) for positioning the label. */
|
|
64
|
+
labelOffsetX?: number;
|
|
65
|
+
/** Vertical offset (in pixels) for positioning the label. */
|
|
66
|
+
labelOffsetY?: number;
|
|
67
|
+
/** Orientation of the label text. */
|
|
68
|
+
labelOrientation?: PlotbandLabelOrientation;
|
|
69
|
+
/** Optional color for the label text */
|
|
70
|
+
labelColor?: string;
|
|
71
|
+
/** Font size (in pixels) for the label text.
|
|
72
|
+
* Uses the CSS variable `--vis-plotband-label-font-size` by default, which resolves to `12px`. */
|
|
73
|
+
labelSize?: number;
|
|
74
|
+
component: Plotband<Datum> | undefined;
|
|
75
|
+
componentContainer: ContainerCore | undefined;
|
|
76
|
+
ngAfterViewInit(): void;
|
|
77
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
78
|
+
private getConfig;
|
|
79
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VisPlotbandComponent<any>, never>;
|
|
80
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VisPlotbandComponent<any>, "vis-plotband", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "axis": "axis"; "from": "from"; "to": "to"; "labelText": "labelText"; "labelPosition": "labelPosition"; "labelOffsetX": "labelOffsetX"; "labelOffsetY": "labelOffsetY"; "labelOrientation": "labelOrientation"; "labelColor": "labelColor"; "labelSize": "labelSize"; }, {}, never, never>;
|
|
81
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./plotband.component";
|
|
3
|
+
export declare class VisPlotbandModule {
|
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VisPlotbandModule, never>;
|
|
5
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<VisPlotbandModule, [typeof i1.VisPlotbandComponent], never, [typeof i1.VisPlotbandComponent]>;
|
|
6
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<VisPlotbandModule>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { AfterViewInit, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { Plotline, PlotlineConfigInterface, ContainerCore, VisEventType, VisEventCallback, AxisType, PlotlineLineStylePresets, PlotlineLabelPosition, PlotlineLabelOrientation } from '@unovis/ts';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class VisPlotlineComponent<Datum> implements PlotlineConfigInterface<Datum>, AfterViewInit {
|
|
5
|
+
/** Duration of the animation in milliseconds. */
|
|
6
|
+
duration?: number;
|
|
7
|
+
/** Events configuration. An object containing properties in the following format:
|
|
8
|
+
*
|
|
9
|
+
* ```
|
|
10
|
+
* {
|
|
11
|
+
* \[selectorString]: {
|
|
12
|
+
* \[eventType]: callbackFunction
|
|
13
|
+
* }
|
|
14
|
+
* }
|
|
15
|
+
* ```
|
|
16
|
+
* e.g.:
|
|
17
|
+
* ```
|
|
18
|
+
* {
|
|
19
|
+
* \[Area.selectors.area]: {
|
|
20
|
+
* click: (d) => console.log("Clicked Area", d)
|
|
21
|
+
* }
|
|
22
|
+
* }
|
|
23
|
+
* ``` */
|
|
24
|
+
events?: {
|
|
25
|
+
[selector: string]: {
|
|
26
|
+
[eventType in VisEventType]?: VisEventCallback;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
/** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful
|
|
30
|
+
* when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:
|
|
31
|
+
*
|
|
32
|
+
* ```
|
|
33
|
+
* {
|
|
34
|
+
* \[selectorString]: {
|
|
35
|
+
* \[attributeName]: attribute constant value or accessor function
|
|
36
|
+
* }
|
|
37
|
+
* }
|
|
38
|
+
* ```
|
|
39
|
+
* e.g.:
|
|
40
|
+
* ```
|
|
41
|
+
* {
|
|
42
|
+
* \[Area.selectors.area]: {
|
|
43
|
+
* "test-value": d => d.value
|
|
44
|
+
* }
|
|
45
|
+
* }
|
|
46
|
+
* ``` */
|
|
47
|
+
attributes?: {
|
|
48
|
+
[selector: string]: {
|
|
49
|
+
[attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
/** Line width in pixels.
|
|
53
|
+
* Uses CSS variable: `--vis-plotline-width`. */
|
|
54
|
+
lineWidth?: number;
|
|
55
|
+
/** Plotline direction type.
|
|
56
|
+
* Should be either `AxisType.X` or `AxisType.Y`. */
|
|
57
|
+
axis?: AxisType | string;
|
|
58
|
+
/** Value to draw the plotline at. */
|
|
59
|
+
value?: number | null | undefined;
|
|
60
|
+
/** Line style of the plotline.
|
|
61
|
+
* Can be a named preset or an array of numbers representing `stroke-dasharray`.
|
|
62
|
+
* Uses CSS variable: `--vis-plotline-dasharray`. */
|
|
63
|
+
lineStyle?: PlotlineLineStylePresets | number[];
|
|
64
|
+
/** Label text to display on the plotline. */
|
|
65
|
+
labelText?: string;
|
|
66
|
+
/** Position of the label relative to the plotline. */
|
|
67
|
+
labelPosition?: PlotlineLabelPosition;
|
|
68
|
+
/** Horizontal offset of the label in pixels. */
|
|
69
|
+
labelOffsetX?: number;
|
|
70
|
+
/** Vertical offset of the label in pixels. */
|
|
71
|
+
labelOffsetY?: number;
|
|
72
|
+
/** Orientation of the label: horizontal or vertical. */
|
|
73
|
+
labelOrientation?: PlotlineLabelOrientation;
|
|
74
|
+
/** Color of the label text.
|
|
75
|
+
* Uses CSS variable: `--vis-plotline-label-color`. */
|
|
76
|
+
labelColor?: string;
|
|
77
|
+
/** Font size of the label text in pixels.
|
|
78
|
+
* Uses CSS variable: `--vis-plotline-label-font-size`. */
|
|
79
|
+
labelSize?: number;
|
|
80
|
+
component: Plotline<Datum> | undefined;
|
|
81
|
+
componentContainer: ContainerCore | undefined;
|
|
82
|
+
ngAfterViewInit(): void;
|
|
83
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
84
|
+
private getConfig;
|
|
85
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VisPlotlineComponent<any>, never>;
|
|
86
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VisPlotlineComponent<any>, "vis-plotline", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "lineWidth": "lineWidth"; "axis": "axis"; "value": "value"; "lineStyle": "lineStyle"; "labelText": "labelText"; "labelPosition": "labelPosition"; "labelOffsetX": "labelOffsetX"; "labelOffsetY": "labelOffsetY"; "labelOrientation": "labelOrientation"; "labelColor": "labelColor"; "labelSize": "labelSize"; }, {}, never, never>;
|
|
87
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./plotline.component";
|
|
3
|
+
export declare class VisPlotlineModule {
|
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VisPlotlineModule, never>;
|
|
5
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<VisPlotlineModule, [typeof i1.VisPlotlineComponent], never, [typeof i1.VisPlotlineComponent]>;
|
|
6
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<VisPlotlineModule>;
|
|
7
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AfterViewInit, SimpleChanges } from '@angular/core';
|
|
2
|
-
import { Timeline, TimelineConfigInterface, ContainerCore, VisEventType, VisEventCallback, NumericAccessor, ColorAccessor, ContinuousScale, StringAccessor } from '@unovis/ts';
|
|
2
|
+
import { Timeline, TimelineConfigInterface, ContainerCore, VisEventType, VisEventCallback, NumericAccessor, ColorAccessor, ContinuousScale, StringAccessor, GenericAccessor, Arrangement, TimelineRowLabel, TimelineRowIcon, TextAlign, TimelineArrow, TimelineLineRenderState } from '@unovis/ts';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export declare class VisTimelineComponent<Datum> implements TimelineConfigInterface<Datum>, AfterViewInit {
|
|
5
5
|
/** Animation duration of the data update transitions in milliseconds. Default: `600` */
|
|
@@ -68,30 +68,75 @@ export declare class VisTimelineComponent<Datum> implements TimelineConfigInterf
|
|
|
68
68
|
* the scales of the chart.
|
|
69
69
|
* Default: `false` */
|
|
70
70
|
excludeFromDomainCalculation?: boolean;
|
|
71
|
+
/** */
|
|
72
|
+
type?: StringAccessor<Datum>;
|
|
73
|
+
/** */
|
|
74
|
+
length?: NumericAccessor<Datum>;
|
|
75
|
+
/** */
|
|
76
|
+
cursor?: StringAccessor<Datum>;
|
|
77
|
+
/** Timeline item row accessor function. Records with the `lineRow` will be plotted in one row. Default: `undefined` */
|
|
78
|
+
lineRow?: StringAccessor<Datum>;
|
|
79
|
+
/** Timeline item duration accessor function. Default: `undefined`. Falls back to the deprecated `length` property */
|
|
80
|
+
lineDuration?: NumericAccessor<Datum>;
|
|
71
81
|
/** Width of the timeline items. Default: `8` */
|
|
72
82
|
lineWidth?: NumericAccessor<Datum>;
|
|
73
83
|
/** Display rounded ends for timeline items. Default: `true` */
|
|
74
84
|
lineCap?: boolean;
|
|
85
|
+
/** Provide a href to an SVG defined in container's `svgDefs` to display an icon at the start of the line. Default: undefined */
|
|
86
|
+
lineStartIcon?: StringAccessor<Datum>;
|
|
87
|
+
/** Line start icon color accessor function. Default: `undefined` */
|
|
88
|
+
lineStartIconColor?: StringAccessor<Datum>;
|
|
89
|
+
/** Line start icon size accessor function. Default: `undefined` */
|
|
90
|
+
lineStartIconSize?: NumericAccessor<Datum>;
|
|
91
|
+
/** Line start icon arrangement configuration. Controls how the icon is positioned relative to the line.
|
|
92
|
+
* Accepts values from the Arrangement enum: `Arrangement.Start`, `Arrangement.Middle`, `Arrangement.End` or a string equivalent.
|
|
93
|
+
* Default: `Arrangement.Inside` */
|
|
94
|
+
lineStartIconArrangement?: GenericAccessor<Arrangement | any, Datum>;
|
|
95
|
+
/** Provide a href to an SVG defined in container's `svgDefs` to display an icon at the end of the line. Default: undefined */
|
|
96
|
+
lineEndIcon?: StringAccessor<Datum>;
|
|
97
|
+
/** Line end icon color accessor function. Default: `undefined` */
|
|
98
|
+
lineEndIconColor?: StringAccessor<Datum>;
|
|
99
|
+
/** Line end icon size accessor function. Default: `undefined` */
|
|
100
|
+
lineEndIconSize?: NumericAccessor<Datum>;
|
|
101
|
+
/** Line end icon arrangement configuration. Controls how the icon is positioned relative to the line.
|
|
102
|
+
* Accepts values from the Arrangement enum: `Arrangement.Start`, `Arrangement.Middle`, `Arrangement.End` or a string equivalent.
|
|
103
|
+
* Default: `Arrangement.Inside` */
|
|
104
|
+
lineEndIconArrangement?: GenericAccessor<Arrangement | any, Datum>;
|
|
105
|
+
/** Configurable Timeline item cursor when hovering over. Default: `undefined` */
|
|
106
|
+
lineCursor?: StringAccessor<Datum>;
|
|
107
|
+
/** Sets the minimum line length to 1 pixel for better visibility of small values. Default: `false` */
|
|
108
|
+
showEmptySegments?: boolean;
|
|
75
109
|
/** Timeline row height. Default: `22` */
|
|
76
110
|
rowHeight?: number;
|
|
77
|
-
/**
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
type?: StringAccessor<Datum>;
|
|
81
|
-
/** Configurable Timeline item cursor when hovering over. Default: `null` */
|
|
82
|
-
cursor?: StringAccessor<Datum>;
|
|
83
|
-
/** Show item type labels when set to `true`. Default: `false` */
|
|
111
|
+
/** Alternating row colors. Default: `true` */
|
|
112
|
+
alternatingRowColors?: boolean;
|
|
113
|
+
/** */
|
|
84
114
|
showLabels?: boolean;
|
|
85
|
-
/**
|
|
115
|
+
/** */
|
|
86
116
|
labelWidth?: number;
|
|
87
|
-
/**
|
|
117
|
+
/** */
|
|
88
118
|
maxLabelWidth?: number;
|
|
89
|
-
/**
|
|
90
|
-
|
|
119
|
+
/** Show row labels when set to `true`. Default: `false`. Falls back to deprecated `showLabels` */
|
|
120
|
+
showRowLabels?: boolean;
|
|
121
|
+
/** Row label style as an object with the `{ [property-name]: value }` format. Default: `undefined` */
|
|
122
|
+
rowLabelStyle?: GenericAccessor<Record<string, string>, TimelineRowLabel<Datum>>;
|
|
123
|
+
/** Row label formatter function. Default: `undefined` */
|
|
124
|
+
rowLabelFormatter?: (key: string, items: Datum[], i: number) => string;
|
|
125
|
+
/** Provide an icon href to be displayed before the row label. Default: `undefined` */
|
|
126
|
+
rowIcon?: (key: string, items: Datum[], i: number) => TimelineRowIcon | undefined;
|
|
127
|
+
/** Fixed label width in pixels. Labels longer than the specified value will be trimmed. Default: `undefined`. Falls back to deprecated `labelWidth`. */
|
|
128
|
+
rowLabelWidth?: number;
|
|
129
|
+
/** Maximum label width in pixels. Labels longer than the specified value will be trimmed. Default: `undefined`. Falls back to deprecated `maxLabelWidth`. */
|
|
130
|
+
rowMaxLabelWidth?: number;
|
|
131
|
+
/** Text alignment for labels: `TextAlign.Left`, `TextAlign.Center` or `TextAlign.Right`. Default: `TextAlign.Right` */
|
|
132
|
+
rowLabelTextAlign?: TextAlign | any;
|
|
133
|
+
arrows?: TimelineArrow[];
|
|
134
|
+
/** Control the animation by specify the initial position for new lines as [x, y]. Default: `undefined` */
|
|
135
|
+
animationLineEnterPosition?: [number | undefined | null, number | undefined | null] | ((d: Datum & TimelineLineRenderState, i: number, data: (Datum & TimelineLineRenderState)[]) => [number | undefined, number | undefined]) | undefined;
|
|
136
|
+
/** Control the animation by specify the destination position for exiting lines as [x, y]. Default: `undefined` */
|
|
137
|
+
animationLineExitPosition?: [number | undefined | null, number | undefined | null] | ((d: Datum & TimelineLineRenderState, i: number, data: (Datum & TimelineLineRenderState)[]) => [number | undefined, number | undefined]) | undefined;
|
|
91
138
|
/** Scrolling callback function: `(scrollTop: number) => void`. Default: `undefined` */
|
|
92
139
|
onScroll?: (scrollTop: number) => void;
|
|
93
|
-
/** Sets the minimum line length to 1 pixel for better visibility of small values. Default: `false` */
|
|
94
|
-
showEmptySegments?: boolean;
|
|
95
140
|
data: Datum[];
|
|
96
141
|
component: Timeline<Datum> | undefined;
|
|
97
142
|
componentContainer: ContainerCore | undefined;
|
|
@@ -99,5 +144,5 @@ export declare class VisTimelineComponent<Datum> implements TimelineConfigInterf
|
|
|
99
144
|
ngOnChanges(changes: SimpleChanges): void;
|
|
100
145
|
private getConfig;
|
|
101
146
|
static ɵfac: i0.ɵɵFactoryDeclaration<VisTimelineComponent<any>, never>;
|
|
102
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<VisTimelineComponent<any>, "vis-timeline", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "x": "x"; "id": "id"; "color": "color"; "xScale": "xScale"; "yScale": "yScale"; "excludeFromDomainCalculation": "excludeFromDomainCalculation"; "lineWidth": "lineWidth"; "lineCap": "lineCap"; "
|
|
147
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VisTimelineComponent<any>, "vis-timeline", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "x": "x"; "id": "id"; "color": "color"; "xScale": "xScale"; "yScale": "yScale"; "excludeFromDomainCalculation": "excludeFromDomainCalculation"; "type": "type"; "length": "length"; "cursor": "cursor"; "lineRow": "lineRow"; "lineDuration": "lineDuration"; "lineWidth": "lineWidth"; "lineCap": "lineCap"; "lineStartIcon": "lineStartIcon"; "lineStartIconColor": "lineStartIconColor"; "lineStartIconSize": "lineStartIconSize"; "lineStartIconArrangement": "lineStartIconArrangement"; "lineEndIcon": "lineEndIcon"; "lineEndIconColor": "lineEndIconColor"; "lineEndIconSize": "lineEndIconSize"; "lineEndIconArrangement": "lineEndIconArrangement"; "lineCursor": "lineCursor"; "showEmptySegments": "showEmptySegments"; "rowHeight": "rowHeight"; "alternatingRowColors": "alternatingRowColors"; "showLabels": "showLabels"; "labelWidth": "labelWidth"; "maxLabelWidth": "maxLabelWidth"; "showRowLabels": "showRowLabels"; "rowLabelStyle": "rowLabelStyle"; "rowLabelFormatter": "rowLabelFormatter"; "rowIcon": "rowIcon"; "rowLabelWidth": "rowLabelWidth"; "rowMaxLabelWidth": "rowMaxLabelWidth"; "rowLabelTextAlign": "rowLabelTextAlign"; "arrows": "arrows"; "animationLineEnterPosition": "animationLineEnterPosition"; "animationLineExitPosition": "animationLineExitPosition"; "onScroll": "onScroll"; "data": "data"; }, {}, never, never>;
|
|
103
148
|
}
|
package/dist/lib/components.d.ts
CHANGED
|
@@ -23,6 +23,8 @@ export { VisLineComponent } from './components/line/line.component';
|
|
|
23
23
|
export { VisLineModule } from './components/line/line.module';
|
|
24
24
|
export { VisNestedDonutComponent } from './components/nested-donut/nested-donut.component';
|
|
25
25
|
export { VisNestedDonutModule } from './components/nested-donut/nested-donut.module';
|
|
26
|
+
export { VisPlotlineComponent } from './components/plotline/plotline.component';
|
|
27
|
+
export { VisPlotlineModule } from './components/plotline/plotline.module';
|
|
26
28
|
export { VisSankeyComponent } from './components/sankey/sankey.component';
|
|
27
29
|
export { VisSankeyModule } from './components/sankey/sankey.module';
|
|
28
30
|
export { VisScatterComponent } from './components/scatter/scatter.component';
|
|
@@ -35,11 +37,15 @@ export { VisXYLabelsComponent } from './components/xy-labels/xy-labels.component
|
|
|
35
37
|
export { VisXYLabelsModule } from './components/xy-labels/xy-labels.module';
|
|
36
38
|
export { VisTopoJSONMapComponent } from './components/topojson-map/topojson-map.component';
|
|
37
39
|
export { VisTopoJSONMapModule } from './components/topojson-map/topojson-map.module';
|
|
40
|
+
export { VisPlotbandComponent } from './components/plotband/plotband.component';
|
|
41
|
+
export { VisPlotbandModule } from './components/plotband/plotband.module';
|
|
38
42
|
export { VisLeafletMapComponent } from './html-components/leaflet-map/leaflet-map.component';
|
|
39
43
|
export { VisLeafletMapModule } from './html-components/leaflet-map/leaflet-map.module';
|
|
40
44
|
export { VisLeafletFlowMapComponent } from './html-components/leaflet-flow-map/leaflet-flow-map.component';
|
|
41
45
|
export { VisLeafletFlowMapModule } from './html-components/leaflet-flow-map/leaflet-flow-map.module';
|
|
42
46
|
export { VisBulletLegendComponent } from './html-components/bullet-legend/bullet-legend.component';
|
|
43
47
|
export { VisBulletLegendModule } from './html-components/bullet-legend/bullet-legend.module';
|
|
48
|
+
export { VisRollingPinLegendComponent } from './html-components/rolling-pin-legend/rolling-pin-legend.component';
|
|
49
|
+
export { VisRollingPinLegendModule } from './html-components/rolling-pin-legend/rolling-pin-legend.module';
|
|
44
50
|
export { VisTooltipComponent } from './components/tooltip/tooltip.component';
|
|
45
51
|
export { VisTooltipModule } from './components/tooltip/tooltip.module';
|
|
@@ -66,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
66
66
|
}], data: [{
|
|
67
67
|
type: Input
|
|
68
68
|
}] } });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJ1c2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYnJ1c2gvYnJ1c2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFBRSxLQUFLLEVBQW9GLE1BQU0sWUFBWSxDQUFBO0FBRXBILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUE7O0FBUTNDLE1BQU0sT0FBTyxpQkFBaUI7SUFzRjVCLGVBQWU7O1FBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLEtBQUssQ0FBUSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUVuRCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDakMsTUFBQSxJQUFJLENBQUMsa0JBQWtCLDBDQUFFLE1BQU0sRUFBRSxDQUFBO1NBQ2xDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBRSxPQUFzQjs7UUFDakMsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQUUsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1NBQUU7UUFDeEQsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7UUFDM0MsTUFBQSxJQUFJLENBQUMsa0JBQWtCLDBDQUFFLE1BQU0sRUFBRSxDQUFBO0lBQ25DLENBQUM7SUFFTyxTQUFTO1FBQ2YsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDcEssTUFBTSxNQUFNLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUE7UUFDdEssTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQTBDLENBQUE7UUFDekUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVM7WUFBRSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRTFFLE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQzs7K0dBNUdVLGlCQUFpQjttR0FBakIsaUJBQWlCLGdZQUZqQixDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQywrQ0FGOUQsRUFBRTs0RkFJRCxpQkFBaUI7a0JBTjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRSxFQUFFO29CQUNaLGdEQUFnRDtvQkFDaEQsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsbUJBQW1CLEVBQUUsQ0FBQztpQkFDekU7OEJBR1UsUUFBUTtzQkFBaEIsS0FBSztnQkFtQkcsTUFBTTtzQkFBZCxLQUFLO2dCQXdCRyxVQUFVO3NCQUFsQixLQUFLO2dCQVFHLE9BQU87c0JBQWYsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLO2dCQUlHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBSUcsVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAhISEgVGhpcyBjb2RlIHdhcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZC4gWW91IHNob3VsZCBub3QgY2hhbmdlIGl0ICEhIVxuaW1wb3J0IHsgQ29tcG9uZW50LCBBZnRlclZpZXdJbml0LCBJbnB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBCcnVzaCwgQnJ1c2hDb25maWdJbnRlcmZhY2UsIENvbnRhaW5lckNvcmUsIFZpc0V2ZW50VHlwZSwgVmlzRXZlbnRDYWxsYmFjaywgQXJyYW5nZW1lbnQgfSBmcm9tICdAdW5vdmlzL3RzJ1xuaW1wb3J0IHsgRDNCcnVzaEV2ZW50IH0gZnJvbSAnZDMtYnJ1c2gnXG5pbXBvcnQgeyBWaXNYWUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Zpcy1icnVzaCcsXG4gIHRlbXBsYXRlOiAnJyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVmlzWFlDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBWaXNCcnVzaENvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgVmlzQnJ1c2hDb21wb25lbnQ8RGF0dW0+IGltcGxlbWVudHMgQnJ1c2hDb25maWdJbnRlcmZhY2U8RGF0dW0+LCBBZnRlclZpZXdJbml0IHtcbiAgLyoqIEFuaW1hdGlvbiBkdXJhdGlvbiBvZiB0aGUgZGF0YSB1cGRhdGUgdHJhbnNpdGlvbnMgaW4gbWlsbGlzZWNvbmRzLiBEZWZhdWx0OiBgNjAwYCAqL1xuICBASW5wdXQoKSBkdXJhdGlvbj86IG51bWJlclxuXG4gIC8qKiBFdmVudHMgY29uZmlndXJhdGlvbi4gQW4gb2JqZWN0IGNvbnRhaW5pbmcgcHJvcGVydGllcyBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiB7XG4gICAqICAgICBcXFtldmVudFR5cGVdOiBjYWxsYmFja0Z1bmN0aW9uXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW0FyZWEuc2VsZWN0b3JzLmFyZWFdOiB7XG4gICAqICAgIGNsaWNrOiAoZCkgPT4gY29uc29sZS5sb2coXCJDbGlja2VkIEFyZWFcIiwgZClcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGAgKi9cbiAgQElucHV0KCkgZXZlbnRzPzoge1xuICAgIFtzZWxlY3Rvcjogc3RyaW5nXToge1xuICAgICAgW2V2ZW50VHlwZSBpbiBWaXNFdmVudFR5cGVdPzogVmlzRXZlbnRDYWxsYmFja1xuICAgIH07XG4gIH1cblxuICAvKiogWW91IGNhbiBzZXQgZXZlcnkgU1ZHIGFuZCBIVE1MIHZpc3VhbGl6YXRpb24gb2JqZWN0IHRvIGhhdmUgYSBjdXN0b20gRE9NIGF0dHJpYnV0ZXMsIHdoaWNoIGlzIHVzZWZ1bFxuICAgKiB3aGVuIHlvdSB3YW50IHRvIGRvIHVuaXQgb3IgZW5kLXRvLWVuZCB0ZXN0aW5nLiBBdHRyaWJ1dGVzIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZTpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiB7XG4gICAqICAgICBcXFthdHRyaWJ1dGVOYW1lXTogYXR0cmlidXRlIGNvbnN0YW50IHZhbHVlIG9yIGFjY2Vzc29yIGZ1bmN0aW9uXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW0FyZWEuc2VsZWN0b3JzLmFyZWFdOiB7XG4gICAqICAgIFwidGVzdC12YWx1ZVwiOiBkID0+IGQudmFsdWVcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGAgKi9cbiAgQElucHV0KCkgYXR0cmlidXRlcz86IHtcbiAgICBbc2VsZWN0b3I6IHN0cmluZ106IHtcbiAgICAgIFthdHRyOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgKChkYXR1bTogYW55KSA9PiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBvbiBhbnkgQnJ1c2ggZXZlbnQuXG4gICAqIERlZmF1bHQ6IGAoc2VsZWN0aW9uOiBbbnVtYmVyLCBudW1iZXJdLCBldmVudDogRDNCcnVzaEV2ZW50PERhdHVtPiwgdXNlckRyaXZlbjogYm9vbGVhbik6IHZvaWQgPT4ge31gICovXG4gIEBJbnB1dCgpIG9uQnJ1c2g/OiAoKHNlbGVjdGlvbjogW251bWJlciwgbnVtYmVyXSB8IHVuZGVmaW5lZCwgZXZlbnQ6IEQzQnJ1c2hFdmVudDxEYXR1bT4sIHVzZXJEcml2ZW46IGJvb2xlYW4pID0+IHZvaWQpXG5cbiAgLyoqIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBvbiB0aGUgQnJ1c2ggc3RhcnQgZXZlbnQuXG4gICAqIERlZmF1bHQ6IGAoc2VsZWN0aW9uOiBbbnVtYmVyLCBudW1iZXJdLCBldmVudDogRDNCcnVzaEV2ZW50PERhdHVtPiwgdXNlckRyaXZlbjogYm9vbGVhbik6IHZvaWQgPT4ge31gICovXG4gIEBJbnB1dCgpIG9uQnJ1c2hTdGFydD86ICgoc2VsZWN0aW9uOiBbbnVtYmVyLCBudW1iZXJdIHwgdW5kZWZpbmVkLCBldmVudDogRDNCcnVzaEV2ZW50PERhdHVtPiwgdXNlckRyaXZlbjogYm9vbGVhbikgPT4gdm9pZClcblxuICAvKiogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIG9uIHRoZSBCcnVzaCBtb3ZlIGV2ZW50LlxuICAgKiBEZWZhdWx0OiBgKHNlbGVjdGlvbjogW251bWJlciwgbnVtYmVyXSwgZXZlbnQ6IEQzQnJ1c2hFdmVudDxEYXR1bT4sIHVzZXJEcml2ZW46IGJvb2xlYW4pOiB2b2lkID0+IHt9YCAqL1xuICBASW5wdXQoKSBvbkJydXNoTW92ZT86ICgoc2VsZWN0aW9uOiBbbnVtYmVyLCBudW1iZXJdIHwgdW5kZWZpbmVkLCBldmVudDogRDNCcnVzaEV2ZW50PERhdHVtPiwgdXNlckRyaXZlbjogYm9vbGVhbikgPT4gdm9pZClcblxuICAvKiogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIG9uIHRoZSBCcnVzaCBlbmQgZXZlbnQuXG4gICAqIERlZmF1bHQ6IGAoc2VsZWN0aW9uOiBbbnVtYmVyLCBudW1iZXJdLCBldmVudDogRDNCcnVzaEV2ZW50PERhdHVtPiwgdXNlckRyaXZlbjogYm9vbGVhbik6IHZvaWQgPT4ge31gICovXG4gIEBJbnB1dCgpIG9uQnJ1c2hFbmQ/OiAoKHNlbGVjdGlvbjogW251bWJlciwgbnVtYmVyXSB8IHVuZGVmaW5lZCwgZXZlbnQ6IEQzQnJ1c2hFdmVudDxEYXR1bT4sIHVzZXJEcml2ZW46IGJvb2xlYW4pID0+
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJ1c2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYnJ1c2gvYnJ1c2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFBRSxLQUFLLEVBQW9GLE1BQU0sWUFBWSxDQUFBO0FBRXBILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUE7O0FBUTNDLE1BQU0sT0FBTyxpQkFBaUI7SUFzRjVCLGVBQWU7O1FBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLEtBQUssQ0FBUSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUVuRCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDakMsTUFBQSxJQUFJLENBQUMsa0JBQWtCLDBDQUFFLE1BQU0sRUFBRSxDQUFBO1NBQ2xDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBRSxPQUFzQjs7UUFDakMsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQUUsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1NBQUU7UUFDeEQsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7UUFDM0MsTUFBQSxJQUFJLENBQUMsa0JBQWtCLDBDQUFFLE1BQU0sRUFBRSxDQUFBO0lBQ25DLENBQUM7SUFFTyxTQUFTO1FBQ2YsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDcEssTUFBTSxNQUFNLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUE7UUFDdEssTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQTBDLENBQUE7UUFDekUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVM7WUFBRSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRTFFLE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQzs7K0dBNUdVLGlCQUFpQjttR0FBakIsaUJBQWlCLGdZQUZqQixDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQywrQ0FGOUQsRUFBRTs0RkFJRCxpQkFBaUI7a0JBTjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRSxFQUFFO29CQUNaLGdEQUFnRDtvQkFDaEQsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsbUJBQW1CLEVBQUUsQ0FBQztpQkFDekU7OEJBR1UsUUFBUTtzQkFBaEIsS0FBSztnQkFtQkcsTUFBTTtzQkFBZCxLQUFLO2dCQXdCRyxVQUFVO3NCQUFsQixLQUFLO2dCQVFHLE9BQU87c0JBQWYsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLO2dCQUlHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBSUcsVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAhISEgVGhpcyBjb2RlIHdhcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZC4gWW91IHNob3VsZCBub3QgY2hhbmdlIGl0ICEhIVxuaW1wb3J0IHsgQ29tcG9uZW50LCBBZnRlclZpZXdJbml0LCBJbnB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBCcnVzaCwgQnJ1c2hDb25maWdJbnRlcmZhY2UsIENvbnRhaW5lckNvcmUsIFZpc0V2ZW50VHlwZSwgVmlzRXZlbnRDYWxsYmFjaywgQXJyYW5nZW1lbnQgfSBmcm9tICdAdW5vdmlzL3RzJ1xuaW1wb3J0IHsgRDNCcnVzaEV2ZW50IH0gZnJvbSAnZDMtYnJ1c2gnXG5pbXBvcnQgeyBWaXNYWUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Zpcy1icnVzaCcsXG4gIHRlbXBsYXRlOiAnJyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVmlzWFlDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBWaXNCcnVzaENvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgVmlzQnJ1c2hDb21wb25lbnQ8RGF0dW0+IGltcGxlbWVudHMgQnJ1c2hDb25maWdJbnRlcmZhY2U8RGF0dW0+LCBBZnRlclZpZXdJbml0IHtcbiAgLyoqIEFuaW1hdGlvbiBkdXJhdGlvbiBvZiB0aGUgZGF0YSB1cGRhdGUgdHJhbnNpdGlvbnMgaW4gbWlsbGlzZWNvbmRzLiBEZWZhdWx0OiBgNjAwYCAqL1xuICBASW5wdXQoKSBkdXJhdGlvbj86IG51bWJlclxuXG4gIC8qKiBFdmVudHMgY29uZmlndXJhdGlvbi4gQW4gb2JqZWN0IGNvbnRhaW5pbmcgcHJvcGVydGllcyBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiB7XG4gICAqICAgICBcXFtldmVudFR5cGVdOiBjYWxsYmFja0Z1bmN0aW9uXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW0FyZWEuc2VsZWN0b3JzLmFyZWFdOiB7XG4gICAqICAgIGNsaWNrOiAoZCkgPT4gY29uc29sZS5sb2coXCJDbGlja2VkIEFyZWFcIiwgZClcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGAgKi9cbiAgQElucHV0KCkgZXZlbnRzPzoge1xuICAgIFtzZWxlY3Rvcjogc3RyaW5nXToge1xuICAgICAgW2V2ZW50VHlwZSBpbiBWaXNFdmVudFR5cGVdPzogVmlzRXZlbnRDYWxsYmFja1xuICAgIH07XG4gIH1cblxuICAvKiogWW91IGNhbiBzZXQgZXZlcnkgU1ZHIGFuZCBIVE1MIHZpc3VhbGl6YXRpb24gb2JqZWN0IHRvIGhhdmUgYSBjdXN0b20gRE9NIGF0dHJpYnV0ZXMsIHdoaWNoIGlzIHVzZWZ1bFxuICAgKiB3aGVuIHlvdSB3YW50IHRvIGRvIHVuaXQgb3IgZW5kLXRvLWVuZCB0ZXN0aW5nLiBBdHRyaWJ1dGVzIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZTpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiB7XG4gICAqICAgICBcXFthdHRyaWJ1dGVOYW1lXTogYXR0cmlidXRlIGNvbnN0YW50IHZhbHVlIG9yIGFjY2Vzc29yIGZ1bmN0aW9uXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW0FyZWEuc2VsZWN0b3JzLmFyZWFdOiB7XG4gICAqICAgIFwidGVzdC12YWx1ZVwiOiBkID0+IGQudmFsdWVcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGAgKi9cbiAgQElucHV0KCkgYXR0cmlidXRlcz86IHtcbiAgICBbc2VsZWN0b3I6IHN0cmluZ106IHtcbiAgICAgIFthdHRyOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgKChkYXR1bTogYW55KSA9PiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBvbiBhbnkgQnJ1c2ggZXZlbnQuXG4gICAqIERlZmF1bHQ6IGAoc2VsZWN0aW9uOiBbbnVtYmVyLCBudW1iZXJdLCBldmVudDogRDNCcnVzaEV2ZW50PERhdHVtPiwgdXNlckRyaXZlbjogYm9vbGVhbik6IHZvaWQgPT4ge31gICovXG4gIEBJbnB1dCgpIG9uQnJ1c2g/OiAoKHNlbGVjdGlvbjogW251bWJlciwgbnVtYmVyXSB8IHVuZGVmaW5lZCwgZXZlbnQ6IEQzQnJ1c2hFdmVudDxEYXR1bT4sIHVzZXJEcml2ZW46IGJvb2xlYW4pID0+IHZvaWQpXG5cbiAgLyoqIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBvbiB0aGUgQnJ1c2ggc3RhcnQgZXZlbnQuXG4gICAqIERlZmF1bHQ6IGAoc2VsZWN0aW9uOiBbbnVtYmVyLCBudW1iZXJdLCBldmVudDogRDNCcnVzaEV2ZW50PERhdHVtPiwgdXNlckRyaXZlbjogYm9vbGVhbik6IHZvaWQgPT4ge31gICovXG4gIEBJbnB1dCgpIG9uQnJ1c2hTdGFydD86ICgoc2VsZWN0aW9uOiBbbnVtYmVyLCBudW1iZXJdIHwgdW5kZWZpbmVkLCBldmVudDogRDNCcnVzaEV2ZW50PERhdHVtPiwgdXNlckRyaXZlbjogYm9vbGVhbikgPT4gdm9pZClcblxuICAvKiogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIG9uIHRoZSBCcnVzaCBtb3ZlIGV2ZW50LlxuICAgKiBEZWZhdWx0OiBgKHNlbGVjdGlvbjogW251bWJlciwgbnVtYmVyXSwgZXZlbnQ6IEQzQnJ1c2hFdmVudDxEYXR1bT4sIHVzZXJEcml2ZW46IGJvb2xlYW4pOiB2b2lkID0+IHt9YCAqL1xuICBASW5wdXQoKSBvbkJydXNoTW92ZT86ICgoc2VsZWN0aW9uOiBbbnVtYmVyLCBudW1iZXJdIHwgdW5kZWZpbmVkLCBldmVudDogRDNCcnVzaEV2ZW50PERhdHVtPiwgdXNlckRyaXZlbjogYm9vbGVhbikgPT4gdm9pZClcblxuICAvKiogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIG9uIHRoZSBCcnVzaCBlbmQgZXZlbnQuXG4gICAqIERlZmF1bHQ6IGAoc2VsZWN0aW9uOiBbbnVtYmVyLCBudW1iZXJdLCBldmVudDogRDNCcnVzaEV2ZW50PERhdHVtPiwgdXNlckRyaXZlbjogYm9vbGVhbik6IHZvaWQgPT4ge31gICovXG4gIEBJbnB1dCgpIG9uQnJ1c2hFbmQ/OiAoKHNlbGVjdGlvbjogW251bWJlciwgbnVtYmVyXSB8IHVuZGVmaW5lZCwgZXZlbnQ6IEQzQnJ1c2hFdmVudDxEYXR1bT4sIHVzZXJEcml2ZW46IGJvb2xlYW4pID0+IHZvaWQpXG5cbiAgLyoqIFdpZHRoIG9mIHRoZSBCcnVzaCBoYW5kbGUuIERlZmF1bHQ6IGAxYCAqL1xuICBASW5wdXQoKSBoYW5kbGVXaWR0aD86IG51bWJlclxuXG4gIC8qKiBCcnVzaCBzZWxlY3Rpb24gaW4gdGhlIGRhdGEgc3BhY2UgY29vcmRpbmF0ZXMsIGNhbiBiZSB1c2VkIHRvIGNvbnRyb2wgdGhlIHNlbGVjdGlvbi4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgc2VsZWN0aW9uPzogW251bWJlciwgbnVtYmVyXSB8IG51bGxcblxuICAvKiogQWxsb3cgZHJhZ2dpbmcgdGhlIHNlbGVjdGVkIGFyZWEgYXMgYSB3aG9sZSBpbiBvcmRlciB0byBjaGFuZ2UgdGhlIHNlbGVjdGVkIHJhbmdlLiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIGRyYWdnYWJsZT86IGJvb2xlYW5cblxuICAvKiogUG9zaXRpb24gb2YgdGhlIGhhbmRsZTogYEFycmFuZ2VtZW50Lkluc2lkZWAgb3IgYEFycmFuZ2VtZW50Lk91dHNpZGVgLiBEZWZhdWx0OiBgQXJyYW5nZW1lbnQuSW5zaWRlYCAqL1xuICBASW5wdXQoKSBoYW5kbGVQb3NpdGlvbj86IEFycmFuZ2VtZW50Lkluc2lkZSB8IEFycmFuZ2VtZW50Lk91dHNpZGUgfCBzdHJpbmdcblxuICAvKiogQ29uc3RyYWludCBCcnVzaCBzZWxlY3Rpb24gdG8gYSBtaW5pbWFsIGxlbmd0aCBpbiBkYXRhIHVuaXRzLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBzZWxlY3Rpb25NaW5MZW5ndGg/OiBudW1iZXJcbiAgQElucHV0KCkgZGF0YTogRGF0dW1bXVxuXG4gIGNvbXBvbmVudDogQnJ1c2g8RGF0dW0+IHwgdW5kZWZpbmVkXG4gIHB1YmxpYyBjb21wb25lbnRDb250YWluZXI6IENvbnRhaW5lckNvcmUgfCB1bmRlZmluZWRcblxuICBuZ0FmdGVyVmlld0luaXQgKCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50ID0gbmV3IEJydXNoPERhdHVtPih0aGlzLmdldENvbmZpZygpKVxuXG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgdGhpcy5jb21wb25lbnQuc2V0RGF0YSh0aGlzLmRhdGEpXG4gICAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyAoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmRhdGEpIHsgdGhpcy5jb21wb25lbnQ/LnNldERhdGEodGhpcy5kYXRhKSB9XG4gICAgdGhpcy5jb21wb25lbnQ/LnNldENvbmZpZyh0aGlzLmdldENvbmZpZygpKVxuICAgIHRoaXMuY29tcG9uZW50Q29udGFpbmVyPy5yZW5kZXIoKVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb25maWcgKCk6IEJydXNoQ29uZmlnSW50ZXJmYWNlPERhdHVtPiB7XG4gICAgY29uc3QgeyBkdXJhdGlvbiwgZXZlbnRzLCBhdHRyaWJ1dGVzLCBvbkJydXNoLCBvbkJydXNoU3RhcnQsIG9uQnJ1c2hNb3ZlLCBvbkJydXNoRW5kLCBoYW5kbGVXaWR0aCwgc2VsZWN0aW9uLCBkcmFnZ2FibGUsIGhhbmRsZVBvc2l0aW9uLCBzZWxlY3Rpb25NaW5MZW5ndGggfSA9IHRoaXNcbiAgICBjb25zdCBjb25maWcgPSB7IGR1cmF0aW9uLCBldmVudHMsIGF0dHJpYnV0ZXMsIG9uQnJ1c2gsIG9uQnJ1c2hTdGFydCwgb25CcnVzaE1vdmUsIG9uQnJ1c2hFbmQsIGhhbmRsZVdpZHRoLCBzZWxlY3Rpb24sIGRyYWdnYWJsZSwgaGFuZGxlUG9zaXRpb24sIHNlbGVjdGlvbk1pbkxlbmd0aCB9XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGNvbmZpZykgYXMgKGtleW9mIEJydXNoQ29uZmlnSW50ZXJmYWNlPERhdHVtPilbXVxuICAgIGtleXMuZm9yRWFjaChrZXkgPT4geyBpZiAoY29uZmlnW2tleV0gPT09IHVuZGVmaW5lZCkgZGVsZXRlIGNvbmZpZ1trZXldIH0pXG5cbiAgICByZXR1cm4gY29uZmlnXG4gIH1cbn1cbiJdfQ==
|
|
@@ -21,8 +21,8 @@ export class VisCrosshairComponent {
|
|
|
21
21
|
(_c = this.componentContainer) === null || _c === void 0 ? void 0 : _c.render();
|
|
22
22
|
}
|
|
23
23
|
getConfig() {
|
|
24
|
-
const { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, strokeColor, strokeWidth, yStacked, baseline, tooltip, template, hideWhenFarFromPointer, hideWhenFarFromPointerDistance, snapToData, getCircles } = this;
|
|
25
|
-
const config = { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, strokeColor, strokeWidth, yStacked, baseline, tooltip, template, hideWhenFarFromPointer, hideWhenFarFromPointerDistance, snapToData, getCircles };
|
|
24
|
+
const { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, strokeColor, strokeWidth, yStacked, baseline, tooltip, template, hideWhenFarFromPointer, hideWhenFarFromPointerDistance, snapToData, getCircles, onCrosshairMove, forceShowAt } = this;
|
|
25
|
+
const config = { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, strokeColor, strokeWidth, yStacked, baseline, tooltip, template, hideWhenFarFromPointer, hideWhenFarFromPointerDistance, snapToData, getCircles, onCrosshairMove, forceShowAt };
|
|
26
26
|
const keys = Object.keys(config);
|
|
27
27
|
keys.forEach(key => { if (config[key] === undefined)
|
|
28
28
|
delete config[key]; });
|
|
@@ -30,7 +30,7 @@ export class VisCrosshairComponent {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
VisCrosshairComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisCrosshairComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
33
|
-
VisCrosshairComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisCrosshairComponent, selector: "vis-crosshair", inputs: { duration: "duration", events: "events", attributes: "attributes", x: "x", y: "y", id: "id", color: "color", xScale: "xScale", yScale: "yScale", excludeFromDomainCalculation: "excludeFromDomainCalculation", strokeColor: "strokeColor", strokeWidth: "strokeWidth", yStacked: "yStacked", baseline: "baseline", tooltip: "tooltip", template: "template", hideWhenFarFromPointer: "hideWhenFarFromPointer", hideWhenFarFromPointerDistance: "hideWhenFarFromPointerDistance", snapToData: "snapToData", getCircles: "getCircles", data: "data" }, providers: [{ provide: VisXYComponent, useExisting: VisCrosshairComponent }], usesOnChanges: true, ngImport: i0, template: '', isInline: true });
|
|
33
|
+
VisCrosshairComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisCrosshairComponent, selector: "vis-crosshair", inputs: { duration: "duration", events: "events", attributes: "attributes", x: "x", y: "y", id: "id", color: "color", xScale: "xScale", yScale: "yScale", excludeFromDomainCalculation: "excludeFromDomainCalculation", strokeColor: "strokeColor", strokeWidth: "strokeWidth", yStacked: "yStacked", baseline: "baseline", tooltip: "tooltip", template: "template", hideWhenFarFromPointer: "hideWhenFarFromPointer", hideWhenFarFromPointerDistance: "hideWhenFarFromPointerDistance", snapToData: "snapToData", getCircles: "getCircles", onCrosshairMove: "onCrosshairMove", forceShowAt: "forceShowAt", data: "data" }, providers: [{ provide: VisXYComponent, useExisting: VisCrosshairComponent }], usesOnChanges: true, ngImport: i0, template: '', isInline: true });
|
|
34
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisCrosshairComponent, decorators: [{
|
|
35
35
|
type: Component,
|
|
36
36
|
args: [{
|
|
@@ -79,7 +79,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
79
79
|
type: Input
|
|
80
80
|
}], getCircles: [{
|
|
81
81
|
type: Input
|
|
82
|
+
}], onCrosshairMove: [{
|
|
83
|
+
type: Input
|
|
84
|
+
}], forceShowAt: [{
|
|
85
|
+
type: Input
|
|
82
86
|
}], data: [{
|
|
83
87
|
type: Input
|
|
84
88
|
}] } });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NoYWlyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Nyb3NzaGFpci9jcm9zc2hhaXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFDTCxTQUFTLEdBVVYsTUFBTSxZQUFZLENBQUE7QUFDbkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRM0MsTUFBTSxPQUFPLHFCQUFxQjtJQXdIaEMsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksU0FBUyxDQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRXZELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsNEJBQTRCLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsOEJBQThCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQTtRQUM3UCxNQUFNLE1BQU0sR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLDRCQUE0QixFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLDhCQUE4QixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQTtRQUMvUCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBOEMsQ0FBQTtRQUM3RSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUztZQUFFLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFMUUsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDOzttSEE5SVUscUJBQXFCO3VHQUFyQixxQkFBcUIsc2tCQUZyQixDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUUsQ0FBQywrQ0FGbEUsRUFBRTs0RkFJRCxxQkFBcUI7a0JBTmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFFBQVEsRUFBRSxFQUFFO29CQUNaLGdEQUFnRDtvQkFDaEQsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsdUJBQXVCLEVBQUUsQ0FBQztpQkFDN0U7OEJBR1UsUUFBUTtzQkFBaEIsS0FBSztnQkFtQkcsTUFBTTtzQkFBZCxLQUFLO2dCQXdCRyxVQUFVO3NCQUFsQixLQUFLO2dCQU9HLENBQUM7c0JBQVQsS0FBSztnQkFHRyxDQUFDO3NCQUFULEtBQUs7Z0JBR0csRUFBRTtzQkFBVixLQUFLO2dCQUdHLEtBQUs7c0JBQWIsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQU1HLDRCQUE0QjtzQkFBcEMsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFHRyw4QkFBOEI7c0JBQXRDLEtBQUs7Z0JBTUcsVUFBVTtzQkFBbEIsS0FBSztnQkFPRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vICEhISBUaGlzIGNvZGUgd2FzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkLiBZb3Ugc2hvdWxkIG5vdCBjaGFuZ2UgaXQgISEhXG5pbXBvcnQgeyBDb21wb25lbnQsIEFmdGVyVmlld0luaXQsIElucHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIENyb3NzaGFpcixcbiAgQ3Jvc3NoYWlyQ29uZmlnSW50ZXJmYWNlLFxuICBDb250YWluZXJDb3JlLFxuICBWaXNFdmVudFR5cGUsXG4gIFZpc0V2ZW50Q2FsbGJhY2ssXG4gIE51bWVyaWNBY2Nlc3NvcixcbiAgQ29sb3JBY2Nlc3NvcixcbiAgQ29udGludW91c1NjYWxlLFxuICBUb29sdGlwLFxuICBDcm9zc2hhaXJDaXJjbGUsXG59IGZyb20gJ0B1bm92aXMvdHMnXG5pbXBvcnQgeyBWaXNYWUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Zpcy1jcm9zc2hhaXInLFxuICB0ZW1wbGF0ZTogJycsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFZpc1hZQ29tcG9uZW50LCB1c2VFeGlzdGluZzogVmlzQ3Jvc3NoYWlyQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBWaXNDcm9zc2hhaXJDb21wb25lbnQ8RGF0dW0+IGltcGxlbWVudHMgQ3Jvc3NoYWlyQ29uZmlnSW50ZXJmYWNlPERhdHVtPiwgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKiBBbmltYXRpb24gZHVyYXRpb24gb2YgdGhlIGRhdGEgdXBkYXRlIHRyYW5zaXRpb25zIGluIG1pbGxpc2Vjb25kcy4gRGVmYXVsdDogYDYwMGAgKi9cbiAgQElucHV0KCkgZHVyYXRpb24/OiBudW1iZXJcblxuICAvKiogRXZlbnRzIGNvbmZpZ3VyYXRpb24uIEFuIG9iamVjdCBjb250YWluaW5nIHByb3BlcnRpZXMgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW3NlbGVjdG9yU3RyaW5nXToge1xuICAgKiAgICAgXFxbZXZlbnRUeXBlXTogY2FsbGJhY2tGdW5jdGlvblxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBlLmcuOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtBcmVhLnNlbGVjdG9ycy5hcmVhXToge1xuICAgKiAgICBjbGljazogKGQpID0+IGNvbnNvbGUubG9nKFwiQ2xpY2tlZCBBcmVhXCIsIGQpXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGV2ZW50cz86IHtcbiAgICBbc2VsZWN0b3I6IHN0cmluZ106IHtcbiAgICAgIFtldmVudFR5cGUgaW4gVmlzRXZlbnRUeXBlXT86IFZpc0V2ZW50Q2FsbGJhY2tcbiAgICB9O1xuICB9XG5cbiAgLyoqIFlvdSBjYW4gc2V0IGV2ZXJ5IFNWRyBhbmQgSFRNTCB2aXN1YWxpemF0aW9uIG9iamVjdCB0byBoYXZlIGEgY3VzdG9tIERPTSBhdHRyaWJ1dGVzLCB3aGljaCBpcyB1c2VmdWxcbiAgICogd2hlbiB5b3Ugd2FudCB0byBkbyB1bml0IG9yIGVuZC10by1lbmQgdGVzdGluZy4gQXR0cmlidXRlcyBjb25maWd1cmF0aW9uIG9iamVjdCBoYXMgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmU6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW3NlbGVjdG9yU3RyaW5nXToge1xuICAgKiAgICAgXFxbYXR0cmlidXRlTmFtZV06IGF0dHJpYnV0ZSBjb25zdGFudCB2YWx1ZSBvciBhY2Nlc3NvciBmdW5jdGlvblxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBlLmcuOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtBcmVhLnNlbGVjdG9ycy5hcmVhXToge1xuICAgKiAgICBcInRlc3QtdmFsdWVcIjogZCA9PiBkLnZhbHVlXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGF0dHJpYnV0ZXM/OiB7XG4gICAgW3NlbGVjdG9yOiBzdHJpbmddOiB7XG4gICAgICBbYXR0cjogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8ICgoZGF0dW06IGFueSkgPT4gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbik7XG4gICAgfTtcbiAgfVxuXG4gIC8qKiBPcHRpb25hbCBhY2Nlc3NvciBmdW5jdGlvbiBmb3IgZ2V0dGluZyB0aGUgdmFsdWVzIGFsb25nIHRoZSBYIGF4aXMuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHg/OiBOdW1lcmljQWNjZXNzb3I8RGF0dW0+XG5cbiAgLyoqIE9wdGlvbmFsIHNpbmdsZSBvZiBtdWx0aXBsZSBhY2Nlc3NvciBmdW5jdGlvbnMgZm9yIGdldHRpbmcgdGhlIHZhbHVlcyBhbG9uZyB0aGUgWSBheGlzLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB5PzogTnVtZXJpY0FjY2Vzc29yPERhdHVtPiB8IE51bWVyaWNBY2Nlc3NvcjxEYXR1bT5bXVxuXG4gIC8qKiBBY2Nlc3NvciBmdW5jdGlvbiBmb3IgZ2V0dGluZyB0aGUgdW5pcXVlIGRhdGEgcmVjb3JkIGlkLiBVc2VkIGZvciBtb3JlIHBlcnNpc3RlbnQgZGF0YSB1cGRhdGVzLiBEZWZhdWx0OiBgKGQsIGkpID0+IGQuaWQgPz8gaWAgKi9cbiAgQElucHV0KCkgaWQ/OiAoKGQ6IERhdHVtLCBpOiBudW1iZXIsIC4uLnJlc3QpID0+IHN0cmluZylcblxuICAvKiogT3B0aW9uYWwgY29sb3IgYXJyYXkgb3IgY29sb3IgYWNjZXNzb3IgZnVuY3Rpb24gZm9yIGNyb3NzaGFpciBjaXJjbGVzLiBEZWZhdWx0OiBgZCA9PiBkLmNvbG9yYCAqL1xuICBASW5wdXQoKSBjb2xvcj86IENvbG9yQWNjZXNzb3I8RGF0dW0+XG5cbiAgLyoqIFNjYWxlIGZvciBYIGRpbWVuc2lvbiwgZS5nLiBTY2FsZS5zY2FsZUxpbmVhcigpLiBJZiB5b3Ugc2V0IHhTY2FsZSB5b3UnbGwgYmUgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgaXQncyBgZG9tYWluYCBhbmQgYHJhbmdlYCBhcyB3ZWxsLlxuICAgKiBPbmx5IGNvbnRpbnVvdXMgc2NhbGVzIGFyZSBzdXBwb3J0ZWQuXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHhTY2FsZT86IENvbnRpbnVvdXNTY2FsZVxuXG4gIC8qKiBTY2FsZSBmb3IgWSBkaW1lbnNpb24sIGUuZy4gU2NhbGUuc2NhbGVMaW5lYXIoKS4gSWYgeW91IHNldCB5U2NhbGUgeW91J2xsIGJlIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nIGl0J3MgYGRvbWFpbmAgYW5kIGByYW5nZWAgYXMgd2VsbC5cbiAgICogT25seSBjb250aW51b3VzIHNjYWxlcyBhcmUgc3VwcG9ydGVkLlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB5U2NhbGU/OiBDb250aW51b3VzU2NhbGVcblxuICAvKiogSWRlbnRpZmllcyB3aGV0aGVyIHRoZSBjb21wb25lbnQgc2hvdWxkIGJlIGV4Y2x1ZGVkIGZyb20gb3ZlcmFsbCBYIGFuZCBZIGRvbWFpbiBjYWxjdWxhdGlvbnMgb3Igbm90LlxuICAgKiBUaGlzIHByb3BlcnR5IGNhbiBiZSB1c2VmdWwgd2hlbiB5b3Ugd2FudCBwYXNzIGluZGl2aWR1YWwgZGF0YSB0byBhIGNvbXBvbmVudCBhbmQgeW91IGRvbid0IHdhbnQgaXQgdG8gYWZmZWN0XG4gICAqIHRoZSBzY2FsZXMgb2YgdGhlIGNoYXJ0LlxuICAgKiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIGV4Y2x1ZGVGcm9tRG9tYWluQ2FsY3VsYXRpb24/OiBib29sZWFuXG5cbiAgLyoqIE9wdGlvbmFsIHN0cm9rZSBjb2xvciBhY2Nlc3NvciBmdW5jdGlvbiBmb3IgY3Jvc3NoYWlyIGNpcmNsZXMuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHN0cm9rZUNvbG9yPzogQ29sb3JBY2Nlc3NvcjxEYXR1bT5cblxuICAvKiogT3B0aW9uYWwgc3Ryb2tlIHdpZHRoIGZvciBjcm9zc2hhaXIgY2lyY2xlcy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgc3Ryb2tlV2lkdGg/OiBOdW1lcmljQWNjZXNzb3I8RGF0dW0+XG5cbiAgLyoqIFNlcGFyYXRlIGFycmF5IG9mIGFjY2Vzc29ycyBmb3Igc3RhY2tlZCBjb21wb25lbnRzIChlZyBTdGFja2VkQmFyLCBBcmVhKS4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgeVN0YWNrZWQ/OiBOdW1lcmljQWNjZXNzb3I8RGF0dW0+W11cblxuICAvKiogQmFzZWxpbmUgYWNjZXNzb3IgZnVuY3Rpb24gZm9yIHN0YWNrZWQgdmFsdWVzLCB1c2VmdWwgd2l0aCBzdGFja2VkIGFyZWFzLiBEZWZhdWx0OiBgbnVsbGAgKi9cbiAgQElucHV0KCkgYmFzZWxpbmU/OiBOdW1lcmljQWNjZXNzb3I8RGF0dW0+XG5cbiAgLyoqIEFuIGluc3RhbmNlIG9mIHRoZSBUb29sdGlwIGNvbXBvbmVudCB0byBiZSB1c2VkIHdpdGggQ3Jvc3NoYWlyLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB0b29sdGlwPzogVG9vbHRpcCB8IHVuZGVmaW5lZFxuXG4gIC8qKiBUb29sdGlwIHRlbXBsYXRlIGFjY2Vzc29yLiBUaGUgZnVuY3Rpb24gaXMgc3VwcG9zZWQgdG8gcmV0dXJuIGVpdGhlciBhIHZhbGlkIEhUTUwgc3RyaW5nIG9yIGFuIEhUTUxFbGVtZW50LiBEZWZhdWx0OiBgZCA9PiAnJ2AgKi9cbiAgQElucHV0KCkgdGVtcGxhdGU/OiAoZGF0YTogRGF0dW0sIHg6IG51bWJlciB8IERhdGUpID0+IHN0cmluZyB8IEhUTUxFbGVtZW50XG5cbiAgLyoqIEhpZGUgQ3Jvc3NoYWlyIHdoZW4gdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBpcyBmYXIgZnJvbSBtb3VzZSBwb2ludGVyLiBEZWZhdWx0OiBgdHJ1ZWAgKi9cbiAgQElucHV0KCkgaGlkZVdoZW5GYXJGcm9tUG9pbnRlcj86IGJvb2xlYW5cblxuICAvKiogRGlzdGFuY2UgaW4gcGl4ZWxzIHRvIGNoZWNrIGluIHRoZSBoaWRlV2hlbkZhckZyb21Qb2ludGVyIGNvbmRpdGlvbi4gRGVmYXVsdDogYDEwMGAgKi9cbiAgQElucHV0KCkgaGlkZVdoZW5GYXJGcm9tUG9pbnRlckRpc3RhbmNlPzogbnVtYmVyXG5cbiAgLyoqIFNuYXAgdG8gdGhlIG5lYXJlc3QgZGF0YSBwb2ludC5cbiAgICogSWYgZGlzYWJsZWQsIHRoZSB0b29sdGlwIHRlbXBsYXRlIHdpbGwgcmVjZWl2ZSBvbmx5IHRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoZSBjcm9zc2hhaXIgYW5kIHlvdSdsbCBiZSByZXNwb25zaWJsZVxuICAgKiBmb3IgZ2V0dGluZyB0aGUgdW5kZXJseWluZyBkYXRhIHJlY29yZHMgYW5kIGNyb3NzaGFpciBjaXJjbGVzIChzZWUgdGhlIGBnZXRDaXJjbGVzYCBjb25maWd1cmF0aW9uIG9wdGlvbikuXG4gICAqIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSBzbmFwVG9EYXRhPzogYm9vbGVhblxuXG4gIC8qKiBDdXN0b20gZnVuY3Rpb24gZm9yIHNldHRpbmcgdXAgdGhlIGNyb3NzaGFpciBjaXJjbGVzLCB1c3VhbGx5IG5lZWRlZCB3aGVuIGBzbmFwVG9EYXRhYCBpcyBzZXQgdG8gYGZhbHNlYC5cbiAgICogVGhlIGZ1bmN0aW9uIHJlY2VpdmVzIHRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoZSBjcm9zc2hhaXIgKGluIHRoZSBkYXRhIHNwYWNlLCBub3QgaW4gcGl4ZWxzKSwgdGhlIGRhdGEgYXJyYXlcbiAgICogYW5kIHRoZSBgeVNjYWxlYCBpbnN0YW5jZSB0byBoZWxwIHlvdSBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgdmVydGljYWwgcG9zaXRpb24gb2YgdGhlIGNpcmNsZXMuXG4gICAqIEl0IGhhcyB0byByZXR1cm4gYW4gYXJyYXkgb2YgdGhlIENyb3NzaGFpckNpcmNsZSBvYmplY3RzOiBgeyB5OiBudW1iZXI7IGNvbG9yOiBzdHJpbmc7IG9wYWNpdHk/OiBudW1iZXIgfVtdYC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgZ2V0Q2lyY2xlcz86ICh4OiBudW1iZXIgfCBEYXRlIHwgRGF0ZSwgZGF0YTogRGF0dW1bXSwgeVNjYWxlOiBDb250aW51b3VzU2NhbGUpID0+IENyb3NzaGFpckNpcmNsZVtdXG4gIEBJbnB1dCgpIGRhdGE6IERhdHVtW11cblxuICBjb21wb25lbnQ6IENyb3NzaGFpcjxEYXR1bT4gfCB1bmRlZmluZWRcbiAgcHVibGljIGNvbXBvbmVudENvbnRhaW5lcjogQ29udGFpbmVyQ29yZSB8IHVuZGVmaW5lZFxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCAoKTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnQgPSBuZXcgQ3Jvc3NoYWlyPERhdHVtPih0aGlzLmdldENvbmZpZygpKVxuXG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgdGhpcy5jb21wb25lbnQuc2V0RGF0YSh0aGlzLmRhdGEpXG4gICAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyAoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmRhdGEpIHsgdGhpcy5jb21wb25lbnQ/LnNldERhdGEodGhpcy5kYXRhKSB9XG4gICAgdGhpcy5jb21wb25lbnQ/LnNldENvbmZpZyh0aGlzLmdldENvbmZpZygpKVxuICAgIHRoaXMuY29tcG9uZW50Q29udGFpbmVyPy5yZW5kZXIoKVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb25maWcgKCk6IENyb3NzaGFpckNvbmZpZ0ludGVyZmFjZTxEYXR1bT4ge1xuICAgIGNvbnN0IHsgZHVyYXRpb24sIGV2ZW50cywgYXR0cmlidXRlcywgeCwgeSwgaWQsIGNvbG9yLCB4U2NhbGUsIHlTY2FsZSwgZXhjbHVkZUZyb21Eb21haW5DYWxjdWxhdGlvbiwgc3Ryb2tlQ29sb3IsIHN0cm9rZVdpZHRoLCB5U3RhY2tlZCwgYmFzZWxpbmUsIHRvb2x0aXAsIHRlbXBsYXRlLCBoaWRlV2hlbkZhckZyb21Qb2ludGVyLCBoaWRlV2hlbkZhckZyb21Qb2ludGVyRGlzdGFuY2UsIHNuYXBUb0RhdGEsIGdldENpcmNsZXMgfSA9IHRoaXNcbiAgICBjb25zdCBjb25maWcgPSB7IGR1cmF0aW9uLCBldmVudHMsIGF0dHJpYnV0ZXMsIHgsIHksIGlkLCBjb2xvciwgeFNjYWxlLCB5U2NhbGUsIGV4Y2x1ZGVGcm9tRG9tYWluQ2FsY3VsYXRpb24sIHN0cm9rZUNvbG9yLCBzdHJva2VXaWR0aCwgeVN0YWNrZWQsIGJhc2VsaW5lLCB0b29sdGlwLCB0ZW1wbGF0ZSwgaGlkZVdoZW5GYXJGcm9tUG9pbnRlciwgaGlkZVdoZW5GYXJGcm9tUG9pbnRlckRpc3RhbmNlLCBzbmFwVG9EYXRhLCBnZXRDaXJjbGVzIH1cbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoY29uZmlnKSBhcyAoa2V5b2YgQ3Jvc3NoYWlyQ29uZmlnSW50ZXJmYWNlPERhdHVtPilbXVxuICAgIGtleXMuZm9yRWFjaChrZXkgPT4geyBpZiAoY29uZmlnW2tleV0gPT09IHVuZGVmaW5lZCkgZGVsZXRlIGNvbmZpZ1trZXldIH0pXG5cbiAgICByZXR1cm4gY29uZmlnXG4gIH1cbn1cbiJdfQ==
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NoYWlyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Nyb3NzaGFpci9jcm9zc2hhaXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFDTCxTQUFTLEdBVVYsTUFBTSxZQUFZLENBQUE7QUFDbkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRM0MsTUFBTSxPQUFPLHFCQUFxQjtJQXVJaEMsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksU0FBUyxDQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRXZELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsNEJBQTRCLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsOEJBQThCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQzNSLE1BQU0sTUFBTSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsNEJBQTRCLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsOEJBQThCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLENBQUE7UUFDN1IsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQThDLENBQUE7UUFDN0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVM7WUFBRSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRTFFLE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQzs7bUhBN0pVLHFCQUFxQjt1R0FBckIscUJBQXFCLHNvQkFGckIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFLENBQUMsK0NBRmxFLEVBQUU7NEZBSUQscUJBQXFCO2tCQU5qQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixRQUFRLEVBQUUsRUFBRTtvQkFDWixnREFBZ0Q7b0JBQ2hELFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLHVCQUF1QixFQUFFLENBQUM7aUJBQzdFOzhCQUdVLFFBQVE7c0JBQWhCLEtBQUs7Z0JBbUJHLE1BQU07c0JBQWQsS0FBSztnQkF3QkcsVUFBVTtzQkFBbEIsS0FBSztnQkFPRyxDQUFDO3NCQUFULEtBQUs7Z0JBR0csQ0FBQztzQkFBVCxLQUFLO2dCQUdHLEVBQUU7c0JBQVYsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFNRyw0QkFBNEI7c0JBQXBDLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBR0csOEJBQThCO3NCQUF0QyxLQUFLO2dCQU1HLFVBQVU7c0JBQWxCLEtBQUs7Z0JBT0csVUFBVTtzQkFBbEIsS0FBSztnQkFVRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gISEhIFRoaXMgY29kZSB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQuIFlvdSBzaG91bGQgbm90IGNoYW5nZSBpdCAhISFcbmltcG9ydCB7IENvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgSW5wdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQ3Jvc3NoYWlyLFxuICBDcm9zc2hhaXJDb25maWdJbnRlcmZhY2UsXG4gIENvbnRhaW5lckNvcmUsXG4gIFZpc0V2ZW50VHlwZSxcbiAgVmlzRXZlbnRDYWxsYmFjayxcbiAgTnVtZXJpY0FjY2Vzc29yLFxuICBDb2xvckFjY2Vzc29yLFxuICBDb250aW51b3VzU2NhbGUsXG4gIFRvb2x0aXAsXG4gIENyb3NzaGFpckNpcmNsZSxcbn0gZnJvbSAnQHVub3Zpcy90cydcbmltcG9ydCB7IFZpc1hZQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmlzLWNyb3NzaGFpcicsXG4gIHRlbXBsYXRlOiAnJyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVmlzWFlDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBWaXNDcm9zc2hhaXJDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIFZpc0Nyb3NzaGFpckNvbXBvbmVudDxEYXR1bT4gaW1wbGVtZW50cyBDcm9zc2hhaXJDb25maWdJbnRlcmZhY2U8RGF0dW0+LCBBZnRlclZpZXdJbml0IHtcbiAgLyoqIEFuaW1hdGlvbiBkdXJhdGlvbiBvZiB0aGUgZGF0YSB1cGRhdGUgdHJhbnNpdGlvbnMgaW4gbWlsbGlzZWNvbmRzLiBEZWZhdWx0OiBgNjAwYCAqL1xuICBASW5wdXQoKSBkdXJhdGlvbj86IG51bWJlclxuXG4gIC8qKiBFdmVudHMgY29uZmlndXJhdGlvbi4gQW4gb2JqZWN0IGNvbnRhaW5pbmcgcHJvcGVydGllcyBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiB7XG4gICAqICAgICBcXFtldmVudFR5cGVdOiBjYWxsYmFja0Z1bmN0aW9uXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW0FyZWEuc2VsZWN0b3JzLmFyZWFdOiB7XG4gICAqICAgIGNsaWNrOiAoZCkgPT4gY29uc29sZS5sb2coXCJDbGlja2VkIEFyZWFcIiwgZClcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGAgKi9cbiAgQElucHV0KCkgZXZlbnRzPzoge1xuICAgIFtzZWxlY3Rvcjogc3RyaW5nXToge1xuICAgICAgW2V2ZW50VHlwZSBpbiBWaXNFdmVudFR5cGVdPzogVmlzRXZlbnRDYWxsYmFja1xuICAgIH07XG4gIH1cblxuICAvKiogWW91IGNhbiBzZXQgZXZlcnkgU1ZHIGFuZCBIVE1MIHZpc3VhbGl6YXRpb24gb2JqZWN0IHRvIGhhdmUgYSBjdXN0b20gRE9NIGF0dHJpYnV0ZXMsIHdoaWNoIGlzIHVzZWZ1bFxuICAgKiB3aGVuIHlvdSB3YW50IHRvIGRvIHVuaXQgb3IgZW5kLXRvLWVuZCB0ZXN0aW5nLiBBdHRyaWJ1dGVzIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZTpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiB7XG4gICAqICAgICBcXFthdHRyaWJ1dGVOYW1lXTogYXR0cmlidXRlIGNvbnN0YW50IHZhbHVlIG9yIGFjY2Vzc29yIGZ1bmN0aW9uXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW0FyZWEuc2VsZWN0b3JzLmFyZWFdOiB7XG4gICAqICAgIFwidGVzdC12YWx1ZVwiOiBkID0+IGQudmFsdWVcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGAgKi9cbiAgQElucHV0KCkgYXR0cmlidXRlcz86IHtcbiAgICBbc2VsZWN0b3I6IHN0cmluZ106IHtcbiAgICAgIFthdHRyOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgKChkYXR1bTogYW55KSA9PiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqIE9wdGlvbmFsIGFjY2Vzc29yIGZ1bmN0aW9uIGZvciBnZXR0aW5nIHRoZSB2YWx1ZXMgYWxvbmcgdGhlIFggYXhpcy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgeD86IE51bWVyaWNBY2Nlc3NvcjxEYXR1bT5cblxuICAvKiogT3B0aW9uYWwgc2luZ2xlIG9mIG11bHRpcGxlIGFjY2Vzc29yIGZ1bmN0aW9ucyBmb3IgZ2V0dGluZyB0aGUgdmFsdWVzIGFsb25nIHRoZSBZIGF4aXMuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHk/OiBOdW1lcmljQWNjZXNzb3I8RGF0dW0+IHwgTnVtZXJpY0FjY2Vzc29yPERhdHVtPltdXG5cbiAgLyoqIEFjY2Vzc29yIGZ1bmN0aW9uIGZvciBnZXR0aW5nIHRoZSB1bmlxdWUgZGF0YSByZWNvcmQgaWQuIFVzZWQgZm9yIG1vcmUgcGVyc2lzdGVudCBkYXRhIHVwZGF0ZXMuIERlZmF1bHQ6IGAoZCwgaSkgPT4gZC5pZCA/PyBpYCAqL1xuICBASW5wdXQoKSBpZD86ICgoZDogRGF0dW0sIGk6IG51bWJlciwgLi4ucmVzdCkgPT4gc3RyaW5nKVxuXG4gIC8qKiBPcHRpb25hbCBjb2xvciBhcnJheSBvciBjb2xvciBhY2Nlc3NvciBmdW5jdGlvbiBmb3IgY3Jvc3NoYWlyIGNpcmNsZXMuIERlZmF1bHQ6IGBkID0+IGQuY29sb3JgICovXG4gIEBJbnB1dCgpIGNvbG9yPzogQ29sb3JBY2Nlc3NvcjxEYXR1bT5cblxuICAvKiogU2NhbGUgZm9yIFggZGltZW5zaW9uLCBlLmcuIFNjYWxlLnNjYWxlTGluZWFyKCkuIElmIHlvdSBzZXQgeFNjYWxlIHlvdSdsbCBiZSByZXNwb25zaWJsZSBmb3Igc2V0dGluZyBpdCdzIGBkb21haW5gIGFuZCBgcmFuZ2VgIGFzIHdlbGwuXG4gICAqIE9ubHkgY29udGludW91cyBzY2FsZXMgYXJlIHN1cHBvcnRlZC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgeFNjYWxlPzogQ29udGludW91c1NjYWxlXG5cbiAgLyoqIFNjYWxlIGZvciBZIGRpbWVuc2lvbiwgZS5nLiBTY2FsZS5zY2FsZUxpbmVhcigpLiBJZiB5b3Ugc2V0IHlTY2FsZSB5b3UnbGwgYmUgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgaXQncyBgZG9tYWluYCBhbmQgYHJhbmdlYCBhcyB3ZWxsLlxuICAgKiBPbmx5IGNvbnRpbnVvdXMgc2NhbGVzIGFyZSBzdXBwb3J0ZWQuXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHlTY2FsZT86IENvbnRpbnVvdXNTY2FsZVxuXG4gIC8qKiBJZGVudGlmaWVzIHdoZXRoZXIgdGhlIGNvbXBvbmVudCBzaG91bGQgYmUgZXhjbHVkZWQgZnJvbSBvdmVyYWxsIFggYW5kIFkgZG9tYWluIGNhbGN1bGF0aW9ucyBvciBub3QuXG4gICAqIFRoaXMgcHJvcGVydHkgY2FuIGJlIHVzZWZ1bCB3aGVuIHlvdSB3YW50IHBhc3MgaW5kaXZpZHVhbCBkYXRhIHRvIGEgY29tcG9uZW50IGFuZCB5b3UgZG9uJ3Qgd2FudCBpdCB0byBhZmZlY3RcbiAgICogdGhlIHNjYWxlcyBvZiB0aGUgY2hhcnQuXG4gICAqIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgZXhjbHVkZUZyb21Eb21haW5DYWxjdWxhdGlvbj86IGJvb2xlYW5cblxuICAvKiogT3B0aW9uYWwgc3Ryb2tlIGNvbG9yIGFjY2Vzc29yIGZ1bmN0aW9uIGZvciBjcm9zc2hhaXIgY2lyY2xlcy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgc3Ryb2tlQ29sb3I/OiBDb2xvckFjY2Vzc29yPERhdHVtPlxuXG4gIC8qKiBPcHRpb25hbCBzdHJva2Ugd2lkdGggZm9yIGNyb3NzaGFpciBjaXJjbGVzLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBzdHJva2VXaWR0aD86IE51bWVyaWNBY2Nlc3NvcjxEYXR1bT5cblxuICAvKiogU2VwYXJhdGUgYXJyYXkgb2YgYWNjZXNzb3JzIGZvciBzdGFja2VkIGNvbXBvbmVudHMgKGVnIFN0YWNrZWRCYXIsIEFyZWEpLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB5U3RhY2tlZD86IE51bWVyaWNBY2Nlc3NvcjxEYXR1bT5bXVxuXG4gIC8qKiBCYXNlbGluZSBhY2Nlc3NvciBmdW5jdGlvbiBmb3Igc3RhY2tlZCB2YWx1ZXMsIHVzZWZ1bCB3aXRoIHN0YWNrZWQgYXJlYXMuIERlZmF1bHQ6IGBudWxsYCAqL1xuICBASW5wdXQoKSBiYXNlbGluZT86IE51bWVyaWNBY2Nlc3NvcjxEYXR1bT5cblxuICAvKiogQW4gaW5zdGFuY2Ugb2YgdGhlIFRvb2x0aXAgY29tcG9uZW50IHRvIGJlIHVzZWQgd2l0aCBDcm9zc2hhaXIuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHRvb2x0aXA/OiBUb29sdGlwIHwgdW5kZWZpbmVkXG5cbiAgLyoqIFRvb2x0aXAgdGVtcGxhdGUgYWNjZXNzb3IuIFRoZSBmdW5jdGlvbiBpcyBzdXBwb3NlZCB0byByZXR1cm4gZWl0aGVyIGEgdmFsaWQgSFRNTCBzdHJpbmcgb3IgYW4gSFRNTEVsZW1lbnQuXG4gICAqIFdoZW4gYHNuYXBUb0RhdGFgIGlzIGBmYWxzZWAsIGBkYXR1bWAgd2lsbCBiZSBgdW5kZWZpbmVkYCBidXQgYGRhdGFgIGFuZCBgbGVmdE5lYXJlc3REYXR1bUluZGV4YCB3aWxsIGJlIHByb3ZpZGVkLlxuICAgKiBEZWZhdWx0OiBgZCA9PiAnJ2AgKi9cbiAgQElucHV0KCkgdGVtcGxhdGU/OiAoZGF0dW06IERhdHVtLCB4OiBudW1iZXIgfCBEYXRlLCBkYXRhOiBEYXR1bVtdLCBsZWZ0TmVhcmVzdERhdHVtSW5kZXg6IG51bWJlcikgPT4gc3RyaW5nIHwgSFRNTEVsZW1lbnRcblxuICAvKiogSGlkZSBDcm9zc2hhaXIgd2hlbiB0aGUgY29ycmVzcG9uZGluZyBkYXR1bSBlbGVtZW50IGlzIGZhciBmcm9tIG1vdXNlIHBvaW50ZXIuIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSBoaWRlV2hlbkZhckZyb21Qb2ludGVyPzogYm9vbGVhblxuXG4gIC8qKiBEaXN0YW5jZSBpbiBwaXhlbHMgdG8gY2hlY2sgaW4gdGhlIGhpZGVXaGVuRmFyRnJvbVBvaW50ZXIgY29uZGl0aW9uLiBEZWZhdWx0OiBgMTAwYCAqL1xuICBASW5wdXQoKSBoaWRlV2hlbkZhckZyb21Qb2ludGVyRGlzdGFuY2U/OiBudW1iZXJcblxuICAvKiogU25hcCB0byB0aGUgbmVhcmVzdCBkYXRhIHBvaW50LlxuICAgKiBJZiBkaXNhYmxlZCwgdGhlIHRvb2x0aXAgdGVtcGxhdGUgd2lsbCByZWNlaXZlIG9ubHkgdGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhlIGNyb3NzaGFpciBhbmQgeW91J2xsIGJlIHJlc3BvbnNpYmxlXG4gICAqIGZvciBnZXR0aW5nIHRoZSB1bmRlcmx5aW5nIGRhdGEgcmVjb3JkcyBhbmQgY3Jvc3NoYWlyIGNpcmNsZXMgKHNlZSB0aGUgYGdldENpcmNsZXNgIGNvbmZpZ3VyYXRpb24gb3B0aW9uKS5cbiAgICogRGVmYXVsdDogYHRydWVgICovXG4gIEBJbnB1dCgpIHNuYXBUb0RhdGE/OiBib29sZWFuXG5cbiAgLyoqIEN1c3RvbSBmdW5jdGlvbiBmb3Igc2V0dGluZyB1cCB0aGUgY3Jvc3NoYWlyIGNpcmNsZXMsIHVzdWFsbHkgbmVlZGVkIHdoZW4gYHNuYXBUb0RhdGFgIGlzIHNldCB0byBgZmFsc2VgLlxuICAgKiBUaGUgZnVuY3Rpb24gcmVjZWl2ZXMgdGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhlIGNyb3NzaGFpciAoaW4gdGhlIGRhdGEgc3BhY2UsIG5vdCBpbiBwaXhlbHMpLCB0aGUgZGF0YSBhcnJheSxcbiAgICogdGhlIGB5U2NhbGVgIGluc3RhbmNlIHRvIGhlbHAgeW91IGNhbGN1bGF0ZSB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGUgY2lyY2xlcywgYW5kIHRoZSBuZWFyZXN0IGRhdHVtIGluZGV4LlxuICAgKiBJdCBoYXMgdG8gcmV0dXJuIGFuIGFycmF5IG9mIHRoZSBgQ3Jvc3NoYWlyQ2lyY2xlYCBvYmplY3RzOiBgeyB5OiBudW1iZXI7IGNvbG9yOiBzdHJpbmc7IG9wYWNpdHk/OiBudW1iZXIgfVtdYC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgZ2V0Q2lyY2xlcz86ICh4OiBudW1iZXIgfCBEYXRlLCBkYXRhOiBEYXR1bVtdLCB5U2NhbGU6IENvbnRpbnVvdXNTY2FsZSwgbGVmdE5lYXJlc3REYXR1bUluZGV4OiBudW1iZXIpID0+IENyb3NzaGFpckNpcmNsZVtdXG5cbiAgLyoqIENhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlIGNyb3NzaGFpciBpcyBtb3ZlZDpcbiAgICogLSBgeGAgaXMgdGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhlIGNyb3NzaGFpciBpbiB0aGUgZGF0YSBzcGFjZTtcbiAgICogLSBgZGF0dW1gIGlzIHRoZSBuZWFyZXN0IGRhdHVtIHRvIHRoZSBjcm9zc2hhaXI7XG4gICAqIC0gYGRhdHVtSW5kZXhgIGlzIHRoZSBpbmRleCBvZiB0aGUgbmVhcmVzdCBkYXR1bS5cbiAgICogLSBgZXZlbnRgIGlzIHRoZSBldmVudCB0aGF0IHRyaWdnZXJlZCB0aGUgY3Jvc3NoYWlyIG1vdmUgKG1vdXNlIG9yIHdoZWVsKS5cbiAgICpcbiAgICogV2hlbiB0aGUgbW91c2UgZ29lcyBvdXQgb2YgdGhlIGNvbnRhaW5lciBhbmQgb24gd2hlZWwgZXZlbnRzLCBhbGwgdGhlIGFyZ3VtZW50cyBhcmUgYHVuZGVmaW5lZGAgZXhjZXB0IGZvciBgZXZlbnRgLlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvbkNyb3NzaGFpck1vdmU/OiAoeD86IG51bWJlciB8IERhdGUsIGRhdHVtPzogRGF0dW0sIGRhdHVtSW5kZXg/OiBudW1iZXIsIGV2ZW50PzogTW91c2VFdmVudCB8IFdoZWVsRXZlbnQpID0+IHZvaWRcblxuICAvKiogRm9yY2UgdGhlIGNyb3NzaGFpciB0byBzaG93IGF0IGEgc3BlY2lmaWMgcG9zaXRpb24uIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGZvcmNlU2hvd0F0PzogbnVtYmVyIHwgRGF0ZVxuICBASW5wdXQoKSBkYXRhOiBEYXR1bVtdXG5cbiAgY29tcG9uZW50OiBDcm9zc2hhaXI8RGF0dW0+IHwgdW5kZWZpbmVkXG4gIHB1YmxpYyBjb21wb25lbnRDb250YWluZXI6IENvbnRhaW5lckNvcmUgfCB1bmRlZmluZWRcblxuICBuZ0FmdGVyVmlld0luaXQgKCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50ID0gbmV3IENyb3NzaGFpcjxEYXR1bT4odGhpcy5nZXRDb25maWcoKSlcblxuICAgIGlmICh0aGlzLmRhdGEpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50LnNldERhdGEodGhpcy5kYXRhKVxuICAgICAgdGhpcy5jb21wb25lbnRDb250YWluZXI/LnJlbmRlcigpXG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMgKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5kYXRhKSB7IHRoaXMuY29tcG9uZW50Py5zZXREYXRhKHRoaXMuZGF0YSkgfVxuICAgIHRoaXMuY29tcG9uZW50Py5zZXRDb25maWcodGhpcy5nZXRDb25maWcoKSlcbiAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29uZmlnICgpOiBDcm9zc2hhaXJDb25maWdJbnRlcmZhY2U8RGF0dW0+IHtcbiAgICBjb25zdCB7IGR1cmF0aW9uLCBldmVudHMsIGF0dHJpYnV0ZXMsIHgsIHksIGlkLCBjb2xvciwgeFNjYWxlLCB5U2NhbGUsIGV4Y2x1ZGVGcm9tRG9tYWluQ2FsY3VsYXRpb24sIHN0cm9rZUNvbG9yLCBzdHJva2VXaWR0aCwgeVN0YWNrZWQsIGJhc2VsaW5lLCB0b29sdGlwLCB0ZW1wbGF0ZSwgaGlkZVdoZW5GYXJGcm9tUG9pbnRlciwgaGlkZVdoZW5GYXJGcm9tUG9pbnRlckRpc3RhbmNlLCBzbmFwVG9EYXRhLCBnZXRDaXJjbGVzLCBvbkNyb3NzaGFpck1vdmUsIGZvcmNlU2hvd0F0IH0gPSB0aGlzXG4gICAgY29uc3QgY29uZmlnID0geyBkdXJhdGlvbiwgZXZlbnRzLCBhdHRyaWJ1dGVzLCB4LCB5LCBpZCwgY29sb3IsIHhTY2FsZSwgeVNjYWxlLCBleGNsdWRlRnJvbURvbWFpbkNhbGN1bGF0aW9uLCBzdHJva2VDb2xvciwgc3Ryb2tlV2lkdGgsIHlTdGFja2VkLCBiYXNlbGluZSwgdG9vbHRpcCwgdGVtcGxhdGUsIGhpZGVXaGVuRmFyRnJvbVBvaW50ZXIsIGhpZGVXaGVuRmFyRnJvbVBvaW50ZXJEaXN0YW5jZSwgc25hcFRvRGF0YSwgZ2V0Q2lyY2xlcywgb25Dcm9zc2hhaXJNb3ZlLCBmb3JjZVNob3dBdCB9XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGNvbmZpZykgYXMgKGtleW9mIENyb3NzaGFpckNvbmZpZ0ludGVyZmFjZTxEYXR1bT4pW11cbiAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsgaWYgKGNvbmZpZ1trZXldID09PSB1bmRlZmluZWQpIGRlbGV0ZSBjb25maWdba2V5XSB9KVxuXG4gICAgcmV0dXJuIGNvbmZpZ1xuICB9XG59XG4iXX0=
|