@unovis/angular 1.6.6-stellar.0 → 1.6.6

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.
@@ -50,9 +50,9 @@ export declare class VisAxisComponent<Datum> implements AxisConfigInterface<Datu
50
50
  };
51
51
  };
52
52
  /** Axis position: `Position.Top`, `Position.Bottom`, `Position.Right` or `Position.Left`. Default: `undefined` */
53
- position?: Position | string;
53
+ position?: Position | `${Position}`;
54
54
  /** Axis type: `AxisType.X` or `AxisType.Y` */
55
- type?: AxisType | string;
55
+ type?: AxisType | `${AxisType}`;
56
56
  /** Extend the axis domain line to be full width or full height. Default: `true` */
57
57
  fullSize?: boolean;
58
58
  /** Axis label. Default: `undefined` */
@@ -62,9 +62,9 @@ export declare class VisAxisComponent<Datum> implements AxisConfigInterface<Datu
62
62
  /** Distance between the axis and the label in pixels. Default: `8` */
63
63
  labelMargin?: number;
64
64
  /** Label text fit mode: `FitMode.Wrap` or `FitMode.Trim`. Default: `FitMode.Wrap`. */
65
- labelTextFitMode?: FitMode | string;
65
+ labelTextFitMode?: FitMode | `${FitMode}`;
66
66
  /** Label text trim mode: `TrimMode.Start`, `TrimMode.Middle` or `TrimMode.End`. Default: `TrimMode.Middle` */
67
- labelTextTrimType?: TrimMode | string;
67
+ labelTextTrimType?: TrimMode | `${TrimMode}`;
68
68
  /** Font color of the axis label as CSS string. Default: `null` */
69
69
  labelColor?: string | null;
70
70
  /** Sets whether to draw the grid lines or not. Default: `true` */
@@ -88,7 +88,7 @@ export declare class VisAxisComponent<Datum> implements AxisConfigInterface<Datu
88
88
  /** Set the approximate number of axis ticks (will be passed to D3's axis constructor). Default: `undefined` */
89
89
  numTicks?: number;
90
90
  /** Tick text fit mode: `FitMode.Wrap` or `FitMode.Trim`. Default: `FitMode.Wrap`. */
91
- tickTextFitMode?: FitMode | string;
91
+ tickTextFitMode?: FitMode | `${FitMode}`;
92
92
  /** Maximum width in pixels for the tick text to be wrapped or trimmed. Default: `undefined` */
93
93
  tickTextWidth?: number;
94
94
  /** Tick text wrapping separator. String or array of strings. Default: `undefined` */
@@ -96,11 +96,11 @@ export declare class VisAxisComponent<Datum> implements AxisConfigInterface<Datu
96
96
  /** Force word break for ticks when they don't fit. Default: `false` */
97
97
  tickTextForceWordBreak?: boolean;
98
98
  /** Tick text trim mode: `TrimMode.Start`, `TrimMode.Middle` or `TrimMode.End`. Default: `TrimMode.Middle` */
99
- tickTextTrimType?: TrimMode | string;
99
+ tickTextTrimType?: TrimMode | `${TrimMode}`;
100
100
  /** Font size of the tick text as CSS string. Default: `null` */
101
101
  tickTextFontSize?: string | null;
102
102
  /** Text alignment for ticks: `TextAlign.Left`, `TextAlign.Center` or `TextAlign.Right`. Default: `undefined` */
103
- tickTextAlign?: TextAlign | string;
103
+ tickTextAlign?: TextAlign | `${TextAlign}` | ((tickValue: number | Date, tickIndex: number, tickValues: number[] | Date[], tickPosition: [number, number], componentWidth: number, componentHeight: number) => TextAlign | `${TextAlign}`);
104
104
  /** Font color of the tick text as CSS string. Default: `null` */
105
105
  tickTextColor?: string | null;
106
106
  /** Text rotation angle for ticks. Default: `undefined` */
@@ -112,6 +112,9 @@ export declare class VisAxisComponent<Datum> implements AxisConfigInterface<Datu
112
112
  tickTextHideOverlapping?: boolean;
113
113
  /** The spacing in pixels between the tick and it's label. Default: `8` */
114
114
  tickPadding?: number;
115
+ /** The size of the tick marks in pixels. Accepts a single number (applies to both inner and outer ticks)
116
+ * or a tuple `[innerTickSize, outerTickSize]`. Default: `6` */
117
+ tickSize?: number | [number, number];
115
118
  data: Datum[];
116
119
  component: Axis<Datum> | undefined;
117
120
  componentContainer: ContainerCore | undefined;
@@ -119,5 +122,5 @@ export declare class VisAxisComponent<Datum> implements AxisConfigInterface<Datu
119
122
  ngOnChanges(changes: SimpleChanges): void;
120
123
  private getConfig;
121
124
  static ɵfac: i0.ɵɵFactoryDeclaration<VisAxisComponent<any>, never>;
122
- static ɵcmp: i0.ɵɵComponentDeclaration<VisAxisComponent<any>, "vis-axis", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "position": "position"; "type": "type"; "fullSize": "fullSize"; "label": "label"; "labelFontSize": "labelFontSize"; "labelMargin": "labelMargin"; "labelTextFitMode": "labelTextFitMode"; "labelTextTrimType": "labelTextTrimType"; "labelColor": "labelColor"; "gridLine": "gridLine"; "tickLine": "tickLine"; "domainLine": "domainLine"; "minMaxTicksOnly": "minMaxTicksOnly"; "minMaxTicksOnlyShowGridLines": "minMaxTicksOnlyShowGridLines"; "minMaxTicksOnlyWhenWidthIsLess": "minMaxTicksOnlyWhenWidthIsLess"; "tickFormat": "tickFormat"; "tickValues": "tickValues"; "numTicks": "numTicks"; "tickTextFitMode": "tickTextFitMode"; "tickTextWidth": "tickTextWidth"; "tickTextSeparator": "tickTextSeparator"; "tickTextForceWordBreak": "tickTextForceWordBreak"; "tickTextTrimType": "tickTextTrimType"; "tickTextFontSize": "tickTextFontSize"; "tickTextAlign": "tickTextAlign"; "tickTextColor": "tickTextColor"; "tickTextAngle": "tickTextAngle"; "tickTextHideOverlapping": "tickTextHideOverlapping"; "tickPadding": "tickPadding"; "data": "data"; }, {}, never, never>;
125
+ static ɵcmp: i0.ɵɵComponentDeclaration<VisAxisComponent<any>, "vis-axis", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "position": "position"; "type": "type"; "fullSize": "fullSize"; "label": "label"; "labelFontSize": "labelFontSize"; "labelMargin": "labelMargin"; "labelTextFitMode": "labelTextFitMode"; "labelTextTrimType": "labelTextTrimType"; "labelColor": "labelColor"; "gridLine": "gridLine"; "tickLine": "tickLine"; "domainLine": "domainLine"; "minMaxTicksOnly": "minMaxTicksOnly"; "minMaxTicksOnlyShowGridLines": "minMaxTicksOnlyShowGridLines"; "minMaxTicksOnlyWhenWidthIsLess": "minMaxTicksOnlyWhenWidthIsLess"; "tickFormat": "tickFormat"; "tickValues": "tickValues"; "numTicks": "numTicks"; "tickTextFitMode": "tickTextFitMode"; "tickTextWidth": "tickTextWidth"; "tickTextSeparator": "tickTextSeparator"; "tickTextForceWordBreak": "tickTextForceWordBreak"; "tickTextTrimType": "tickTextTrimType"; "tickTextFontSize": "tickTextFontSize"; "tickTextAlign": "tickTextAlign"; "tickTextColor": "tickTextColor"; "tickTextAngle": "tickTextAngle"; "tickTextHideOverlapping": "tickTextHideOverlapping"; "tickPadding": "tickPadding"; "tickSize": "tickSize"; "data": "data"; }, {}, never, never>;
123
126
  }
@@ -72,6 +72,9 @@ export declare class VisBrushComponent<Datum> implements BrushConfigInterface<Da
72
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
+ /** Extend the brush height by the specified number of pixels. This can be convenient when you have thick lines
76
+ * at the bottom of the chart and you want to ensure they stay fully covered by the brush. Default: `0` */
77
+ brushHeightExtend?: number;
75
78
  data: Datum[];
76
79
  component: Brush<Datum> | undefined;
77
80
  componentContainer: ContainerCore | undefined;
@@ -79,5 +82,5 @@ export declare class VisBrushComponent<Datum> implements BrushConfigInterface<Da
79
82
  ngOnChanges(changes: SimpleChanges): void;
80
83
  private getConfig;
81
84
  static ɵfac: i0.ɵɵFactoryDeclaration<VisBrushComponent<any>, never>;
82
- static ɵcmp: i0.ɵɵComponentDeclaration<VisBrushComponent<any>, "vis-brush", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "onBrush": "onBrush"; "onBrushStart": "onBrushStart"; "onBrushMove": "onBrushMove"; "onBrushEnd": "onBrushEnd"; "handleWidth": "handleWidth"; "selection": "selection"; "draggable": "draggable"; "handlePosition": "handlePosition"; "selectionMinLength": "selectionMinLength"; "data": "data"; }, {}, never, never>;
85
+ static ɵcmp: i0.ɵɵComponentDeclaration<VisBrushComponent<any>, "vis-brush", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "onBrush": "onBrush"; "onBrushStart": "onBrushStart"; "onBrushMove": "onBrushMove"; "onBrushEnd": "onBrushEnd"; "handleWidth": "handleWidth"; "selection": "selection"; "draggable": "draggable"; "handlePosition": "handlePosition"; "selectionMinLength": "selectionMinLength"; "brushHeightExtend": "brushHeightExtend"; "data": "data"; }, {}, never, never>;
83
86
  }
@@ -74,6 +74,8 @@ export declare class VisCrosshairComponent<Datum> implements CrosshairConfigInte
74
74
  strokeColor?: ColorAccessor<Datum>;
75
75
  /** Optional stroke width for crosshair circles. Default: `undefined` */
76
76
  strokeWidth?: NumericAccessor<Datum>;
77
+ /** Radius of crosshair circles in pixels. Default: `3` */
78
+ circleRadius?: number;
77
79
  /** Separate array of accessors for stacked components (eg StackedBar, Area). Default: `undefined` */
78
80
  yStacked?: NumericAccessor<Datum>[];
79
81
  /** Baseline accessor function for stacked values, useful with stacked areas. Default: `null` */
@@ -113,6 +115,12 @@ export declare class VisCrosshairComponent<Datum> implements CrosshairConfigInte
113
115
  /** Skip range checks for crosshair visibility. When true, crosshair will show regardless of position within chart bounds. Default: `false`
114
116
  * This is useful for testing, especially when you only triggers mousemove event but does not have real mouse event. */
115
117
  skipRangeCheck?: boolean;
118
+ /** Minimum fraction (`0` to `1`) of the container's area that must be visible in the
119
+ * viewport for the Crosshair (and its Tooltip) to be displayed. This prevents the
120
+ * Crosshair from showing when the chart is mostly scrolled out of view. Charts that are
121
+ * wider or taller than the viewport may never reach the default ratio, so lower this
122
+ * value (or set it to `0` to always show the Crosshair) for large charts. Default: `0.35` */
123
+ visibilityThreshold?: number;
116
124
  data: Datum[];
117
125
  component: Crosshair<Datum> | undefined;
118
126
  componentContainer: ContainerCore | undefined;
@@ -120,5 +128,5 @@ export declare class VisCrosshairComponent<Datum> implements CrosshairConfigInte
120
128
  ngOnChanges(changes: SimpleChanges): void;
121
129
  private getConfig;
122
130
  static ɵfac: i0.ɵɵFactoryDeclaration<VisCrosshairComponent<any>, never>;
123
- 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"; "skipRangeCheck": "skipRangeCheck"; "data": "data"; }, {}, never, never>;
131
+ 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"; "circleRadius": "circleRadius"; "yStacked": "yStacked"; "baseline": "baseline"; "tooltip": "tooltip"; "template": "template"; "hideWhenFarFromPointer": "hideWhenFarFromPointer"; "hideWhenFarFromPointerDistance": "hideWhenFarFromPointerDistance"; "snapToData": "snapToData"; "getCircles": "getCircles"; "onCrosshairMove": "onCrosshairMove"; "forceShowAt": "forceShowAt"; "skipRangeCheck": "skipRangeCheck"; "visibilityThreshold": "visibilityThreshold"; "data": "data"; }, {}, never, never>;
124
132
  }
@@ -64,6 +64,8 @@ export declare class VisSankeyComponent<N extends SankeyInputNode, L extends San
64
64
  zoomExtent?: [number, number];
65
65
  /** Zoom interaction mode. Default: `SankeyZoomMode.XY` */
66
66
  zoomMode?: SankeyZoomMode | string;
67
+ /** Disable modifier keys. Has effect only for `SankeyZoomMode.XY` zoom mode. When `true`, zoom mode is not altered by modifier keys. Default: `false` */
68
+ disableZoomModifierKeys?: boolean;
67
69
  /** Type of animation on removing nodes. Default: `ExitTransitionType.Default` */
68
70
  exitTransitionType?: SankeyExitTransitionType;
69
71
  /** Type of animation on creating nodes. Default: `EnterTransitionType.Default` */
@@ -188,5 +190,5 @@ export declare class VisSankeyComponent<N extends SankeyInputNode, L extends San
188
190
  ngOnChanges(changes: SimpleChanges): void;
189
191
  private getConfig;
190
192
  static ɵfac: i0.ɵɵFactoryDeclaration<VisSankeyComponent<any, any>, never>;
191
- static ɵcmp: i0.ɵɵComponentDeclaration<VisSankeyComponent<any, any>, "vis-sankey", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "id": "id"; "heightNormalizationCoeff": "heightNormalizationCoeff"; "zoomScale": "zoomScale"; "zoomPan": "zoomPan"; "enableZoom": "enableZoom"; "zoomExtent": "zoomExtent"; "zoomMode": "zoomMode"; "exitTransitionType": "exitTransitionType"; "enterTransitionType": "enterTransitionType"; "highlightSubtreeOnHover": "highlightSubtreeOnHover"; "highlightDuration": "highlightDuration"; "highlightDelay": "highlightDelay"; "iterations": "iterations"; "nodeSort": "nodeSort"; "linkSort": "linkSort"; "nodeWidth": "nodeWidth"; "nodeAlign": "nodeAlign"; "nodeHorizontalSpacing": "nodeHorizontalSpacing"; "nodeMinHeight": "nodeMinHeight"; "nodeMaxHeight": "nodeMaxHeight"; "nodePadding": "nodePadding"; "showSingleNode": "showSingleNode"; "nodeCursor": "nodeCursor"; "nodeIcon": "nodeIcon"; "nodeColor": "nodeColor"; "nodeFixedValue": "nodeFixedValue"; "nodeIconColor": "nodeIconColor"; "linkColor": "linkColor"; "linkValue": "linkValue"; "linkCursor": "linkCursor"; "label": "label"; "subLabel": "subLabel"; "labelPosition": "labelPosition"; "labelVerticalAlign": "labelVerticalAlign"; "labelBackground": "labelBackground"; "labelFit": "labelFit"; "labelMaxWidth": "labelMaxWidth"; "labelMaxWidthTakeAvailableSpace": "labelMaxWidthTakeAvailableSpace"; "labelMaxWidthTakeAvailableSpaceTolerance": "labelMaxWidthTakeAvailableSpaceTolerance"; "labelExpandTrimmedOnHover": "labelExpandTrimmedOnHover"; "labelTrimMode": "labelTrimMode"; "labelFontSize": "labelFontSize"; "labelTextSeparator": "labelTextSeparator"; "labelTextDecoration": "labelTextDecoration"; "labelForceWordBreak": "labelForceWordBreak"; "labelColor": "labelColor"; "labelCursor": "labelCursor"; "labelVisibility": "labelVisibility"; "subLabelFontSize": "subLabelFontSize"; "subLabelColor": "subLabelColor"; "subLabelPlacement": "subLabelPlacement"; "subLabelTextDecoration": "subLabelTextDecoration"; "subLabelToLabelInlineWidthRatio": "subLabelToLabelInlineWidthRatio"; "onZoom": "onZoom"; "onLayoutCalculated": "onLayoutCalculated"; "selectedNodeIds": "selectedNodeIds"; "data": "data"; }, {}, never, never>;
193
+ static ɵcmp: i0.ɵɵComponentDeclaration<VisSankeyComponent<any, any>, "vis-sankey", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "id": "id"; "heightNormalizationCoeff": "heightNormalizationCoeff"; "zoomScale": "zoomScale"; "zoomPan": "zoomPan"; "enableZoom": "enableZoom"; "zoomExtent": "zoomExtent"; "zoomMode": "zoomMode"; "disableZoomModifierKeys": "disableZoomModifierKeys"; "exitTransitionType": "exitTransitionType"; "enterTransitionType": "enterTransitionType"; "highlightSubtreeOnHover": "highlightSubtreeOnHover"; "highlightDuration": "highlightDuration"; "highlightDelay": "highlightDelay"; "iterations": "iterations"; "nodeSort": "nodeSort"; "linkSort": "linkSort"; "nodeWidth": "nodeWidth"; "nodeAlign": "nodeAlign"; "nodeHorizontalSpacing": "nodeHorizontalSpacing"; "nodeMinHeight": "nodeMinHeight"; "nodeMaxHeight": "nodeMaxHeight"; "nodePadding": "nodePadding"; "showSingleNode": "showSingleNode"; "nodeCursor": "nodeCursor"; "nodeIcon": "nodeIcon"; "nodeColor": "nodeColor"; "nodeFixedValue": "nodeFixedValue"; "nodeIconColor": "nodeIconColor"; "linkColor": "linkColor"; "linkValue": "linkValue"; "linkCursor": "linkCursor"; "label": "label"; "subLabel": "subLabel"; "labelPosition": "labelPosition"; "labelVerticalAlign": "labelVerticalAlign"; "labelBackground": "labelBackground"; "labelFit": "labelFit"; "labelMaxWidth": "labelMaxWidth"; "labelMaxWidthTakeAvailableSpace": "labelMaxWidthTakeAvailableSpace"; "labelMaxWidthTakeAvailableSpaceTolerance": "labelMaxWidthTakeAvailableSpaceTolerance"; "labelExpandTrimmedOnHover": "labelExpandTrimmedOnHover"; "labelTrimMode": "labelTrimMode"; "labelFontSize": "labelFontSize"; "labelTextSeparator": "labelTextSeparator"; "labelTextDecoration": "labelTextDecoration"; "labelForceWordBreak": "labelForceWordBreak"; "labelColor": "labelColor"; "labelCursor": "labelCursor"; "labelVisibility": "labelVisibility"; "subLabelFontSize": "subLabelFontSize"; "subLabelColor": "subLabelColor"; "subLabelPlacement": "subLabelPlacement"; "subLabelTextDecoration": "subLabelTextDecoration"; "subLabelToLabelInlineWidthRatio": "subLabelToLabelInlineWidthRatio"; "onZoom": "onZoom"; "onLayoutCalculated": "onLayoutCalculated"; "selectedNodeIds": "selectedNodeIds"; "data": "data"; }, {}, never, never>;
192
194
  }
@@ -1,5 +1,5 @@
1
1
  import { AfterViewInit, SimpleChanges } from '@angular/core';
2
- import { Timeline, TimelineConfigInterface, ContainerCore, VisEventType, VisEventCallback, NumericAccessor, ColorAccessor, ContinuousScale, StringAccessor, GenericAccessor, Arrangement, TimelineRowLabel, TimelineRowIcon, TextAlign, TimelineArrow, TimelineLineRenderState } from '@unovis/ts';
2
+ import { Timeline, TimelineConfigInterface, ContainerCore, VisEventType, VisEventCallback, NumericAccessor, ColorAccessor, ContinuousScale, StringAccessor, GenericAccessor, Arrangement, TimelineRowLabel, TimelineRowIcon, TextAlign, TrimMode, 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` */
@@ -91,7 +91,7 @@ export declare class VisTimelineComponent<Datum> implements TimelineConfigInterf
91
91
  /** Line start icon arrangement configuration. Controls how the icon is positioned relative to the line.
92
92
  * Accepts values from the Arrangement enum: `Arrangement.Start`, `Arrangement.Middle`, `Arrangement.End` or a string equivalent.
93
93
  * Default: `Arrangement.Inside` */
94
- lineStartIconArrangement?: GenericAccessor<Arrangement | any, Datum>;
94
+ lineStartIconArrangement?: GenericAccessor<Arrangement | `${Arrangement}`, Datum>;
95
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
96
  lineEndIcon?: StringAccessor<Datum>;
97
97
  /** Line end icon color accessor function. Default: `undefined` */
@@ -101,7 +101,7 @@ export declare class VisTimelineComponent<Datum> implements TimelineConfigInterf
101
101
  /** Line end icon arrangement configuration. Controls how the icon is positioned relative to the line.
102
102
  * Accepts values from the Arrangement enum: `Arrangement.Start`, `Arrangement.Middle`, `Arrangement.End` or a string equivalent.
103
103
  * Default: `Arrangement.Inside` */
104
- lineEndIconArrangement?: GenericAccessor<Arrangement | any, Datum>;
104
+ lineEndIconArrangement?: GenericAccessor<Arrangement | `${Arrangement}`, Datum>;
105
105
  /** Configurable Timeline item cursor when hovering over. Default: `undefined` */
106
106
  lineCursor?: StringAccessor<Datum>;
107
107
  /** Sets the minimum line length to 1 pixel for better visibility of small values.
@@ -134,7 +134,13 @@ export declare class VisTimelineComponent<Datum> implements TimelineConfigInterf
134
134
  /** Maximum label width in pixels. Labels longer than the specified value will be trimmed. Default: `undefined`. Falls back to deprecated `maxLabelWidth`. */
135
135
  rowMaxLabelWidth?: number;
136
136
  /** Text alignment for labels: `TextAlign.Left`, `TextAlign.Center` or `TextAlign.Right`. Default: `TextAlign.Right` */
137
- rowLabelTextAlign?: TextAlign | any;
137
+ rowLabelTextAlign?: TextAlign | `${TextAlign}`;
138
+ /** Row label trim mode when width is limited: `TrimMode.Start`, `TrimMode.Middle` or `TrimMode.End`. Default: `TrimMode.Middle` */
139
+ rowLabelTrimMode?: TrimMode | `${TrimMode}`;
140
+ /** Row label margin in pixels. Can be a single number or a `[left, right]` tuple. Default: `[0, 5]` */
141
+ rowLabelMargin?: number | [number, number];
142
+ /** When component height is larger than the height of all rows, render rows to fill empty space */
143
+ rowFillEmptySpace?: boolean;
138
144
  arrows?: TimelineArrow[];
139
145
  /** Control the animation by specify the initial position for new lines as [x, y]. Default: `undefined` */
140
146
  animationLineEnterPosition?: [number | undefined | null, number | undefined | null] | ((d: Datum & TimelineLineRenderState, i: number, data: (Datum & TimelineLineRenderState)[]) => [number | undefined, number | undefined]) | undefined;
@@ -149,5 +155,5 @@ export declare class VisTimelineComponent<Datum> implements TimelineConfigInterf
149
155
  ngOnChanges(changes: SimpleChanges): void;
150
156
  private getConfig;
151
157
  static ɵfac: i0.ɵɵFactoryDeclaration<VisTimelineComponent<any>, never>;
152
- 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"; "showEmptySegmentsCorrectPosition": "showEmptySegmentsCorrectPosition"; "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>;
158
+ 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"; "showEmptySegmentsCorrectPosition": "showEmptySegmentsCorrectPosition"; "rowHeight": "rowHeight"; "alternatingRowColors": "alternatingRowColors"; "showLabels": "showLabels"; "labelWidth": "labelWidth"; "maxLabelWidth": "maxLabelWidth"; "showRowLabels": "showRowLabels"; "rowLabelStyle": "rowLabelStyle"; "rowLabelFormatter": "rowLabelFormatter"; "rowIcon": "rowIcon"; "rowLabelWidth": "rowLabelWidth"; "rowMaxLabelWidth": "rowMaxLabelWidth"; "rowLabelTextAlign": "rowLabelTextAlign"; "rowLabelTrimMode": "rowLabelTrimMode"; "rowLabelMargin": "rowLabelMargin"; "rowFillEmptySpace": "rowFillEmptySpace"; "arrows": "arrows"; "animationLineEnterPosition": "animationLineEnterPosition"; "animationLineExitPosition": "animationLineExitPosition"; "onScroll": "onScroll"; "data": "data"; }, {}, never, never>;
153
159
  }
@@ -21,8 +21,8 @@ export class VisAxisComponent {
21
21
  (_c = this.componentContainer) === null || _c === void 0 ? void 0 : _c.render();
22
22
  }
23
23
  getConfig() {
24
- const { duration, events, attributes, position, type, fullSize, label, labelFontSize, labelMargin, labelTextFitMode, labelTextTrimType, labelColor, gridLine, tickLine, domainLine, minMaxTicksOnly, minMaxTicksOnlyShowGridLines, minMaxTicksOnlyWhenWidthIsLess, tickFormat, tickValues, numTicks, tickTextFitMode, tickTextWidth, tickTextSeparator, tickTextForceWordBreak, tickTextTrimType, tickTextFontSize, tickTextAlign, tickTextColor, tickTextAngle, tickTextHideOverlapping, tickPadding } = this;
25
- const config = { duration, events, attributes, position, type, fullSize, label, labelFontSize, labelMargin, labelTextFitMode, labelTextTrimType, labelColor, gridLine, tickLine, domainLine, minMaxTicksOnly, minMaxTicksOnlyShowGridLines, minMaxTicksOnlyWhenWidthIsLess, tickFormat, tickValues, numTicks, tickTextFitMode, tickTextWidth, tickTextSeparator, tickTextForceWordBreak, tickTextTrimType, tickTextFontSize, tickTextAlign, tickTextColor, tickTextAngle, tickTextHideOverlapping, tickPadding };
24
+ const { duration, events, attributes, position, type, fullSize, label, labelFontSize, labelMargin, labelTextFitMode, labelTextTrimType, labelColor, gridLine, tickLine, domainLine, minMaxTicksOnly, minMaxTicksOnlyShowGridLines, minMaxTicksOnlyWhenWidthIsLess, tickFormat, tickValues, numTicks, tickTextFitMode, tickTextWidth, tickTextSeparator, tickTextForceWordBreak, tickTextTrimType, tickTextFontSize, tickTextAlign, tickTextColor, tickTextAngle, tickTextHideOverlapping, tickPadding, tickSize } = this;
25
+ const config = { duration, events, attributes, position, type, fullSize, label, labelFontSize, labelMargin, labelTextFitMode, labelTextTrimType, labelColor, gridLine, tickLine, domainLine, minMaxTicksOnly, minMaxTicksOnlyShowGridLines, minMaxTicksOnlyWhenWidthIsLess, tickFormat, tickValues, numTicks, tickTextFitMode, tickTextWidth, tickTextSeparator, tickTextForceWordBreak, tickTextTrimType, tickTextFontSize, tickTextAlign, tickTextColor, tickTextAngle, tickTextHideOverlapping, tickPadding, tickSize };
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 VisAxisComponent {
30
30
  }
31
31
  }
32
32
  VisAxisComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisAxisComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
33
- VisAxisComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisAxisComponent, selector: "vis-axis", inputs: { duration: "duration", events: "events", attributes: "attributes", position: "position", type: "type", fullSize: "fullSize", label: "label", labelFontSize: "labelFontSize", labelMargin: "labelMargin", labelTextFitMode: "labelTextFitMode", labelTextTrimType: "labelTextTrimType", labelColor: "labelColor", gridLine: "gridLine", tickLine: "tickLine", domainLine: "domainLine", minMaxTicksOnly: "minMaxTicksOnly", minMaxTicksOnlyShowGridLines: "minMaxTicksOnlyShowGridLines", minMaxTicksOnlyWhenWidthIsLess: "minMaxTicksOnlyWhenWidthIsLess", tickFormat: "tickFormat", tickValues: "tickValues", numTicks: "numTicks", tickTextFitMode: "tickTextFitMode", tickTextWidth: "tickTextWidth", tickTextSeparator: "tickTextSeparator", tickTextForceWordBreak: "tickTextForceWordBreak", tickTextTrimType: "tickTextTrimType", tickTextFontSize: "tickTextFontSize", tickTextAlign: "tickTextAlign", tickTextColor: "tickTextColor", tickTextAngle: "tickTextAngle", tickTextHideOverlapping: "tickTextHideOverlapping", tickPadding: "tickPadding", data: "data" }, providers: [{ provide: VisXYComponent, useExisting: VisAxisComponent }], usesOnChanges: true, ngImport: i0, template: '', isInline: true });
33
+ VisAxisComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisAxisComponent, selector: "vis-axis", inputs: { duration: "duration", events: "events", attributes: "attributes", position: "position", type: "type", fullSize: "fullSize", label: "label", labelFontSize: "labelFontSize", labelMargin: "labelMargin", labelTextFitMode: "labelTextFitMode", labelTextTrimType: "labelTextTrimType", labelColor: "labelColor", gridLine: "gridLine", tickLine: "tickLine", domainLine: "domainLine", minMaxTicksOnly: "minMaxTicksOnly", minMaxTicksOnlyShowGridLines: "minMaxTicksOnlyShowGridLines", minMaxTicksOnlyWhenWidthIsLess: "minMaxTicksOnlyWhenWidthIsLess", tickFormat: "tickFormat", tickValues: "tickValues", numTicks: "numTicks", tickTextFitMode: "tickTextFitMode", tickTextWidth: "tickTextWidth", tickTextSeparator: "tickTextSeparator", tickTextForceWordBreak: "tickTextForceWordBreak", tickTextTrimType: "tickTextTrimType", tickTextFontSize: "tickTextFontSize", tickTextAlign: "tickTextAlign", tickTextColor: "tickTextColor", tickTextAngle: "tickTextAngle", tickTextHideOverlapping: "tickTextHideOverlapping", tickPadding: "tickPadding", tickSize: "tickSize", data: "data" }, providers: [{ provide: VisXYComponent, useExisting: VisAxisComponent }], usesOnChanges: true, ngImport: i0, template: '', isInline: true });
34
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisAxisComponent, decorators: [{
35
35
  type: Component,
36
36
  args: [{
@@ -103,7 +103,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
103
103
  type: Input
104
104
  }], tickPadding: [{
105
105
  type: Input
106
+ }], tickSize: [{
107
+ type: Input
106
108
  }], data: [{
107
109
  type: Input
108
110
  }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9heGlzL2F4aXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFDTCxJQUFJLEdBVUwsTUFBTSxZQUFZLENBQUE7QUFDbkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRM0MsTUFBTSxPQUFPLGdCQUFnQjtJQW1KM0IsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxDQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRWxELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSw0QkFBNEIsRUFBRSw4QkFBOEIsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQTtRQUM5ZSxNQUFNLE1BQU0sR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsNEJBQTRCLEVBQUUsOEJBQThCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSx1QkFBdUIsRUFBRSxXQUFXLEVBQUUsQ0FBQTtRQUNoZixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBeUMsQ0FBQTtRQUN4RSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUztZQUFFLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFMUUsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDOzs4R0F6S1UsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsMmpDQUZoQixDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQywrQ0FGN0QsRUFBRTs0RkFJRCxnQkFBZ0I7a0JBTjVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFFBQVEsRUFBRSxFQUFFO29CQUNaLGdEQUFnRDtvQkFDaEQsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsa0JBQWtCLEVBQUUsQ0FBQztpQkFDeEU7OEJBR1UsUUFBUTtzQkFBaEIsS0FBSztnQkFtQkcsTUFBTTtzQkFBZCxLQUFLO2dCQXdCRyxVQUFVO3NCQUFsQixLQUFLO2dCQU9HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csSUFBSTtzQkFBWixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csS0FBSztzQkFBYixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBR0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUdHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyw0QkFBNEI7c0JBQXBDLEtBQUs7Z0JBS0csOEJBQThCO3NCQUF0QyxLQUFLO2dCQUdHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSztnQkFHRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUdHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBTUcsdUJBQXVCO3NCQUEvQixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gISEhIFRoaXMgY29kZSB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQuIFlvdSBzaG91bGQgbm90IGNoYW5nZSBpdCAhISFcbmltcG9ydCB7IENvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgSW5wdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQXhpcyxcbiAgQXhpc0NvbmZpZ0ludGVyZmFjZSxcbiAgQ29udGFpbmVyQ29yZSxcbiAgVmlzRXZlbnRUeXBlLFxuICBWaXNFdmVudENhbGxiYWNrLFxuICBQb3NpdGlvbixcbiAgQXhpc1R5cGUsXG4gIEZpdE1vZGUsXG4gIFRyaW1Nb2RlLFxuICBUZXh0QWxpZ24sXG59IGZyb20gJ0B1bm92aXMvdHMnXG5pbXBvcnQgeyBWaXNYWUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Zpcy1heGlzJyxcbiAgdGVtcGxhdGU6ICcnLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlLWJlZm9yZS1kZWZpbmVcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBWaXNYWUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IFZpc0F4aXNDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIFZpc0F4aXNDb21wb25lbnQ8RGF0dW0+IGltcGxlbWVudHMgQXhpc0NvbmZpZ0ludGVyZmFjZTxEYXR1bT4sIEFmdGVyVmlld0luaXQge1xuICAvKiogQW5pbWF0aW9uIGR1cmF0aW9uIG9mIHRoZSBkYXRhIHVwZGF0ZSB0cmFuc2l0aW9ucyBpbiBtaWxsaXNlY29uZHMuIERlZmF1bHQ6IGA2MDBgICovXG4gIEBJbnB1dCgpIGR1cmF0aW9uPzogbnVtYmVyXG5cbiAgLyoqIEV2ZW50cyBjb25maWd1cmF0aW9uLiBBbiBvYmplY3QgY29udGFpbmluZyBwcm9wZXJ0aWVzIGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OlxuICAgKlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtzZWxlY3RvclN0cmluZ106IHtcbiAgICogICAgIFxcW2V2ZW50VHlwZV06IGNhbGxiYWNrRnVuY3Rpb25cbiAgICogIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICogZS5nLjpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbQXJlYS5zZWxlY3RvcnMuYXJlYV06IHtcbiAgICogICAgY2xpY2s6IChkKSA9PiBjb25zb2xlLmxvZyhcIkNsaWNrZWQgQXJlYVwiLCBkKVxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYCAqL1xuICBASW5wdXQoKSBldmVudHM/OiB7XG4gICAgW3NlbGVjdG9yOiBzdHJpbmddOiB7XG4gICAgICBbZXZlbnRUeXBlIGluIFZpc0V2ZW50VHlwZV0/OiBWaXNFdmVudENhbGxiYWNrXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBZb3UgY2FuIHNldCBldmVyeSBTVkcgYW5kIEhUTUwgdmlzdWFsaXphdGlvbiBvYmplY3QgdG8gaGF2ZSBhIGN1c3RvbSBET00gYXR0cmlidXRlcywgd2hpY2ggaXMgdXNlZnVsXG4gICAqIHdoZW4geW91IHdhbnQgdG8gZG8gdW5pdCBvciBlbmQtdG8tZW5kIHRlc3RpbmcuIEF0dHJpYnV0ZXMgY29uZmlndXJhdGlvbiBvYmplY3QgaGFzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlOlxuICAgKlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtzZWxlY3RvclN0cmluZ106IHtcbiAgICogICAgIFxcW2F0dHJpYnV0ZU5hbWVdOiBhdHRyaWJ1dGUgY29uc3RhbnQgdmFsdWUgb3IgYWNjZXNzb3IgZnVuY3Rpb25cbiAgICogIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICogZS5nLjpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbQXJlYS5zZWxlY3RvcnMuYXJlYV06IHtcbiAgICogICAgXCJ0ZXN0LXZhbHVlXCI6IGQgPT4gZC52YWx1ZVxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYCAqL1xuICBASW5wdXQoKSBhdHRyaWJ1dGVzPzoge1xuICAgIFtzZWxlY3Rvcjogc3RyaW5nXToge1xuICAgICAgW2F0dHI6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCAoKGRhdHVtOiBhbnkpID0+IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4pO1xuICAgIH07XG4gIH1cblxuICAvKiogQXhpcyBwb3NpdGlvbjogYFBvc2l0aW9uLlRvcGAsIGBQb3NpdGlvbi5Cb3R0b21gLCBgUG9zaXRpb24uUmlnaHRgIG9yIGBQb3NpdGlvbi5MZWZ0YC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgcG9zaXRpb24/OiBQb3NpdGlvbiB8IHN0cmluZ1xuXG4gIC8qKiBBeGlzIHR5cGU6IGBBeGlzVHlwZS5YYCBvciBgQXhpc1R5cGUuWWAgKi9cbiAgQElucHV0KCkgdHlwZT86IEF4aXNUeXBlIHwgc3RyaW5nXG5cbiAgLyoqIEV4dGVuZCB0aGUgYXhpcyBkb21haW4gbGluZSB0byBiZSBmdWxsIHdpZHRoIG9yIGZ1bGwgaGVpZ2h0LiBEZWZhdWx0OiBgdHJ1ZWAgKi9cbiAgQElucHV0KCkgZnVsbFNpemU/OiBib29sZWFuXG5cbiAgLyoqIEF4aXMgbGFiZWwuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nXG5cbiAgLyoqIEZvbnQgc2l6ZSBvZiB0aGUgYXhpcyBsYWJlbCBhcyBDU1Mgc3RyaW5nLiBEZWZhdWx0OiBgbnVsbGAgKi9cbiAgQElucHV0KCkgbGFiZWxGb250U2l6ZT86IHN0cmluZyB8IG51bGxcblxuICAvKiogRGlzdGFuY2UgYmV0d2VlbiB0aGUgYXhpcyBhbmQgdGhlIGxhYmVsIGluIHBpeGVscy4gRGVmYXVsdDogYDhgICovXG4gIEBJbnB1dCgpIGxhYmVsTWFyZ2luPzogbnVtYmVyXG5cbiAgLyoqIExhYmVsIHRleHQgZml0IG1vZGU6IGBGaXRNb2RlLldyYXBgIG9yIGBGaXRNb2RlLlRyaW1gLiBEZWZhdWx0OiBgRml0TW9kZS5XcmFwYC4gKi9cbiAgQElucHV0KCkgbGFiZWxUZXh0Rml0TW9kZT86IEZpdE1vZGUgfCBzdHJpbmdcblxuICAvKiogTGFiZWwgdGV4dCB0cmltIG1vZGU6IGBUcmltTW9kZS5TdGFydGAsIGBUcmltTW9kZS5NaWRkbGVgIG9yIGBUcmltTW9kZS5FbmRgLiBEZWZhdWx0OiBgVHJpbU1vZGUuTWlkZGxlYCAqL1xuICBASW5wdXQoKSBsYWJlbFRleHRUcmltVHlwZT86IFRyaW1Nb2RlIHwgc3RyaW5nXG5cbiAgLyoqIEZvbnQgY29sb3Igb2YgdGhlIGF4aXMgbGFiZWwgYXMgQ1NTIHN0cmluZy4gRGVmYXVsdDogYG51bGxgICovXG4gIEBJbnB1dCgpIGxhYmVsQ29sb3I/OiBzdHJpbmcgfCBudWxsXG5cbiAgLyoqIFNldHMgd2hldGhlciB0byBkcmF3IHRoZSBncmlkIGxpbmVzIG9yIG5vdC4gRGVmYXVsdDogYHRydWVgICovXG4gIEBJbnB1dCgpIGdyaWRMaW5lPzogYm9vbGVhblxuXG4gIC8qKiBTZXRzIHdoZXRoZXIgdG8gZHJhdyB0aGUgdGljayBsaW5lcyBvciBub3QuIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSB0aWNrTGluZT86IGJvb2xlYW5cblxuICAvKiogU2V0cyB3aGV0aGVyIHRvIGRyYXcgdGhlIGRvbWFpbiBsaW5lIG9yIG5vdC4gRGVmYXVsdDogYHRydWVgICovXG4gIEBJbnB1dCgpIGRvbWFpbkxpbmU/OiBib29sZWFuXG5cbiAgLyoqIERyYXcgb25seSB0aGUgbWluIGFuZCBtYXggYXhpcyB0aWNrcy4gRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSBtaW5NYXhUaWNrc09ubHk/OiBib29sZWFuXG5cbiAgLyoqIFNob3cgZ3JpZCBsaW5lcyBmb3IgdGhlIG1pbiBhbmQgbWF4IGF4aXMgdGlja3MuIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgbWluTWF4VGlja3NPbmx5U2hvd0dyaWRMaW5lcz86IGJvb2xlYW5cblxuICAvKiogRHJhdyBvbmx5IHRoZSBtaW4gYW5kIG1heCBheGlzIHRpY2tzLCB3aGVuIHRoZSBjaGFydFxuICAgKiB3aWR0aCBpcyBsZXNzIHRoYW4gdGhlIHNwZWNpZmllZCB2YWx1ZS5cbiAgICogRGVmYXVsdDogYDI1MGAgKi9cbiAgQElucHV0KCkgbWluTWF4VGlja3NPbmx5V2hlbldpZHRoSXNMZXNzPzogbnVtYmVyXG5cbiAgLyoqIFRpY2sgbGFiZWwgZm9ybWF0dGVyIGZ1bmN0aW9uLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB0aWNrRm9ybWF0PzogKCh0aWNrOiBudW1iZXIgfCBEYXRlLCBpOiBudW1iZXIsIHRpY2tzOiBudW1iZXJbXSB8IERhdGVbXSkgPT4gc3RyaW5nKVxuXG4gIC8qKiBFeHBsaWNpdGx5IHNldCB0aWNrIHZhbHVlcy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgdGlja1ZhbHVlcz86IG51bWJlcltdXG5cbiAgLyoqIFNldCB0aGUgYXBwcm94aW1hdGUgbnVtYmVyIG9mIGF4aXMgdGlja3MgKHdpbGwgYmUgcGFzc2VkIHRvIEQzJ3MgYXhpcyBjb25zdHJ1Y3RvcikuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG51bVRpY2tzPzogbnVtYmVyXG5cbiAgLyoqIFRpY2sgdGV4dCBmaXQgbW9kZTogYEZpdE1vZGUuV3JhcGAgb3IgYEZpdE1vZGUuVHJpbWAuIERlZmF1bHQ6IGBGaXRNb2RlLldyYXBgLiAqL1xuICBASW5wdXQoKSB0aWNrVGV4dEZpdE1vZGU/OiBGaXRNb2RlIHwgc3RyaW5nXG5cbiAgLyoqIE1heGltdW0gd2lkdGggaW4gcGl4ZWxzIGZvciB0aGUgdGljayB0ZXh0IHRvIGJlIHdyYXBwZWQgb3IgdHJpbW1lZC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgdGlja1RleHRXaWR0aD86IG51bWJlclxuXG4gIC8qKiBUaWNrIHRleHQgd3JhcHBpbmcgc2VwYXJhdG9yLiBTdHJpbmcgb3IgYXJyYXkgb2Ygc3RyaW5ncy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgdGlja1RleHRTZXBhcmF0b3I/OiBzdHJpbmcgfCBzdHJpbmdbXVxuXG4gIC8qKiBGb3JjZSB3b3JkIGJyZWFrIGZvciB0aWNrcyB3aGVuIHRoZXkgZG9uJ3QgZml0LiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIHRpY2tUZXh0Rm9yY2VXb3JkQnJlYWs/OiBib29sZWFuXG5cbiAgLyoqIFRpY2sgdGV4dCB0cmltIG1vZGU6IGBUcmltTW9kZS5TdGFydGAsIGBUcmltTW9kZS5NaWRkbGVgIG9yIGBUcmltTW9kZS5FbmRgLiBEZWZhdWx0OiBgVHJpbU1vZGUuTWlkZGxlYCAqL1xuICBASW5wdXQoKSB0aWNrVGV4dFRyaW1UeXBlPzogVHJpbU1vZGUgfCBzdHJpbmdcblxuICAvKiogRm9udCBzaXplIG9mIHRoZSB0aWNrIHRleHQgYXMgQ1NTIHN0cmluZy4gRGVmYXVsdDogYG51bGxgICovXG4gIEBJbnB1dCgpIHRpY2tUZXh0Rm9udFNpemU/OiBzdHJpbmcgfCBudWxsXG5cbiAgLyoqIFRleHQgYWxpZ25tZW50IGZvciB0aWNrczogYFRleHRBbGlnbi5MZWZ0YCwgYFRleHRBbGlnbi5DZW50ZXJgIG9yIGBUZXh0QWxpZ24uUmlnaHRgLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB0aWNrVGV4dEFsaWduPzogVGV4dEFsaWduIHwgc3RyaW5nXG5cbiAgLyoqIEZvbnQgY29sb3Igb2YgdGhlIHRpY2sgdGV4dCBhcyBDU1Mgc3RyaW5nLiBEZWZhdWx0OiBgbnVsbGAgKi9cbiAgQElucHV0KCkgdGlja1RleHRDb2xvcj86IHN0cmluZyB8IG51bGxcblxuICAvKiogVGV4dCByb3RhdGlvbiBhbmdsZSBmb3IgdGlja3MuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHRpY2tUZXh0QW5nbGU/OiBudW1iZXJcblxuICAvKiogSGlkZSB0aWNrIGxhYmVscyB0aGF0IG92ZXJsYXAgd2l0aCBlYWNoIG90aGVyLlxuICAgKiBUbyBkZWZpbmUgb3ZlcmxhcHBpbmcsIGEgc2ltcGxlIGJvdW5kaW5nIGJveCBjb2xsaXNpb24gZGV0ZWN0aW9uIGFsZ29yaXRobSBpcyB1c2VkLlxuICAgKiBXaGljaCBtZWFucyB0aGUgcmVzdWx0IHdvbid0IGJlIGFjY3VyYXRlIHdoZW4gYHRpY2tUZXh0QW5nbGVgIGlzIHNwZWNpZmllZC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgdGlja1RleHRIaWRlT3ZlcmxhcHBpbmc/OiBib29sZWFuXG5cbiAgLyoqIFRoZSBzcGFjaW5nIGluIHBpeGVscyBiZXR3ZWVuIHRoZSB0aWNrIGFuZCBpdCdzIGxhYmVsLiBEZWZhdWx0OiBgOGAgKi9cbiAgQElucHV0KCkgdGlja1BhZGRpbmc/OiBudW1iZXJcbiAgQElucHV0KCkgZGF0YTogRGF0dW1bXVxuXG4gIGNvbXBvbmVudDogQXhpczxEYXR1bT4gfCB1bmRlZmluZWRcbiAgcHVibGljIGNvbXBvbmVudENvbnRhaW5lcjogQ29udGFpbmVyQ29yZSB8IHVuZGVmaW5lZFxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCAoKTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnQgPSBuZXcgQXhpczxEYXR1bT4odGhpcy5nZXRDb25maWcoKSlcblxuICAgIGlmICh0aGlzLmRhdGEpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50LnNldERhdGEodGhpcy5kYXRhKVxuICAgICAgdGhpcy5jb21wb25lbnRDb250YWluZXI/LnJlbmRlcigpXG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMgKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5kYXRhKSB7IHRoaXMuY29tcG9uZW50Py5zZXREYXRhKHRoaXMuZGF0YSkgfVxuICAgIHRoaXMuY29tcG9uZW50Py5zZXRDb25maWcodGhpcy5nZXRDb25maWcoKSlcbiAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29uZmlnICgpOiBBeGlzQ29uZmlnSW50ZXJmYWNlPERhdHVtPiB7XG4gICAgY29uc3QgeyBkdXJhdGlvbiwgZXZlbnRzLCBhdHRyaWJ1dGVzLCBwb3NpdGlvbiwgdHlwZSwgZnVsbFNpemUsIGxhYmVsLCBsYWJlbEZvbnRTaXplLCBsYWJlbE1hcmdpbiwgbGFiZWxUZXh0Rml0TW9kZSwgbGFiZWxUZXh0VHJpbVR5cGUsIGxhYmVsQ29sb3IsIGdyaWRMaW5lLCB0aWNrTGluZSwgZG9tYWluTGluZSwgbWluTWF4VGlja3NPbmx5LCBtaW5NYXhUaWNrc09ubHlTaG93R3JpZExpbmVzLCBtaW5NYXhUaWNrc09ubHlXaGVuV2lkdGhJc0xlc3MsIHRpY2tGb3JtYXQsIHRpY2tWYWx1ZXMsIG51bVRpY2tzLCB0aWNrVGV4dEZpdE1vZGUsIHRpY2tUZXh0V2lkdGgsIHRpY2tUZXh0U2VwYXJhdG9yLCB0aWNrVGV4dEZvcmNlV29yZEJyZWFrLCB0aWNrVGV4dFRyaW1UeXBlLCB0aWNrVGV4dEZvbnRTaXplLCB0aWNrVGV4dEFsaWduLCB0aWNrVGV4dENvbG9yLCB0aWNrVGV4dEFuZ2xlLCB0aWNrVGV4dEhpZGVPdmVybGFwcGluZywgdGlja1BhZGRpbmcgfSA9IHRoaXNcbiAgICBjb25zdCBjb25maWcgPSB7IGR1cmF0aW9uLCBldmVudHMsIGF0dHJpYnV0ZXMsIHBvc2l0aW9uLCB0eXBlLCBmdWxsU2l6ZSwgbGFiZWwsIGxhYmVsRm9udFNpemUsIGxhYmVsTWFyZ2luLCBsYWJlbFRleHRGaXRNb2RlLCBsYWJlbFRleHRUcmltVHlwZSwgbGFiZWxDb2xvciwgZ3JpZExpbmUsIHRpY2tMaW5lLCBkb21haW5MaW5lLCBtaW5NYXhUaWNrc09ubHksIG1pbk1heFRpY2tzT25seVNob3dHcmlkTGluZXMsIG1pbk1heFRpY2tzT25seVdoZW5XaWR0aElzTGVzcywgdGlja0Zvcm1hdCwgdGlja1ZhbHVlcywgbnVtVGlja3MsIHRpY2tUZXh0Rml0TW9kZSwgdGlja1RleHRXaWR0aCwgdGlja1RleHRTZXBhcmF0b3IsIHRpY2tUZXh0Rm9yY2VXb3JkQnJlYWssIHRpY2tUZXh0VHJpbVR5cGUsIHRpY2tUZXh0Rm9udFNpemUsIHRpY2tUZXh0QWxpZ24sIHRpY2tUZXh0Q29sb3IsIHRpY2tUZXh0QW5nbGUsIHRpY2tUZXh0SGlkZU92ZXJsYXBwaW5nLCB0aWNrUGFkZGluZyB9XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGNvbmZpZykgYXMgKGtleW9mIEF4aXNDb25maWdJbnRlcmZhY2U8RGF0dW0+KVtdXG4gICAga2V5cy5mb3JFYWNoKGtleSA9PiB7IGlmIChjb25maWdba2V5XSA9PT0gdW5kZWZpbmVkKSBkZWxldGUgY29uZmlnW2tleV0gfSlcblxuICAgIHJldHVybiBjb25maWdcbiAgfVxufVxuIl19
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9heGlzL2F4aXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFDTCxJQUFJLEdBVUwsTUFBTSxZQUFZLENBQUE7QUFDbkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRM0MsTUFBTSxPQUFPLGdCQUFnQjtJQXVKM0IsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxDQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRWxELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FB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eEIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSztnQkFNRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vICEhISBUaGlzIGNvZGUgd2FzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkLiBZb3Ugc2hvdWxkIG5vdCBjaGFuZ2UgaXQgISEhXG5pbXBvcnQgeyBDb21wb25lbnQsIEFmdGVyVmlld0luaXQsIElucHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIEF4aXMsXG4gIEF4aXNDb25maWdJbnRlcmZhY2UsXG4gIENvbnRhaW5lckNvcmUsXG4gIFZpc0V2ZW50VHlwZSxcbiAgVmlzRXZlbnRDYWxsYmFjayxcbiAgUG9zaXRpb24sXG4gIEF4aXNUeXBlLFxuICBGaXRNb2RlLFxuICBUcmltTW9kZSxcbiAgVGV4dEFsaWduLFxufSBmcm9tICdAdW5vdmlzL3RzJ1xuaW1wb3J0IHsgVmlzWFlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2aXMtYXhpcycsXG4gIHRlbXBsYXRlOiAnJyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVmlzWFlDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBWaXNBeGlzQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBWaXNBeGlzQ29tcG9uZW50PERhdHVtPiBpbXBsZW1lbnRzIEF4aXNDb25maWdJbnRlcmZhY2U8RGF0dW0+LCBBZnRlclZpZXdJbml0IHtcbiAgLyoqIEFuaW1hdGlvbiBkdXJhdGlvbiBvZiB0aGUgZGF0YSB1cGRhdGUgdHJhbnNpdGlvbnMgaW4gbWlsbGlzZWNvbmRzLiBEZWZhdWx0OiBgNjAwYCAqL1xuICBASW5wdXQoKSBkdXJhdGlvbj86IG51bWJlclxuXG4gIC8qKiBFdmVudHMgY29uZmlndXJhdGlvbi4gQW4gb2JqZWN0IGNvbnRhaW5pbmcgcHJvcGVydGllcyBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiB7XG4gICAqICAgICBcXFtldmVudFR5cGVdOiBjYWxsYmFja0Z1bmN0aW9uXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW0FyZWEuc2VsZWN0b3JzLmFyZWFdOiB7XG4gICAqICAgIGNsaWNrOiAoZCkgPT4gY29uc29sZS5sb2coXCJDbGlja2VkIEFyZWFcIiwgZClcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGAgKi9cbiAgQElucHV0KCkgZXZlbnRzPzoge1xuICAgIFtzZWxlY3Rvcjogc3RyaW5nXToge1xuICAgICAgW2V2ZW50VHlwZSBpbiBWaXNFdmVudFR5cGVdPzogVmlzRXZlbnRDYWxsYmFja1xuICAgIH07XG4gIH1cblxuICAvKiogWW91IGNhbiBzZXQgZXZlcnkgU1ZHIGFuZCBIVE1MIHZpc3VhbGl6YXRpb24gb2JqZWN0IHRvIGhhdmUgYSBjdXN0b20gRE9NIGF0dHJpYnV0ZXMsIHdoaWNoIGlzIHVzZWZ1bFxuICAgKiB3aGVuIHlvdSB3YW50IHRvIGRvIHVuaXQgb3IgZW5kLXRvLWVuZCB0ZXN0aW5nLiBBdHRyaWJ1dGVzIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZTpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiB7XG4gICAqICAgICBcXFthdHRyaWJ1dGVOYW1lXTogYXR0cmlidXRlIGNvbnN0YW50IHZhbHVlIG9yIGFjY2Vzc29yIGZ1bmN0aW9uXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW0FyZWEuc2VsZWN0b3JzLmFyZWFdOiB7XG4gICAqICAgIFwidGVzdC12YWx1ZVwiOiBkID0+IGQudmFsdWVcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGAgKi9cbiAgQElucHV0KCkgYXR0cmlidXRlcz86IHtcbiAgICBbc2VsZWN0b3I6IHN0cmluZ106IHtcbiAgICAgIFthdHRyOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgKChkYXR1bTogYW55KSA9PiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqIEF4aXMgcG9zaXRpb246IGBQb3NpdGlvbi5Ub3BgLCBgUG9zaXRpb24uQm90dG9tYCwgYFBvc2l0aW9uLlJpZ2h0YCBvciBgUG9zaXRpb24uTGVmdGAuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHBvc2l0aW9uPzogUG9zaXRpb24gfCBgJHtQb3NpdGlvbn1gXG5cbiAgLyoqIEF4aXMgdHlwZTogYEF4aXNUeXBlLlhgIG9yIGBBeGlzVHlwZS5ZYCAqL1xuICBASW5wdXQoKSB0eXBlPzogQXhpc1R5cGUgfCBgJHtBeGlzVHlwZX1gXG5cbiAgLyoqIEV4dGVuZCB0aGUgYXhpcyBkb21haW4gbGluZSB0byBiZSBmdWxsIHdpZHRoIG9yIGZ1bGwgaGVpZ2h0LiBEZWZhdWx0OiBgdHJ1ZWAgKi9cbiAgQElucHV0KCkgZnVsbFNpemU/OiBib29sZWFuXG5cbiAgLyoqIEF4aXMgbGFiZWwuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nXG5cbiAgLyoqIEZvbnQgc2l6ZSBvZiB0aGUgYXhpcyBsYWJlbCBhcyBDU1Mgc3RyaW5nLiBEZWZhdWx0OiBgbnVsbGAgKi9cbiAgQElucHV0KCkgbGFiZWxGb250U2l6ZT86IHN0cmluZyB8IG51bGxcblxuICAvKiogRGlzdGFuY2UgYmV0d2VlbiB0aGUgYXhpcyBhbmQgdGhlIGxhYmVsIGluIHBpeGVscy4gRGVmYXVsdDogYDhgICovXG4gIEBJbnB1dCgpIGxhYmVsTWFyZ2luPzogbnVtYmVyXG5cbiAgLyoqIExhYmVsIHRleHQgZml0IG1vZGU6IGBGaXRNb2RlLldyYXBgIG9yIGBGaXRNb2RlLlRyaW1gLiBEZWZhdWx0OiBgRml0TW9kZS5XcmFwYC4gKi9cbiAgQElucHV0KCkgbGFiZWxUZXh0Rml0TW9kZT86IEZpdE1vZGUgfCBgJHtGaXRNb2RlfWBcblxuICAvKiogTGFiZWwgdGV4dCB0cmltIG1vZGU6IGBUcmltTW9kZS5TdGFydGAsIGBUcmltTW9kZS5NaWRkbGVgIG9yIGBUcmltTW9kZS5FbmRgLiBEZWZhdWx0OiBgVHJpbU1vZGUuTWlkZGxlYCAqL1xuICBASW5wdXQoKSBsYWJlbFRleHRUcmltVHlwZT86IFRyaW1Nb2RlIHwgYCR7VHJpbU1vZGV9YFxuXG4gIC8qKiBGb250IGNvbG9yIG9mIHRoZSBheGlzIGxhYmVsIGFzIENTUyBzdHJpbmcuIERlZmF1bHQ6IGBudWxsYCAqL1xuICBASW5wdXQoKSBsYWJlbENvbG9yPzogc3RyaW5nIHwgbnVsbFxuXG4gIC8qKiBTZXRzIHdoZXRoZXIgdG8gZHJhdyB0aGUgZ3JpZCBsaW5lcyBvciBub3QuIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSBncmlkTGluZT86IGJvb2xlYW5cblxuICAvKiogU2V0cyB3aGV0aGVyIHRvIGRyYXcgdGhlIHRpY2sgbGluZXMgb3Igbm90LiBEZWZhdWx0OiBgdHJ1ZWAgKi9cbiAgQElucHV0KCkgdGlja0xpbmU/OiBib29sZWFuXG5cbiAgLyoqIFNldHMgd2hldGhlciB0byBkcmF3IHRoZSBkb21haW4gbGluZSBvciBub3QuIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSBkb21haW5MaW5lPzogYm9vbGVhblxuXG4gIC8qKiBEcmF3IG9ubHkgdGhlIG1pbiBhbmQgbWF4IGF4aXMgdGlja3MuIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgbWluTWF4VGlja3NPbmx5PzogYm9vbGVhblxuXG4gIC8qKiBTaG93IGdyaWQgbGluZXMgZm9yIHRoZSBtaW4gYW5kIG1heCBheGlzIHRpY2tzLiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIG1pbk1heFRpY2tzT25seVNob3dHcmlkTGluZXM/OiBib29sZWFuXG5cbiAgLyoqIERyYXcgb25seSB0aGUgbWluIGFuZCBtYXggYXhpcyB0aWNrcywgd2hlbiB0aGUgY2hhcnRcbiAgICogd2lkdGggaXMgbGVzcyB0aGFuIHRoZSBzcGVjaWZpZWQgdmFsdWUuXG4gICAqIERlZmF1bHQ6IGAyNTBgICovXG4gIEBJbnB1dCgpIG1pbk1heFRpY2tzT25seVdoZW5XaWR0aElzTGVzcz86IG51bWJlclxuXG4gIC8qKiBUaWNrIGxhYmVsIGZvcm1hdHRlciBmdW5jdGlvbi4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgdGlja0Zvcm1hdD86ICgodGljazogbnVtYmVyIHwgRGF0ZSwgaTogbnVtYmVyLCB0aWNrczogbnVtYmVyW10gfCBEYXRlW10pID0+IHN0cmluZylcblxuICAvKiogRXhwbGljaXRseSBzZXQgdGljayB2YWx1ZXMuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHRpY2tWYWx1ZXM/OiBudW1iZXJbXVxuXG4gIC8qKiBTZXQgdGhlIGFwcHJveGltYXRlIG51bWJlciBvZiBheGlzIHRpY2tzICh3aWxsIGJlIHBhc3NlZCB0byBEMydzIGF4aXMgY29uc3RydWN0b3IpLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBudW1UaWNrcz86IG51bWJlclxuXG4gIC8qKiBUaWNrIHRleHQgZml0IG1vZGU6IGBGaXRNb2RlLldyYXBgIG9yIGBGaXRNb2RlLlRyaW1gLiBEZWZhdWx0OiBgRml0TW9kZS5XcmFwYC4gKi9cbiAgQElucHV0KCkgdGlja1RleHRGaXRNb2RlPzogRml0TW9kZSB8IGAke0ZpdE1vZGV9YFxuXG4gIC8qKiBNYXhpbXVtIHdpZHRoIGluIHBpeGVscyBmb3IgdGhlIHRpY2sgdGV4dCB0byBiZSB3cmFwcGVkIG9yIHRyaW1tZWQuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHRpY2tUZXh0V2lkdGg/OiBudW1iZXJcblxuICAvKiogVGljayB0ZXh0IHdyYXBwaW5nIHNlcGFyYXRvci4gU3RyaW5nIG9yIGFycmF5IG9mIHN0cmluZ3MuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHRpY2tUZXh0U2VwYXJhdG9yPzogc3RyaW5nIHwgc3RyaW5nW11cblxuICAvKiogRm9yY2Ugd29yZCBicmVhayBmb3IgdGlja3Mgd2hlbiB0aGV5IGRvbid0IGZpdC4gRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSB0aWNrVGV4dEZvcmNlV29yZEJyZWFrPzogYm9vbGVhblxuXG4gIC8qKiBUaWNrIHRleHQgdHJpbSBtb2RlOiBgVHJpbU1vZGUuU3RhcnRgLCBgVHJpbU1vZGUuTWlkZGxlYCBvciBgVHJpbU1vZGUuRW5kYC4gRGVmYXVsdDogYFRyaW1Nb2RlLk1pZGRsZWAgKi9cbiAgQElucHV0KCkgdGlja1RleHRUcmltVHlwZT86IFRyaW1Nb2RlIHwgYCR7VHJpbU1vZGV9YFxuXG4gIC8qKiBGb250IHNpemUgb2YgdGhlIHRpY2sgdGV4dCBhcyBDU1Mgc3RyaW5nLiBEZWZhdWx0OiBgbnVsbGAgKi9cbiAgQElucHV0KCkgdGlja1RleHRGb250U2l6ZT86IHN0cmluZyB8IG51bGxcblxuICAvKiogVGV4dCBhbGlnbm1lbnQgZm9yIHRpY2tzOiBgVGV4dEFsaWduLkxlZnRgLCBgVGV4dEFsaWduLkNlbnRlcmAgb3IgYFRleHRBbGlnbi5SaWdodGAuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHRpY2tUZXh0QWxpZ24/OiBUZXh0QWxpZ24gfCBgJHtUZXh0QWxpZ259YCB8ICgodGlja1ZhbHVlOiBudW1iZXIgfCBEYXRlLCB0aWNrSW5kZXg6IG51bWJlciwgdGlja1ZhbHVlczogbnVtYmVyW10gfCBEYXRlW10sIHRpY2tQb3NpdGlvbjogW251bWJlciwgbnVtYmVyXSwgY29tcG9uZW50V2lkdGg6IG51bWJlciwgY29tcG9uZW50SGVpZ2h0OiBudW1iZXIpID0+IFRleHRBbGlnbiB8IGAke1RleHRBbGlnbn1gKVxuXG4gIC8qKiBGb250IGNvbG9yIG9mIHRoZSB0aWNrIHRleHQgYXMgQ1NTIHN0cmluZy4gRGVmYXVsdDogYG51bGxgICovXG4gIEBJbnB1dCgpIHRpY2tUZXh0Q29sb3I/OiBzdHJpbmcgfCBudWxsXG5cbiAgLyoqIFRleHQgcm90YXRpb24gYW5nbGUgZm9yIHRpY2tzLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB0aWNrVGV4dEFuZ2xlPzogbnVtYmVyXG5cbiAgLyoqIEhpZGUgdGljayBsYWJlbHMgdGhhdCBvdmVybGFwIHdpdGggZWFjaCBvdGhlci5cbiAgICogVG8gZGVmaW5lIG92ZXJsYXBwaW5nLCBhIHNpbXBsZSBib3VuZGluZyBib3ggY29sbGlzaW9uIGRldGVjdGlvbiBhbGdvcml0aG0gaXMgdXNlZC5cbiAgICogV2hpY2ggbWVhbnMgdGhlIHJlc3VsdCB3b24ndCBiZSBhY2N1cmF0ZSB3aGVuIGB0aWNrVGV4dEFuZ2xlYCBpcyBzcGVjaWZpZWQuXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHRpY2tUZXh0SGlkZU92ZXJsYXBwaW5nPzogYm9vbGVhblxuXG4gIC8qKiBUaGUgc3BhY2luZyBpbiBwaXhlbHMgYmV0d2VlbiB0aGUgdGljayBhbmQgaXQncyBsYWJlbC4gRGVmYXVsdDogYDhgICovXG4gIEBJbnB1dCgpIHRpY2tQYWRkaW5nPzogbnVtYmVyXG5cbiAgLyoqIFRoZSBzaXplIG9mIHRoZSB0aWNrIG1hcmtzIGluIHBpeGVscy4gQWNjZXB0cyBhIHNpbmdsZSBudW1iZXIgKGFwcGxpZXMgdG8gYm90aCBpbm5lciBhbmQgb3V0ZXIgdGlja3MpXG4gICAqIG9yIGEgdHVwbGUgYFtpbm5lclRpY2tTaXplLCBvdXRlclRpY2tTaXplXWAuIERlZmF1bHQ6IGA2YCAqL1xuICBASW5wdXQoKSB0aWNrU2l6ZT86IG51bWJlciB8IFtudW1iZXIsIG51bWJlcl1cbiAgQElucHV0KCkgZGF0YTogRGF0dW1bXVxuXG4gIGNvbXBvbmVudDogQXhpczxEYXR1bT4gfCB1bmRlZmluZWRcbiAgcHVibGljIGNvbXBvbmVudENvbnRhaW5lcjogQ29udGFpbmVyQ29yZSB8IHVuZGVmaW5lZFxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCAoKTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnQgPSBuZXcgQXhpczxEYXR1bT4odGhpcy5nZXRDb25maWcoKSlcblxuICAgIGlmICh0aGlzLmRhdGEpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50LnNldERhdGEodGhpcy5kYXRhKVxuICAgICAgdGhpcy5jb21wb25lbnRDb250YWluZXI/LnJlbmRlcigpXG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMgKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5kYXRhKSB7IHRoaXMuY29tcG9uZW50Py5zZXREYXRhKHRoaXMuZGF0YSkgfVxuICAgIHRoaXMuY29tcG9uZW50Py5zZXRDb25maWcodGhpcy5nZXRDb25maWcoKSlcbiAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29uZmlnICgpOiBBeGlzQ29uZmlnSW50ZXJmYWNlPERhdHVtPiB7XG4gICAgY29uc3QgeyBkdXJhdGlvbiwgZXZlbnRzLCBhdHRyaWJ1dGVzLCBwb3NpdGlvbiwgdHlwZSwgZnVsbFNpemUsIGxhYmVsLCBsYWJlbEZvbnRTaXplLCBsYWJlbE1hcmdpbiwgbGFiZWxUZXh0Rml0TW9kZSwgbGFiZWxUZXh0VHJpbVR5cGUsIGxhYmVsQ29sb3IsIGdyaWRMaW5lLCB0aWNrTGluZSwgZG9tYWluTGluZSwgbWluTWF4VGlja3NPbmx5LCBtaW5NYXhUaWNrc09ubHlTaG93R3JpZExpbmVzLCBtaW5NYXhUaWNrc09ubHlXaGVuV2lkdGhJc0xlc3MsIHRpY2tGb3JtYXQsIHRpY2tWYWx1ZXMsIG51bVRpY2tzLCB0aWNrVGV4dEZpdE1vZGUsIHRpY2tUZXh0V2lkdGgsIHRpY2tUZXh0U2VwYXJhdG9yLCB0aWNrVGV4dEZvcmNlV29yZEJyZWFrLCB0aWNrVGV4dFRyaW1UeXBlLCB0aWNrVGV4dEZvbnRTaXplLCB0aWNrVGV4dEFsaWduLCB0aWNrVGV4dENvbG9yLCB0aWNrVGV4dEFuZ2xlLCB0aWNrVGV4dEhpZGVPdmVybGFwcGluZywgdGlja1BhZGRpbmcsIHRpY2tTaXplIH0gPSB0aGlzXG4gICAgY29uc3QgY29uZmlnID0geyBkdXJhdGlvbiwgZXZlbnRzLCBhdHRyaWJ1dGVzLCBwb3NpdGlvbiwgdHlwZSwgZnVsbFNpemUsIGxhYmVsLCBsYWJlbEZvbnRTaXplLCBsYWJlbE1hcmdpbiwgbGFiZWxUZXh0Rml0TW9kZSwgbGFiZWxUZXh0VHJpbVR5cGUsIGxhYmVsQ29sb3IsIGdyaWRMaW5lLCB0aWNrTGluZSwgZG9tYWluTGluZSwgbWluTWF4VGlja3NPbmx5LCBtaW5NYXhUaWNrc09ubHlTaG93R3JpZExpbmVzLCBtaW5NYXhUaWNrc09ubHlXaGVuV2lkdGhJc0xlc3MsIHRpY2tGb3JtYXQsIHRpY2tWYWx1ZXMsIG51bVRpY2tzLCB0aWNrVGV4dEZpdE1vZGUsIHRpY2tUZXh0V2lkdGgsIHRpY2tUZXh0U2VwYXJhdG9yLCB0aWNrVGV4dEZvcmNlV29yZEJyZWFrLCB0aWNrVGV4dFRyaW1UeXBlLCB0aWNrVGV4dEZvbnRTaXplLCB0aWNrVGV4dEFsaWduLCB0aWNrVGV4dENvbG9yLCB0aWNrVGV4dEFuZ2xlLCB0aWNrVGV4dEhpZGVPdmVybGFwcGluZywgdGlja1BhZGRpbmcsIHRpY2tTaXplIH1cbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoY29uZmlnKSBhcyAoa2V5b2YgQXhpc0NvbmZpZ0ludGVyZmFjZTxEYXR1bT4pW11cbiAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsgaWYgKGNvbmZpZ1trZXldID09PSB1bmRlZmluZWQpIGRlbGV0ZSBjb25maWdba2V5XSB9KVxuXG4gICAgcmV0dXJuIGNvbmZpZ1xuICB9XG59XG4iXX0=
@@ -21,8 +21,8 @@ export class VisBrushComponent {
21
21
  (_c = this.componentContainer) === null || _c === void 0 ? void 0 : _c.render();
22
22
  }
23
23
  getConfig() {
24
- const { duration, events, attributes, onBrush, onBrushStart, onBrushMove, onBrushEnd, handleWidth, selection, draggable, handlePosition, selectionMinLength } = this;
25
- const config = { duration, events, attributes, onBrush, onBrushStart, onBrushMove, onBrushEnd, handleWidth, selection, draggable, handlePosition, selectionMinLength };
24
+ const { duration, events, attributes, onBrush, onBrushStart, onBrushMove, onBrushEnd, handleWidth, selection, draggable, handlePosition, selectionMinLength, brushHeightExtend } = this;
25
+ const config = { duration, events, attributes, onBrush, onBrushStart, onBrushMove, onBrushEnd, handleWidth, selection, draggable, handlePosition, selectionMinLength, brushHeightExtend };
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 VisBrushComponent {
30
30
  }
31
31
  }
32
32
  VisBrushComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisBrushComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
33
- VisBrushComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisBrushComponent, selector: "vis-brush", inputs: { duration: "duration", events: "events", attributes: "attributes", onBrush: "onBrush", onBrushStart: "onBrushStart", onBrushMove: "onBrushMove", onBrushEnd: "onBrushEnd", handleWidth: "handleWidth", selection: "selection", draggable: "draggable", handlePosition: "handlePosition", selectionMinLength: "selectionMinLength", data: "data" }, providers: [{ provide: VisXYComponent, useExisting: VisBrushComponent }], usesOnChanges: true, ngImport: i0, template: '', isInline: true });
33
+ VisBrushComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisBrushComponent, selector: "vis-brush", inputs: { duration: "duration", events: "events", attributes: "attributes", onBrush: "onBrush", onBrushStart: "onBrushStart", onBrushMove: "onBrushMove", onBrushEnd: "onBrushEnd", handleWidth: "handleWidth", selection: "selection", draggable: "draggable", handlePosition: "handlePosition", selectionMinLength: "selectionMinLength", brushHeightExtend: "brushHeightExtend", data: "data" }, providers: [{ provide: VisXYComponent, useExisting: VisBrushComponent }], usesOnChanges: true, ngImport: i0, template: '', isInline: true });
34
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisBrushComponent, decorators: [{
35
35
  type: Component,
36
36
  args: [{
@@ -63,7 +63,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
63
63
  type: Input
64
64
  }], selectionMinLength: [{
65
65
  type: Input
66
+ }], brushHeightExtend: [{
67
+ type: Input
66
68
  }], data: [{
67
69
  type: Input
68
70
  }] } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJ1c2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYnJ1c2gvYnJ1c2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFBRSxLQUFLLEVBQW9GLE1BQU0sWUFBWSxDQUFBO0FBRXBILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUE7O0FBUTNDLE1BQU0sT0FBTyxpQkFBaUI7SUFzRjVCLGVBQWU7O1FBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLEtBQUssQ0FBUSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUVuRCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDakMsTUFBQSxJQUFJLENBQUMsa0JBQWtCLDBDQUFFLE1BQU0sRUFBRSxDQUFBO1NBQ2xDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBRSxPQUFzQjs7UUFDakMsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQUUsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1NBQUU7UUFDeEQsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7UUFDM0MsTUFBQSxJQUFJLENBQUMsa0JBQWtCLDBDQUFFLE1BQU0sRUFBRSxDQUFBO0lBQ25DLENBQUM7SUFFTyxTQUFTO1FBQ2YsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDcEssTUFBTSxNQUFNLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUE7UUFDdEssTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQTBDLENBQUE7UUFDekUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVM7WUFBRSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRTFFLE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQzs7K0dBNUdVLGlCQUFpQjttR0FBakIsaUJBQWlCLGdZQUZqQixDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQywrQ0FGOUQsRUFBRTs0RkFJRCxpQkFBaUI7a0JBTjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRSxFQUFFO29CQUNaLGdEQUFnRDtvQkFDaEQsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsbUJBQW1CLEVBQUUsQ0FBQztpQkFDekU7OEJBR1UsUUFBUTtzQkFBaEIsS0FBSztnQkFtQkcsTUFBTTtzQkFBZCxLQUFLO2dCQXdCRyxVQUFVO3NCQUFsQixLQUFLO2dCQVFHLE9BQU87c0JBQWYsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLO2dCQUlHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBSUcsVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAhISEgVGhpcyBjb2RlIHdhcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZC4gWW91IHNob3VsZCBub3QgY2hhbmdlIGl0ICEhIVxuaW1wb3J0IHsgQ29tcG9uZW50LCBBZnRlclZpZXdJbml0LCBJbnB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBCcnVzaCwgQnJ1c2hDb25maWdJbnRlcmZhY2UsIENvbnRhaW5lckNvcmUsIFZpc0V2ZW50VHlwZSwgVmlzRXZlbnRDYWxsYmFjaywgQXJyYW5nZW1lbnQgfSBmcm9tICdAdW5vdmlzL3RzJ1xuaW1wb3J0IHsgRDNCcnVzaEV2ZW50IH0gZnJvbSAnZDMtYnJ1c2gnXG5pbXBvcnQgeyBWaXNYWUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Zpcy1icnVzaCcsXG4gIHRlbXBsYXRlOiAnJyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVmlzWFlDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBWaXNCcnVzaENvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgVmlzQnJ1c2hDb21wb25lbnQ8RGF0dW0+IGltcGxlbWVudHMgQnJ1c2hDb25maWdJbnRlcmZhY2U8RGF0dW0+LCBBZnRlclZpZXdJbml0IHtcbiAgLyoqIEFuaW1hdGlvbiBkdXJhdGlvbiBvZiB0aGUgZGF0YSB1cGRhdGUgdHJhbnNpdGlvbnMgaW4gbWlsbGlzZWNvbmRzLiBEZWZhdWx0OiBgNjAwYCAqL1xuICBASW5wdXQoKSBkdXJhdGlvbj86IG51bWJlclxuXG4gIC8qKiBFdmVudHMgY29uZmlndXJhdGlvbi4gQW4gb2JqZWN0IGNvbnRhaW5pbmcgcHJvcGVydGllcyBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiB7XG4gICAqICAgICBcXFtldmVudFR5cGVdOiBjYWxsYmFja0Z1bmN0aW9uXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW0FyZWEuc2VsZWN0b3JzLmFyZWFdOiB7XG4gICAqICAgIGNsaWNrOiAoZCkgPT4gY29uc29sZS5sb2coXCJDbGlja2VkIEFyZWFcIiwgZClcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGAgKi9cbiAgQElucHV0KCkgZXZlbnRzPzoge1xuICAgIFtzZWxlY3Rvcjogc3RyaW5nXToge1xuICAgICAgW2V2ZW50VHlwZSBpbiBWaXNFdmVudFR5cGVdPzogVmlzRXZlbnRDYWxsYmFja1xuICAgIH07XG4gIH1cblxuICAvKiogWW91IGNhbiBzZXQgZXZlcnkgU1ZHIGFuZCBIVE1MIHZpc3VhbGl6YXRpb24gb2JqZWN0IHRvIGhhdmUgYSBjdXN0b20gRE9NIGF0dHJpYnV0ZXMsIHdoaWNoIGlzIHVzZWZ1bFxuICAgKiB3aGVuIHlvdSB3YW50IHRvIGRvIHVuaXQgb3IgZW5kLXRvLWVuZCB0ZXN0aW5nLiBBdHRyaWJ1dGVzIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZTpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiB7XG4gICAqICAgICBcXFthdHRyaWJ1dGVOYW1lXTogYXR0cmlidXRlIGNvbnN0YW50IHZhbHVlIG9yIGFjY2Vzc29yIGZ1bmN0aW9uXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW0FyZWEuc2VsZWN0b3JzLmFyZWFdOiB7XG4gICAqICAgIFwidGVzdC12YWx1ZVwiOiBkID0+IGQudmFsdWVcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGAgKi9cbiAgQElucHV0KCkgYXR0cmlidXRlcz86IHtcbiAgICBbc2VsZWN0b3I6IHN0cmluZ106IHtcbiAgICAgIFthdHRyOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgKChkYXR1bTogYW55KSA9PiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBvbiBhbnkgQnJ1c2ggZXZlbnQuXG4gICAqIERlZmF1bHQ6IGAoc2VsZWN0aW9uOiBbbnVtYmVyLCBudW1iZXJdLCBldmVudDogRDNCcnVzaEV2ZW50PERhdHVtPiwgdXNlckRyaXZlbjogYm9vbGVhbik6IHZvaWQgPT4ge31gICovXG4gIEBJbnB1dCgpIG9uQnJ1c2g/OiAoKHNlbGVjdGlvbjogW251bWJlciwgbnVtYmVyXSB8IHVuZGVmaW5lZCwgZXZlbnQ6IEQzQnJ1c2hFdmVudDxEYXR1bT4sIHVzZXJEcml2ZW46IGJvb2xlYW4pID0+IHZvaWQpXG5cbiAgLyoqIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBvbiB0aGUgQnJ1c2ggc3RhcnQgZXZlbnQuXG4gICAqIERlZmF1bHQ6IGAoc2VsZWN0aW9uOiBbbnVtYmVyLCBudW1iZXJdLCBldmVudDogRDNCcnVzaEV2ZW50PERhdHVtPiwgdXNlckRyaXZlbjogYm9vbGVhbik6IHZvaWQgPT4ge31gICovXG4gIEBJbnB1dCgpIG9uQnJ1c2hTdGFydD86ICgoc2VsZWN0aW9uOiBbbnVtYmVyLCBudW1iZXJdIHwgdW5kZWZpbmVkLCBldmVudDogRDNCcnVzaEV2ZW50PERhdHVtPiwgdXNlckRyaXZlbjogYm9vbGVhbikgPT4gdm9pZClcblxuICAvKiogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIG9uIHRoZSBCcnVzaCBtb3ZlIGV2ZW50LlxuICAgKiBEZWZhdWx0OiBgKHNlbGVjdGlvbjogW251bWJlciwgbnVtYmVyXSwgZXZlbnQ6IEQzQnJ1c2hFdmVudDxEYXR1bT4sIHVzZXJEcml2ZW46IGJvb2xlYW4pOiB2b2lkID0+IHt9YCAqL1xuICBASW5wdXQoKSBvbkJydXNoTW92ZT86ICgoc2VsZWN0aW9uOiBbbnVtYmVyLCBudW1iZXJdIHwgdW5kZWZpbmVkLCBldmVudDogRDNCcnVzaEV2ZW50PERhdHVtPiwgdXNlckRyaXZlbjogYm9vbGVhbikgPT4gdm9pZClcblxuICAvKiogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIG9uIHRoZSBCcnVzaCBlbmQgZXZlbnQuXG4gICAqIERlZmF1bHQ6IGAoc2VsZWN0aW9uOiBbbnVtYmVyLCBudW1iZXJdLCBldmVudDogRDNCcnVzaEV2ZW50PERhdHVtPiwgdXNlckRyaXZlbjogYm9vbGVhbik6IHZvaWQgPT4ge31gICovXG4gIEBJbnB1dCgpIG9uQnJ1c2hFbmQ/OiAoKHNlbGVjdGlvbjogW251bWJlciwgbnVtYmVyXSB8IHVuZGVmaW5lZCwgZXZlbnQ6IEQzQnJ1c2hFdmVudDxEYXR1bT4sIHVzZXJEcml2ZW46IGJvb2xlYW4pID0+IHZvaWQpXG5cbiAgLyoqIFdpZHRoIG9mIHRoZSBCcnVzaCBoYW5kbGUuIERlZmF1bHQ6IGAxYCAqL1xuICBASW5wdXQoKSBoYW5kbGVXaWR0aD86IG51bWJlclxuXG4gIC8qKiBCcnVzaCBzZWxlY3Rpb24gaW4gdGhlIGRhdGEgc3BhY2UgY29vcmRpbmF0ZXMsIGNhbiBiZSB1c2VkIHRvIGNvbnRyb2wgdGhlIHNlbGVjdGlvbi4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgc2VsZWN0aW9uPzogW251bWJlciwgbnVtYmVyXSB8IG51bGxcblxuICAvKiogQWxsb3cgZHJhZ2dpbmcgdGhlIHNlbGVjdGVkIGFyZWEgYXMgYSB3aG9sZSBpbiBvcmRlciB0byBjaGFuZ2UgdGhlIHNlbGVjdGVkIHJhbmdlLiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIGRyYWdnYWJsZT86IGJvb2xlYW5cblxuICAvKiogUG9zaXRpb24gb2YgdGhlIGhhbmRsZTogYEFycmFuZ2VtZW50Lkluc2lkZWAgb3IgYEFycmFuZ2VtZW50Lk91dHNpZGVgLiBEZWZhdWx0OiBgQXJyYW5nZW1lbnQuSW5zaWRlYCAqL1xuICBASW5wdXQoKSBoYW5kbGVQb3NpdGlvbj86IEFycmFuZ2VtZW50Lkluc2lkZSB8IEFycmFuZ2VtZW50Lk91dHNpZGUgfCBzdHJpbmdcblxuICAvKiogQ29uc3RyYWludCBCcnVzaCBzZWxlY3Rpb24gdG8gYSBtaW5pbWFsIGxlbmd0aCBpbiBkYXRhIHVuaXRzLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBzZWxlY3Rpb25NaW5MZW5ndGg/OiBudW1iZXJcbiAgQElucHV0KCkgZGF0YTogRGF0dW1bXVxuXG4gIGNvbXBvbmVudDogQnJ1c2g8RGF0dW0+IHwgdW5kZWZpbmVkXG4gIHB1YmxpYyBjb21wb25lbnRDb250YWluZXI6IENvbnRhaW5lckNvcmUgfCB1bmRlZmluZWRcblxuICBuZ0FmdGVyVmlld0luaXQgKCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50ID0gbmV3IEJydXNoPERhdHVtPih0aGlzLmdldENvbmZpZygpKVxuXG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgdGhpcy5jb21wb25lbnQuc2V0RGF0YSh0aGlzLmRhdGEpXG4gICAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyAoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmRhdGEpIHsgdGhpcy5jb21wb25lbnQ/LnNldERhdGEodGhpcy5kYXRhKSB9XG4gICAgdGhpcy5jb21wb25lbnQ/LnNldENvbmZpZyh0aGlzLmdldENvbmZpZygpKVxuICAgIHRoaXMuY29tcG9uZW50Q29udGFpbmVyPy5yZW5kZXIoKVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb25maWcgKCk6IEJydXNoQ29uZmlnSW50ZXJmYWNlPERhdHVtPiB7XG4gICAgY29uc3QgeyBkdXJhdGlvbiwgZXZlbnRzLCBhdHRyaWJ1dGVzLCBvbkJydXNoLCBvbkJydXNoU3RhcnQsIG9uQnJ1c2hNb3ZlLCBvbkJydXNoRW5kLCBoYW5kbGVXaWR0aCwgc2VsZWN0aW9uLCBkcmFnZ2FibGUsIGhhbmRsZVBvc2l0aW9uLCBzZWxlY3Rpb25NaW5MZW5ndGggfSA9IHRoaXNcbiAgICBjb25zdCBjb25maWcgPSB7IGR1cmF0aW9uLCBldmVudHMsIGF0dHJpYnV0ZXMsIG9uQnJ1c2gsIG9uQnJ1c2hTdGFydCwgb25CcnVzaE1vdmUsIG9uQnJ1c2hFbmQsIGhhbmRsZVdpZHRoLCBzZWxlY3Rpb24sIGRyYWdnYWJsZSwgaGFuZGxlUG9zaXRpb24sIHNlbGVjdGlvbk1pbkxlbmd0aCB9XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGNvbmZpZykgYXMgKGtleW9mIEJydXNoQ29uZmlnSW50ZXJmYWNlPERhdHVtPilbXVxuICAgIGtleXMuZm9yRWFjaChrZXkgPT4geyBpZiAoY29uZmlnW2tleV0gPT09IHVuZGVmaW5lZCkgZGVsZXRlIGNvbmZpZ1trZXldIH0pXG5cbiAgICByZXR1cm4gY29uZmlnXG4gIH1cbn1cbiJdfQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJ1c2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYnJ1c2gvYnJ1c2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFBRSxLQUFLLEVBQW9GLE1BQU0sWUFBWSxDQUFBO0FBRXBILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUE7O0FBUTNDLE1BQU0sT0FBTyxpQkFBaUI7SUEwRjVCLGVBQWU7O1FBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLEtBQUssQ0FBUSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUVuRCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDakMsTUFBQSxJQUFJLENBQUMsa0JBQWtCLDBDQUFFLE1BQU0sRUFBRSxDQUFBO1NBQ2xDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBRSxPQUFzQjs7UUFDakMsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQUUsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1NBQUU7UUFDeEQsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7UUFDM0MsTUFBQSxJQUFJLENBQUMsa0JBQWtCLDBDQUFFLE1BQU0sRUFBRSxDQUFBO0lBQ25DLENBQUM7SUFFTyxTQUFTO1FBQ2YsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDdkwsTUFBTSxNQUFNLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLENBQUE7UUFDekwsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQTBDLENBQUE7UUFDekUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVM7WUFBRSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRTFFLE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQzs7K0dBaEhVLGlCQUFpQjttR0FBakIsaUJBQWlCLHdhQUZqQixDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQywrQ0FGOUQsRUFBRTs0RkFJRCxpQkFBaUI7a0JBTjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRSxFQUFFO29CQUNaLGdEQUFnRDtvQkFDaEQsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsbUJBQW1CLEVBQUUsQ0FBQztpQkFDekU7OEJBR1UsUUFBUTtzQkFBaEIsS0FBSztnQkFtQkcsTUFBTTtzQkFBZCxLQUFLO2dCQXdCRyxVQUFVO3NCQUFsQixLQUFLO2dCQVFHLE9BQU87c0JBQWYsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLO2dCQUlHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBSUcsVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFJRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gISEhIFRoaXMgY29kZSB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQuIFlvdSBzaG91bGQgbm90IGNoYW5nZSBpdCAhISFcbmltcG9ydCB7IENvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgSW5wdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQnJ1c2gsIEJydXNoQ29uZmlnSW50ZXJmYWNlLCBDb250YWluZXJDb3JlLCBWaXNFdmVudFR5cGUsIFZpc0V2ZW50Q2FsbGJhY2ssIEFycmFuZ2VtZW50IH0gZnJvbSAnQHVub3Zpcy90cydcbmltcG9ydCB7IEQzQnJ1c2hFdmVudCB9IGZyb20gJ2QzLWJydXNoJ1xuaW1wb3J0IHsgVmlzWFlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2aXMtYnJ1c2gnLFxuICB0ZW1wbGF0ZTogJycsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFZpc1hZQ29tcG9uZW50LCB1c2VFeGlzdGluZzogVmlzQnJ1c2hDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIFZpc0JydXNoQ29tcG9uZW50PERhdHVtPiBpbXBsZW1lbnRzIEJydXNoQ29uZmlnSW50ZXJmYWNlPERhdHVtPiwgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKiBBbmltYXRpb24gZHVyYXRpb24gb2YgdGhlIGRhdGEgdXBkYXRlIHRyYW5zaXRpb25zIGluIG1pbGxpc2Vjb25kcy4gRGVmYXVsdDogYDYwMGAgKi9cbiAgQElucHV0KCkgZHVyYXRpb24/OiBudW1iZXJcblxuICAvKiogRXZlbnRzIGNvbmZpZ3VyYXRpb24uIEFuIG9iamVjdCBjb250YWluaW5nIHByb3BlcnRpZXMgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW3NlbGVjdG9yU3RyaW5nXToge1xuICAgKiAgICAgXFxbZXZlbnRUeXBlXTogY2FsbGJhY2tGdW5jdGlvblxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBlLmcuOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtBcmVhLnNlbGVjdG9ycy5hcmVhXToge1xuICAgKiAgICBjbGljazogKGQpID0+IGNvbnNvbGUubG9nKFwiQ2xpY2tlZCBBcmVhXCIsIGQpXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGV2ZW50cz86IHtcbiAgICBbc2VsZWN0b3I6IHN0cmluZ106IHtcbiAgICAgIFtldmVudFR5cGUgaW4gVmlzRXZlbnRUeXBlXT86IFZpc0V2ZW50Q2FsbGJhY2tcbiAgICB9O1xuICB9XG5cbiAgLyoqIFlvdSBjYW4gc2V0IGV2ZXJ5IFNWRyBhbmQgSFRNTCB2aXN1YWxpemF0aW9uIG9iamVjdCB0byBoYXZlIGEgY3VzdG9tIERPTSBhdHRyaWJ1dGVzLCB3aGljaCBpcyB1c2VmdWxcbiAgICogd2hlbiB5b3Ugd2FudCB0byBkbyB1bml0IG9yIGVuZC10by1lbmQgdGVzdGluZy4gQXR0cmlidXRlcyBjb25maWd1cmF0aW9uIG9iamVjdCBoYXMgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmU6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW3NlbGVjdG9yU3RyaW5nXToge1xuICAgKiAgICAgXFxbYXR0cmlidXRlTmFtZV06IGF0dHJpYnV0ZSBjb25zdGFudCB2YWx1ZSBvciBhY2Nlc3NvciBmdW5jdGlvblxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBlLmcuOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtBcmVhLnNlbGVjdG9ycy5hcmVhXToge1xuICAgKiAgICBcInRlc3QtdmFsdWVcIjogZCA9PiBkLnZhbHVlXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGF0dHJpYnV0ZXM/OiB7XG4gICAgW3NlbGVjdG9yOiBzdHJpbmddOiB7XG4gICAgICBbYXR0cjogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8ICgoZGF0dW06IGFueSkgPT4gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbik7XG4gICAgfTtcbiAgfVxuXG4gIC8qKiBDYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgb24gYW55IEJydXNoIGV2ZW50LlxuICAgKiBEZWZhdWx0OiBgKHNlbGVjdGlvbjogW251bWJlciwgbnVtYmVyXSwgZXZlbnQ6IEQzQnJ1c2hFdmVudDxEYXR1bT4sIHVzZXJEcml2ZW46IGJvb2xlYW4pOiB2b2lkID0+IHt9YCAqL1xuICBASW5wdXQoKSBvbkJydXNoPzogKChzZWxlY3Rpb246IFtudW1iZXIsIG51bWJlcl0gfCB1bmRlZmluZWQsIGV2ZW50OiBEM0JydXNoRXZlbnQ8RGF0dW0+LCB1c2VyRHJpdmVuOiBib29sZWFuKSA9PiB2b2lkKVxuXG4gIC8qKiBDYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgb24gdGhlIEJydXNoIHN0YXJ0IGV2ZW50LlxuICAgKiBEZWZhdWx0OiBgKHNlbGVjdGlvbjogW251bWJlciwgbnVtYmVyXSwgZXZlbnQ6IEQzQnJ1c2hFdmVudDxEYXR1bT4sIHVzZXJEcml2ZW46IGJvb2xlYW4pOiB2b2lkID0+IHt9YCAqL1xuICBASW5wdXQoKSBvbkJydXNoU3RhcnQ/OiAoKHNlbGVjdGlvbjogW251bWJlciwgbnVtYmVyXSB8IHVuZGVmaW5lZCwgZXZlbnQ6IEQzQnJ1c2hFdmVudDxEYXR1bT4sIHVzZXJEcml2ZW46IGJvb2xlYW4pID0+IHZvaWQpXG5cbiAgLyoqIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBvbiB0aGUgQnJ1c2ggbW92ZSBldmVudC5cbiAgICogRGVmYXVsdDogYChzZWxlY3Rpb246IFtudW1iZXIsIG51bWJlcl0sIGV2ZW50OiBEM0JydXNoRXZlbnQ8RGF0dW0+LCB1c2VyRHJpdmVuOiBib29sZWFuKTogdm9pZCA9PiB7fWAgKi9cbiAgQElucHV0KCkgb25CcnVzaE1vdmU/OiAoKHNlbGVjdGlvbjogW251bWJlciwgbnVtYmVyXSB8IHVuZGVmaW5lZCwgZXZlbnQ6IEQzQnJ1c2hFdmVudDxEYXR1bT4sIHVzZXJEcml2ZW46IGJvb2xlYW4pID0+IHZvaWQpXG5cbiAgLyoqIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBvbiB0aGUgQnJ1c2ggZW5kIGV2ZW50LlxuICAgKiBEZWZhdWx0OiBgKHNlbGVjdGlvbjogW251bWJlciwgbnVtYmVyXSwgZXZlbnQ6IEQzQnJ1c2hFdmVudDxEYXR1bT4sIHVzZXJEcml2ZW46IGJvb2xlYW4pOiB2b2lkID0+IHt9YCAqL1xuICBASW5wdXQoKSBvbkJydXNoRW5kPzogKChzZWxlY3Rpb246IFtudW1iZXIsIG51bWJlcl0gfCB1bmRlZmluZWQsIGV2ZW50OiBEM0JydXNoRXZlbnQ8RGF0dW0+LCB1c2VyRHJpdmVuOiBib29sZWFuKSA9PiB2b2lkKVxuXG4gIC8qKiBXaWR0aCBvZiB0aGUgQnJ1c2ggaGFuZGxlLiBEZWZhdWx0OiBgMWAgKi9cbiAgQElucHV0KCkgaGFuZGxlV2lkdGg/OiBudW1iZXJcblxuICAvKiogQnJ1c2ggc2VsZWN0aW9uIGluIHRoZSBkYXRhIHNwYWNlIGNvb3JkaW5hdGVzLCBjYW4gYmUgdXNlZCB0byBjb250cm9sIHRoZSBzZWxlY3Rpb24uIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHNlbGVjdGlvbj86IFtudW1iZXIsIG51bWJlcl0gfCBudWxsXG5cbiAgLyoqIEFsbG93IGRyYWdnaW5nIHRoZSBzZWxlY3RlZCBhcmVhIGFzIGEgd2hvbGUgaW4gb3JkZXIgdG8gY2hhbmdlIHRoZSBzZWxlY3RlZCByYW5nZS4gRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSBkcmFnZ2FibGU/OiBib29sZWFuXG5cbiAgLyoqIFBvc2l0aW9uIG9mIHRoZSBoYW5kbGU6IGBBcnJhbmdlbWVudC5JbnNpZGVgIG9yIGBBcnJhbmdlbWVudC5PdXRzaWRlYC4gRGVmYXVsdDogYEFycmFuZ2VtZW50Lkluc2lkZWAgKi9cbiAgQElucHV0KCkgaGFuZGxlUG9zaXRpb24/OiBBcnJhbmdlbWVudC5JbnNpZGUgfCBBcnJhbmdlbWVudC5PdXRzaWRlIHwgc3RyaW5nXG5cbiAgLyoqIENvbnN0cmFpbnQgQnJ1c2ggc2VsZWN0aW9uIHRvIGEgbWluaW1hbCBsZW5ndGggaW4gZGF0YSB1bml0cy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgc2VsZWN0aW9uTWluTGVuZ3RoPzogbnVtYmVyXG5cbiAgLyoqIEV4dGVuZCB0aGUgYnJ1c2ggaGVpZ2h0IGJ5IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHBpeGVscy4gVGhpcyBjYW4gYmUgY29udmVuaWVudCB3aGVuIHlvdSBoYXZlIHRoaWNrIGxpbmVzXG4gICAqIGF0IHRoZSBib3R0b20gb2YgdGhlIGNoYXJ0IGFuZCB5b3Ugd2FudCB0byBlbnN1cmUgdGhleSBzdGF5IGZ1bGx5IGNvdmVyZWQgYnkgdGhlIGJydXNoLiBEZWZhdWx0OiBgMGAgKi9cbiAgQElucHV0KCkgYnJ1c2hIZWlnaHRFeHRlbmQ/OiBudW1iZXJcbiAgQElucHV0KCkgZGF0YTogRGF0dW1bXVxuXG4gIGNvbXBvbmVudDogQnJ1c2g8RGF0dW0+IHwgdW5kZWZpbmVkXG4gIHB1YmxpYyBjb21wb25lbnRDb250YWluZXI6IENvbnRhaW5lckNvcmUgfCB1bmRlZmluZWRcblxuICBuZ0FmdGVyVmlld0luaXQgKCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50ID0gbmV3IEJydXNoPERhdHVtPih0aGlzLmdldENvbmZpZygpKVxuXG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgdGhpcy5jb21wb25lbnQuc2V0RGF0YSh0aGlzLmRhdGEpXG4gICAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyAoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmRhdGEpIHsgdGhpcy5jb21wb25lbnQ/LnNldERhdGEodGhpcy5kYXRhKSB9XG4gICAgdGhpcy5jb21wb25lbnQ/LnNldENvbmZpZyh0aGlzLmdldENvbmZpZygpKVxuICAgIHRoaXMuY29tcG9uZW50Q29udGFpbmVyPy5yZW5kZXIoKVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb25maWcgKCk6IEJydXNoQ29uZmlnSW50ZXJmYWNlPERhdHVtPiB7XG4gICAgY29uc3QgeyBkdXJhdGlvbiwgZXZlbnRzLCBhdHRyaWJ1dGVzLCBvbkJydXNoLCBvbkJydXNoU3RhcnQsIG9uQnJ1c2hNb3ZlLCBvbkJydXNoRW5kLCBoYW5kbGVXaWR0aCwgc2VsZWN0aW9uLCBkcmFnZ2FibGUsIGhhbmRsZVBvc2l0aW9uLCBzZWxlY3Rpb25NaW5MZW5ndGgsIGJydXNoSGVpZ2h0RXh0ZW5kIH0gPSB0aGlzXG4gICAgY29uc3QgY29uZmlnID0geyBkdXJhdGlvbiwgZXZlbnRzLCBhdHRyaWJ1dGVzLCBvbkJydXNoLCBvbkJydXNoU3RhcnQsIG9uQnJ1c2hNb3ZlLCBvbkJydXNoRW5kLCBoYW5kbGVXaWR0aCwgc2VsZWN0aW9uLCBkcmFnZ2FibGUsIGhhbmRsZVBvc2l0aW9uLCBzZWxlY3Rpb25NaW5MZW5ndGgsIGJydXNoSGVpZ2h0RXh0ZW5kIH1cbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoY29uZmlnKSBhcyAoa2V5b2YgQnJ1c2hDb25maWdJbnRlcmZhY2U8RGF0dW0+KVtdXG4gICAga2V5cy5mb3JFYWNoKGtleSA9PiB7IGlmIChjb25maWdba2V5XSA9PT0gdW5kZWZpbmVkKSBkZWxldGUgY29uZmlnW2tleV0gfSlcblxuICAgIHJldHVybiBjb25maWdcbiAgfVxufVxuIl19
@@ -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, onCrosshairMove, forceShowAt, skipRangeCheck } = 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, skipRangeCheck };
24
+ const { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, strokeColor, strokeWidth, circleRadius, yStacked, baseline, tooltip, template, hideWhenFarFromPointer, hideWhenFarFromPointerDistance, snapToData, getCircles, onCrosshairMove, forceShowAt, skipRangeCheck, visibilityThreshold } = this;
25
+ const config = { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, strokeColor, strokeWidth, circleRadius, yStacked, baseline, tooltip, template, hideWhenFarFromPointer, hideWhenFarFromPointerDistance, snapToData, getCircles, onCrosshairMove, forceShowAt, skipRangeCheck, visibilityThreshold };
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", onCrosshairMove: "onCrosshairMove", forceShowAt: "forceShowAt", skipRangeCheck: "skipRangeCheck", 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", circleRadius: "circleRadius", yStacked: "yStacked", baseline: "baseline", tooltip: "tooltip", template: "template", hideWhenFarFromPointer: "hideWhenFarFromPointer", hideWhenFarFromPointerDistance: "hideWhenFarFromPointerDistance", snapToData: "snapToData", getCircles: "getCircles", onCrosshairMove: "onCrosshairMove", forceShowAt: "forceShowAt", skipRangeCheck: "skipRangeCheck", visibilityThreshold: "visibilityThreshold", 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: [{
@@ -63,6 +63,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
63
63
  type: Input
64
64
  }], strokeWidth: [{
65
65
  type: Input
66
+ }], circleRadius: [{
67
+ type: Input
66
68
  }], yStacked: [{
67
69
  type: Input
68
70
  }], baseline: [{
@@ -85,7 +87,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
85
87
  type: Input
86
88
  }], skipRangeCheck: [{
87
89
  type: Input
90
+ }], visibilityThreshold: [{
91
+ type: Input
88
92
  }], data: [{
89
93
  type: Input
90
94
  }] } });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NoYWlyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Nyb3NzaGFpci9jcm9zc2hhaXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFDTCxTQUFTLEdBVVYsTUFBTSxZQUFZLENBQUE7QUFDbkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRM0MsTUFBTSxPQUFPLHFCQUFxQjtJQTJJaEMsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksU0FBUyxDQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRXZELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsNEJBQTRCLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsOEJBQThCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxHQUFHLElBQUksQ0FBQTtRQUMzUyxNQUFNLE1BQU0sR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLDRCQUE0QixFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLDhCQUE4QixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsQ0FBQTtRQUM3UyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBOEMsQ0FBQTtRQUM3RSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUztZQUFFLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFMUUsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDOzttSEFqS1UscUJBQXFCO3VHQUFyQixxQkFBcUIsd3FCQUZyQixDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUUsQ0FBQywrQ0FGbEUsRUFBRTs0RkFJRCxxQkFBcUI7a0JBTmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFFBQVEsRUFBRSxFQUFFO29CQUNaLGdEQUFnRDtvQkFDaEQsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsdUJBQXVCLEVBQUUsQ0FBQztpQkFDN0U7OEJBR1UsUUFBUTtzQkFBaEIsS0FBSztnQkFtQkcsTUFBTTtzQkFBZCxLQUFLO2dCQXdCRyxVQUFVO3NCQUFsQixLQUFLO2dCQU9HLENBQUM7c0JBQVQsS0FBSztnQkFHRyxDQUFDO3NCQUFULEtBQUs7Z0JBR0csRUFBRTtzQkFBVixLQUFLO2dCQUdHLEtBQUs7c0JBQWIsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQU1HLDRCQUE0QjtzQkFBcEMsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFHRyw4QkFBOEI7c0JBQXRDLEtBQUs7Z0JBTUcsVUFBVTtzQkFBbEIsS0FBSztnQkFPRyxVQUFVO3NCQUFsQixLQUFLO2dCQVVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFJRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vICEhISBUaGlzIGNvZGUgd2FzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkLiBZb3Ugc2hvdWxkIG5vdCBjaGFuZ2UgaXQgISEhXG5pbXBvcnQgeyBDb21wb25lbnQsIEFmdGVyVmlld0luaXQsIElucHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIENyb3NzaGFpcixcbiAgQ3Jvc3NoYWlyQ29uZmlnSW50ZXJmYWNlLFxuICBDb250YWluZXJDb3JlLFxuICBWaXNFdmVudFR5cGUsXG4gIFZpc0V2ZW50Q2FsbGJhY2ssXG4gIE51bWVyaWNBY2Nlc3NvcixcbiAgQ29sb3JBY2Nlc3NvcixcbiAgQ29udGludW91c1NjYWxlLFxuICBUb29sdGlwLFxuICBDcm9zc2hhaXJDaXJjbGUsXG59IGZyb20gJ0B1bm92aXMvdHMnXG5pbXBvcnQgeyBWaXNYWUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Zpcy1jcm9zc2hhaXInLFxuICB0ZW1wbGF0ZTogJycsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFZpc1hZQ29tcG9uZW50LCB1c2VFeGlzdGluZzogVmlzQ3Jvc3NoYWlyQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBWaXNDcm9zc2hhaXJDb21wb25lbnQ8RGF0dW0+IGltcGxlbWVudHMgQ3Jvc3NoYWlyQ29uZmlnSW50ZXJmYWNlPERhdHVtPiwgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKiBBbmltYXRpb24gZHVyYXRpb24gb2YgdGhlIGRhdGEgdXBkYXRlIHRyYW5zaXRpb25zIGluIG1pbGxpc2Vjb25kcy4gRGVmYXVsdDogYDYwMGAgKi9cbiAgQElucHV0KCkgZHVyYXRpb24/OiBudW1iZXJcblxuICAvKiogRXZlbnRzIGNvbmZpZ3VyYXRpb24uIEFuIG9iamVjdCBjb250YWluaW5nIHByb3BlcnRpZXMgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW3NlbGVjdG9yU3RyaW5nXToge1xuICAgKiAgICAgXFxbZXZlbnRUeXBlXTogY2FsbGJhY2tGdW5jdGlvblxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBlLmcuOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtBcmVhLnNlbGVjdG9ycy5hcmVhXToge1xuICAgKiAgICBjbGljazogKGQpID0+IGNvbnNvbGUubG9nKFwiQ2xpY2tlZCBBcmVhXCIsIGQpXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGV2ZW50cz86IHtcbiAgICBbc2VsZWN0b3I6IHN0cmluZ106IHtcbiAgICAgIFtldmVudFR5cGUgaW4gVmlzRXZlbnRUeXBlXT86IFZpc0V2ZW50Q2FsbGJhY2tcbiAgICB9O1xuICB9XG5cbiAgLyoqIFlvdSBjYW4gc2V0IGV2ZXJ5IFNWRyBhbmQgSFRNTCB2aXN1YWxpemF0aW9uIG9iamVjdCB0byBoYXZlIGEgY3VzdG9tIERPTSBhdHRyaWJ1dGVzLCB3aGljaCBpcyB1c2VmdWxcbiAgICogd2hlbiB5b3Ugd2FudCB0byBkbyB1bml0IG9yIGVuZC10by1lbmQgdGVzdGluZy4gQXR0cmlidXRlcyBjb25maWd1cmF0aW9uIG9iamVjdCBoYXMgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmU6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW3NlbGVjdG9yU3RyaW5nXToge1xuICAgKiAgICAgXFxbYXR0cmlidXRlTmFtZV06IGF0dHJpYnV0ZSBjb25zdGFudCB2YWx1ZSBvciBhY2Nlc3NvciBmdW5jdGlvblxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBlLmcuOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtBcmVhLnNlbGVjdG9ycy5hcmVhXToge1xuICAgKiAgICBcInRlc3QtdmFsdWVcIjogZCA9PiBkLnZhbHVlXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGF0dHJpYnV0ZXM/OiB7XG4gICAgW3NlbGVjdG9yOiBzdHJpbmddOiB7XG4gICAgICBbYXR0cjogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8ICgoZGF0dW06IGFueSkgPT4gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbik7XG4gICAgfTtcbiAgfVxuXG4gIC8qKiBPcHRpb25hbCBhY2Nlc3NvciBmdW5jdGlvbiBmb3IgZ2V0dGluZyB0aGUgdmFsdWVzIGFsb25nIHRoZSBYIGF4aXMuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHg/OiBOdW1lcmljQWNjZXNzb3I8RGF0dW0+XG5cbiAgLyoqIE9wdGlvbmFsIHNpbmdsZSBvZiBtdWx0aXBsZSBhY2Nlc3NvciBmdW5jdGlvbnMgZm9yIGdldHRpbmcgdGhlIHZhbHVlcyBhbG9uZyB0aGUgWSBheGlzLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB5PzogTnVtZXJpY0FjY2Vzc29yPERhdHVtPiB8IE51bWVyaWNBY2Nlc3NvcjxEYXR1bT5bXVxuXG4gIC8qKiBBY2Nlc3NvciBmdW5jdGlvbiBmb3IgZ2V0dGluZyB0aGUgdW5pcXVlIGRhdGEgcmVjb3JkIGlkLiBVc2VkIGZvciBtb3JlIHBlcnNpc3RlbnQgZGF0YSB1cGRhdGVzLiBEZWZhdWx0OiBgKGQsIGkpID0+IGQuaWQgPz8gaWAgKi9cbiAgQElucHV0KCkgaWQ/OiAoKGQ6IERhdHVtLCBpOiBudW1iZXIsIC4uLnJlc3QpID0+IHN0cmluZylcblxuICAvKiogT3B0aW9uYWwgY29sb3IgYXJyYXkgb3IgY29sb3IgYWNjZXNzb3IgZnVuY3Rpb24gZm9yIGNyb3NzaGFpciBjaXJjbGVzLiBEZWZhdWx0OiBgZCA9PiBkLmNvbG9yYCAqL1xuICBASW5wdXQoKSBjb2xvcj86IENvbG9yQWNjZXNzb3I8RGF0dW0+XG5cbiAgLyoqIFNjYWxlIGZvciBYIGRpbWVuc2lvbiwgZS5nLiBTY2FsZS5zY2FsZUxpbmVhcigpLiBJZiB5b3Ugc2V0IHhTY2FsZSB5b3UnbGwgYmUgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgaXQncyBgZG9tYWluYCBhbmQgYHJhbmdlYCBhcyB3ZWxsLlxuICAgKiBPbmx5IGNvbnRpbnVvdXMgc2NhbGVzIGFyZSBzdXBwb3J0ZWQuXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHhTY2FsZT86IENvbnRpbnVvdXNTY2FsZVxuXG4gIC8qKiBTY2FsZSBmb3IgWSBkaW1lbnNpb24sIGUuZy4gU2NhbGUuc2NhbGVMaW5lYXIoKS4gSWYgeW91IHNldCB5U2NhbGUgeW91J2xsIGJlIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nIGl0J3MgYGRvbWFpbmAgYW5kIGByYW5nZWAgYXMgd2VsbC5cbiAgICogT25seSBjb250aW51b3VzIHNjYWxlcyBhcmUgc3VwcG9ydGVkLlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB5U2NhbGU/OiBDb250aW51b3VzU2NhbGVcblxuICAvKiogSWRlbnRpZmllcyB3aGV0aGVyIHRoZSBjb21wb25lbnQgc2hvdWxkIGJlIGV4Y2x1ZGVkIGZyb20gb3ZlcmFsbCBYIGFuZCBZIGRvbWFpbiBjYWxjdWxhdGlvbnMgb3Igbm90LlxuICAgKiBUaGlzIHByb3BlcnR5IGNhbiBiZSB1c2VmdWwgd2hlbiB5b3Ugd2FudCBwYXNzIGluZGl2aWR1YWwgZGF0YSB0byBhIGNvbXBvbmVudCBhbmQgeW91IGRvbid0IHdhbnQgaXQgdG8gYWZmZWN0XG4gICAqIHRoZSBzY2FsZXMgb2YgdGhlIGNoYXJ0LlxuICAgKiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIGV4Y2x1ZGVGcm9tRG9tYWluQ2FsY3VsYXRpb24/OiBib29sZWFuXG5cbiAgLyoqIE9wdGlvbmFsIHN0cm9rZSBjb2xvciBhY2Nlc3NvciBmdW5jdGlvbiBmb3IgY3Jvc3NoYWlyIGNpcmNsZXMuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHN0cm9rZUNvbG9yPzogQ29sb3JBY2Nlc3NvcjxEYXR1bT5cblxuICAvKiogT3B0aW9uYWwgc3Ryb2tlIHdpZHRoIGZvciBjcm9zc2hhaXIgY2lyY2xlcy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgc3Ryb2tlV2lkdGg/OiBOdW1lcmljQWNjZXNzb3I8RGF0dW0+XG5cbiAgLyoqIFNlcGFyYXRlIGFycmF5IG9mIGFjY2Vzc29ycyBmb3Igc3RhY2tlZCBjb21wb25lbnRzIChlZyBTdGFja2VkQmFyLCBBcmVhKS4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgeVN0YWNrZWQ/OiBOdW1lcmljQWNjZXNzb3I8RGF0dW0+W11cblxuICAvKiogQmFzZWxpbmUgYWNjZXNzb3IgZnVuY3Rpb24gZm9yIHN0YWNrZWQgdmFsdWVzLCB1c2VmdWwgd2l0aCBzdGFja2VkIGFyZWFzLiBEZWZhdWx0OiBgbnVsbGAgKi9cbiAgQElucHV0KCkgYmFzZWxpbmU/OiBOdW1lcmljQWNjZXNzb3I8RGF0dW0+XG5cbiAgLyoqIEFuIGluc3RhbmNlIG9mIHRoZSBUb29sdGlwIGNvbXBvbmVudCB0byBiZSB1c2VkIHdpdGggQ3Jvc3NoYWlyLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB0b29sdGlwPzogVG9vbHRpcCB8IHVuZGVmaW5lZFxuXG4gIC8qKiBUb29sdGlwIHRlbXBsYXRlIGFjY2Vzc29yLiBUaGUgZnVuY3Rpb24gaXMgc3VwcG9zZWQgdG8gcmV0dXJuIGVpdGhlciBhIHZhbGlkIEhUTUwgc3RyaW5nIG9yIGFuIEhUTUxFbGVtZW50LlxuICAgKiBXaGVuIGBzbmFwVG9EYXRhYCBpcyBgZmFsc2VgLCBgZGF0dW1gIHdpbGwgYmUgYHVuZGVmaW5lZGAgYnV0IGBkYXRhYCBhbmQgYGxlZnROZWFyZXN0RGF0dW1JbmRleGAgd2lsbCBiZSBwcm92aWRlZC5cbiAgICogRGVmYXVsdDogYGQgPT4gJydgICovXG4gIEBJbnB1dCgpIHRlbXBsYXRlPzogKGRhdHVtOiBEYXR1bSwgeDogbnVtYmVyIHwgRGF0ZSwgZGF0YTogRGF0dW1bXSwgbGVmdE5lYXJlc3REYXR1bUluZGV4PzogbnVtYmVyKSA9PiBzdHJpbmcgfCBIVE1MRWxlbWVudFxuXG4gIC8qKiBIaWRlIENyb3NzaGFpciB3aGVuIHRoZSBjb3JyZXNwb25kaW5nIGRhdHVtIGVsZW1lbnQgaXMgZmFyIGZyb20gbW91c2UgcG9pbnRlci4gRGVmYXVsdDogYHRydWVgICovXG4gIEBJbnB1dCgpIGhpZGVXaGVuRmFyRnJvbVBvaW50ZXI/OiBib29sZWFuXG5cbiAgLyoqIERpc3RhbmNlIGluIHBpeGVscyB0byBjaGVjayBpbiB0aGUgaGlkZVdoZW5GYXJGcm9tUG9pbnRlciBjb25kaXRpb24uIERlZmF1bHQ6IGAxMDBgICovXG4gIEBJbnB1dCgpIGhpZGVXaGVuRmFyRnJvbVBvaW50ZXJEaXN0YW5jZT86IG51bWJlclxuXG4gIC8qKiBTbmFwIHRvIHRoZSBuZWFyZXN0IGRhdGEgcG9pbnQuXG4gICAqIElmIGRpc2FibGVkLCB0aGUgdG9vbHRpcCB0ZW1wbGF0ZSB3aWxsIHJlY2VpdmUgb25seSB0aGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGUgY3Jvc3NoYWlyIGFuZCB5b3UnbGwgYmUgcmVzcG9uc2libGVcbiAgICogZm9yIGdldHRpbmcgdGhlIHVuZGVybHlpbmcgZGF0YSByZWNvcmRzIGFuZCBjcm9zc2hhaXIgY2lyY2xlcyAoc2VlIHRoZSBgZ2V0Q2lyY2xlc2AgY29uZmlndXJhdGlvbiBvcHRpb24pLlxuICAgKiBEZWZhdWx0OiBgdHJ1ZWAgKi9cbiAgQElucHV0KCkgc25hcFRvRGF0YT86IGJvb2xlYW5cblxuICAvKiogQ3VzdG9tIGZ1bmN0aW9uIGZvciBzZXR0aW5nIHVwIHRoZSBjcm9zc2hhaXIgY2lyY2xlcywgdXN1YWxseSBuZWVkZWQgd2hlbiBgc25hcFRvRGF0YWAgaXMgc2V0IHRvIGBmYWxzZWAuXG4gICAqIFRoZSBmdW5jdGlvbiByZWNlaXZlcyB0aGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGUgY3Jvc3NoYWlyIChpbiB0aGUgZGF0YSBzcGFjZSwgbm90IGluIHBpeGVscyksIHRoZSBkYXRhIGFycmF5LFxuICAgKiB0aGUgYHlTY2FsZWAgaW5zdGFuY2UgdG8gaGVscCB5b3UgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoZSBjaXJjbGVzLCBhbmQgdGhlIG5lYXJlc3QgZGF0dW0gaW5kZXguXG4gICAqIEl0IGhhcyB0byByZXR1cm4gYW4gYXJyYXkgb2YgdGhlIGBDcm9zc2hhaXJDaXJjbGVgIG9iamVjdHM6IGB7IHk6IG51bWJlcjsgY29sb3I6IHN0cmluZzsgb3BhY2l0eT86IG51bWJlciB9W11gLlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBnZXRDaXJjbGVzPzogKHg6IG51bWJlciB8IERhdGUsIGRhdGE6IERhdHVtW10sIHlTY2FsZTogQ29udGludW91c1NjYWxlLCBsZWZ0TmVhcmVzdERhdHVtSW5kZXg/OiBudW1iZXIpID0+IENyb3NzaGFpckNpcmNsZVtdXG5cbiAgLyoqIENhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlIGNyb3NzaGFpciBpcyBtb3ZlZDpcbiAgICogLSBgeGAgaXMgdGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhlIGNyb3NzaGFpciBpbiB0aGUgZGF0YSBzcGFjZTtcbiAgICogLSBgZGF0dW1gIGlzIHRoZSBuZWFyZXN0IGRhdHVtIHRvIHRoZSBjcm9zc2hhaXI7XG4gICAqIC0gYGRhdHVtSW5kZXhgIGlzIHRoZSBpbmRleCBvZiB0aGUgbmVhcmVzdCBkYXR1bS5cbiAgICogLSBgZXZlbnRgIGlzIHRoZSBldmVudCB0aGF0IHRyaWdnZXJlZCB0aGUgY3Jvc3NoYWlyIG1vdmUgKG1vdXNlIG9yIHdoZWVsKS5cbiAgICpcbiAgICogV2hlbiB0aGUgbW91c2UgZ29lcyBvdXQgb2YgdGhlIGNvbnRhaW5lciBhbmQgb24gd2hlZWwgZXZlbnRzLCBhbGwgdGhlIGFyZ3VtZW50cyBhcmUgYHVuZGVmaW5lZGAgZXhjZXB0IGZvciBgZXZlbnRgLlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvbkNyb3NzaGFpck1vdmU/OiAoeD86IG51bWJlciB8IERhdGUsIGRhdHVtPzogRGF0dW0sIGRhdHVtSW5kZXg/OiBudW1iZXIsIGV2ZW50PzogTW91c2VFdmVudCB8IFdoZWVsRXZlbnQpID0+IHZvaWRcblxuICAvKiogRm9yY2UgdGhlIGNyb3NzaGFpciB0byBzaG93IGF0IGEgc3BlY2lmaWMgcG9zaXRpb24uIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGZvcmNlU2hvd0F0PzogbnVtYmVyIHwgRGF0ZVxuXG4gIC8qKiBTa2lwIHJhbmdlIGNoZWNrcyBmb3IgY3Jvc3NoYWlyIHZpc2liaWxpdHkuIFdoZW4gdHJ1ZSwgY3Jvc3NoYWlyIHdpbGwgc2hvdyByZWdhcmRsZXNzIG9mIHBvc2l0aW9uIHdpdGhpbiBjaGFydCBib3VuZHMuIERlZmF1bHQ6IGBmYWxzZWBcbiAgICogVGhpcyBpcyB1c2VmdWwgZm9yIHRlc3RpbmcsIGVzcGVjaWFsbHkgd2hlbiB5b3Ugb25seSB0cmlnZ2VycyBtb3VzZW1vdmUgZXZlbnQgYnV0IGRvZXMgbm90IGhhdmUgcmVhbCBtb3VzZSBldmVudC4gKi9cbiAgQElucHV0KCkgc2tpcFJhbmdlQ2hlY2s/OiBib29sZWFuXG4gIEBJbnB1dCgpIGRhdGE6IERhdHVtW11cblxuICBjb21wb25lbnQ6IENyb3NzaGFpcjxEYXR1bT4gfCB1bmRlZmluZWRcbiAgcHVibGljIGNvbXBvbmVudENvbnRhaW5lcjogQ29udGFpbmVyQ29yZSB8IHVuZGVmaW5lZFxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCAoKTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnQgPSBuZXcgQ3Jvc3NoYWlyPERhdHVtPih0aGlzLmdldENvbmZpZygpKVxuXG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgdGhpcy5jb21wb25lbnQuc2V0RGF0YSh0aGlzLmRhdGEpXG4gICAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyAoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmRhdGEpIHsgdGhpcy5jb21wb25lbnQ/LnNldERhdGEodGhpcy5kYXRhKSB9XG4gICAgdGhpcy5jb21wb25lbnQ/LnNldENvbmZpZyh0aGlzLmdldENvbmZpZygpKVxuICAgIHRoaXMuY29tcG9uZW50Q29udGFpbmVyPy5yZW5kZXIoKVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb25maWcgKCk6IENyb3NzaGFpckNvbmZpZ0ludGVyZmFjZTxEYXR1bT4ge1xuICAgIGNvbnN0IHsgZHVyYXRpb24sIGV2ZW50cywgYXR0cmlidXRlcywgeCwgeSwgaWQsIGNvbG9yLCB4U2NhbGUsIHlTY2FsZSwgZXhjbHVkZUZyb21Eb21haW5DYWxjdWxhdGlvbiwgc3Ryb2tlQ29sb3IsIHN0cm9rZVdpZHRoLCB5U3RhY2tlZCwgYmFzZWxpbmUsIHRvb2x0aXAsIHRlbXBsYXRlLCBoaWRlV2hlbkZhckZyb21Qb2ludGVyLCBoaWRlV2hlbkZhckZyb21Qb2ludGVyRGlzdGFuY2UsIHNuYXBUb0RhdGEsIGdldENpcmNsZXMsIG9uQ3Jvc3NoYWlyTW92ZSwgZm9yY2VTaG93QXQsIHNraXBSYW5nZUNoZWNrIH0gPSB0aGlzXG4gICAgY29uc3QgY29uZmlnID0geyBkdXJhdGlvbiwgZXZlbnRzLCBhdHRyaWJ1dGVzLCB4LCB5LCBpZCwgY29sb3IsIHhTY2FsZSwgeVNjYWxlLCBleGNsdWRlRnJvbURvbWFpbkNhbGN1bGF0aW9uLCBzdHJva2VDb2xvciwgc3Ryb2tlV2lkdGgsIHlTdGFja2VkLCBiYXNlbGluZSwgdG9vbHRpcCwgdGVtcGxhdGUsIGhpZGVXaGVuRmFyRnJvbVBvaW50ZXIsIGhpZGVXaGVuRmFyRnJvbVBvaW50ZXJEaXN0YW5jZSwgc25hcFRvRGF0YSwgZ2V0Q2lyY2xlcywgb25Dcm9zc2hhaXJNb3ZlLCBmb3JjZVNob3dBdCwgc2tpcFJhbmdlQ2hlY2sgfVxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhjb25maWcpIGFzIChrZXlvZiBDcm9zc2hhaXJDb25maWdJbnRlcmZhY2U8RGF0dW0+KVtdXG4gICAga2V5cy5mb3JFYWNoKGtleSA9PiB7IGlmIChjb25maWdba2V5XSA9PT0gdW5kZWZpbmVkKSBkZWxldGUgY29uZmlnW2tleV0gfSlcblxuICAgIHJldHVybiBjb25maWdcbiAgfVxufVxuIl19
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NoYWlyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Nyb3NzaGFpci9jcm9zc2hhaXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFDTCxTQUFTLEdBVVYsTUFBTSxZQUFZLENBQUE7QUFDbkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRM0MsTUFBTSxPQUFPLHFCQUFxQjtJQXFKaEMsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksU0FBUyxDQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRXZELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsNEJBQTRCLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLDhCQUE4QixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDOVUsTUFBTSxNQUFNLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSw0QkFBNEIsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsOEJBQThCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxDQUFBO1FBQ2hWLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUE4QyxDQUFBO1FBQzdFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTO1lBQUUsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUUxRSxPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7O21IQTNLVSxxQkFBcUI7dUdBQXJCLHFCQUFxQixrdkJBRnJCLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLCtDQUZsRSxFQUFFOzRGQUlELHFCQUFxQjtrQkFOakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZ0RBQWdEO29CQUNoRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyx1QkFBdUIsRUFBRSxDQUFDO2lCQUM3RTs4QkFHVSxRQUFRO3NCQUFoQixLQUFLO2dCQW1CRyxNQUFNO3NCQUFkLEtBQUs7Z0JBd0JHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBT0csQ0FBQztzQkFBVCxLQUFLO2dCQUdHLENBQUM7c0JBQVQsS0FBSztnQkFHRyxFQUFFO3NCQUFWLEtBQUs7Z0JBR0csS0FBSztzQkFBYixLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBTUcsNEJBQTRCO3NCQUFwQyxLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxZQUFZO3NCQUFwQixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBR0csOEJBQThCO3NCQUF0QyxLQUFLO2dCQU1HLFVBQVU7c0JBQWxCLEtBQUs7Z0JBT0csVUFBVTtzQkFBbEIsS0FBSztnQkFVRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBSUcsY0FBYztzQkFBdEIsS0FBSztnQkFPRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gISEhIFRoaXMgY29kZSB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQuIFlvdSBzaG91bGQgbm90IGNoYW5nZSBpdCAhISFcbmltcG9ydCB7IENvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgSW5wdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQ3Jvc3NoYWlyLFxuICBDcm9zc2hhaXJDb25maWdJbnRlcmZhY2UsXG4gIENvbnRhaW5lckNvcmUsXG4gIFZpc0V2ZW50VHlwZSxcbiAgVmlzRXZlbnRDYWxsYmFjayxcbiAgTnVtZXJpY0FjY2Vzc29yLFxuICBDb2xvckFjY2Vzc29yLFxuICBDb250aW51b3VzU2NhbGUsXG4gIFRvb2x0aXAsXG4gIENyb3NzaGFpckNpcmNsZSxcbn0gZnJvbSAnQHVub3Zpcy90cydcbmltcG9ydCB7IFZpc1hZQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmlzLWNyb3NzaGFpcicsXG4gIHRlbXBsYXRlOiAnJyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVmlzWFlDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBWaXNDcm9zc2hhaXJDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIFZpc0Nyb3NzaGFpckNvbXBvbmVudDxEYXR1bT4gaW1wbGVtZW50cyBDcm9zc2hhaXJDb25maWdJbnRlcmZhY2U8RGF0dW0+LCBBZnRlclZpZXdJbml0IHtcbiAgLyoqIEFuaW1hdGlvbiBkdXJhdGlvbiBvZiB0aGUgZGF0YSB1cGRhdGUgdHJhbnNpdGlvbnMgaW4gbWlsbGlzZWNvbmRzLiBEZWZhdWx0OiBgNjAwYCAqL1xuICBASW5wdXQoKSBkdXJhdGlvbj86IG51bWJlclxuXG4gIC8qKiBFdmVudHMgY29uZmlndXJhdGlvbi4gQW4gb2JqZWN0IGNvbnRhaW5pbmcgcHJvcGVydGllcyBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiB7XG4gICAqICAgICBcXFtldmVudFR5cGVdOiBjYWxsYmFja0Z1bmN0aW9uXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW0FyZWEuc2VsZWN0b3JzLmFyZWFdOiB7XG4gICAqICAgIGNsaWNrOiAoZCkgPT4gY29uc29sZS5sb2coXCJDbGlja2VkIEFyZWFcIiwgZClcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGAgKi9cbiAgQElucHV0KCkgZXZlbnRzPzoge1xuICAgIFtzZWxlY3Rvcjogc3RyaW5nXToge1xuICAgICAgW2V2ZW50VHlwZSBpbiBWaXNFdmVudFR5cGVdPzogVmlzRXZlbnRDYWxsYmFja1xuICAgIH07XG4gIH1cblxuICAvKiogWW91IGNhbiBzZXQgZXZlcnkgU1ZHIGFuZCBIVE1MIHZpc3VhbGl6YXRpb24gb2JqZWN0IHRvIGhhdmUgYSBjdXN0b20gRE9NIGF0dHJpYnV0ZXMsIHdoaWNoIGlzIHVzZWZ1bFxuICAgKiB3aGVuIHlvdSB3YW50IHRvIGRvIHVuaXQgb3IgZW5kLXRvLWVuZCB0ZXN0aW5nLiBBdHRyaWJ1dGVzIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZTpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiB7XG4gICAqICAgICBcXFthdHRyaWJ1dGVOYW1lXTogYXR0cmlidXRlIGNvbnN0YW50IHZhbHVlIG9yIGFjY2Vzc29yIGZ1bmN0aW9uXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW0FyZWEuc2VsZWN0b3JzLmFyZWFdOiB7XG4gICAqICAgIFwidGVzdC12YWx1ZVwiOiBkID0+IGQudmFsdWVcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGAgKi9cbiAgQElucHV0KCkgYXR0cmlidXRlcz86IHtcbiAgICBbc2VsZWN0b3I6IHN0cmluZ106IHtcbiAgICAgIFthdHRyOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgKChkYXR1bTogYW55KSA9PiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqIE9wdGlvbmFsIGFjY2Vzc29yIGZ1bmN0aW9uIGZvciBnZXR0aW5nIHRoZSB2YWx1ZXMgYWxvbmcgdGhlIFggYXhpcy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgeD86IE51bWVyaWNBY2Nlc3NvcjxEYXR1bT5cblxuICAvKiogT3B0aW9uYWwgc2luZ2xlIG9mIG11bHRpcGxlIGFjY2Vzc29yIGZ1bmN0aW9ucyBmb3IgZ2V0dGluZyB0aGUgdmFsdWVzIGFsb25nIHRoZSBZIGF4aXMuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHk/OiBOdW1lcmljQWNjZXNzb3I8RGF0dW0+IHwgTnVtZXJpY0FjY2Vzc29yPERhdHVtPltdXG5cbiAgLyoqIEFjY2Vzc29yIGZ1bmN0aW9uIGZvciBnZXR0aW5nIHRoZSB1bmlxdWUgZGF0YSByZWNvcmQgaWQuIFVzZWQgZm9yIG1vcmUgcGVyc2lzdGVudCBkYXRhIHVwZGF0ZXMuIERlZmF1bHQ6IGAoZCwgaSkgPT4gZC5pZCA/PyBpYCAqL1xuICBASW5wdXQoKSBpZD86ICgoZDogRGF0dW0sIGk6IG51bWJlciwgLi4ucmVzdCkgPT4gc3RyaW5nKVxuXG4gIC8qKiBPcHRpb25hbCBjb2xvciBhcnJheSBvciBjb2xvciBhY2Nlc3NvciBmdW5jdGlvbiBmb3IgY3Jvc3NoYWlyIGNpcmNsZXMuIERlZmF1bHQ6IGBkID0+IGQuY29sb3JgICovXG4gIEBJbnB1dCgpIGNvbG9yPzogQ29sb3JBY2Nlc3NvcjxEYXR1bT5cblxuICAvKiogU2NhbGUgZm9yIFggZGltZW5zaW9uLCBlLmcuIFNjYWxlLnNjYWxlTGluZWFyKCkuIElmIHlvdSBzZXQgeFNjYWxlIHlvdSdsbCBiZSByZXNwb25zaWJsZSBmb3Igc2V0dGluZyBpdCdzIGBkb21haW5gIGFuZCBgcmFuZ2VgIGFzIHdlbGwuXG4gICAqIE9ubHkgY29udGludW91cyBzY2FsZXMgYXJlIHN1cHBvcnRlZC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgeFNjYWxlPzogQ29udGludW91c1NjYWxlXG5cbiAgLyoqIFNjYWxlIGZvciBZIGRpbWVuc2lvbiwgZS5nLiBTY2FsZS5zY2FsZUxpbmVhcigpLiBJZiB5b3Ugc2V0IHlTY2FsZSB5b3UnbGwgYmUgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgaXQncyBgZG9tYWluYCBhbmQgYHJhbmdlYCBhcyB3ZWxsLlxuICAgKiBPbmx5IGNvbnRpbnVvdXMgc2NhbGVzIGFyZSBzdXBwb3J0ZWQuXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHlTY2FsZT86IENvbnRpbnVvdXNTY2FsZVxuXG4gIC8qKiBJZGVudGlmaWVzIHdoZXRoZXIgdGhlIGNvbXBvbmVudCBzaG91bGQgYmUgZXhjbHVkZWQgZnJvbSBvdmVyYWxsIFggYW5kIFkgZG9tYWluIGNhbGN1bGF0aW9ucyBvciBub3QuXG4gICAqIFRoaXMgcHJvcGVydHkgY2FuIGJlIHVzZWZ1bCB3aGVuIHlvdSB3YW50IHBhc3MgaW5kaXZpZHVhbCBkYXRhIHRvIGEgY29tcG9uZW50IGFuZCB5b3UgZG9uJ3Qgd2FudCBpdCB0byBhZmZlY3RcbiAgICogdGhlIHNjYWxlcyBvZiB0aGUgY2hhcnQuXG4gICAqIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgZXhjbHVkZUZyb21Eb21haW5DYWxjdWxhdGlvbj86IGJvb2xlYW5cblxuICAvKiogT3B0aW9uYWwgc3Ryb2tlIGNvbG9yIGFjY2Vzc29yIGZ1bmN0aW9uIGZvciBjcm9zc2hhaXIgY2lyY2xlcy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgc3Ryb2tlQ29sb3I/OiBDb2xvckFjY2Vzc29yPERhdHVtPlxuXG4gIC8qKiBPcHRpb25hbCBzdHJva2Ugd2lkdGggZm9yIGNyb3NzaGFpciBjaXJjbGVzLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBzdHJva2VXaWR0aD86IE51bWVyaWNBY2Nlc3NvcjxEYXR1bT5cblxuICAvKiogUmFkaXVzIG9mIGNyb3NzaGFpciBjaXJjbGVzIGluIHBpeGVscy4gRGVmYXVsdDogYDNgICovXG4gIEBJbnB1dCgpIGNpcmNsZVJhZGl1cz86IG51bWJlclxuXG4gIC8qKiBTZXBhcmF0ZSBhcnJheSBvZiBhY2Nlc3NvcnMgZm9yIHN0YWNrZWQgY29tcG9uZW50cyAoZWcgU3RhY2tlZEJhciwgQXJlYSkuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHlTdGFja2VkPzogTnVtZXJpY0FjY2Vzc29yPERhdHVtPltdXG5cbiAgLyoqIEJhc2VsaW5lIGFjY2Vzc29yIGZ1bmN0aW9uIGZvciBzdGFja2VkIHZhbHVlcywgdXNlZnVsIHdpdGggc3RhY2tlZCBhcmVhcy4gRGVmYXVsdDogYG51bGxgICovXG4gIEBJbnB1dCgpIGJhc2VsaW5lPzogTnVtZXJpY0FjY2Vzc29yPERhdHVtPlxuXG4gIC8qKiBBbiBpbnN0YW5jZSBvZiB0aGUgVG9vbHRpcCBjb21wb25lbnQgdG8gYmUgdXNlZCB3aXRoIENyb3NzaGFpci4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgdG9vbHRpcD86IFRvb2x0aXAgfCB1bmRlZmluZWRcblxuICAvKiogVG9vbHRpcCB0ZW1wbGF0ZSBhY2Nlc3Nvci4gVGhlIGZ1bmN0aW9uIGlzIHN1cHBvc2VkIHRvIHJldHVybiBlaXRoZXIgYSB2YWxpZCBIVE1MIHN0cmluZyBvciBhbiBIVE1MRWxlbWVudC5cbiAgICogV2hlbiBgc25hcFRvRGF0YWAgaXMgYGZhbHNlYCwgYGRhdHVtYCB3aWxsIGJlIGB1bmRlZmluZWRgIGJ1dCBgZGF0YWAgYW5kIGBsZWZ0TmVhcmVzdERhdHVtSW5kZXhgIHdpbGwgYmUgcHJvdmlkZWQuXG4gICAqIERlZmF1bHQ6IGBkID0+ICcnYCAqL1xuICBASW5wdXQoKSB0ZW1wbGF0ZT86IChkYXR1bTogRGF0dW0sIHg6IG51bWJlciB8IERhdGUsIGRhdGE6IERhdHVtW10sIGxlZnROZWFyZXN0RGF0dW1JbmRleD86IG51bWJlcikgPT4gc3RyaW5nIHwgSFRNTEVsZW1lbnRcblxuICAvKiogSGlkZSBDcm9zc2hhaXIgd2hlbiB0aGUgY29ycmVzcG9uZGluZyBkYXR1bSBlbGVtZW50IGlzIGZhciBmcm9tIG1vdXNlIHBvaW50ZXIuIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSBoaWRlV2hlbkZhckZyb21Qb2ludGVyPzogYm9vbGVhblxuXG4gIC8qKiBEaXN0YW5jZSBpbiBwaXhlbHMgdG8gY2hlY2sgaW4gdGhlIGhpZGVXaGVuRmFyRnJvbVBvaW50ZXIgY29uZGl0aW9uLiBEZWZhdWx0OiBgMTAwYCAqL1xuICBASW5wdXQoKSBoaWRlV2hlbkZhckZyb21Qb2ludGVyRGlzdGFuY2U/OiBudW1iZXJcblxuICAvKiogU25hcCB0byB0aGUgbmVhcmVzdCBkYXRhIHBvaW50LlxuICAgKiBJZiBkaXNhYmxlZCwgdGhlIHRvb2x0aXAgdGVtcGxhdGUgd2lsbCByZWNlaXZlIG9ubHkgdGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhlIGNyb3NzaGFpciBhbmQgeW91J2xsIGJlIHJlc3BvbnNpYmxlXG4gICAqIGZvciBnZXR0aW5nIHRoZSB1bmRlcmx5aW5nIGRhdGEgcmVjb3JkcyBhbmQgY3Jvc3NoYWlyIGNpcmNsZXMgKHNlZSB0aGUgYGdldENpcmNsZXNgIGNvbmZpZ3VyYXRpb24gb3B0aW9uKS5cbiAgICogRGVmYXVsdDogYHRydWVgICovXG4gIEBJbnB1dCgpIHNuYXBUb0RhdGE/OiBib29sZWFuXG5cbiAgLyoqIEN1c3RvbSBmdW5jdGlvbiBmb3Igc2V0dGluZyB1cCB0aGUgY3Jvc3NoYWlyIGNpcmNsZXMsIHVzdWFsbHkgbmVlZGVkIHdoZW4gYHNuYXBUb0RhdGFgIGlzIHNldCB0byBgZmFsc2VgLlxuICAgKiBUaGUgZnVuY3Rpb24gcmVjZWl2ZXMgdGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhlIGNyb3NzaGFpciAoaW4gdGhlIGRhdGEgc3BhY2UsIG5vdCBpbiBwaXhlbHMpLCB0aGUgZGF0YSBhcnJheSxcbiAgICogdGhlIGB5U2NhbGVgIGluc3RhbmNlIHRvIGhlbHAgeW91IGNhbGN1bGF0ZSB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGUgY2lyY2xlcywgYW5kIHRoZSBuZWFyZXN0IGRhdHVtIGluZGV4LlxuICAgKiBJdCBoYXMgdG8gcmV0dXJuIGFuIGFycmF5IG9mIHRoZSBgQ3Jvc3NoYWlyQ2lyY2xlYCBvYmplY3RzOiBgeyB5OiBudW1iZXI7IGNvbG9yOiBzdHJpbmc7IG9wYWNpdHk/OiBudW1iZXIgfVtdYC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgZ2V0Q2lyY2xlcz86ICh4OiBudW1iZXIgfCBEYXRlLCBkYXRhOiBEYXR1bVtdLCB5U2NhbGU6IENvbnRpbnVvdXNTY2FsZSwgbGVmdE5lYXJlc3REYXR1bUluZGV4PzogbnVtYmVyKSA9PiBDcm9zc2hhaXJDaXJjbGVbXVxuXG4gIC8qKiBDYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSBjcm9zc2hhaXIgaXMgbW92ZWQ6XG4gICAqIC0gYHhgIGlzIHRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoZSBjcm9zc2hhaXIgaW4gdGhlIGRhdGEgc3BhY2U7XG4gICAqIC0gYGRhdHVtYCBpcyB0aGUgbmVhcmVzdCBkYXR1bSB0byB0aGUgY3Jvc3NoYWlyO1xuICAgKiAtIGBkYXR1bUluZGV4YCBpcyB0aGUgaW5kZXggb2YgdGhlIG5lYXJlc3QgZGF0dW0uXG4gICAqIC0gYGV2ZW50YCBpcyB0aGUgZXZlbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIGNyb3NzaGFpciBtb3ZlIChtb3VzZSBvciB3aGVlbCkuXG4gICAqXG4gICAqIFdoZW4gdGhlIG1vdXNlIGdvZXMgb3V0IG9mIHRoZSBjb250YWluZXIgYW5kIG9uIHdoZWVsIGV2ZW50cywgYWxsIHRoZSBhcmd1bWVudHMgYXJlIGB1bmRlZmluZWRgIGV4Y2VwdCBmb3IgYGV2ZW50YC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25Dcm9zc2hhaXJNb3ZlPzogKHg/OiBudW1iZXIgfCBEYXRlLCBkYXR1bT86IERhdHVtLCBkYXR1bUluZGV4PzogbnVtYmVyLCBldmVudD86IE1vdXNlRXZlbnQgfCBXaGVlbEV2ZW50KSA9PiB2b2lkXG5cbiAgLyoqIEZvcmNlIHRoZSBjcm9zc2hhaXIgdG8gc2hvdyBhdCBhIHNwZWNpZmljIHBvc2l0aW9uLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBmb3JjZVNob3dBdD86IG51bWJlciB8IERhdGVcblxuICAvKiogU2tpcCByYW5nZSBjaGVja3MgZm9yIGNyb3NzaGFpciB2aXNpYmlsaXR5LiBXaGVuIHRydWUsIGNyb3NzaGFpciB3aWxsIHNob3cgcmVnYXJkbGVzcyBvZiBwb3NpdGlvbiB3aXRoaW4gY2hhcnQgYm91bmRzLiBEZWZhdWx0OiBgZmFsc2VgXG4gICAqIFRoaXMgaXMgdXNlZnVsIGZvciB0ZXN0aW5nLCBlc3BlY2lhbGx5IHdoZW4geW91IG9ubHkgdHJpZ2dlcnMgbW91c2Vtb3ZlIGV2ZW50IGJ1dCBkb2VzIG5vdCBoYXZlIHJlYWwgbW91c2UgZXZlbnQuICovXG4gIEBJbnB1dCgpIHNraXBSYW5nZUNoZWNrPzogYm9vbGVhblxuXG4gIC8qKiBNaW5pbXVtIGZyYWN0aW9uIChgMGAgdG8gYDFgKSBvZiB0aGUgY29udGFpbmVyJ3MgYXJlYSB0aGF0IG11c3QgYmUgdmlzaWJsZSBpbiB0aGVcbiAgICogdmlld3BvcnQgZm9yIHRoZSBDcm9zc2hhaXIgKGFuZCBpdHMgVG9vbHRpcCkgdG8gYmUgZGlzcGxheWVkLiBUaGlzIHByZXZlbnRzIHRoZVxuICAgKiBDcm9zc2hhaXIgZnJvbSBzaG93aW5nIHdoZW4gdGhlIGNoYXJ0IGlzIG1vc3RseSBzY3JvbGxlZCBvdXQgb2Ygdmlldy4gQ2hhcnRzIHRoYXQgYXJlXG4gICAqIHdpZGVyIG9yIHRhbGxlciB0aGFuIHRoZSB2aWV3cG9ydCBtYXkgbmV2ZXIgcmVhY2ggdGhlIGRlZmF1bHQgcmF0aW8sIHNvIGxvd2VyIHRoaXNcbiAgICogdmFsdWUgKG9yIHNldCBpdCB0byBgMGAgdG8gYWx3YXlzIHNob3cgdGhlIENyb3NzaGFpcikgZm9yIGxhcmdlIGNoYXJ0cy4gRGVmYXVsdDogYDAuMzVgICovXG4gIEBJbnB1dCgpIHZpc2liaWxpdHlUaHJlc2hvbGQ/OiBudW1iZXJcbiAgQElucHV0KCkgZGF0YTogRGF0dW1bXVxuXG4gIGNvbXBvbmVudDogQ3Jvc3NoYWlyPERhdHVtPiB8IHVuZGVmaW5lZFxuICBwdWJsaWMgY29tcG9uZW50Q29udGFpbmVyOiBDb250YWluZXJDb3JlIHwgdW5kZWZpbmVkXG5cbiAgbmdBZnRlclZpZXdJbml0ICgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudCA9IG5ldyBDcm9zc2hhaXI8RGF0dW0+KHRoaXMuZ2V0Q29uZmlnKCkpXG5cbiAgICBpZiAodGhpcy5kYXRhKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudC5zZXREYXRhKHRoaXMuZGF0YSlcbiAgICAgIHRoaXMuY29tcG9uZW50Q29udGFpbmVyPy5yZW5kZXIoKVxuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzIChjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuZGF0YSkgeyB0aGlzLmNvbXBvbmVudD8uc2V0RGF0YSh0aGlzLmRhdGEpIH1cbiAgICB0aGlzLmNvbXBvbmVudD8uc2V0Q29uZmlnKHRoaXMuZ2V0Q29uZmlnKCkpXG4gICAgdGhpcy5jb21wb25lbnRDb250YWluZXI/LnJlbmRlcigpXG4gIH1cblxuICBwcml2YXRlIGdldENvbmZpZyAoKTogQ3Jvc3NoYWlyQ29uZmlnSW50ZXJmYWNlPERhdHVtPiB7XG4gICAgY29uc3QgeyBkdXJhdGlvbiwgZXZlbnRzLCBhdHRyaWJ1dGVzLCB4LCB5LCBpZCwgY29sb3IsIHhTY2FsZSwgeVNjYWxlLCBleGNsdWRlRnJvbURvbWFpbkNhbGN1bGF0aW9uLCBzdHJva2VDb2xvciwgc3Ryb2tlV2lkdGgsIGNpcmNsZVJhZGl1cywgeVN0YWNrZWQsIGJhc2VsaW5lLCB0b29sdGlwLCB0ZW1wbGF0ZSwgaGlkZVdoZW5GYXJGcm9tUG9pbnRlciwgaGlkZVdoZW5GYXJGcm9tUG9pbnRlckRpc3RhbmNlLCBzbmFwVG9EYXRhLCBnZXRDaXJjbGVzLCBvbkNyb3NzaGFpck1vdmUsIGZvcmNlU2hvd0F0LCBza2lwUmFuZ2VDaGVjaywgdmlzaWJpbGl0eVRocmVzaG9sZCB9ID0gdGhpc1xuICAgIGNvbnN0IGNvbmZpZyA9IHsgZHVyYXRpb24sIGV2ZW50cywgYXR0cmlidXRlcywgeCwgeSwgaWQsIGNvbG9yLCB4U2NhbGUsIHlTY2FsZSwgZXhjbHVkZUZyb21Eb21haW5DYWxjdWxhdGlvbiwgc3Ryb2tlQ29sb3IsIHN0cm9rZVdpZHRoLCBjaXJjbGVSYWRpdXMsIHlTdGFja2VkLCBiYXNlbGluZSwgdG9vbHRpcCwgdGVtcGxhdGUsIGhpZGVXaGVuRmFyRnJvbVBvaW50ZXIsIGhpZGVXaGVuRmFyRnJvbVBvaW50ZXJEaXN0YW5jZSwgc25hcFRvRGF0YSwgZ2V0Q2lyY2xlcywgb25Dcm9zc2hhaXJNb3ZlLCBmb3JjZVNob3dBdCwgc2tpcFJhbmdlQ2hlY2ssIHZpc2liaWxpdHlUaHJlc2hvbGQgfVxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhjb25maWcpIGFzIChrZXlvZiBDcm9zc2hhaXJDb25maWdJbnRlcmZhY2U8RGF0dW0+KVtdXG4gICAga2V5cy5mb3JFYWNoKGtleSA9PiB7IGlmIChjb25maWdba2V5XSA9PT0gdW5kZWZpbmVkKSBkZWxldGUgY29uZmlnW2tleV0gfSlcblxuICAgIHJldHVybiBjb25maWdcbiAgfVxufVxuIl19