@splunk/visualizations 24.3.3 → 24.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.loki/reference/chrome_docker_PureVisualizations_PureSingleValueRadial_basic_scp_theme.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Area_Area_Placeholder_if_datasource_does_not_have_any_data.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Area_Area_Placeholder_if_viz_does_not_connect_to_datasource.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Bar_Bar_Placeholder_if_datasource_does_not_have_any_data.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Bar_Bar_Placeholder_if_viz_does_not_connect_to_datasource.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Bubble_Bubble_Placeholder_if_datasource_does_not_have_any_data.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Bubble_Bubble_Placeholder_if_viz_does_not_connect_to_datasource.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Choropleth_Svg_Choropleth_Svg_Click.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Choropleth_Svg_Choropleth_Svg_Default.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Choropleth_Svg_Choropleth_Svg_Missing_Props_Message_When_No_Svg.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Choropleth_Svg_Choropleth_Svg_Placeholder_If_No_Svg_And_No_Data.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Choropleth_Svg_Choropleth_Svg_Set_the_color_of_multiple_areas_in_an_Svg_based_on_a_rangeValue_threshold.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Choropleth_Svg_Choropleth_Svg_Set_the_color_of_multiple_areas_in_an_Svg_based_on_areaIds.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Choropleth_Svg_Choropleth_Svg_Set_the_color_using_multiMap_formatter.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Choropleth_Svg_Choropleth_Svg_Svg_Shows_Even_When_No_Datasources.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Choropleth_Svg_Choropleth_Svg_Use_Local_To_Download_Svg.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Column_Column_Placeholder_if_datasource_does_not_have_any_data.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Column_Column_Placeholder_if_viz_does_not_connect_to_datasource.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Filler_Gauge_Filler_Gauge_Background_Color_orange.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Filler_Gauge_Filler_Gauge_Basic_Filler_Gauge.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Filler_Gauge_Filler_Gauge_Gauge_Color_computed_using_rangeValue_formatter.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Filler_Gauge_Filler_Gauge_Gauge_Color_yellow.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Filler_Gauge_Filler_Gauge_Label_Display_number_default.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Filler_Gauge_Filler_Gauge_Label_Display_off.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Filler_Gauge_Filler_Gauge_Label_Display_percentage.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Filler_Gauge_Filler_Gauge_Major_Tick_Interval_10.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Filler_Gauge_Filler_Gauge_Major_Tick_Interval_auto_default.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Filler_Gauge_Filler_Gauge_Orientation_horizontal.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Filler_Gauge_Filler_Gauge_Orientation_horizontal_height_100_no_placeholder.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Filler_Gauge_Filler_Gauge_Orientation_vertical_default.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Filler_Gauge_Filler_Gauge_Placeholder_if_datasource_does_not_have_any_data.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Filler_Gauge_Filler_Gauge_Placeholder_if_viz_does_not_connect_to_datasource.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Filler_Gauge_Filler_Gauge_Value_Display_number_default.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Filler_Gauge_Filler_Gauge_Value_Display_off.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Filler_Gauge_Filler_Gauge_Value_Display_percentage.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Filler_Gauge_Filler_Gauge_Value_Display_percentage_Label_Display_percentage.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Image_Image_No_image_src_present_in_options.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Image_Image_No_options_present.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Line_Line_Placeholder_if_datasource_does_not_have_any_data.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Line_Line_Placeholder_if_viz_does_not_connect_to_datasource.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_LinkGraph_LinkGraph_Basic_LinkGraph.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_LinkGraph_LinkGraph_Field_Order_First_and_Last_Fields.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_LinkGraph_LinkGraph_Field_Order_From_the_First_to_the_Last_Fields.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_LinkGraph_LinkGraph_Field_Order_From_the_Last_to_the_First_Fields.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_LinkGraph_LinkGraph_Node_Text_Highlight_Color.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_LinkGraph_LinkGraph_Result_Limit_3.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_LinkGraph_LinkGraph_Show_Placeholder.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Basic_Map.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Bubble_Layer.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Bubble_Layer_Geostats_By_Additional_Cases.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Bubble_Layer_Geostats_By_GET.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Bubble_Layer_Geostats_By_GET_Dynamic_Coloring.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Bubble_Layer_Geostats_By_Internal_Fields.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Bubble_Layer_Geostats_By_Mostly_null.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Bubble_Layer_Geostats_By_Static_Coloring.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Bubble_Layer_Geostats_Dynamic_Coloring.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Marker_layer.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Marker_layer_Dynamic_coloring.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Marker_layer_Result_Limit_Set_To_3.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Marker_layer_with_geostats_data_No_render.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Restricted_Zoom.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Set_Map_tiles.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Markdown_Markdown_Background_Color_af575a.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Markdown_Markdown_Basic_Markdown.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Markdown_Markdown_Begin_with_Text_Instead_of_Header.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Markdown_Markdown_Markdown_with_number_as_DSL.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Marker_Gauge_Marker_Gauge_Background_Color_blue.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Marker_Gauge_Marker_Gauge_Basic_Marker_Gauge.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Marker_Gauge_Marker_Gauge_Gauge_Ranges_0_to_30_purple_30_to_90_blue_90_to_100_pink.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Marker_Gauge_Marker_Gauge_Gauge_Ranges_negative_10_to_50_blue.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Marker_Gauge_Marker_Gauge_Label_Display_number_default.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Marker_Gauge_Marker_Gauge_Label_Display_off.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Marker_Gauge_Marker_Gauge_Label_Display_percentage.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Marker_Gauge_Marker_Gauge_Major_Tick_Interval_7.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Marker_Gauge_Marker_Gauge_Orientation_horizontal.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Marker_Gauge_Marker_Gauge_Orientation_vertical_default.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Marker_Gauge_Marker_Gauge_Placeholder_if_datasource_does_not_have_any_data.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Marker_Gauge_Marker_Gauge_Placeholder_if_viz_does_not_connect_to_datasource.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Marker_Gauge_Marker_Gauge_Value_Display_number_default.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Marker_Gauge_Marker_Gauge_Value_Display_off.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Marker_Gauge_Marker_Gauge_Value_Display_percentage.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Marker_Gauge_Marker_Gauge_Value_Display_percentage_Label_Display_percentage.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Parallel_Coordinates_Parallel_Coordinates_Array_column_values.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Parallel_Coordinates_Parallel_Coordinates_Background_Color_yellow.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Parallel_Coordinates_Parallel_Coordinates_Basic_Parallel_Coordinates.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Parallel_Coordinates_Parallel_Coordinates_Categorical_dataSources_excessive_categorical_data.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Parallel_Coordinates_Parallel_Coordinates_Larger_Dimensions_width_800_height_500.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Parallel_Coordinates_Parallel_Coordinates_Line_Color_pink.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Parallel_Coordinates_Parallel_Coordinates_Line_Opacity_0_3.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Parallel_Coordinates_Parallel_Coordinates_Numerical_dataSources.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Parallel_Coordinates_Parallel_Coordinates_Show_Null_Axis_false.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Parallel_Coordinates_Parallel_Coordinates_Show_Placeholder.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Parallel_Coordinates_Parallel_Coordinates_Stringified_Numerical_dataSources.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Pie_Pie_Placeholder_if_datasource_does_not_have_any_data.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Pie_Pie_Placeholder_if_values_in_datasource_are_all_invalid.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Pie_Pie_Placeholder_if_viz_does_not_connect_to_datasource.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Background_Color_green.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Basic_Punchcard.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Bubble_Color_red.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Bubble_Label_Display_all_default.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Bubble_Label_Display_max.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Bubble_Label_Display_off.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Bubble_Row_Scale_global_default.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Bubble_Row_Scale_row.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Bubble_Size_Max_50.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Bubble_Size_Max_75_Bubble_Size_Min_15_Bubble_Size_Method_radius_Bubble_Row_Scale_row.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Bubble_Size_Max_75_Bubble_Size_Min_15_Color_Mode_categorical.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Bubble_Size_Method_area_default.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Bubble_Size_Method_radius.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Bubble_Size_Min_10.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Color_Mode_categorical.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Color_Mode_categorical_Legend_Display_off.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Color_Mode_categorical_Legend_Display_right_default.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Color_Mode_categorical_Series_Color_red_blue_green_orange_cyan.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Color_Mode_dynamic_default.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Multi_Series.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Placeholder_if_datasource_does_not_have_any_data.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Placeholder_if_viz_does_not_connect_to_datasource.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Show_Default_Sort_false_default.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Show_Default_Sort_true.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Show_Dynamic_Bubble_Size_false.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Show_Dynamic_Bubble_Size_false_Bubble_Radius_Max_25.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Show_Dynamic_Bubble_Size_false_Bubble_Radius_Min_5.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Show_Dynamic_Bubble_Size_false_Bubble_Radius_Min_5_Bubble_Radius_Max_30_Bubble_Row_Scale_row.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Show_Dynamic_Bubble_Size_false_Bubble_Radius_Min_5_Bubble_Radius_Max_30_Color_Mode_categorical_Bubble_Size_Method_radius.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Punchcard_Punchcard_Show_Dynamic_Bubble_Size_true_default.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Sankey_Sankey_Background_Color_pink.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Sankey_Sankey_Backward_Link_Self_Loop.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Sankey_Sankey_Basic_Sankey.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Sankey_Sankey_Color_Mode_dynamic.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Sankey_Sankey_Larger_Dimension.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Sankey_Sankey_Link_Opacity_0_8.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Sankey_Sankey_Link_Opacity_Changed.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Sankey_Sankey_Link_Values_Not_Default.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Sankey_Sankey_Show_Placeholder.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Scatter_Scatter_Placeholder_if_datasource_does_not_have_any_data.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Scatter_Scatter_Placeholder_if_viz_does_not_connect_to_datasource.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Icon_Single_Value_Icon_Basic_Single_Value_Icon.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Icon_Single_Value_Icon_Change_Icon_Color_For_A_Remote_Icon.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Icon_Single_Value_Icon_Set_The_Icon_As_A_Remote_Icon.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Icon_Single_Value_Icon_Set_the_backgroundColor_based_on_the_majorValue.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Icon_Single_Value_Icon_Set_the_icon_color_based_on_the_majorValue.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Icon_Single_Value_Icon_Set_the_majorColor_based_on_the_majorValue.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Icon_Single_Value_Icon_Use_Mixed_Type_Series_Data.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Icon_Single_Value_Icon_Use_Numerical_Series_Data.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Icon_Single_Value_Icon_Use_String_Type_Series_Data.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Icon_Single_Value_Icon_Use_The_First_Series_Data_If_No_Matched_Type.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Icon_Single_Value_Icon_Use_Time_Type_Series_Data.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Radial_Single_Value_Radial_Background_From_Major_Value.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Radial_Single_Value_Radial_Background_From_Trend_Value.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Radial_Single_Value_Radial_Basic_Single_Value_Radial.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Radial_Single_Value_Radial_Major_Value_Color.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Radial_Single_Value_Radial_Major_Value_Color_By_Trend_Value.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Radial_Single_Value_Radial_Max_Value_1000.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Radial_Single_Value_Radial_Radial_Color_By_Major_Value.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Radial_Single_Value_Radial_Show_Placeholder.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Radial_Single_Value_Radial_Use_String_Type_Series_Data.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Single_Value_Basic_Single_Value.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Single_Value_Change_The_Color_Of_Major_Value_Based_On_Its_Value.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Single_Value_No_Trend_Value.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Single_Value_Set_The_Background_Color_Based_On_The_Major_Value.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Single_Value_Set_The_Background_Color_Based_On_The_Trend_Value.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Single_Value_Set_The_Color_Of_Major_Value_Based_On_The_Trend_Value.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Single_Value_Set_The_Color_Of_The_Trend_Indicators_And_Number_Based_On_The_Trend_Value.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Single_Value_Show_Gaps_For_Null_Value_In_Sparkline.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Single_Value_Show_Placeholder.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Single_Value_Trend_Index_Out_Of_Range.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Single_Value_Trend_Value_Is_Zero.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Single_Value_Use_Mixed_Type_Series_Data.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Single_Value_Use_Numerical_Series_Data.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Single_Value_Use_String_Type_Series_Data.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Single_Value_Use_The_First_Series_Data_If_No_Matched_Type.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Single_Value_Single_Value_Use_Time_Type_Series_Data.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Dark_Background_No_Stripe.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Dark_Background_Stripe.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Placeholder.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Show_Internal_Fields_false.png +0 -0
- package/Area.config.js +40 -31
- package/Area.config.js.map +1 -1
- package/Area.js +150 -130
- package/Area.js.map +1 -1
- package/Bar.config.js +33 -24
- package/Bar.config.js.map +1 -1
- package/Bar.js +143 -123
- package/Bar.js.map +1 -1
- package/Bubble.config.js +26 -17
- package/Bubble.config.js.map +1 -1
- package/Bubble.js +136 -116
- package/Bubble.js.map +1 -1
- package/ChoroplethSvg.config.js +24 -15
- package/ChoroplethSvg.config.js.map +1 -1
- package/ChoroplethSvg.js +139 -119
- package/ChoroplethSvg.js.map +1 -1
- package/Column.config.js +33 -24
- package/Column.config.js.map +1 -1
- package/Column.js +143 -123
- package/Column.js.map +1 -1
- package/Ellipse.config.js +20 -19
- package/Ellipse.config.js.map +1 -1
- package/Ellipse.js +106 -94
- package/Ellipse.js.map +1 -1
- package/FillerGauge.config.js +31 -22
- package/FillerGauge.config.js.map +1 -1
- package/FillerGauge.js +124 -104
- package/FillerGauge.js.map +1 -1
- package/Image.config.js +10 -10
- package/Image.config.js.map +1 -1
- package/Image.js +90 -75
- package/Image.js.map +1 -1
- package/Line.config.js +33 -24
- package/Line.config.js.map +1 -1
- package/Line.js +143 -123
- package/Line.js.map +1 -1
- package/LinkGraph.config.js +52 -42
- package/LinkGraph.config.js.map +1 -1
- package/LinkGraph.js +143 -123
- package/LinkGraph.js.map +1 -1
- package/Map.config.js +30 -14
- package/Map.config.js.map +1 -1
- package/Map.js +1583 -1127
- package/Map.js.map +1 -1
- package/Markdown.config.js +8 -8
- package/Markdown.config.js.map +1 -1
- package/Markdown.js +176 -161
- package/Markdown.js.map +1 -1
- package/MarkerGauge.config.js +21 -11
- package/MarkerGauge.config.js.map +1 -1
- package/MarkerGauge.js +180 -162
- package/MarkerGauge.js.map +1 -1
- package/ParallelCoordinates.config.js +21 -11
- package/ParallelCoordinates.config.js.map +1 -1
- package/ParallelCoordinates.js +128 -108
- package/ParallelCoordinates.js.map +1 -1
- package/Pie.config.js +21 -11
- package/Pie.config.js.map +1 -1
- package/Pie.js +193 -109
- package/Pie.js.map +1 -1
- package/Punchcard.config.js +21 -11
- package/Punchcard.config.js.map +1 -1
- package/Punchcard.js +153 -133
- package/Punchcard.js.map +1 -1
- package/Rectangle.config.js +22 -22
- package/Rectangle.config.js.map +1 -1
- package/Rectangle.js +157 -149
- package/Rectangle.js.map +1 -1
- package/Sankey.config.js +31 -21
- package/Sankey.config.js.map +1 -1
- package/Sankey.js +3109 -2961
- package/Sankey.js.map +1 -1
- package/Scatter.config.js +25 -15
- package/Scatter.config.js.map +1 -1
- package/Scatter.js +173 -155
- package/Scatter.js.map +1 -1
- package/SingleValue.config.js +41 -32
- package/SingleValue.config.js.map +1 -1
- package/SingleValue.js +252 -234
- package/SingleValue.js.map +1 -1
- package/SingleValueBasic.js +16 -16
- package/SingleValueBasic.js.map +1 -1
- package/SingleValueIcon.config.js +38 -37
- package/SingleValueIcon.config.js.map +1 -1
- package/SingleValueIcon.js +2640 -2767
- package/SingleValueIcon.js.map +1 -1
- package/SingleValueRadial.config.js +174 -136
- package/SingleValueRadial.config.js.map +1 -1
- package/SingleValueRadial.js +164 -146
- package/SingleValueRadial.js.map +1 -1
- package/Table.config.js +30 -20
- package/Table.config.js.map +1 -1
- package/Table.js +261 -259
- package/Table.js.map +1 -1
- package/common/Charting.js +17 -16
- package/common/Charting.js.map +1 -1
- package/common/EventsDoc.js +15 -14
- package/common/EventsDoc.js.map +1 -1
- package/common/GaugeMajorTicks.js +2 -2
- package/common/GaugeMajorTicks.js.map +1 -1
- package/common/GaugeValueMarker.js +2 -2
- package/common/GaugeValueMarker.js.map +1 -1
- package/common/OptionsDoc.js +8 -7
- package/common/OptionsDoc.js.map +1 -1
- package/common/OverviewDoc.js +22 -22
- package/common/OverviewDoc.js.map +1 -1
- package/common/SplunkVisualizationApi.js +2 -2
- package/common/SplunkVisualizationApi.js.map +1 -1
- package/common/ThemesDoc.js +14 -14
- package/common/ThemesDoc.js.map +1 -1
- package/common/chartingUtils.js +2 -2
- package/common/chartingUtils.js.map +1 -1
- package/common/docUtils.js +4 -4
- package/common/docUtils.js.map +1 -1
- package/common/gaugeUtils.js +11 -11
- package/common/gaugeUtils.js.map +1 -1
- package/common/shapeUtils.js +12 -12
- package/common/shapeUtils.js.map +1 -1
- package/common/withDashboardViz.js +29 -16
- package/common/withDashboardViz.js.map +1 -1
- package/package.json +12 -11
package/LinkGraph.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"prop-types\"","webpack:///external \"react\"","webpack:///external \"lodash\"","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///external \"styled-components\"","webpack:///./src/common/interfaces/VizBehavior.ts","webpack:///./src/common/utils/configUtils.ts","webpack:///./src/common/utils/hocUtils.ts","webpack:///external \"@babel/runtime/helpers/defineProperty\"","webpack:///external \"@splunk/visualizations-shared/Message\"","webpack:///external \"@babel/runtime/helpers/classCallCheck\"","webpack:///external \"@splunk/visualizations-shared/colorUtils\"","webpack:///./src/common/hocs/FixedSizeContainer.tsx","webpack:///external \"@splunk/visualizations-shared/style\"","webpack:///external \"@splunk/visualizations-shared/schemaUtils\"","webpack:///external \"@babel/runtime/helpers/createClass\"","webpack:///external \"@splunk/visualizations-shared/SizeAwareWrapper\"","webpack:///external \"@splunk/themes/variables\"","webpack:///external \"@babel/runtime/helpers/typeof\"","webpack:///external \"@splunk/themes/pick\"","webpack:///./src/common/hooks/getSorting.ts","webpack:///./src/common/hooks/getPagination.ts","webpack:///./src/common/utils/JSONSchemaUtils.ts","webpack:///./src/common/components/IconPlaceholder.tsx","webpack:///./src/common/interfaces/VizCategory.ts","webpack:///./src/common/withDashboardViz.tsx","webpack:///external \"@splunk/themes/getSettingsFromThemedProps\"","webpack:///external \"@splunk/visualization-encoding/Options\"","webpack:///external \"@splunk/visualizations-shared/SanitizeProps\"","webpack:///./src/common/SplunkVisualization.tsx","webpack:///./src/common/interfaces/VizActionHandler.ts","webpack:///./src/common/interfaces/DataSource.ts","webpack:///./src/common/hooks/useDeepMemo.ts","webpack:///./src/common/components/MissingPropsMessage.tsx","webpack:///./src/common/hocs/withEditModeCover.tsx","webpack:///./src/common/hocs/withPlaceholder.tsx","webpack:///external \"@babel/runtime/helpers/toConsumableArray\"","webpack:///external \"@splunk/visualizations-shared/colorConstants\"","webpack:///external \"@splunk/visualization-color-palettes\"","webpack:///external \"@splunk/visualization-icons\"","webpack:///external \"@babel/runtime/helpers/slicedToArray\"","webpack:///external \"@babel/runtime/helpers/inherits\"","webpack:///external \"@babel/runtime/helpers/possibleConstructorReturn\"","webpack:///external \"@babel/runtime/helpers/getPrototypeOf\"","webpack:///external \"@splunk/visualizations-shared/dataSourceUtils\"","webpack:///./src/LinkGraph/LinkGraph.tsx","webpack:///./src/LinkGraph/PureLinkGraph/PureLinkGraphUtils.ts","webpack:///./src/LinkGraph/PureLinkGraph/components/GraphStyles.ts","webpack:///./src/LinkGraph/index.ts","webpack:///./src/LinkGraph/PureLinkGraph/PureLinkGraph.tsx","webpack:///./src/LinkGraph/PureLinkGraph/components/Graph.tsx","webpack:///./src/LinkGraph/PureLinkGraph/components/Edges.tsx","webpack:///./src/LinkGraph/PureLinkGraph/components/Nodes.tsx","webpack:///./src/LinkGraph/PureLinkGraph/components/Node.tsx","webpack:///external \"@splunk/react-ui/Paragraph\"","webpack:///./src/LinkGraph/PureLinkGraph/components/Field.tsx","webpack:///external \"@splunk/react-ui/Dropdown\"","webpack:///external \"@splunk/react-ui/Button\"","webpack:///external \"@splunk/react-ui/Menu\"","webpack:///external \"@splunk/react-ui/Chip\"","webpack:///./src/LinkGraph/PureLinkGraph/components/FieldStyles.tsx","webpack:///./src/LinkGraph/config.ts"],"names":[],"mappings":"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","file":"LinkGraph.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 175);\n","module.exports = require(\"prop-types\");","module.exports = require(\"react\");","module.exports = require(\"lodash\");","module.exports = require(\"@splunk/ui-utils/i18n\");","module.exports = require(\"styled-components\");","export enum VizBehavior {\n /**\n * Dynamic Options Behavior.\n * This allows visualization options to be powered by data\n *\n * **Example**\n *\n * sparklineValues: \">primary|seriesByIndex(0)\"\n * would configure sparklineValues with an array of data points\n * coming from the first series in the primary datasource\n *\n */\n DYNAMIC_OPTIONS = 'dynamic-options',\n EVENTS = 'events',\n /**\n * Placeholder behavior: visualization will display a placeholder rather than fail if any of the `requiredProps` is\n * missing.\n * @type {string}\n */\n PLACEHOLDER = 'placeholder',\n PAGE_AND_SORT = 'page-and-sort',\n}\n","import { get, range } from 'lodash';\nimport { DYNAMIC_OPTIONS_DSL_PATTERN } from '@splunk/visualizations-shared/schemaUtils';\nimport type { JSONSchema7Definition } from 'json-schema';\nimport { VizBehavior } from '../interfaces/VizBehavior';\nimport { VizConfig } from '../interfaces/VizConfig';\nimport { OptionsSchema } from '../interfaces/OptionsSchema';\n\nexport interface PresetEntry {\n name: string;\n value: any;\n label: string;\n}\n\nconst dynamicOptionsDSLType = {\n type: 'string',\n pattern: DYNAMIC_OPTIONS_DSL_PATTERN,\n} as const;\n\n/**\n * Helper function to extend an options schema with dynamic options DSL\n * @param optionsSchema a visualization's options schema\n * @returns an updated options schema that additionally allows strings starting with > for each option\n */\nfunction enhanceOptionsSchemaWithDynamicOptions(\n optionsSchema: OptionsSchema | JSONSchema7Definition\n): OptionsSchema {\n const enhancedOptionsSchema: OptionsSchema = {};\n Object.keys(optionsSchema).forEach((key): void => {\n const {\n // The next a few are schema annotations, we should leave them as is.\n // Note: in reality we don't use `readOnly`, `writeOnly` or `examples`, but they are listed here for completeness.\n // Ref: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01\n title,\n description,\n readOnly,\n writeOnly,\n examples,\n default: defaultValue,\n // The next a few need special care\n type,\n properties,\n patternProperties,\n // The rest should be handled together\n ...remainingSchemaEntry\n } = optionsSchema[key];\n\n const annotations = {\n ...(title !== undefined && { title }),\n ...(description !== undefined && { description }),\n ...(readOnly !== undefined && { readOnly }),\n ...(writeOnly !== undefined && { writeOnly }),\n ...(examples !== undefined && { examples }),\n ...(defaultValue !== undefined && { default: defaultValue }),\n };\n\n if (type === 'object') {\n enhancedOptionsSchema[key] = {\n ...remainingSchemaEntry,\n ...annotations,\n type,\n ...(properties && { properties: enhanceOptionsSchemaWithDynamicOptions(properties) }),\n };\n if (patternProperties) {\n let enhancedPatternProperties = {};\n Object.keys(patternProperties).forEach((opt): void => {\n enhancedPatternProperties = {\n ...enhancedPatternProperties,\n ...enhanceOptionsSchemaWithDynamicOptions({ [opt]: patternProperties[opt] }),\n };\n });\n enhancedOptionsSchema[key].patternProperties = enhancedPatternProperties;\n }\n } else {\n enhancedOptionsSchema[key] = {\n ...annotations,\n anyOf: [\n // we can't assume `type` is always there because there are `enum` and `const`.\n { ...(type !== undefined && { type }), ...remainingSchemaEntry },\n dynamicOptionsDSLType,\n ],\n };\n }\n });\n return enhancedOptionsSchema;\n}\n\n/**\n * Helper function to enhance a Visualization Config as needed based on behaviors specified in supports block\n * @param vizConfig a Visualization Config\n * @returns an enhanced Visualization Config containing updated config entries based on behaviors it supports\n */\nfunction enhanceConfig(vizConfig: VizConfig): VizConfig {\n const enhancedConfig: VizConfig = vizConfig;\n if (vizConfig.supports.indexOf(VizBehavior.DYNAMIC_OPTIONS) !== -1) {\n enhancedConfig.optionsSchema = enhanceOptionsSchemaWithDynamicOptions(vizConfig.optionsSchema);\n }\n return enhancedConfig;\n}\n\nfunction isDynamicOption(option?: string): boolean {\n return (option && typeof option === 'string' && option.trim().startsWith('>')) || false;\n}\n\n// private helpers to improve readability of getInitialPreset\n// this shouldn't be tested since this util isn't something that we expect to use outside of getInitialPreset\n\n/**\n * this checks to make sure that all values within vizContext are compatible with the given preset's context to determine the initialPreset\n * if a preset has explicitly specified a key as being undefined, the vizContext must also has that key as undefined, or else this CANNOT be the initialPreset\n * the inverse is true; if a preset has key is NOT undefined, it must also be NOT undefined in the corresponding vizContext\n * the internal config contents are irrelevant (as the user could customize them in source), just as long as the presence of `undefined`s match up\n *\n * Since the presetConfigs have explicit undefined keys to override the existing config, we need to explicitly check the undefined values\n */\nfunction hasCompatibleContexts(\n vizContext: { [configKey: string]: any },\n presetContext: { [configKey: string]: any }\n): boolean {\n const presetContextKeys = Object.keys(presetContext);\n return presetContextKeys.every(\n (contextKey): boolean =>\n (presetContext[contextKey] === undefined && vizContext[contextKey] === undefined) ||\n (presetContext[contextKey] !== undefined && vizContext[contextKey] !== undefined)\n );\n}\n\n/**\n * Checks to make sure that dynamic (non-dynamic) options in a given preset are also dynamic (non-dynamic) in the vizOptions\n */\nfunction hasCompatibleOptions(\n vizOptions: { [configKey: string]: any },\n presetOptions: { [configKey: string]: any }\n): boolean {\n const presetOptionKeys = Object.keys(presetOptions);\n return presetOptionKeys.every(\n (optionKey): boolean =>\n isDynamicOption(presetOptions[optionKey]) === isDynamicOption(vizOptions[optionKey])\n );\n}\n\n/**\n * Evaluates whether there is an initialPreset that fits the current state of vizContext + vizOptions\n * This function ignores extraneous vizOptions or vizContext keys, as they could be outside the scope of what the preset is intended to configure\n *\n * @param {Object} vizContext - the current vizContext definition\n * @param {Object} vizOptions - the current vizOptions definition\n * @param {PresetEntry[]} presets - the list of presets, one of which can be considered an initialPreset\n */\nfunction getInitialPreset(\n vizContext: { [configKey: string]: any },\n vizOptions: { [configKey: string]: any },\n presets: PresetEntry[]\n): PresetEntry | null {\n return presets.find((preset): boolean => {\n const presetContext = get(preset, ['value', 'context'], {});\n const presetOptions = get(preset, ['value', 'options'], {});\n const presetContextKeys = Object.keys(presetContext);\n const presetOptionKeys = Object.keys(presetOptions);\n\n // all presets have to explicitly specify which options to reset (i.e. need explicitly undefined keys)\n // if not, then the preset is invalid in config.ts\n if (presetContextKeys.length === 0 || presetOptionKeys.length === 0) return false;\n\n return (\n hasCompatibleContexts(vizContext, presetContext) &&\n hasCompatibleOptions(vizOptions, presetOptions)\n );\n });\n}\n\ninterface PrecisionOption {\n label: string;\n value: number;\n}\n\n/**\n * generates number precision values for a Select editor\n *\n * @param {Number} numPrecisionValues - number of integer precision values to generate\n * @returns {{ label: string; value; string }[]} array of { label, value } tuples\n */\nfunction generatePrecisionValues(numPrecisionValues: number): PrecisionOption[] {\n return range(0, numPrecisionValues + 1).map(\n (i): PrecisionOption => ({\n label: `${i} (0${i > 0 ? '.' : ''}${'0'.repeat(i)})`, // e.g. 0.000 for numPrecisionValues = 3\n value: i,\n })\n );\n}\n\nexport {\n enhanceConfig,\n enhanceOptionsSchemaWithDynamicOptions,\n isDynamicOption,\n getInitialPreset,\n generatePrecisionValues,\n};\n","import { cloneDeep } from 'lodash';\nimport { DashboardVizProps } from '../interfaces/DashboardVizProps';\n\nexport type DashboardVizType = React.ComponentType<DashboardVizProps>;\n\n/**\n * @method extendStaticWrapperProps\n * @param {Object} props\n * @param {DashboardVizType} props.Wrapper\n * @param {DashboardVizType} props.Visualization\n */\nexport const extendStaticWrapperProps = ({\n Wrapper,\n Visualization,\n}: {\n [key: string]: DashboardVizType;\n}): void => {\n const extendProperties = ['propTypes', 'defaultProps', 'config'];\n extendProperties.forEach((prop: string): void => {\n if (Visualization[prop]) {\n // eslint-disable-next-line no-param-reassign\n Wrapper[prop] = Visualization[prop];\n }\n });\n};\n\n/**\n * helper to deeply merge objects while preserving arrays in earlier source objects\n * deeply nested primitive keys are merged similarly to lodash's defaultsDeep, while keys with arrays of primitives will be preserved if already present in the resultant merged object\n * this prevents default arrays of primitives from appending values to user-defined arrays (this occurs if the default array is longer than the user-defined one).\n * Array of objects gets merged with the defaults, where the defaults can be an array of objects. Closest matching default object from the defaults list based on key - value pair\n * will be used for merging defaults for each object in the array. If no closest match found, first object in default array list used for merging.\n *\n * @method deepMergeWithArrayPrimitiveOverrides\n * @param {Object} initial - target object to merge values into\n * @param {Object[]} sources - other default options to be merged into the resultant object if no explicit value is provided, with earlier args taking precedence over later ones\n *\n * @returns {Object}\n */\nexport const deepMergeWithArrayPrimitiveOverrides = (initial, ...sources) => {\n const clone = cloneDeep(initial);\n sources.forEach(sourceToApply => {\n Object.keys(sourceToApply).forEach(sourceKey => {\n if (!Object.prototype.hasOwnProperty.call(clone, sourceKey)) {\n clone[sourceKey] = cloneDeep(sourceToApply[sourceKey]);\n }\n if (\n clone[sourceKey] &&\n typeof clone[sourceKey] === 'object' &&\n !Array.isArray(clone[sourceKey]) &&\n typeof sourceToApply[sourceKey] === 'object'\n ) {\n clone[sourceKey] = deepMergeWithArrayPrimitiveOverrides(\n clone[sourceKey],\n sourceToApply[sourceKey]\n );\n } else if (\n Array.isArray(clone[sourceKey]) &&\n typeof clone[sourceKey][0] === 'object' &&\n !Array.isArray(clone[sourceKey][0])\n ) {\n // If option is an array of objects\n for (let i = 0; i < clone[sourceKey].length; i += 1) {\n if (typeof clone[sourceKey][i] === 'object') {\n const closestMatchIdx = findClosestMatchFromDefaultList(\n sourceToApply[sourceKey],\n clone[sourceKey][i]\n );\n if (closestMatchIdx > -1) {\n clone[sourceKey][i] = deepMergeWithArrayPrimitiveOverrides(\n clone[sourceKey][i],\n sourceToApply[sourceKey][closestMatchIdx]\n );\n }\n }\n }\n }\n });\n });\n return clone;\n};\n\n/**\n * Finds the closest matching object from the list, which has the max same key value pairs.\n * Returns the index of match if found, or -1\n * For eg :- \n const list = [{\n type: \"marker\",\n lat: \"value1\"\n }, {\n type: \"bubble\",\n size: \"value2\"\n }];\n\n const obj = {\n type: 'bubble'\n };\n\n findClosestMatch(list, obj) -> returns index 1.\n */\nexport const findClosestMatchFromDefaultList = (\n searchList: Array<Record<string, unknown>>,\n inputObj: Record<string, unknown>\n): number => {\n if (!Array.isArray(searchList) || searchList.length === 0) {\n return -1;\n }\n const keys = Object.keys(inputObj);\n let maxMatchCnt = 0;\n let maxMatchIdx = 0;\n\n searchList.forEach((item, idx) => {\n let matchCnt = 0;\n keys.forEach(key => {\n if (item[key] === inputObj[key]) {\n matchCnt += 1;\n }\n });\n if (Math.max(maxMatchCnt, matchCnt) > maxMatchCnt) {\n maxMatchCnt = matchCnt;\n maxMatchIdx = idx;\n }\n });\n return maxMatchIdx;\n};\n","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@splunk/visualizations-shared/Message\");","module.exports = require(\"@babel/runtime/helpers/classCallCheck\");","module.exports = require(\"@splunk/visualizations-shared/colorUtils\");","import * as React from 'react';\nimport styled from 'styled-components';\nimport SizeAwareWrapper from '@splunk/visualizations-shared/SizeAwareWrapper';\nimport { toPx } from '@splunk/visualizations-shared/style';\nimport { isColor } from '@splunk/visualizations-shared/colorUtils';\n\n// Global provided via webpack\n// eslint-disable-next-line no-underscore-dangle\ndeclare const __VISION_VERSION__: string;\n\ninterface ItemProps {\n backgroundColor?: string;\n width?: string | number;\n}\n\nconst Item = styled.div.attrs<ItemProps>(({ width }) => ({\n style: {\n width: toPx(width),\n },\n}))<ItemProps>`\n position: relative;\n background-color: ${(props): string =>\n (isColor(props.backgroundColor) && props.backgroundColor) || props.theme.defaultBackgroundColor}};\n`;\n\ninterface FixSizeItemProps {\n backgroundColor?: string;\n height?: string | number;\n width?: string | number;\n}\n\n// Use `.attrs()` for highly dynamic styles. Ref: https://github.com/styled-components/styled-components/issues/134#issuecomment-312415291\nconst FixSizeItem = styled.div.attrs<FixSizeItemProps>(({ width, height }): {\n style: { width?: string; height?: string };\n} => ({\n style: {\n ...(width && { width: toPx(width) }),\n ...(height && { height: toPx(height) }),\n },\n}))<FixSizeItemProps>`\n position: relative;\n flex-direction: column;\n flex: 1;\n display: flex;\n background-color: ${(props): string =>\n (isColor(props.backgroundColor) && props.backgroundColor) || props.theme.defaultBackgroundColor}};\n`;\n\nconst ItemContent = styled.div`\n position: relative;\n min-height: 100px;\n width: 100%;\n`;\n\nconst FixSizeItemContent = styled.div`\n min-height: 0px;\n flex: 1;\n position: relative;\n box-sizing: border-box;\n`;\n\ninterface HeightAndWidthProps {\n width?: string | number;\n height?: string | number;\n backgroundColor?: string;\n}\n\nconst withFixedSizeContainer = <P extends HeightAndWidthProps>(\n Viz: React.ComponentType<P>\n): React.ComponentType<P> => {\n const FixedSizeContainer = (props: P): React.ReactElement => {\n const { width, height, backgroundColor } = props;\n\n if (!height) {\n return (\n <Item data-test=\"item\" width={width} backgroundColor={backgroundColor}>\n <ItemContent>\n <Viz {...props} />\n </ItemContent>\n </Item>\n );\n }\n return (\n <FixSizeItem\n data-test=\"fix-size-item\"\n data-splunk-visualization-version={__VISION_VERSION__}\n width={width}\n height={height}\n backgroundColor={backgroundColor}\n >\n <FixSizeItemContent>\n <SizeAwareWrapper>\n {({ width: newWidth, height: newHeight }): React.ReactElement => (\n <Viz {...props} width={newWidth} height={newHeight} />\n )}\n </SizeAwareWrapper>\n </FixSizeItemContent>\n </FixSizeItem>\n );\n };\n FixedSizeContainer.displayName = 'withFixedSizeContainer';\n return FixedSizeContainer;\n};\n\nexport default withFixedSizeContainer;\n","module.exports = require(\"@splunk/visualizations-shared/style\");","module.exports = require(\"@splunk/visualizations-shared/schemaUtils\");","module.exports = require(\"@babel/runtime/helpers/createClass\");","module.exports = require(\"@splunk/visualizations-shared/SizeAwareWrapper\");","module.exports = require(\"@splunk/themes/variables\");","module.exports = require(\"@babel/runtime/helpers/typeof\");","module.exports = require(\"@splunk/themes/pick\");","import * as T from 'prop-types';\nimport { has, isFunction } from 'lodash';\nimport { DataSourceMeta, SortDirType, validSortDirs } from '../interfaces/DataSource';\n\nexport interface SortParams {\n currentSortKey?: undefined | string;\n currentSortDir?: undefined | SortDirType;\n onSort?: (e: MouseEvent, { sortKey, sortDir }: { sortKey: string; sortDir: SortDirType }) => void;\n}\n\nexport const SortParamsPropTypes = T.shape({\n currentSortKey: T.string,\n currentSortDir: T.oneOf(validSortDirs),\n onSort: T.func,\n});\n\nexport const getSortingParams = ({ requestParams, onRequestParamsChange }: DataSourceMeta): SortParams => {\n let currentSortKey;\n let currentSortDir;\n\n const nextSortDirMap = {\n asc: 'desc',\n desc: 'asc',\n none: 'asc',\n };\n\n let onSort;\n if (isFunction(onRequestParamsChange)) {\n if (requestParams && has(requestParams, 'sort')) {\n currentSortKey = Object.keys(requestParams.sort).shift();\n currentSortDir = requestParams.sort[currentSortKey];\n }\n\n // undid memoization since there is a dependency on requestParams, which is a deeply nested object\n onSort = (e, { sortKey, sortDir }): void => {\n if (typeof sortKey === 'string') {\n const nextSortDir = has(nextSortDirMap, sortDir) ? nextSortDirMap[sortDir] : 'none';\n onRequestParamsChange({\n ...requestParams,\n ...{ offset: 0, sort: { [sortKey]: nextSortDir } },\n });\n } else {\n onRequestParamsChange(requestParams);\n }\n };\n }\n\n return {\n currentSortKey,\n currentSortDir,\n onSort,\n };\n};\n","import * as T from 'prop-types';\nimport { cloneDeep, isFunction, noop } from 'lodash';\nimport { DataSourceMeta, RequestParams } from '../interfaces/DataSource';\n\nexport interface OnChangeParams {\n page?: number;\n count?: number;\n}\nexport interface PaginatorParams {\n isPaging?: boolean;\n current?: number;\n totalPages?: number;\n onChange?: (e: MouseEvent, x: OnChangeParams) => void;\n}\n\nexport const PaginatorParamsPropTypes = T.shape({\n isPaging: T.bool,\n current: T.number,\n totalPages: T.number,\n onChange: T.func,\n});\n\nexport const getPaginationParams = ({\n requestParams,\n meta,\n onRequestParamsChange,\n}: DataSourceMeta): PaginatorParams => {\n const totalCount = (meta && meta.totalCount) || 0;\n const offset = (requestParams && requestParams.offset) || 0;\n const count = requestParams && requestParams.count;\n const totalPages = typeof count === 'number' && count > 0 ? Math.ceil(totalCount / count) : 0;\n const current = typeof count === 'number' && count > 0 ? Math.floor(offset / count) + 1 : 0;\n const isPaging = totalPages > 1 && isFunction(onRequestParamsChange);\n\n const onChangeHandler = (e, { page, count: countArg }: OnChangeParams): void => {\n const newParams: RequestParams = cloneDeep(requestParams);\n\n if (typeof countArg === 'number') {\n newParams.count = countArg;\n newParams.offset = 0;\n }\n\n const pageCount = typeof newParams.count === 'number' ? newParams.count : 10;\n if (typeof page === 'number' && page > 0) {\n newParams.count = pageCount;\n newParams.offset = (page - 1) * pageCount;\n }\n\n onRequestParamsChange(newParams);\n };\n\n return {\n isPaging,\n current,\n totalPages,\n onChange: isFunction(onRequestParamsChange) ? onChangeHandler : noop,\n };\n};\n","/* eslint-disable no-param-reassign */\nimport type { JSONSchema7Definition } from 'json-schema';\nimport { has, isEmpty, get } from 'lodash';\nimport { KV } from '../interfaces/Object';\nimport { OptionsSchema } from '../interfaces/OptionsSchema';\n\nexport const pickFieldFromJSONSchema = (\n optionsSchema: OptionsSchema | JSONSchema7Definition,\n fieldName = 'default'\n): KV =>\n Object.keys(optionsSchema).reduce((accum: Record<string, unknown>, k): Record<string, unknown> => {\n if (has(optionsSchema[k], fieldName)) {\n accum[k] = optionsSchema[k][fieldName];\n } else if (get(optionsSchema, [k, 'type']) === 'object' && has(optionsSchema[k], 'properties')) {\n const nestedSchema = pickFieldFromJSONSchema(optionsSchema[k].properties, fieldName);\n if (!isEmpty(nestedSchema)) {\n accum[k] = nestedSchema;\n }\n }\n return accum;\n }, {});\n","import * as React from 'react';\nimport * as T from 'prop-types';\nimport { get } from 'lodash';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Message from '@splunk/visualizations-shared/Message';\nimport { DataSource } from '../interfaces/DataSource';\nimport withFixedSizeContainer from '../hocs/FixedSizeContainer';\n\n/**\n * @method shouldShowIconPlaceholder\n * @param {object} dataSources\n * @param {boolean} loading\n * @returns {boolean}\n */\nexport const shouldShowIconPlaceholder = (\n dataSources: { [name: string]: DataSource },\n loading = false\n): boolean => {\n const data = get(dataSources, 'primary.data.columns[0]', undefined);\n const noData = data === undefined;\n const fields = get(dataSources, 'primary.data.fields[0]', undefined);\n const noFields = fields === undefined;\n return loading || noData || noFields;\n};\n\nexport interface IconPlaceholderProps {\n icon?: React.ComponentClass<any>;\n width?: string | number;\n height?: string | number;\n backgroundColor?: string;\n}\n\nconst propTypes: Record<keyof IconPlaceholderProps, T.Validator<any>> = {\n icon: T.func,\n width: T.oneOfType([T.string, T.number]),\n height: T.oneOfType([T.string, T.number]),\n // eslint-disable-next-line react/no-unused-prop-types\n backgroundColor: T.string,\n};\n\n/**\n * @method IconPlaceholder\n * @param {IconPlaceholderProps} props\n * @returns {React.ReactElement}\n */\nconst IconPlaceholder = (props: IconPlaceholderProps): React.ReactElement => {\n const { width, height, icon } = props;\n if (icon) {\n return React.createElement(icon, {\n style: {\n left: '50%',\n top: '50%',\n color: 'grey',\n position: 'absolute',\n transform: 'translate(-50%, -50%)',\n },\n width: '50%',\n height: '50%',\n });\n }\n\n return <Message width={width} height={height} level=\"warning\" message={_('No DataSource Connected')} />;\n};\n\nIconPlaceholder.propTypes = propTypes;\nIconPlaceholder.defaultProps = {\n width: '100%',\n height: 250,\n};\n\nexport default withFixedSizeContainer(IconPlaceholder);\n","export enum VizCategory {\n SINGLE_VALUE = 'Single Value',\n TRENDS = 'Trends',\n COMPARISONS = 'Comparisons',\n TABLE = 'Table',\n GAUGE = 'Gauge',\n DISTRIBUTIONS = 'Distributions',\n CHOROPLETH = 'Choropleth Maps',\n SHAPES = 'Shapes',\n MISC = 'misc',\n FLOW = 'Flow',\n CORRELATION = 'Correlation',\n SPATIAL = 'Spatial',\n}\n","import * as React from 'react';\nimport { camelCase, has, get, defaultsDeep } from 'lodash';\nimport getSettingsFromThemedProps from '@splunk/themes/getSettingsFromThemedProps';\nimport { Options as Opts } from '@splunk/visualization-encoding/Options';\nimport { withSanitizedProps } from '@splunk/visualizations-shared/SanitizeProps';\n\nimport { withTheme } from 'styled-components';\nimport SplunkVisualization from './SplunkVisualization';\nimport { DashboardVizProps } from './interfaces/DashboardVizProps';\nimport { VizConfig } from './interfaces/VizConfig';\nimport { VizProps } from './interfaces/VizProps';\nimport { VizBehavior } from './interfaces/VizBehavior';\nimport { DataSource } from './interfaces/DataSource';\nimport { getSortingParams } from './hooks/getSorting';\nimport { getPaginationParams } from './hooks/getPagination';\nimport { useDeepMemo } from './hooks/useDeepMemo';\nimport { pickFieldFromJSONSchema } from './utils/JSONSchemaUtils';\nimport MissingPropsMessage, { missingKeys } from './components/MissingPropsMessage';\nimport withEditModeCover from './hocs/withEditModeCover';\nimport withPlaceholder from './hocs/withPlaceholder';\nimport { ChartingProps } from './Charting';\nimport { deepMergeWithArrayPrimitiveOverrides } from './utils/hocUtils';\n\ntype HOC = (props: DashboardVizProps) => React.ReactElement<DashboardVizProps>;\nexport interface DashboardVizOpts {\n ReactViz: React.ComponentType<ChartingProps | VizProps>; // we will wrap this in DashboardViz (see const DashboardViz = ...)\n vizConfig: VizConfig;\n computeVizProps?: (props) => any;\n disableEditModeCover?: boolean;\n useIconPlaceholder?: (\n dataSources: { [name: string]: DataSource },\n loading: boolean,\n options: Record<string, unknown>\n ) => boolean;\n}\n\n/**\n * hoc that wraps a pure react visualization in a Dashboard visualization\n * @param {DashboardVizOpts} opts\n * @returns {HOC}\n */\nconst withDashboardViz = (opts: DashboardVizOpts): HOC => {\n const {\n ReactViz,\n vizConfig,\n computeVizProps = () => {},\n disableEditModeCover,\n useIconPlaceholder,\n } = opts;\n\n // sanitizing props before sending them to reactviz.\n const SanitizedReactViz = withSanitizedProps(ReactViz);\n const defaultOptions = pickFieldFromJSONSchema(vizConfig.optionsSchema, 'default');\n\n const DashboardViz = (props: DashboardVizProps): React.ReactElement<DashboardVizProps> => {\n const {\n mode,\n hasEventHandlers,\n dataSources, // type of { [key: string]: DataSource }\n options,\n context = {},\n width,\n height,\n onComputedProps,\n onEventTrigger,\n theme,\n onRequestParamsChange,\n } = props;\n\n const themeFunc = themeVar => vizConfig.themes[themeVar]?.(props);\n const bgColorFromTheme = themeFunc('defaultBackgroundColor');\n const {\n family: currentThemeFamily,\n colorScheme: currentThemeColorScheme,\n density: currentThemeDensity,\n } = getSettingsFromThemedProps({ theme });\n\n let evaluatedOptions: Opts = {}; // evaluatedOptions need to be initialized as an empty object\n evaluatedOptions = useDeepMemo((): Record<string, unknown> => {\n try {\n return Opts.evaluate(\n {\n context: defaultsDeep({}, context, vizConfig.defaultContext),\n options: deepMergeWithArrayPrimitiveOverrides({}, options, defaultOptions),\n },\n dataSources,\n themeFunc\n );\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(`unexpected error evaluating options: + ${e.message}`);\n return {};\n }\n }, [currentThemeFamily, currentThemeColorScheme, currentThemeDensity, options, context, dataSources]);\n\n // useEffect hook needs to be initialized before any early returns\n // this is in accordance with the order of hook calls being the same on each render https://reactjs.org/docs/hooks-rules.html#explanation\n React.useEffect((): void => {\n onComputedProps(evaluatedOptions);\n });\n\n // present warning message if any required props are missing\n const { requiredProps = [], supports } = vizConfig;\n const missing = missingKeys(requiredProps, evaluatedOptions);\n if (missing.length > 0 && supports.includes(VizBehavior.PLACEHOLDER)) {\n return (\n <MissingPropsMessage\n data-test=\"missing-props-message\"\n width={width}\n height={height}\n missingProps={missing}\n backgroundColor={bgColorFromTheme}\n />\n );\n }\n\n // events\n const eventCallbackProps = {};\n if (hasEventHandlers && mode === 'view' && vizConfig.supports.indexOf(VizBehavior.EVENTS) > -1) {\n const supportedEvents = vizConfig.events;\n Object.keys(supportedEvents).forEach((eventName): void => {\n const eventCallbackPropName = camelCase(`on.${eventName}`);\n eventCallbackProps[eventCallbackPropName] = null;\n // todo: refactor single value and single value icon to send payload from viz\n // then remove these lines\n const { payloadKeys } = supportedEvents[eventName];\n let payload = {};\n if (Array.isArray(payloadKeys) && payloadKeys.length) {\n payloadKeys.forEach(p => {\n payload[p] = evaluatedOptions[p];\n });\n }\n\n eventCallbackProps[eventCallbackPropName] = (ev): Record<string, unknown> => {\n if (ev && ev.payload) {\n payload = ev.payload;\n }\n\n return onEventTrigger({ originalEvent: ev, payload, type: eventName });\n };\n });\n }\n // compute pure viz props which are not from options\n const computedVizProps = computeVizProps({\n ...props,\n ...evaluatedOptions,\n ...eventCallbackProps,\n themeFunc,\n });\n\n /**\n * PAGE_AND_SORT behavior\n *\n * Some visualizations, like table, requires metadata about the datasource,\n * like total number of results, current count, offset, and sort, for rendering\n * paginator and sorting direction. In this approach, the visualization\n * allow users to set 'paginateDataSourceKey' to select which datasource\n * should the visualization extract the metadata from. It defaults to 'primary' datasource.\n * The visualization config should set the PAGE_AND_SORT behavior to receive\n * 'requestParams', 'meta' and onRequestParams callback as props.\n *\n * In future, we could automatically detect which all datasources are being used\n * and bind those magically to pagination/sorting behavior.\n */\n let dataSourceMetadata = {};\n const OptionKey = 'paginateDataSourceKey';\n const paginateDataSourceKey =\n (has(evaluatedOptions, OptionKey) && evaluatedOptions[OptionKey]) || 'primary';\n if (\n vizConfig.supports.indexOf(VizBehavior.PAGE_AND_SORT) > -1 &&\n has(dataSources, paginateDataSourceKey)\n ) {\n const requestParams = get(dataSources, [paginateDataSourceKey, 'requestParams'], {});\n const meta = get(dataSources, [paginateDataSourceKey, 'meta'], {});\n const handleRequestParamsChange = (payload: Record<string, unknown>): void =>\n onRequestParamsChange(paginateDataSourceKey, payload);\n\n const sortParams = getSortingParams({\n requestParams,\n meta,\n onRequestParamsChange: handleRequestParamsChange,\n });\n\n const paginatorParams = getPaginationParams({\n requestParams,\n meta,\n onRequestParamsChange: handleRequestParamsChange,\n });\n\n dataSourceMetadata = {\n sortParams,\n paginatorParams,\n };\n }\n\n return (\n <SanitizedReactViz\n mode={mode}\n width={width}\n height={height}\n {...evaluatedOptions}\n {...computedVizProps}\n {...eventCallbackProps}\n {...dataSourceMetadata}\n />\n );\n };\n\n DashboardViz.propTypes = {\n ...SplunkVisualization.propTypes,\n ...ReactViz.propTypes,\n };\n\n DashboardViz.defaultProps = {\n ...SplunkVisualization.defaultProps,\n ...ReactViz.defaultProps,\n // using withTheme requires component to receive theme prop. In case the consumer did not provide ThemeProvider, a default empty object will prevent warnings.\n theme: {},\n };\n // attach viz config\n DashboardViz.config = vizConfig;\n\n // @ts-ignore: TODO fix sc upgrade TS issues\n return withTheme(\n withPlaceholder(withEditModeCover(DashboardViz, disableEditModeCover), useIconPlaceholder)\n );\n};\n\nexport default withDashboardViz;\n","module.exports = require(\"@splunk/themes/getSettingsFromThemedProps\");","module.exports = require(\"@splunk/visualization-encoding/Options\");","module.exports = require(\"@splunk/visualizations-shared/SanitizeProps\");","/* eslint-disable react/no-unused-prop-types,react/prefer-stateless-function */\nimport * as T from 'prop-types';\nimport { noop } from 'lodash';\nimport { DashboardVizProps } from './interfaces/DashboardVizProps';\nimport { DefaultVizActionHandler } from './interfaces/VizActionHandler';\n\n// this is identical to the initial height and width we use in BaseVisualization in dashboard-visualizations\nexport const INITIAL_WIDTH = 250;\nexport const INITIAL_HEIGHT = 250;\n\n/**\n * A Splunk visualization\n */\nclass SplunkVisualization {\n static propTypes: Record<keyof DashboardVizProps, T.Validator<any>> = {\n /**\n * display mode\n */\n mode: T.oneOf(['view', 'edit', 'export']).isRequired,\n /**\n * width in pixel or string, defaults to 100%\n */\n width: T.oneOfType([T.string, T.number]).isRequired,\n /**\n * height in pixel or string\n */\n height: T.oneOfType([T.string, T.number]).isRequired,\n /**\n * visualization context used for dynamic option evaluation\n */\n context: T.object,\n /**\n * visualization formatting options\n */\n options: T.object,\n /**\n * A callback to update formatting options\n */\n onOptionsChange: T.func,\n /**\n * datasource state which include data and request params, object key indicate the datasource type.\n */\n dataSources: T.objectOf(\n T.shape({\n /**\n * current request params\n */\n requestParams: T.object,\n /**\n * current dataset\n */\n data: T.shape({\n fields: T.array,\n columns: T.array,\n }),\n /**\n * error\n */\n error: T.shape({\n level: T.string,\n message: T.string,\n }),\n /**\n * meta data that came with the dataset\n */\n meta: T.object,\n })\n ),\n /**\n * A callback to trigger event\n */\n onEventTrigger: T.func,\n /**\n * Inform viz if there are handlers listening to events\n */\n hasEventHandlers: T.bool,\n /**\n * A callback to communicate computed props to a consumer\n */\n onComputedProps: T.func,\n /**\n * A callback to obtain visualization api\n */\n vizActionHandlerRef: T.func,\n\n loading: T.bool,\n theme: T.object,\n /**\n * A callback to request new data with updated request params\n */\n onRequestParamsChange: T.func,\n };\n\n /**\n *\n */\n static defaultProps: DashboardVizProps = {\n // BaseVisualization in dashboard-visualizations uses 100% for width but 250 for height\n width: '100%',\n height: INITIAL_HEIGHT,\n dataSources: {},\n onEventTrigger: (): Record<string, unknown> => ({}),\n mode: 'view',\n hasEventHandlers: false,\n options: {},\n context: {},\n onOptionsChange: (): Record<string, unknown> => ({}),\n vizActionHandlerRef: (): DefaultVizActionHandler => new DefaultVizActionHandler(),\n onComputedProps: (): Record<string, unknown> => ({}),\n loading: false,\n onRequestParamsChange: noop,\n };\n}\n\nexport default SplunkVisualization;\n","/* eslint-disable class-methods-use-this */\nexport interface VizActionHandler {\n /**\n * put focus on the visualization\n */\n focus(): void;\n\n /**\n * compute snapshot of this visualization\n */\n snapshot(): Record<string, unknown>; // (This is for pdf export)\n}\n\nexport class DefaultVizActionHandler {\n focus(): void {\n // noop\n }\n\n snapshot(): Record<string, unknown> {\n return null; // noop\n }\n}\n","/**\n * represents the data in a raw columnar format, resulting from a splunk\n * query request.\n */\ninterface FieldEntry {\n name: string;\n}\n\nexport interface JsonColumnData {\n fields: FieldEntry[] | string[];\n columns: string[][];\n}\nexport interface Meta {\n totalCount: number;\n}\n\nexport const validSortDirs = ['asc', 'desc', 'none'] as const;\nexport type SortDirType = typeof validSortDirs[number];\n\nexport interface RequestParams {\n count?: number;\n offset?: number;\n sort?: {\n [sortKey: string]: SortDirType;\n };\n}\n\nexport interface DataSource {\n requestParams: Partial<RequestParams>;\n onRequestParamsChange?: (p: Record<string, unknown>) => void;\n data: JsonColumnData;\n error?: { level: string; message: string };\n meta: Partial<Meta>;\n}\n\nexport interface DataSourceMeta {\n requestParams: Partial<RequestParams>;\n meta: Partial<Meta>;\n onRequestParamsChange: (payload: RequestParams) => void;\n}\n","import { useRef } from 'react';\nimport { isEqual } from 'lodash';\n\n/**\n * This hook evaluates and stores the result of a passed function and only\n * re-evaluates the function when passed dependencies change.\n *\n * It is different from the internal React useMemo in the following aspects:\n * - it only stores the last evaluated result\n * - it uses a deep equality check to determine if dependencies have changed\n *\n * Inspired by apollo-client's useDeepMemo\n *\n * @param fn the function to be executed and\n * @param dependencies an array of dependencies\n */\nexport const useDeepMemo = <FnReturnType, DepType>(\n fn: () => FnReturnType,\n dependencies: DepType\n): FnReturnType => {\n const ref = useRef<{ dependencies: DepType; value: FnReturnType }>();\n if (!ref.current || !isEqual(dependencies, ref.current.dependencies)) {\n ref.current = {\n dependencies,\n value: fn(),\n };\n }\n return ref.current.value;\n};\n","import * as React from 'react';\nimport * as T from 'prop-types';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Message from '@splunk/visualizations-shared/Message';\nimport withFixedSizeContainer from '../hocs/FixedSizeContainer';\n\n/**\n * @method isMissing\n * @param {any} v\n * @returns {boolean} true if the input value === null or undefined\n */\nexport const isMissing = (v): boolean => {\n return v === null || v === undefined;\n};\n\n/**\n * @method misskingKeys\n * @param {string[]} keys\n * @param {object} target\n * @returns {string[]} the keys of missing required props\n */\nexport const missingKeys = (keys: string[], target: Record<string, unknown>): string[] =>\n keys.filter(k => isMissing(target[k]));\n\nexport interface MissingPropsProps {\n width?: string | number;\n height?: string | number;\n missingProps: string[];\n backgroundColor?: string;\n}\n\nconst propTypes: Record<keyof MissingPropsProps, T.Validator<any>> = {\n width: T.oneOfType([T.string, T.number]),\n height: T.oneOfType([T.string, T.number]),\n // eslint-disable-next-line react/no-unused-prop-types\n backgroundColor: T.string,\n missingProps: T.arrayOf(T.string),\n};\n\n/**\n * @method MissingPropsMessage\n * @param {MissingPropsProps} props\n * @returns {React.ReactElement}\n */\nexport const MissingPropsMessage = (props: MissingPropsProps): React.ReactElement => {\n const { width, height, missingProps } = props;\n return (\n <Message\n data-test=\"message\"\n width={width}\n height={height}\n message={_(`Missing property: ${missingProps.join(', ')}`)}\n />\n );\n};\n\nMissingPropsMessage.propTypes = propTypes;\nMissingPropsMessage.defaultProps = {\n width: '100%',\n height: 250,\n};\nexport default withFixedSizeContainer(MissingPropsMessage);\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { DashboardVizProps } from '../interfaces/DashboardVizProps';\nimport { ExtendedDashViz } from '../interfaces/ExtendedDashViz';\nimport { extendStaticWrapperProps } from '../utils/hocUtils';\n\n// Global provided via webpack\n// eslint-disable-next-line no-underscore-dangle\ndeclare const __VISION_VERSION__: string;\n\nconst Cover = styled.div`\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n`;\n\nconst Blocker = styled.div.attrs({\n 'data-splunk-visualization-version': __VISION_VERSION__,\n})`\n position: relative;\n width: 100%;\n height: 100%;\n`;\n\n/**\n * HOC that renders a cover layer in edit mode\n * @method withEditModeCover\n * @param {ExtendedDashViz} Visualization\n * @returns {ExtendedDashViz} Wrapper\n */\nconst withEditModeCover = (\n Visualization: ExtendedDashViz,\n disableEditModeCover?: boolean\n): ExtendedDashViz => {\n const Wrapper = (props: DashboardVizProps): React.ReactElement<DashboardVizProps> => {\n const { mode } = props;\n const showEditCover = mode === 'edit' && !disableEditModeCover;\n\n return (\n <Blocker>\n <Visualization {...props} />\n {showEditCover && <Cover data-test=\"edit-mode-cover\" />}\n </Blocker>\n );\n };\n extendStaticWrapperProps({ Wrapper, Visualization });\n return Wrapper as ExtendedDashViz;\n};\n\nexport default withEditModeCover;\n","import * as React from 'react';\nimport { isColor } from '@splunk/visualizations-shared/colorUtils';\nimport IconPlaceholder, { shouldShowIconPlaceholder } from '../components/IconPlaceholder';\nimport { VizBehavior } from '../interfaces/VizBehavior';\nimport { DashboardVizProps } from '../interfaces/DashboardVizProps';\nimport { DataSource } from '../interfaces/DataSource';\nimport { ExtendedDashViz } from '../interfaces/ExtendedDashViz';\nimport { extendStaticWrapperProps } from '../utils/hocUtils';\n\ntype useIconPlaceholderType = (\n dataSources: { [name: string]: DataSource },\n loading: boolean,\n options: Record<string, unknown>\n) => boolean;\n\nconst withPlaceholder = (\n Visualization: ExtendedDashViz,\n useIconPlaceholder: useIconPlaceholderType = shouldShowIconPlaceholder\n): ExtendedDashViz => {\n const { config } = Visualization;\n const { themes } = config;\n\n const Wrapper = (props: DashboardVizProps): React.ReactElement<DashboardVizProps> => {\n const { dataSources, loading, options, height, width } = props;\n\n const showPlaceholder = useIconPlaceholder(dataSources, loading, options);\n const bgColorFromTheme = isColor(options?.backgroundColor)\n ? options?.backgroundColor\n : themes?.defaultBackgroundColor?.(props);\n\n if (config.supports.includes(VizBehavior.PLACEHOLDER) && showPlaceholder) {\n return (\n <IconPlaceholder\n data-test=\"icon-placeholder\"\n icon={config.icon}\n width={width}\n height={height}\n backgroundColor={bgColorFromTheme}\n />\n );\n }\n\n return <Visualization {...props} />;\n };\n extendStaticWrapperProps({ Wrapper, Visualization });\n return Wrapper as ExtendedDashViz;\n};\n\nexport default withPlaceholder;\n","module.exports = require(\"@babel/runtime/helpers/toConsumableArray\");","module.exports = require(\"@splunk/visualizations-shared/colorConstants\");","module.exports = require(\"@splunk/visualization-color-palettes\");","module.exports = require(\"@splunk/visualization-icons\");","module.exports = require(\"@babel/runtime/helpers/slicedToArray\");","module.exports = require(\"@babel/runtime/helpers/inherits\");","module.exports = require(\"@babel/runtime/helpers/possibleConstructorReturn\");","module.exports = require(\"@babel/runtime/helpers/getPrototypeOf\");","module.exports = require(\"@splunk/visualizations-shared/dataSourceUtils\");","import { get } from 'lodash';\nimport { getDataSourceStateInfo, DataSourceState } from '@splunk/visualizations-shared/dataSourceUtils';\nimport withDashboardViz, { DashboardVizOpts } from '../common/withDashboardViz';\nimport PureLinkGraph from './PureLinkGraph/PureLinkGraph';\nimport config from './config';\nimport { DataSource } from '../common/interfaces/DataSource';\n\n/**\n * @method showPlaceHolderIcon\n * @param {Object} dataSources\n * @returns {Boolean} return true if loading, error, non existent state or without columns in dataSources\n */\nexport const showPlaceHolderIcon = dataSources => {\n const columns = get(dataSources, 'primary.data.columns', undefined);\n const noColumns = columns === undefined;\n const dataSourceState = getDataSourceStateInfo(dataSources);\n return (\n dataSourceState === DataSourceState.ERROR ||\n dataSourceState === DataSourceState.LOADING ||\n dataSourceState === DataSourceState.NONEXISTENT ||\n noColumns\n );\n};\n\nexport const computeVizProps = ({ themeFunc, ...props }) => {\n const themeColorVariables = ['defaultBackgroundColor', 'defaultLinkColor', 'defaultNodeColor'];\n const themeColors: Record<string, unknown> = {};\n themeColorVariables.forEach(variable => {\n themeColors[variable] = themeFunc(variable);\n });\n if (props.dataSources) {\n const { fields, columns } = props.dataSources.primary.data;\n return { fields: fields.map(field => (field.name ? field.name : field)), columns, ...themeColors };\n }\n return themeColors;\n};\n\nconst LinkGraph = withDashboardViz({\n ReactViz: PureLinkGraph,\n vizConfig: config,\n computeVizProps,\n useIconPlaceholder: (dataSources: { [name: string]: DataSource }) => showPlaceHolderIcon(dataSources),\n} as DashboardVizOpts);\n\nconst { themes } = config;\nexport default LinkGraph;\nexport { themes, config, LinkGraph, PureLinkGraph };\n","import { sortBy } from 'lodash';\n\nexport interface onNodeClickType {\n payload: {\n name: string;\n value: string;\n state: string;\n [key: string]: string;\n };\n}\n\nexport type EdgeType = {\n sourceNode: string;\n targetNode: string;\n};\n\nexport type NodeDataType = {\n field: string;\n fieldIndex: number;\n value: string;\n outs: Record<string, EdgeType>;\n count: number;\n};\n\nexport type NodeType = {\n x: number;\n y: number;\n w: number;\n h: number;\n currentX?: number;\n currentY?: number;\n currentW?: number;\n currentH?: number;\n time?: number;\n data: NodeDataType;\n};\n\nexport type FieldType = {\n count: number;\n};\n\nexport type GraphType = {\n nodes: Record<string, NodeType>;\n edges: EdgeType[];\n fields: Record<string, FieldType>;\n};\n\nconst createNode = (\n graphDataModelIn: GraphType,\n nodesIn: Record<string, NodeType>,\n column: string,\n field: string,\n fieldIndex: number,\n nodeWidth: number,\n nodeHeight: number,\n nodeSpacingX: number,\n nodeSpacingY: number,\n shouldAddToGraphDataModel: boolean\n): NodeType => {\n const nodes = nodesIn;\n const graphDataModel = graphDataModelIn;\n let node = nodes[column];\n if (!nodes[column]) {\n node = {\n x: 0,\n y: 0,\n w: 0,\n h: 0,\n data: {\n field,\n fieldIndex,\n count: 1,\n value: column,\n outs: {},\n },\n };\n } else {\n node.data.count += 1;\n }\n const key = `${fieldIndex}-${field}-${column}`;\n if (shouldAddToGraphDataModel && !graphDataModel.nodes[key]) {\n nodes[column] = node;\n graphDataModel.nodes[key] = node;\n node.x = fieldIndex * nodeWidth + fieldIndex * nodeSpacingX;\n node.y =\n (Object.keys(nodes).length - 1) * nodeHeight +\n (Object.keys(nodes).length - 1) * nodeSpacingY +\n OFFSET_Y;\n node.w = nodeWidth;\n node.h = nodeHeight;\n }\n return node;\n};\n\nconst createEdge = (\n graphDataModelIn: GraphType,\n nodesIn: Record<string, NodeType>,\n edgesIn: Record<string, unknown>,\n nodeIn: NodeType,\n columns: string[],\n column: string,\n columnIndex: number,\n fields: string[],\n field: string,\n fieldIndex: number,\n shouldAddToGraphDataModel: boolean\n) => {\n if (!shouldAddToGraphDataModel) {\n return;\n }\n const node = nodeIn;\n const edges = edgesIn;\n const graphDataModel = graphDataModelIn;\n if (columns[fieldIndex + 1] && columns[fieldIndex + 1][columnIndex]) {\n const sourceNode = `${fieldIndex}-${field}-${column}`;\n const targetNode = `${fieldIndex + 1}-${fields[fieldIndex + 1]}-${\n columns[fieldIndex + 1][columnIndex]\n }`;\n const edge = {\n sourceNode,\n targetNode,\n };\n node.data.outs[`${column}-${columns[fieldIndex + 1][columnIndex]}`] = edge;\n edges[`${edge.sourceNode}-${edge.targetNode}`] = edge;\n }\n graphDataModel.fields[field].count = Object.keys(nodesIn).length;\n};\n\nexport const OFFSET_Y = 35;\n\n/**\n *\n * @param fields\n * @param columns\n * @param nodeWidth\n * @param nodeHeight\n * @param nodeSpacingX\n * @param nodeSpacingY\n * @param resultLimit\n * @param fieldOrder\n * @returns GraphType\n * Translates fields and column data into GraphType object.\n * Node placement is figured out here - see NodeType\n * We transverse over fields\n * Then for every field we go down the column\n * We create a node\n * look to the right one column, create an edge\n * look to the left one column, create an edge\n */\nexport const createLinkGraphFromTable = (\n fieldsIn: string[],\n columnsIn: any[],\n nodeWidth: number,\n nodeHeight: number,\n nodeSpacingX: number,\n nodeSpacingY: number,\n resultLimit: number,\n fieldOrder: string[]\n): GraphType => {\n const nodes = {};\n const edges = {};\n const graphDataModel: GraphType = {\n nodes: {},\n edges: [],\n fields: {},\n };\n if (!fieldsIn || !Array.isArray(fieldsIn) || !columnsIn || !Array.isArray(columnsIn)) {\n return graphDataModel;\n }\n let fields = fieldsIn;\n let columns = columnsIn;\n if (fieldOrder.length) {\n fields = fieldOrder;\n columns = [];\n fields.forEach((field, fieldIndex) => {\n columns[fieldIndex] = columnsIn[fieldsIn.indexOf(field)];\n });\n }\n // TODO: this should not return anything; not sure why the original LinkGraph code returned something at the end of a .forEach\n // eslint-disable-next-line consistent-return\n fields.forEach((field: string, fieldIndex: number) => {\n nodes[field] = {\n nodes: {},\n };\n graphDataModel.fields[field] = {\n count: 0,\n };\n if (!columns[fieldIndex]) {\n return graphDataModel;\n }\n columns[fieldIndex].forEach((column: string, columnIndex: number) => {\n const shouldAddToGraphDataModel = Object.keys(nodes[field].nodes).length < resultLimit;\n const node = createNode(\n graphDataModel,\n nodes[field].nodes,\n column,\n field,\n fieldIndex,\n nodeWidth,\n nodeHeight,\n nodeSpacingX,\n nodeSpacingY,\n shouldAddToGraphDataModel\n );\n createEdge(\n graphDataModel,\n nodes[field].nodes,\n edges,\n node,\n columns,\n column,\n columnIndex,\n fields,\n field,\n fieldIndex,\n shouldAddToGraphDataModel\n );\n });\n });\n graphDataModel.edges = Object.values(edges);\n return graphDataModel;\n};\n\nclass Edges {\n store = {};\n\n constuctor() {\n this.store = {};\n }\n\n addEdge(source: string, target: string) {\n if (!this.store[source]) {\n this.store[source] = {};\n }\n this.store[source][target] = true;\n }\n\n getNeighbors(source: string) {\n if (!this.store[source]) {\n return {};\n }\n return this.store[source];\n }\n}\n\nexport const getNodesToHighlight = (\n graph: GraphType,\n sourceNodeID: string\n): {\n vertices: string[];\n edges: string[];\n} => {\n const edges = { reverse: new Edges(), forward: new Edges() };\n graph.edges.forEach(edge => {\n edges.forward.addEdge(edge.sourceNode, edge.targetNode);\n edges.reverse.addEdge(edge.targetNode, edge.sourceNode);\n });\n\n const vs = {\n ...traverse(edges.reverse, sourceNodeID),\n ...traverse(edges.forward, sourceNodeID),\n };\n const vertices = new Set(Object.keys(vs));\n const result = {\n vertices: [],\n edges: [],\n };\n\n result.vertices = [...vertices];\n result.edges = [...vertices].flatMap(v =>\n Object.keys(edges.forward.getNeighbors(v))\n .filter(u => vertices.has(u))\n .map(u => `${v}-${u}`)\n );\n\n return result;\n};\n\nconst traverse = (edges: Edges, sourceNodeID: string) => {\n const visited = {};\n let currentNodesToTraverse = [sourceNodeID];\n while (currentNodesToTraverse.length) {\n const nextNodesToTraverse = [];\n\n currentNodesToTraverse.forEach(node => {\n visited[node] = true;\n const neighbors = edges.getNeighbors(node);\n Object.keys(neighbors).forEach(n => nextNodesToTraverse.push(n));\n });\n\n currentNodesToTraverse = nextNodesToTraverse;\n }\n return visited;\n};\n\n// TODO: write tests once all sorting options are supported\nexport const sortGraphColumn = (\n graph: GraphType,\n field: string,\n sortKey: string,\n nodeHeight: number,\n nodeSpacingY: number\n) => {\n const nodesToSort: NodeType[] = Object.values(graph.nodes).filter(node => node.data.field === field);\n const nodes: NodeType[] = sortBy(nodesToSort, node => node.data.value);\n if (sortKey === 'Z-A') {\n nodes.reverse();\n }\n nodes.forEach((node, index) => {\n const currentNode = node;\n currentNode.y = index * nodeHeight + index * nodeSpacingY + OFFSET_Y;\n });\n};\n","import styled from 'styled-components';\nimport pick from '@splunk/themes/pick';\nimport variables from '@splunk/themes/variables';\n\nexport const StyledViewport = styled.div<{\n nodeColor: string;\n nodeTextColor: string;\n nodeHighlightColor: string;\n nodeTextHighlightColor: string;\n linkColor: string;\n}>`\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n\n .node {\n transition: background 0.05s ease-out;\n background: ${props => props.nodeColor};\n border: 2px solid transparent;\n p {\n color: ${props => props.nodeTextColor} !important;\n }\n }\n\n .node.hovering {\n background: ${props => props.nodeHighlightColor};\n p {\n color: ${props => props.nodeTextHighlightColor} !important;\n }\n }\n\n .node.selected {\n border-radius: 1px;\n border: 2px solid\n ${pick({\n enterprise: variables.accentColorD10,\n prisma: variables.interactiveColorPrimary,\n })};\n }\n\n .edge {\n transition: opacity 0.05s ease-out;\n stroke: ${props => props.linkColor};\n opacity: 0.3;\n }\n\n .edge.hovering {\n opacity: 0.8;\n }\n\n > button {\n border-radius: 1px;\n position: absolute;\n overflow: hidden;\n background: none;\n color: inherit;\n border: none;\n padding: 0;\n font: inherit;\n cursor: pointer;\n outline: inherit;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n .center-content {\n width: 100%;\n max-width: 100%;\n flex: 1 1 100%;\n display: flex;\n flex-wrap: nowrap;\n justify-content: flex-start;\n width: 0;\n padding-left: 8px;\n padding-right: 8px;\n > p {\n color: ${pick({\n enterprise: {\n light: variables.gray30,\n dark: variables.gray60,\n },\n prisma: variables.contentColorActive,\n })};\n }\n > p:nth-child(1) {\n font-size: 10px;\n padding: 0;\n margin: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n > p:nth-child(2) {\n flex: 0 auto;\n margin: 0;\n font-size: 10px;\n padding-left: 8px;\n }\n }\n .left-content {\n padding-left: 8px;\n }\n .right-content {\n padding-right: 8px;\n }\n .left-content,\n .right-content {\n flex: 0 0 auto;\n > p {\n height: 100%;\n font-weight: bold;\n font-size: 10px;\n padding: 0;\n margin: 0;\n color: ${pick({\n enterprise: {\n light: variables.gray30,\n dark: variables.gray60,\n },\n prisma: {\n light: variables.contentColorActive,\n dark: variables.contentColorMuted,\n },\n })};\n }\n }\n }\n`;\n\nexport const StyledEdgesPath = styled.path<{ linkWidth: number }>`\n fill: transparent;\n stroke: #9b9b9d;\n stroke-width: ${props => `${props.linkWidth}px`};\n`;\n","export * from './LinkGraph';\nexport { default } from './LinkGraph';\n","import * as React from 'react';\nimport * as T from 'prop-types';\nimport styled from 'styled-components';\nimport { get } from 'lodash';\nimport withFixedSizeContainer from '../../common/hocs/FixedSizeContainer';\nimport { createLinkGraphFromTable, sortGraphColumn, GraphType, onNodeClickType } from './PureLinkGraphUtils';\nimport Graph from './components/Graph';\nimport Field from './components/Field';\nimport { StyledFields } from './components/FieldStyles';\n\nexport interface PureLinkGraphProps {\n mode: string;\n backgroundColor: string;\n columns: any[];\n fields: string[];\n height: number;\n linkColor: string;\n linkWidth: number;\n nodeWidth: number;\n nodeHeight: number;\n nodeSpacingX: number;\n nodeSpacingY: number;\n nodeColor: string;\n nodeTextColor: string;\n nodeHighlightColor: string;\n nodeTextHighlightColor: string;\n resultLimit: number;\n width: number;\n showValueCounts: boolean;\n showNodeCounts: boolean;\n onNodeClick: (arg0: onNodeClickType) => void;\n fieldOrder: string[];\n}\n\nconst LinkGraphContainer = styled.div<{ height: number; width: number }>`\n position: relative;\n top: 12px;\n left: 16px;\n width: ${props => props?.width - 32}px;\n height: ${props => props?.height - 24}px;\n`;\n\nconst LinkGraphWrapper = styled.div<{ backgroundColor: string; height: number; width: number }>`\n background-color: ${({ backgroundColor }) => backgroundColor};\n width: ${props => get(props, 'width')}px;\n height: ${props => get(props, 'height')}px;\n overflow: auto;\n`;\n\nLinkGraphContainer.displayName = 'LinkGraphContainer';\n\nexport const PureLinkGraph = (props: PureLinkGraphProps): any => {\n const {\n // dereferencing needed to avoid linting conflict with unused prop-types\n mode, // eslint-disable-line @typescript-eslint/no-unused-vars\n backgroundColor,\n width,\n height,\n fields,\n columns,\n nodeWidth,\n nodeHeight,\n nodeSpacingX,\n nodeSpacingY,\n onNodeClick,\n linkColor,\n nodeColor,\n nodeTextColor,\n nodeHighlightColor,\n nodeTextHighlightColor,\n resultLimit,\n linkWidth,\n showValueCounts,\n showNodeCounts,\n fieldOrder,\n } = props;\n /*\n value / setValue is here so we can modify graphDataModelState directly and \n force a rerender, as opposed to making a copy of graphDataModelState and\n mutating the copy and using that in the new state.\n\n I will make sure to test this in a UDF context to make sure there is no data loss\n or incorrect rendering ( and will then remove this last comment or address later on )\n */\n const [value, setValue] = React.useState(0);\n const [graphDataModelState, setGraphDataModelState] = React.useState<GraphType>(\n createLinkGraphFromTable(\n fields,\n columns,\n nodeWidth,\n nodeHeight,\n nodeSpacingX,\n nodeSpacingY,\n resultLimit,\n fieldOrder\n )\n );\n\n React.useEffect(() => {\n setGraphDataModelState(\n createLinkGraphFromTable(\n fields,\n columns,\n nodeWidth,\n nodeHeight,\n nodeSpacingX,\n nodeSpacingY,\n resultLimit,\n fieldOrder\n )\n );\n }, [fields, columns, nodeWidth, nodeHeight, nodeSpacingX, nodeSpacingY, resultLimit, fieldOrder]);\n\n const handleFieldSort = (field, sortKey) => {\n sortGraphColumn(graphDataModelState, field, sortKey, nodeHeight, nodeSpacingY);\n setGraphDataModelState(graphDataModelState);\n setValue(value + 1);\n };\n\n return (\n <LinkGraphWrapper backgroundColor={backgroundColor} height={height} width={width}>\n <LinkGraphContainer data-test-render-count={value} height={height} width={width}>\n <Graph\n linkColor={linkColor}\n nodeColor={nodeColor}\n nodeTextColor={nodeTextColor}\n nodeHighlightColor={nodeHighlightColor}\n nodeTextHighlightColor={nodeTextHighlightColor}\n graphDataModel={graphDataModelState}\n onNodeClick={onNodeClick}\n linkWidth={linkWidth}\n showValueCounts={showValueCounts}\n />\n <StyledFields nodeWidth={nodeWidth} nodeSpacingX={nodeSpacingX}>\n {Object.keys(graphDataModelState.fields).map((field, index) => (\n <Field\n showNodeCounts={showNodeCounts}\n data-test={`field-${index}`}\n key={field}\n onSort={(sortKey: string) => handleFieldSort(field, sortKey)}\n field={field}\n width={nodeWidth}\n count={graphDataModelState.fields[field].count}\n />\n ))}\n </StyledFields>\n </LinkGraphContainer>\n </LinkGraphWrapper>\n );\n};\n\nPureLinkGraph.propTypes = {\n mode: T.string,\n backgroundColor: T.string,\n width: T.number,\n height: T.number,\n fields: T.array,\n columns: T.array,\n onNodeClick: T.func,\n nodeWidth: T.number,\n nodeHeight: T.number,\n nodeSpacingX: T.number,\n nodeSpacingY: T.number,\n linkColor: T.string,\n nodeColor: T.string,\n nodeTextColor: T.string,\n nodeHighlightColor: T.string,\n nodeTextHighlightColor: T.string,\n resultLimit: T.number,\n linkWidth: T.number,\n showValueCounts: T.bool,\n showNodeCounts: T.bool,\n fieldOrder: T.array,\n};\n\nPureLinkGraph.defaultProps = {\n mode: 'view',\n fields: null,\n columns: [],\n backgroundColor: '#0B0C0E',\n width: 1200,\n height: 400,\n nodeWidth: 180,\n nodeHeight: 21,\n nodeSpacingX: 32,\n nodeSpacingY: 6,\n linkWidth: 1,\n linkColor: '#B5B5B5',\n nodeColor: '#1E2024',\n nodeTextColor: '#FFFFFF',\n nodeHighlightColor: '#7B56DB',\n nodeTextHighlightColor: '#FFFFFF',\n resultLimit: 50,\n showValueCounts: true,\n showNodeCounts: true,\n onNodeClick: () => {},\n fieldOrder: [],\n};\n\nPureLinkGraph.displayName = 'VizLinkGraph';\n\nexport default withFixedSizeContainer(PureLinkGraph);\n","import * as React from 'react';\nimport { cloneDeep } from 'lodash';\nimport Edges from './Edges';\nimport Nodes from './Nodes';\nimport { StyledViewport } from './GraphStyles';\nimport { GraphType, EdgeType, getNodesToHighlight, NodeType, onNodeClickType } from '../PureLinkGraphUtils';\n\ntype GraphState = {\n nodes: Record<string, NodeType>;\n edges: [];\n highlightedNodes: string[];\n hasMounted: boolean;\n};\n\ntype GraphProps = {\n graphDataModel: GraphType;\n onNodeClick: (arg0: onNodeClickType) => void;\n nodeColor: string;\n nodeTextColor?: string;\n nodeHighlightColor: string;\n nodeTextHighlightColor?: string;\n linkColor: string;\n linkWidth: number;\n showValueCounts: boolean;\n};\n\nclass Graph extends React.Component<GraphProps, GraphState> {\n requestAnimationFrameId: number;\n\n viewport: HTMLElement;\n\n constructor(props) {\n super(props);\n this.requestAnimationFrameId = null;\n this.viewport = null;\n this.state = {\n nodes: {},\n edges: [],\n highlightedNodes: [],\n hasMounted: false,\n };\n }\n\n static getDerivedStateFromProps(props: GraphProps, state: GraphState) {\n if (!state.hasMounted) {\n return state;\n }\n const nodes = cloneDeep(props.graphDataModel.nodes);\n Object.keys(nodes).forEach(key => {\n const nodeFromProps = nodes[key];\n const nodeFromState = state.nodes[key];\n if (!nodeFromState) {\n nodeFromProps.time = 1;\n } else if (\n nodeFromProps.x !== nodeFromState.x ||\n nodeFromProps.y !== nodeFromState.y ||\n nodeFromProps.w !== nodeFromState.w ||\n nodeFromProps.h !== nodeFromState.h\n ) {\n nodeFromProps.time = 0;\n }\n nodeFromProps.currentX = nodeFromProps.x;\n nodeFromProps.currentY = nodeFromProps.y;\n nodeFromProps.currentW = nodeFromProps.w;\n nodeFromProps.currentH = nodeFromProps.h;\n });\n\n let highlightedNodes = [...state.highlightedNodes];\n\n state.highlightedNodes.forEach(nodeID => {\n if (!props.graphDataModel.nodes[nodeID]) {\n highlightedNodes = [];\n }\n });\n\n return {\n nodes,\n edges: props.graphDataModel.edges,\n highlightedNodes,\n };\n }\n\n componentDidMount() {\n this.setState({\n hasMounted: true,\n });\n }\n\n componentDidUpdate() {\n const { highlightedNodes } = this.state;\n cancelAnimationFrame(this.requestAnimationFrameId);\n this.highlightAllEdges();\n this.unhighlightAllNodes();\n highlightedNodes.forEach(value => {\n this.handleMouseEnterNode(value);\n });\n this.tween();\n }\n\n componentWillUnmount() {\n cancelAnimationFrame(this.requestAnimationFrameId);\n }\n\n handleMouseEnterNode(nodeID: string) {\n this.unhighlightAllEdges();\n const { vertices, edges } = getNodesToHighlight(this.props.graphDataModel, nodeID);\n edges.forEach(e => {\n const element = this.viewport.querySelector(`[data-test=\"edge-${e}\"]`);\n element.classList.add('hovering');\n });\n\n vertices.forEach(uuid => {\n const element = this.viewport.querySelector(`[data-test=\"node-${uuid}\"]`);\n element.classList.add('hovering');\n });\n }\n\n handleMouseLeave() {\n const { highlightedNodes } = this.state;\n [...this.viewport.getElementsByClassName('hovering')[Symbol.iterator]()].forEach(ele => {\n ele.classList.remove('hovering');\n });\n highlightedNodes.forEach(value => {\n this.handleMouseEnterNode(value);\n });\n this.highlightAllEdges();\n }\n\n handleMouseClick(key: string) {\n const { onNodeClick } = this.props;\n const { nodes, highlightedNodes } = this.state;\n const newHighlightedNodes: string[] = [...highlightedNodes];\n const index = newHighlightedNodes.indexOf(key);\n const element = this.viewport.querySelector(`[data-test=\"node-${key}\"]`);\n let state = false;\n\n if (index !== -1) {\n newHighlightedNodes.splice(index, 1);\n element.classList.remove('selected');\n element.setAttribute('aria-pressed', 'false');\n } else {\n newHighlightedNodes.push(key);\n state = true;\n element.classList.add('selected');\n element.setAttribute('aria-pressed', 'true');\n }\n this.setState(\n {\n highlightedNodes: newHighlightedNodes,\n },\n () => this.handleMouseLeave()\n );\n const selectedOption = state ? 'selected' : 'unselected';\n const { field, value } = nodes[key].data;\n const payload = { name: field, value, state: selectedOption };\n const { vertices } = getNodesToHighlight(this.props.graphDataModel, key);\n vertices\n .map(k => nodes[k])\n .forEach(node => {\n const row = `row.${node.data.field}.value`;\n if (!payload[row]) {\n payload[row] = [];\n }\n payload[row].push(node.data.value);\n });\n onNodeClick({ payload });\n }\n\n highlightAllEdges() {\n const { highlightedNodes } = this.state;\n if (!highlightedNodes.length) {\n this.viewport\n .querySelectorAll(`[data-test^=\"edge-\"]`)\n .forEach(element => element.classList.add('hovering'));\n }\n }\n\n unhighlightAllEdges() {\n const { highlightedNodes } = this.state;\n if (!highlightedNodes.length) {\n this.viewport\n .querySelectorAll(`[data-test^=\"edge-\"]`)\n .forEach(element => element.classList.remove('hovering'));\n }\n }\n\n unhighlightAllNodes() {\n const { highlightedNodes } = this.state;\n if (!highlightedNodes.length) {\n this.viewport\n .querySelectorAll(`[data-test^=\"node-\"]`)\n .forEach(element => element.classList.remove('hovering'));\n }\n }\n\n tween() {\n const { nodes } = this.state;\n let isAnimating = false;\n Object.keys(nodes).forEach((nodeId: string) => {\n const node = nodes[nodeId];\n const nodeElement: HTMLElement = this.viewport.querySelector(`[data-test=\"node-${nodeId}\"]`);\n if (nodeElement) {\n if (nodeElement.style.left === '') {\n this.moveNodeBy(\n nodeId,\n Math.floor(node.x),\n Math.floor(node.y),\n Math.floor(node.w),\n Math.floor(node.h)\n );\n } else {\n const x = parseInt(nodeElement.style.left, 10);\n const y = parseInt(nodeElement.style.top, 10);\n const w = parseInt(nodeElement.style.width, 10);\n const h = parseInt(nodeElement.style.height, 10);\n node.time += 0.01;\n const newX = Math.floor(x * (1 - node.time) + node.x * node.time);\n const newY = Math.floor(y * (1 - node.time) + node.y * node.time);\n const newWidth = Math.floor(w * (1 - node.time) + node.w * node.time);\n const newHeight = Math.floor(h * (1 - node.time) + node.h * node.time);\n if (node.time < 1) {\n this.moveNodeBy(\n nodeId,\n Math.floor(newX),\n Math.floor(newY),\n Math.floor(newWidth),\n Math.floor(newHeight)\n );\n isAnimating = true;\n } else {\n this.moveNodeBy(\n nodeId,\n Math.floor(node.x),\n Math.floor(node.y),\n Math.floor(node.w),\n Math.floor(node.h)\n );\n node.time = 1;\n }\n }\n }\n });\n cancelAnimationFrame(this.requestAnimationFrameId);\n if (isAnimating) {\n this.requestAnimationFrameId = requestAnimationFrame(this.tween.bind(this));\n }\n }\n\n moveNodeBy(nodeId: string, xIn: number, yIn: number, wIn: number, hIn: number) {\n const { nodes } = this.state;\n nodes[nodeId].currentX = xIn;\n nodes[nodeId].currentY = yIn;\n nodes[nodeId].currentW = wIn;\n nodes[nodeId].currentH = hIn;\n const nodeElement: HTMLElement = this.viewport.querySelector(`[data-test=\"node-${nodeId}\"]`);\n if (nodeElement) {\n nodeElement.style.left = `${xIn}px`;\n nodeElement.style.top = `${yIn}px`;\n nodeElement.style.width = `${wIn}px`;\n nodeElement.style.height = `${hIn}px`;\n }\n Object.values(nodes[nodeId].data.outs).forEach((edge: EdgeType) => {\n if (edge.sourceNode === nodeId || edge.targetNode === nodeId) {\n const start = nodes[edge.sourceNode];\n const end = nodes[edge.targetNode];\n const edgeElement = this.viewport.querySelector(\n `[data-test=\"edge-${edge.sourceNode}-${edge.targetNode}\"]`\n );\n if (edgeElement && start && end) {\n const middle: {\n currentX: number;\n currentY: number;\n currentWidth: number;\n currentHeight: number;\n } = {\n currentX: 0,\n currentY: 0,\n currentWidth: 0,\n currentHeight: 0,\n };\n middle.currentX =\n start.currentX +\n start.currentW +\n (end.currentX - (start.currentX + start.currentW)) / 2;\n middle.currentY =\n start.currentY +\n start.currentH / 2 +\n (end.currentY - start.currentY - start.currentH / 2) / 2;\n const svgData = `\n M${start.currentX + start.currentW},${start.currentY + start.currentH / 2}\n L${start.currentX + start.currentW},${start.currentY + start.currentH / 2}\n C${middle.currentX},${start.currentY + start.currentH / 2}\n ${middle.currentX},${end.currentY + end.currentH / 2}\n ${end.currentX},${end.currentY + end.currentH / 2}\n L${end.currentX},${end.currentY + end.currentH / 2}`;\n edgeElement.setAttribute('d', svgData);\n }\n }\n });\n }\n\n render() {\n const { nodes, edges } = this.state;\n const {\n nodeColor,\n nodeHighlightColor,\n linkColor,\n linkWidth,\n showValueCounts,\n nodeTextColor,\n nodeTextHighlightColor,\n } = this.props;\n const newEdges = edges.filter((edge: EdgeType) => nodes[edge.sourceNode] && nodes[edge.targetNode]);\n\n return (\n <StyledViewport\n nodeColor={nodeColor}\n nodeTextColor={nodeTextColor}\n nodeHighlightColor={nodeHighlightColor}\n nodeTextHighlightColor={nodeTextHighlightColor}\n linkColor={linkColor}\n ref={c => {\n this.viewport = c;\n }}\n >\n <Nodes\n nodes={nodes}\n onNodeClick={k => this.handleMouseClick(k)}\n handleMouseEnterNode={(nodeID: string) => this.handleMouseEnterNode(nodeID)}\n handleMouseLeave={() => this.handleMouseLeave()}\n showValueCounts={showValueCounts}\n />\n <Edges edges={newEdges} linkWidth={linkWidth} />\n </StyledViewport>\n );\n }\n}\n\nexport default Graph;\n","import * as React from 'react';\nimport { StyledEdgesPath } from './GraphStyles';\nimport { EdgeType } from '../PureLinkGraphUtils';\n\nexport interface EdgesProps {\n edges: EdgeType[];\n linkWidth: number;\n}\n\nconst Edges = (props: EdgesProps): React.ReactElement => {\n const { edges, linkWidth } = props;\n let key = '';\n return (\n <svg\n style={{\n position: 'absolute',\n overflow: 'visible',\n pointerEvents: 'none',\n }}\n height=\"100%\"\n width=\"100%\"\n data-test=\"edges\"\n >\n {edges.map(edge => {\n key = `edge-${edge.sourceNode}-${edge.targetNode}`;\n return [<StyledEdgesPath className=\"edge\" key={key} data-test={key} linkWidth={linkWidth} />];\n })}\n </svg>\n );\n};\n\nexport default Edges;\n","import * as React from 'react';\nimport Node from './Node';\nimport { NodeType } from '../PureLinkGraphUtils';\n\nexport interface NodesProps {\n nodes: Record<string, NodeType>;\n onNodeClick: (key: string) => void;\n handleMouseEnterNode: (nodeID: string) => void;\n handleMouseLeave: () => void;\n showValueCounts: boolean;\n}\n\nconst Nodes = (props: NodesProps): any =>\n Object.keys(props.nodes).map(key => (\n <button\n className=\"node\"\n type=\"button\"\n data-test={`node-${key}`}\n key={key}\n onClick={() => props.onNodeClick(key)}\n onMouseEnter={() => props.handleMouseEnterNode(key)}\n onMouseLeave={() => props.handleMouseLeave()}\n >\n <Node data={props.nodes[key].data} showValueCounts={props.showValueCounts} />\n </button>\n ));\n\nexport default Nodes;\n","import * as React from 'react';\nimport Paragraph from '@splunk/react-ui/Paragraph';\nimport { NodeDataType } from '../PureLinkGraphUtils';\n\nexport interface NodeProps {\n data: NodeDataType;\n showValueCounts: boolean;\n}\n\nconst Node = (props: NodeProps): React.ReactElement => {\n const { data, showValueCounts } = props;\n return (\n <>\n <div className=\"center-content\">\n <Paragraph>{data.value}</Paragraph>\n </div>\n <div className=\"right-content\">\n <Paragraph>{showValueCounts ? data.count : null}</Paragraph>\n </div>\n </>\n );\n};\n\nexport default Node;\n","module.exports = require(\"@splunk/react-ui/Paragraph\");","import * as React from 'react';\nimport Dropdown from '@splunk/react-ui/Dropdown';\nimport Button from '@splunk/react-ui/Button';\nimport Menu from '@splunk/react-ui/Menu';\nimport Chip from '@splunk/react-ui/Chip';\n\ninterface FieldProps {\n field: string;\n count: number;\n width: number;\n onSort: (sortKey: string) => void;\n showNodeCounts: boolean;\n}\n\nconst Field = ({ field, count, onSort, showNodeCounts, width }: FieldProps): React.ReactElement => {\n const toggle = <Button label={field} isMenu appearance=\"toggle\" />;\n\n return (\n <div>\n <Dropdown toggle={toggle} retainFocus data-test={`field-${field}-dropdown`}>\n <Menu style={{ width }}>\n <Menu.Item data-test=\"A-Z\" onClick={() => onSort('A-Z')}>\n A-Z\n </Menu.Item>\n <Menu.Item data-test=\"Z-A\" onClick={() => onSort('Z-A')}>\n Z-A\n </Menu.Item>\n </Menu>\n </Dropdown>\n {showNodeCounts ? (\n <Chip style={{ float: 'right', fontSize: '10px', height: '20px' }}>{count}</Chip>\n ) : null}\n </div>\n );\n};\n\nField.displayName = 'Field';\n\nexport default Field;\n","module.exports = require(\"@splunk/react-ui/Dropdown\");","module.exports = require(\"@splunk/react-ui/Button\");","module.exports = require(\"@splunk/react-ui/Menu\");","module.exports = require(\"@splunk/react-ui/Chip\");","import styled from 'styled-components';\nimport pick from '@splunk/themes/pick';\n\nexport const StyledFields = styled.div<{\n nodeWidth: number;\n nodeSpacingX: number;\n}>`\n position: absolute;\n whitespace: nowrap;\n display: flex;\n justify-content: space-between;\n align-items: center;\n max-height: 30px;\n\n > div:last-child {\n margin-right: 16px;\n }\n\n > div {\n width: ${props => props.nodeWidth}px;\n margin-right: ${props => props.nodeSpacingX}px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n > button {\n background: transparent !important;\n padding: 0;\n border: none;\n border-radius: !important;\n font-size: 12px !important;\n box-shadow: none !important;\n }\n\n > button > span {\n justify-content: flex-start;\n > span {\n padding: ${pick({ prisma: '0 !important' })};\n flex: 0 1 auto;\n font-weight: bold;\n }\n }\n\n > div {\n margin: 0;\n }\n }\n`;\n","import { map, get } from 'lodash';\nimport { LinkGraph as LinkGraphIcon } from '@splunk/visualization-icons';\nimport {\n COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n COLOR_OR_TOKEN_PATTERN,\n} from '@splunk/visualizations-shared/schemaUtils';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport pick from '@splunk/themes/pick';\nimport variables from '@splunk/themes/variables';\nimport { COLOR_EDITOR_PALETTE } from '@splunk/visualizations-shared/colorConstants';\nimport { VIZ_CATEGORICAL } from '@splunk/visualization-color-palettes';\nimport { enhanceConfig } from '../common/utils/configUtils';\nimport { VizConfig } from '../common/interfaces/VizConfig';\nimport { VizCategory } from '../common/interfaces/VizCategory';\nimport { DataContract } from '../common/interfaces/DataContract';\nimport { VizSize } from '../common/interfaces/VizSize';\nimport { DefaultContext } from '../common/interfaces/DefaultContext';\nimport { OptionsSchema } from '../common/interfaces/OptionsSchema';\nimport { EditorConfig } from '../common/interfaces/Editor';\nimport { ThemedDefaults } from '../common/interfaces/ThemedDefaults';\nimport { VizBehavior } from '../common/interfaces/VizBehavior';\n\nconst dataContract: DataContract = {\n requiredDataSources: [\n {\n name: 'primary',\n description: 'DataSource that powers the visualization',\n },\n ],\n optionalDataSources: [],\n initialRequestParams: {\n primary: { offset: 0, count: 10000 },\n },\n};\n\nconst size: VizSize = {\n initialWidth: 900,\n initialHeight: 400,\n};\n\nconst defaultContext: DefaultContext = {\n nodeTextColorMaxContrast: {\n colors: ['> themes.textColor', '> themes.inverseTextColor'],\n default: '> themes.textColor',\n },\n nodeHighlightTextColorMaxContrast: {\n colors: ['> themes.defaultNodeColor', '> themes.inverseDefaultNodeColor'],\n default: '> themes.textColor',\n },\n};\n\nconst optionsSchema: OptionsSchema = {\n backgroundColor: {\n default: '> themes.defaultBackgroundColor',\n description:\n 'Specify the color for the background. You may use a dataSource to apply the color. The default for enterprise light is \"#ffffff\". The default for enterprise dark is \"#000000\". The default for prisma dark is \"#0b0c0e\".',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n type: 'string',\n },\n fieldOrder: {\n default: '> primary | getField()',\n description:\n 'Specify the order of fields to be displayed in the link graph from left to right when loaded. Unspecified fields will be excluded from the graph.',\n type: 'array',\n items: {\n type: 'string',\n },\n },\n linkColor: {\n default: '#6d6f76',\n description:\n 'Specify the color used for highlighted links. Unhighlighted links will be displayed at 20% opacity.',\n pattern: COLOR_OR_TOKEN_PATTERN,\n type: 'string',\n },\n linkWidth: {\n default: 1,\n description: 'Specify, in pixels, the stroke width of each link.',\n type: 'number',\n },\n nodeColor: {\n default: '> themes.defaultNodeColor',\n description: 'Specify the color used for unhighlighted nodes.',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n type: 'string',\n },\n nodeTextColor: {\n description: 'Specify the color used for unhighlighted nodes text.',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n type: 'string',\n default: '> nodeColor | maxContrast(nodeTextColorMaxContrast)',\n },\n nodeHeight: {\n default: 21,\n description: 'Specify, in pixels, the height of each node.',\n type: 'number',\n },\n nodeHighlightColor: {\n default: VIZ_CATEGORICAL[0],\n description: 'Specify the color used for highlighted nodes.',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n type: 'string',\n },\n nodeTextHighlightColor: {\n description: 'Specify the color used for highlighted nodes text.',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n type: 'string',\n default: '> nodeHighlightColor | maxContrast(nodeHighlightTextColorMaxContrast)',\n },\n nodeSpacingX: {\n default: 32,\n description: 'Specify, in pixels, the horizontal spacing between each node.',\n type: 'number',\n },\n nodeSpacingY: {\n default: 18,\n description: 'Specify, in pixels, the vertical spacing between each node.',\n type: 'number',\n },\n nodeWidth: {\n default: 180,\n description: 'Specify, in pixels, the width of each node.',\n type: 'number',\n },\n resultLimit: {\n default: 50,\n description: 'Specify the number of nodes rendered in each column.',\n type: 'number',\n },\n showNodeCounts: {\n default: true,\n description:\n 'Specify whether a count is shown for the number of nodes displayed in each column. The number of total nodes is also shown if there are hidden nodes.',\n type: 'boolean',\n },\n showValueCounts: {\n default: true,\n description:\n 'Specify whether a count is shown for the frequency of occurrence for each distinct node value.',\n type: 'boolean',\n },\n};\n\nconst themes: ThemedDefaults = {\n defaultBackgroundColor: props =>\n pick({\n enterprise: {\n dark: variables.black(props),\n light: variables.backgroundColor(props),\n },\n prisma: variables.backgroundColorSidebar(props),\n })(props),\n defaultNodeColor: props =>\n pick({\n enterprise: {\n dark: variables.backgroundColorDialog(props),\n light: variables.gray96(props),\n },\n prisma: variables.backgroundColorDialog(props),\n })(props),\n inverseDefaultNodeColor: props =>\n pick({\n enterprise: {\n dark: variables.contentColorInverted(props), // equal to textColor in enterprise\n light: variables.white(props), // equal to textColor in enterpriseDark\n },\n prisma: variables.contentColorInverted(props),\n })(props),\n textColor: props =>\n pick({\n enterprise: variables.textColor(props),\n prisma: variables.contentColorDefault(props),\n })(props),\n inverseTextColor: props =>\n pick({\n enterprise: {\n dark: variables.contentColorInverted(props), // equal to textColor in enterprise\n light: variables.white(props), // equal to textColor in enterpriseDark\n },\n prisma: variables.contentColorInverted(props),\n })(props),\n};\n\nconst EDITOR_LABEL_WIDTH = 140;\nconst backgroundColorPaletteSet = new Set([\n ...COLOR_EDITOR_PALETTE,\n ...map(themes, (t): string => get(t, 'defaultBackgroundColor')),\n]);\n\nconst editorConfig: EditorConfig[] = [\n // {\n // label: _('Data'),\n // layout: [\n // [\n // {\n // label: _('Field Ordering'),\n // option: 'fieldOrder',\n // editor: 'editor.arrayOfStrings',\n // editorProps: {\n // themes,\n // labelPosition: 'top',\n // },\n // },\n // ],\n // ],\n // },\n {\n label: _('Coloring'),\n layout: [\n [\n {\n label: _('Background'),\n option: 'backgroundColor',\n editor: 'editor.color',\n editorProps: {\n themes,\n labelPosition: 'left',\n labelWidth: EDITOR_LABEL_WIDTH,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n [\n {\n label: _('Node Color'),\n option: 'nodeColor',\n editor: 'editor.color',\n editorProps: {\n themes,\n labelPosition: 'left',\n labelWidth: EDITOR_LABEL_WIDTH,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n [\n {\n label: _('Selected Node Color'),\n option: 'nodeHighlightColor',\n editor: 'editor.color',\n editorProps: {\n themes,\n labelPosition: 'left',\n labelWidth: EDITOR_LABEL_WIDTH,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n [\n {\n label: _('Link Color'),\n option: 'linkColor',\n editor: 'editor.color',\n editorProps: {\n themes,\n labelPosition: 'left',\n labelWidth: EDITOR_LABEL_WIDTH,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n ],\n },\n {\n label: _('Node Layout'),\n layout: [\n [\n {\n label: _('Node Width'),\n option: 'nodeWidth',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'top',\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n {\n label: _('Node Height'),\n option: 'nodeHeight',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'top',\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Vertical Spacing'),\n option: 'nodeSpacingY',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'top',\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n {\n label: _('Horizontal Spacing'),\n option: 'nodeSpacingX',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'top',\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Link Width'),\n option: 'linkWidth',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'left',\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Result Limit'),\n option: 'resultLimit',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'left',\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n ],\n },\n {\n label: _('Display Options'),\n layout: [\n [\n {\n label: _('Show Node Counts'),\n option: 'showNodeCounts',\n editor: 'editor.toggle',\n editorProps: {\n themes,\n labelPosition: 'left',\n labelWidth: 130,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n [\n {\n label: _('Show Value Counts'),\n option: 'showValueCounts',\n editor: 'editor.toggle',\n editorProps: {\n themes,\n labelPosition: 'left',\n labelWidth: 130,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n ],\n },\n];\n\nconst config: VizConfig = {\n /**\n * unique viz key\n */\n key: 'splunk.linkgraph',\n /**\n * viz name\n */\n name: 'Link Graph',\n category: VizCategory.FLOW,\n status: 'preview',\n /**\n * viz icon\n */\n icon: LinkGraphIcon,\n dataContract,\n size,\n defaultContext,\n optionsSchema,\n editorConfig,\n events: {\n 'node.click': {\n description: 'triggered when user clicks a node',\n },\n },\n supports: [VizBehavior.DYNAMIC_OPTIONS, VizBehavior.EVENTS, VizBehavior.PLACEHOLDER],\n themes,\n};\n\nexport default enhanceConfig(config);\n"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"prop-types\"","webpack:///external \"react\"","webpack:///external \"lodash\"","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///external \"styled-components\"","webpack:///./src/common/interfaces/VizBehavior.ts","webpack:///./src/common/utils/configUtils.ts","webpack:///./src/common/utils/hocUtils.ts","webpack:///external \"@babel/runtime/helpers/defineProperty\"","webpack:///external \"@splunk/visualizations-shared/Message\"","webpack:///external \"@babel/runtime/helpers/classCallCheck\"","webpack:///external \"@splunk/themes/variables\"","webpack:///external \"@splunk/visualizations-shared/colorUtils\"","webpack:///./src/common/hocs/FixedSizeContainer.tsx","webpack:///external \"@splunk/visualizations-shared/style\"","webpack:///external \"@splunk/visualizations-shared/schemaUtils\"","webpack:///external \"@babel/runtime/helpers/createClass\"","webpack:///external \"@splunk/visualizations-shared/SizeAwareWrapper\"","webpack:///external \"@babel/runtime/helpers/typeof\"","webpack:///external \"@splunk/themes/pick\"","webpack:///./src/common/utils/JSONSchemaUtils.ts","webpack:///./src/common/hooks/getSorting.ts","webpack:///./src/common/hooks/getPagination.ts","webpack:///./src/common/components/IconPlaceholder.tsx","webpack:///./src/common/interfaces/VizCategory.ts","webpack:///./src/common/withDashboardViz.tsx","webpack:///external \"@splunk/themes/getSettingsFromThemedProps\"","webpack:///external \"@splunk/visualization-encoding/Options\"","webpack:///external \"@splunk/visualizations-shared/SanitizeProps\"","webpack:///./src/common/SplunkVisualization.tsx","webpack:///./src/common/interfaces/VizActionHandler.ts","webpack:///./src/common/interfaces/DataSource.ts","webpack:///./src/common/hooks/useDeepMemo.ts","webpack:///./src/common/components/MissingPropsMessage.tsx","webpack:///./src/common/hocs/withEditModeCover.tsx","webpack:///./src/common/hocs/withPlaceholder.tsx","webpack:///external \"@babel/runtime/helpers/toConsumableArray\"","webpack:///external \"@splunk/visualizations-shared/colorConstants\"","webpack:///external \"@splunk/visualization-color-palettes\"","webpack:///external \"@splunk/visualization-icons/placeholders\"","webpack:///external \"@splunk/visualization-icons\"","webpack:///external \"@babel/runtime/helpers/slicedToArray\"","webpack:///external \"@babel/runtime/helpers/inherits\"","webpack:///external \"@babel/runtime/helpers/possibleConstructorReturn\"","webpack:///external \"@babel/runtime/helpers/getPrototypeOf\"","webpack:///external \"@splunk/visualizations-shared/dataSourceUtils\"","webpack:///./src/LinkGraph/LinkGraph.tsx","webpack:///./src/LinkGraph/PureLinkGraph/PureLinkGraphUtils.ts","webpack:///./src/LinkGraph/PureLinkGraph/components/GraphStyles.ts","webpack:///./src/LinkGraph/index.ts","webpack:///./src/LinkGraph/PureLinkGraph/PureLinkGraph.tsx","webpack:///./src/LinkGraph/PureLinkGraph/components/Graph.tsx","webpack:///./src/LinkGraph/PureLinkGraph/components/Edges.tsx","webpack:///./src/LinkGraph/PureLinkGraph/components/Nodes.tsx","webpack:///./src/LinkGraph/PureLinkGraph/components/Node.tsx","webpack:///external \"@splunk/react-ui/Paragraph\"","webpack:///./src/LinkGraph/PureLinkGraph/components/Field.tsx","webpack:///external \"@splunk/react-ui/Dropdown\"","webpack:///external \"@splunk/react-ui/Button\"","webpack:///external \"@splunk/react-ui/Menu\"","webpack:///external \"@splunk/react-ui/Chip\"","webpack:///./src/LinkGraph/PureLinkGraph/components/FieldStyles.tsx","webpack:///./src/LinkGraph/config.ts"],"names":[],"mappings":"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","file":"LinkGraph.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 179);\n","module.exports = require(\"prop-types\");","module.exports = require(\"react\");","module.exports = require(\"lodash\");","module.exports = require(\"@splunk/ui-utils/i18n\");","module.exports = require(\"styled-components\");","export enum VizBehavior {\n /**\n * Dynamic Options Behavior.\n * This allows visualization options to be powered by data\n *\n * **Example**\n *\n * sparklineValues: \">primary|seriesByIndex(0)\"\n * would configure sparklineValues with an array of data points\n * coming from the first series in the primary datasource\n *\n */\n DYNAMIC_OPTIONS = 'dynamic-options',\n EVENTS = 'events',\n /**\n * Placeholder behavior: visualization will display a placeholder rather than fail if any of the `requiredProps` is\n * missing.\n * @type {string}\n */\n PLACEHOLDER = 'placeholder',\n PAGE_AND_SORT = 'page-and-sort',\n}\n","import { get, range } from 'lodash';\nimport { DYNAMIC_OPTIONS_DSL_PATTERN } from '@splunk/visualizations-shared/schemaUtils';\nimport type { JSONSchema7Definition } from 'json-schema';\nimport { VizBehavior } from '../interfaces/VizBehavior';\nimport { VizConfig } from '../interfaces/VizConfig';\nimport { OptionsSchema } from '../interfaces/OptionsSchema';\n\nexport interface PresetEntry {\n name: string;\n value: any;\n label: string;\n}\n\nconst dynamicOptionsDSLType = {\n type: 'string',\n pattern: DYNAMIC_OPTIONS_DSL_PATTERN,\n} as const;\n\n/**\n * Helper function to extend an options schema with dynamic options DSL\n * @param optionsSchema a visualization's options schema\n * @returns an updated options schema that additionally allows strings starting with > for each option\n */\nfunction enhanceOptionsSchemaWithDynamicOptions(\n optionsSchema: OptionsSchema | JSONSchema7Definition\n): OptionsSchema {\n const enhancedOptionsSchema: OptionsSchema = {};\n Object.keys(optionsSchema).forEach((key): void => {\n const {\n // The next a few are schema annotations, we should leave them as is.\n // Note: in reality we don't use `readOnly`, `writeOnly` or `examples`, but they are listed here for completeness.\n // Ref: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01\n title,\n description,\n readOnly,\n writeOnly,\n examples,\n default: defaultValue,\n // The next a few need special care\n type,\n properties,\n patternProperties,\n // The rest should be handled together\n ...remainingSchemaEntry\n } = optionsSchema[key];\n\n const annotations = {\n ...(title !== undefined && { title }),\n ...(description !== undefined && { description }),\n ...(readOnly !== undefined && { readOnly }),\n ...(writeOnly !== undefined && { writeOnly }),\n ...(examples !== undefined && { examples }),\n ...(defaultValue !== undefined && { default: defaultValue }),\n };\n\n if (type === 'object') {\n enhancedOptionsSchema[key] = {\n ...remainingSchemaEntry,\n ...annotations,\n type,\n ...(properties && { properties: enhanceOptionsSchemaWithDynamicOptions(properties) }),\n };\n if (patternProperties) {\n let enhancedPatternProperties = {};\n Object.keys(patternProperties).forEach((opt): void => {\n enhancedPatternProperties = {\n ...enhancedPatternProperties,\n ...enhanceOptionsSchemaWithDynamicOptions({ [opt]: patternProperties[opt] }),\n };\n });\n enhancedOptionsSchema[key].patternProperties = enhancedPatternProperties;\n }\n } else {\n enhancedOptionsSchema[key] = {\n ...annotations,\n anyOf: [\n // we can't assume `type` is always there because there are `enum` and `const`.\n { ...(type !== undefined && { type }), ...remainingSchemaEntry },\n dynamicOptionsDSLType,\n ],\n };\n }\n });\n return enhancedOptionsSchema;\n}\n\n/**\n * Helper function to enhance a Visualization Config as needed based on behaviors specified in supports block\n * @param vizConfig a Visualization Config\n * @returns an enhanced Visualization Config containing updated config entries based on behaviors it supports\n */\nfunction enhanceConfig(vizConfig: VizConfig): VizConfig {\n const enhancedConfig: VizConfig = vizConfig;\n if (vizConfig.supports.indexOf(VizBehavior.DYNAMIC_OPTIONS) !== -1) {\n enhancedConfig.optionsSchema = enhanceOptionsSchemaWithDynamicOptions(vizConfig.optionsSchema);\n }\n return enhancedConfig;\n}\n\nfunction isDynamicOption(option?: string): boolean {\n return (option && typeof option === 'string' && option.trim().startsWith('>')) || false;\n}\n\n// private helpers to improve readability of getInitialPreset\n// this shouldn't be tested since this util isn't something that we expect to use outside of getInitialPreset\n\n/**\n * this checks to make sure that all values within vizContext are compatible with the given preset's context to determine the initialPreset\n * if a preset has explicitly specified a key as being undefined, the vizContext must also has that key as undefined, or else this CANNOT be the initialPreset\n * the inverse is true; if a preset has key is NOT undefined, it must also be NOT undefined in the corresponding vizContext\n * the internal config contents are irrelevant (as the user could customize them in source), just as long as the presence of `undefined`s match up\n *\n * Since the presetConfigs have explicit undefined keys to override the existing config, we need to explicitly check the undefined values\n */\nfunction hasCompatibleContexts(\n vizContext: { [configKey: string]: any },\n presetContext: { [configKey: string]: any }\n): boolean {\n const presetContextKeys = Object.keys(presetContext);\n return presetContextKeys.every(\n (contextKey): boolean =>\n (presetContext[contextKey] === undefined && vizContext[contextKey] === undefined) ||\n (presetContext[contextKey] !== undefined && vizContext[contextKey] !== undefined)\n );\n}\n\n/**\n * Checks to make sure that dynamic (non-dynamic) options in a given preset are also dynamic (non-dynamic) in the vizOptions\n */\nfunction hasCompatibleOptions(\n vizOptions: { [configKey: string]: any },\n presetOptions: { [configKey: string]: any }\n): boolean {\n const presetOptionKeys = Object.keys(presetOptions);\n return presetOptionKeys.every(\n (optionKey): boolean =>\n isDynamicOption(presetOptions[optionKey]) === isDynamicOption(vizOptions[optionKey])\n );\n}\n\n/**\n * Evaluates whether there is an initialPreset that fits the current state of vizContext + vizOptions\n * This function ignores extraneous vizOptions or vizContext keys, as they could be outside the scope of what the preset is intended to configure\n *\n * @param {Object} vizContext - the current vizContext definition\n * @param {Object} vizOptions - the current vizOptions definition\n * @param {PresetEntry[]} presets - the list of presets, one of which can be considered an initialPreset\n */\nfunction getInitialPreset(\n vizContext: { [configKey: string]: any },\n vizOptions: { [configKey: string]: any },\n presets: PresetEntry[]\n): PresetEntry | null {\n return presets.find((preset): boolean => {\n const presetContext = get(preset, ['value', 'context'], {});\n const presetOptions = get(preset, ['value', 'options'], {});\n const presetContextKeys = Object.keys(presetContext);\n const presetOptionKeys = Object.keys(presetOptions);\n\n // all presets have to explicitly specify which options to reset (i.e. need explicitly undefined keys)\n // if not, then the preset is invalid in config.ts\n if (presetContextKeys.length === 0 || presetOptionKeys.length === 0) return false;\n\n return (\n hasCompatibleContexts(vizContext, presetContext) &&\n hasCompatibleOptions(vizOptions, presetOptions)\n );\n });\n}\n\ninterface PrecisionOption {\n label: string;\n value: number;\n}\n\n/**\n * generates number precision values for a Select editor\n *\n * @param {Number} numPrecisionValues - number of integer precision values to generate\n * @returns {{ label: string; value; string }[]} array of { label, value } tuples\n */\nfunction generatePrecisionValues(numPrecisionValues: number): PrecisionOption[] {\n return range(0, numPrecisionValues + 1).map(\n (i): PrecisionOption => ({\n label: `${i} (0${i > 0 ? '.' : ''}${'0'.repeat(i)})`, // e.g. 0.000 for numPrecisionValues = 3\n value: i,\n })\n );\n}\n\nexport {\n enhanceConfig,\n enhanceOptionsSchemaWithDynamicOptions,\n isDynamicOption,\n getInitialPreset,\n generatePrecisionValues,\n};\n","import { cloneDeep } from 'lodash';\nimport { DashboardVizProps } from '../interfaces/DashboardVizProps';\n\nexport type DashboardVizType = React.ComponentType<DashboardVizProps>;\n\n/**\n * @method extendStaticWrapperProps\n * @param {Object} props\n * @param {DashboardVizType} props.Wrapper\n * @param {DashboardVizType} props.Visualization\n */\nexport const extendStaticWrapperProps = ({\n Wrapper,\n Visualization,\n}: {\n [key: string]: DashboardVizType;\n}): void => {\n const extendProperties = ['propTypes', 'defaultProps', 'config'];\n extendProperties.forEach((prop: string): void => {\n if (Visualization[prop]) {\n // eslint-disable-next-line no-param-reassign\n Wrapper[prop] = Visualization[prop];\n }\n });\n};\n\n/**\n * helper to deeply merge objects while preserving arrays in earlier source objects\n * deeply nested primitive keys are merged similarly to lodash's defaultsDeep, while keys with arrays of primitives will be preserved if already present in the resultant merged object\n * this prevents default arrays of primitives from appending values to user-defined arrays (this occurs if the default array is longer than the user-defined one).\n * Array of objects gets merged with the defaults, where the defaults can be an array of objects. Closest matching default object from the defaults list based on key - value pair\n * will be used for merging defaults for each object in the array. If no closest match found, first object in default array list used for merging.\n *\n * @method deepMergeWithArrayPrimitiveOverrides\n * @param {Object} initial - target object to merge values into\n * @param {Object[]} sources - other default options to be merged into the resultant object if no explicit value is provided, with earlier args taking precedence over later ones\n *\n * @returns {Object}\n */\nexport const deepMergeWithArrayPrimitiveOverrides = (initial, ...sources) => {\n const clone = cloneDeep(initial);\n sources.forEach(sourceToApply => {\n Object.keys(sourceToApply).forEach(sourceKey => {\n if (!Object.prototype.hasOwnProperty.call(clone, sourceKey)) {\n clone[sourceKey] = cloneDeep(sourceToApply[sourceKey]);\n }\n if (\n clone[sourceKey] &&\n typeof clone[sourceKey] === 'object' &&\n !Array.isArray(clone[sourceKey]) &&\n typeof sourceToApply[sourceKey] === 'object'\n ) {\n clone[sourceKey] = deepMergeWithArrayPrimitiveOverrides(\n clone[sourceKey],\n sourceToApply[sourceKey]\n );\n } else if (\n Array.isArray(clone[sourceKey]) &&\n typeof clone[sourceKey][0] === 'object' &&\n !Array.isArray(clone[sourceKey][0])\n ) {\n // If option is an array of objects\n for (let i = 0; i < clone[sourceKey].length; i += 1) {\n if (typeof clone[sourceKey][i] === 'object') {\n const closestMatchIdx = findClosestMatchFromDefaultList(\n sourceToApply[sourceKey],\n clone[sourceKey][i]\n );\n if (closestMatchIdx > -1) {\n clone[sourceKey][i] = deepMergeWithArrayPrimitiveOverrides(\n clone[sourceKey][i],\n sourceToApply[sourceKey][closestMatchIdx]\n );\n }\n }\n }\n }\n });\n });\n return clone;\n};\n\n/**\n * Finds the closest matching object from the list, which has the max same key value pairs.\n * Returns the index of match if found, or -1\n * For eg :- \n const list = [{\n type: \"marker\",\n lat: \"value1\"\n }, {\n type: \"bubble\",\n size: \"value2\"\n }];\n\n const obj = {\n type: 'bubble'\n };\n\n findClosestMatch(list, obj) -> returns index 1.\n */\nexport const findClosestMatchFromDefaultList = (\n searchList: Array<Record<string, unknown>>,\n inputObj: Record<string, unknown>\n): number => {\n if (!Array.isArray(searchList) || searchList.length === 0) {\n return -1;\n }\n const keys = Object.keys(inputObj);\n let maxMatchCnt = 0;\n let maxMatchIdx = 0;\n\n searchList.forEach((item, idx) => {\n let matchCnt = 0;\n keys.forEach(key => {\n if (item[key] === inputObj[key]) {\n matchCnt += 1;\n }\n });\n if (Math.max(maxMatchCnt, matchCnt) > maxMatchCnt) {\n maxMatchCnt = matchCnt;\n maxMatchIdx = idx;\n }\n });\n return maxMatchIdx;\n};\n","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@splunk/visualizations-shared/Message\");","module.exports = require(\"@babel/runtime/helpers/classCallCheck\");","module.exports = require(\"@splunk/themes/variables\");","module.exports = require(\"@splunk/visualizations-shared/colorUtils\");","import * as React from 'react';\nimport styled from 'styled-components';\nimport SizeAwareWrapper from '@splunk/visualizations-shared/SizeAwareWrapper';\nimport { toPx } from '@splunk/visualizations-shared/style';\nimport { isColor } from '@splunk/visualizations-shared/colorUtils';\n\n// Global provided via webpack\n// eslint-disable-next-line no-underscore-dangle\ndeclare const __VISION_VERSION__: string;\n\ninterface ItemProps {\n backgroundColor?: string;\n width?: string | number;\n}\n\nconst Item = styled.div.attrs<ItemProps>(({ width }) => ({\n style: {\n width: toPx(width),\n },\n}))<ItemProps>`\n position: relative;\n background-color: ${(props): string =>\n (isColor(props.backgroundColor) && props.backgroundColor) || props.theme.defaultBackgroundColor}};\n`;\n\ninterface FixSizeItemProps {\n backgroundColor?: string;\n height?: string | number;\n width?: string | number;\n}\n\n// Use `.attrs()` for highly dynamic styles. Ref: https://github.com/styled-components/styled-components/issues/134#issuecomment-312415291\nconst FixSizeItem = styled.div.attrs<FixSizeItemProps>(({ width, height }): {\n style: { width?: string; height?: string };\n} => ({\n style: {\n ...(width && { width: toPx(width) }),\n ...(height && { height: toPx(height) }),\n },\n}))<FixSizeItemProps>`\n position: relative;\n flex-direction: column;\n flex: 1;\n display: flex;\n background-color: ${(props): string =>\n (isColor(props.backgroundColor) && props.backgroundColor) || props.theme.defaultBackgroundColor}};\n`;\n\nconst ItemContent = styled.div`\n position: relative;\n min-height: 100px;\n width: 100%;\n`;\n\nconst FixSizeItemContent = styled.div`\n min-height: 0px;\n flex: 1;\n position: relative;\n box-sizing: border-box;\n`;\n\ninterface HeightAndWidthProps {\n width?: string | number;\n height?: string | number;\n backgroundColor?: string;\n}\n\nconst withFixedSizeContainer = <P extends HeightAndWidthProps>(\n Viz: React.ComponentType<P>\n): React.ComponentType<P> => {\n const FixedSizeContainer = (props: P): React.ReactElement => {\n const { width, height, backgroundColor } = props;\n\n if (!height) {\n return (\n <Item data-test=\"item\" width={width} backgroundColor={backgroundColor}>\n <ItemContent>\n <Viz {...props} />\n </ItemContent>\n </Item>\n );\n }\n return (\n <FixSizeItem\n data-test=\"fix-size-item\"\n data-splunk-visualization-version={__VISION_VERSION__}\n width={width}\n height={height}\n backgroundColor={backgroundColor}\n >\n <FixSizeItemContent>\n <SizeAwareWrapper>\n {({ width: newWidth, height: newHeight }): React.ReactElement => (\n <Viz {...props} width={newWidth} height={newHeight} />\n )}\n </SizeAwareWrapper>\n </FixSizeItemContent>\n </FixSizeItem>\n );\n };\n FixedSizeContainer.displayName = 'withFixedSizeContainer';\n return FixedSizeContainer;\n};\n\nexport default withFixedSizeContainer;\n","module.exports = require(\"@splunk/visualizations-shared/style\");","module.exports = require(\"@splunk/visualizations-shared/schemaUtils\");","module.exports = require(\"@babel/runtime/helpers/createClass\");","module.exports = require(\"@splunk/visualizations-shared/SizeAwareWrapper\");","module.exports = require(\"@babel/runtime/helpers/typeof\");","module.exports = require(\"@splunk/themes/pick\");","/* eslint-disable no-param-reassign */\nimport type { JSONSchema7Definition } from 'json-schema';\nimport { has, isEmpty, get } from 'lodash';\nimport { KV } from '../interfaces/Object';\nimport { OptionsSchema } from '../interfaces/OptionsSchema';\n\nexport const pickFieldFromJSONSchema = (\n optionsSchema: OptionsSchema | JSONSchema7Definition,\n fieldName = 'default'\n): KV =>\n Object.keys(optionsSchema).reduce((accum: Record<string, unknown>, k): Record<string, unknown> => {\n if (has(optionsSchema[k], fieldName)) {\n accum[k] = optionsSchema[k][fieldName];\n } else if (get(optionsSchema, [k, 'type']) === 'object' && has(optionsSchema[k], 'properties')) {\n const nestedSchema = pickFieldFromJSONSchema(optionsSchema[k].properties, fieldName);\n if (!isEmpty(nestedSchema)) {\n accum[k] = nestedSchema;\n }\n }\n return accum;\n }, {});\n","import * as T from 'prop-types';\nimport { has, isFunction } from 'lodash';\nimport { DataSourceMeta, SortDirType, validSortDirs } from '../interfaces/DataSource';\n\nexport interface SortParams {\n currentSortKey?: undefined | string;\n currentSortDir?: undefined | SortDirType;\n onSort?: (e: MouseEvent, { sortKey, sortDir }: { sortKey: string; sortDir: SortDirType }) => void;\n}\n\nexport const SortParamsPropTypes = T.shape({\n currentSortKey: T.string,\n currentSortDir: T.oneOf(validSortDirs),\n onSort: T.func,\n});\n\nexport const getSortingParams = ({ requestParams, onRequestParamsChange }: DataSourceMeta): SortParams => {\n let currentSortKey;\n let currentSortDir;\n\n const nextSortDirMap = {\n asc: 'desc',\n desc: 'asc',\n none: 'asc',\n };\n\n let onSort;\n if (isFunction(onRequestParamsChange)) {\n if (requestParams && has(requestParams, 'sort')) {\n currentSortKey = Object.keys(requestParams.sort).shift();\n currentSortDir = requestParams.sort[currentSortKey];\n }\n\n // undid memoization since there is a dependency on requestParams, which is a deeply nested object\n onSort = (e, { sortKey, sortDir }): void => {\n if (typeof sortKey === 'string') {\n const nextSortDir = has(nextSortDirMap, sortDir) ? nextSortDirMap[sortDir] : 'none';\n onRequestParamsChange({\n ...requestParams,\n ...{ offset: 0, sort: { [sortKey]: nextSortDir } },\n });\n } else {\n onRequestParamsChange(requestParams);\n }\n };\n }\n\n return {\n currentSortKey,\n currentSortDir,\n onSort,\n };\n};\n","import * as T from 'prop-types';\nimport { cloneDeep, isFunction, noop } from 'lodash';\nimport { DataSourceMeta, RequestParams } from '../interfaces/DataSource';\n\nexport interface OnChangeParams {\n page?: number;\n count?: number;\n}\nexport interface PaginatorParams {\n isPaging?: boolean;\n current?: number;\n totalPages?: number;\n onChange?: (e: MouseEvent, x: OnChangeParams) => void;\n}\n\nexport const PaginatorParamsPropTypes = T.shape({\n isPaging: T.bool,\n current: T.number,\n totalPages: T.number,\n onChange: T.func,\n});\n\nexport const getPaginationParams = ({\n requestParams,\n meta,\n onRequestParamsChange,\n}: DataSourceMeta): PaginatorParams => {\n const totalCount = (meta && meta.totalCount) || 0;\n const offset = (requestParams && requestParams.offset) || 0;\n const count = requestParams && requestParams.count;\n const totalPages = typeof count === 'number' && count > 0 ? Math.ceil(totalCount / count) : 0;\n const current = typeof count === 'number' && count > 0 ? Math.floor(offset / count) + 1 : 0;\n const isPaging = totalPages > 1 && isFunction(onRequestParamsChange);\n\n const onChangeHandler = (e, { page, count: countArg }: OnChangeParams): void => {\n const newParams: RequestParams = cloneDeep(requestParams);\n\n if (typeof countArg === 'number') {\n newParams.count = countArg;\n newParams.offset = 0;\n }\n\n const pageCount = typeof newParams.count === 'number' ? newParams.count : 10;\n if (typeof page === 'number' && page > 0) {\n newParams.count = pageCount;\n newParams.offset = (page - 1) * pageCount;\n }\n\n onRequestParamsChange(newParams);\n };\n\n return {\n isPaging,\n current,\n totalPages,\n onChange: isFunction(onRequestParamsChange) ? onChangeHandler : noop,\n };\n};\n","import * as React from 'react';\nimport * as T from 'prop-types';\nimport { get } from 'lodash';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Message from '@splunk/visualizations-shared/Message';\nimport { DataSource } from '../interfaces/DataSource';\nimport withFixedSizeContainer from '../hocs/FixedSizeContainer';\n\n/**\n * @method shouldShowIconPlaceholder\n * @param {object} dataSources\n * @param {boolean} loading\n * @returns {boolean}\n */\nexport const shouldShowIconPlaceholder = (\n dataSources: { [name: string]: DataSource },\n loading = false\n): boolean => {\n const data = get(dataSources, 'primary.data.columns[0]', undefined);\n const noData = data === undefined;\n const fields = get(dataSources, 'primary.data.fields[0]', undefined);\n const noFields = fields === undefined;\n return loading || noData || noFields;\n};\n\nexport interface IconPlaceholderProps {\n icon?: React.ComponentClass<any>;\n width?: string | number;\n height?: string | number;\n backgroundColor?: string;\n iconColor?: string;\n}\n\nconst propTypes: Record<keyof IconPlaceholderProps, T.Validator<any>> = {\n icon: T.func,\n width: T.oneOfType([T.string, T.number]),\n height: T.oneOfType([T.string, T.number]),\n // eslint-disable-next-line react/no-unused-prop-types\n backgroundColor: T.string,\n iconColor: T.string,\n};\n\n/**\n * @method IconPlaceholder\n * @param {IconPlaceholderProps} props\n * @returns {React.ReactElement}\n */\nconst IconPlaceholder = (props: IconPlaceholderProps): React.ReactElement => {\n const { width, height, icon, iconColor } = props;\n if (icon) {\n return React.createElement(icon, {\n style: {\n left: '50%',\n top: '50%',\n color: iconColor,\n opacity: 0.15,\n position: 'absolute',\n transform: 'translate(-50%, -50%)',\n },\n width: '50%',\n height: '50%',\n });\n }\n\n return <Message width={width} height={height} level=\"warning\" message={_('No DataSource Connected')} />;\n};\n\nIconPlaceholder.propTypes = propTypes;\nIconPlaceholder.defaultProps = {\n width: '100%',\n height: 250,\n};\n\nexport default withFixedSizeContainer(IconPlaceholder);\n","export enum VizCategory {\n SINGLE_VALUE = 'Single Value',\n TRENDS = 'Trends',\n COMPARISONS = 'Comparisons',\n TABLE = 'Table',\n GAUGE = 'Gauge',\n DISTRIBUTIONS = 'Distributions',\n CHOROPLETH = 'Choropleth Maps',\n SHAPES = 'Shapes',\n MISC = 'misc',\n FLOW = 'Flow',\n CORRELATION = 'Correlation',\n SPATIAL = 'Spatial',\n}\n","import * as React from 'react';\nimport { camelCase, has, get, defaultsDeep } from 'lodash';\nimport getSettingsFromThemedProps from '@splunk/themes/getSettingsFromThemedProps';\nimport { Options as Opts } from '@splunk/visualization-encoding/Options';\nimport { withSanitizedProps } from '@splunk/visualizations-shared/SanitizeProps';\n\nimport { withTheme } from 'styled-components';\nimport SplunkVisualization from './SplunkVisualization';\nimport { DashboardVizProps } from './interfaces/DashboardVizProps';\nimport { VizConfig } from './interfaces/VizConfig';\nimport { VizProps } from './interfaces/VizProps';\nimport { VizBehavior } from './interfaces/VizBehavior';\nimport { DataSource } from './interfaces/DataSource';\nimport { getSortingParams } from './hooks/getSorting';\nimport { getPaginationParams } from './hooks/getPagination';\nimport { useDeepMemo } from './hooks/useDeepMemo';\nimport { pickFieldFromJSONSchema } from './utils/JSONSchemaUtils';\nimport MissingPropsMessage, { missingKeys } from './components/MissingPropsMessage';\nimport withEditModeCover from './hocs/withEditModeCover';\nimport withPlaceholder from './hocs/withPlaceholder';\nimport { ChartingProps } from './Charting';\nimport { deepMergeWithArrayPrimitiveOverrides } from './utils/hocUtils';\n\ntype HOC = (props: DashboardVizProps) => React.ReactElement<DashboardVizProps>;\nexport interface DashboardVizOpts {\n ReactViz: React.ComponentType<ChartingProps | VizProps>; // we will wrap this in DashboardViz (see const DashboardViz = ...)\n vizConfig: VizConfig;\n computeVizProps?: (props) => any;\n disableEditModeCover?: boolean;\n useIconPlaceholder?: (\n dataSources: { [name: string]: DataSource },\n loading: boolean,\n options: Record<string, unknown>\n ) => boolean;\n}\n\n/**\n * hoc that wraps a pure react visualization in a Dashboard visualization\n * @param {DashboardVizOpts} opts\n * @returns {HOC}\n */\nconst withDashboardViz = (opts: DashboardVizOpts): HOC => {\n const {\n ReactViz,\n vizConfig,\n computeVizProps = () => {},\n disableEditModeCover,\n useIconPlaceholder,\n } = opts;\n\n // sanitizing props before sending them to reactviz.\n const SanitizedReactViz = withSanitizedProps(ReactViz);\n const defaultOptions = pickFieldFromJSONSchema(vizConfig.optionsSchema, 'default');\n\n const DashboardViz = (props: DashboardVizProps): React.ReactElement<DashboardVizProps> => {\n const {\n mode,\n hasEventHandlers,\n dataSources, // type of { [key: string]: DataSource }\n options,\n context = {},\n width,\n height,\n onComputedProps,\n onEventTrigger,\n theme,\n onRequestParamsChange,\n } = props;\n\n const themeFunc = themeVar => vizConfig.themes[themeVar]?.(props);\n const bgColorFromTheme = themeFunc('defaultBackgroundColor');\n const {\n family: currentThemeFamily,\n colorScheme: currentThemeColorScheme,\n density: currentThemeDensity,\n } = getSettingsFromThemedProps({ theme });\n\n let evaluatedOptions: Opts = {}; // evaluatedOptions need to be initialized as an empty object\n evaluatedOptions = useDeepMemo((): Record<string, unknown> => {\n try {\n return Opts.evaluate(\n {\n context: defaultsDeep({}, context, vizConfig.defaultContext),\n options: deepMergeWithArrayPrimitiveOverrides({}, options, defaultOptions),\n },\n dataSources,\n themeFunc\n );\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(`unexpected error evaluating options: + ${e.message}`);\n return {};\n }\n }, [currentThemeFamily, currentThemeColorScheme, currentThemeDensity, options, context, dataSources]);\n\n // useEffect hook needs to be initialized before any early returns\n // this is in accordance with the order of hook calls being the same on each render https://reactjs.org/docs/hooks-rules.html#explanation\n React.useEffect((): void => {\n onComputedProps(evaluatedOptions);\n });\n\n // present warning message if any required props are missing\n const { requiredProps = [], supports } = vizConfig;\n const missing = missingKeys(requiredProps, evaluatedOptions);\n if (missing.length > 0 && supports.includes(VizBehavior.PLACEHOLDER)) {\n return (\n <MissingPropsMessage\n data-test=\"missing-props-message\"\n width={width}\n height={height}\n missingProps={missing}\n backgroundColor={bgColorFromTheme}\n />\n );\n }\n\n // events\n const eventCallbackProps = {};\n if (hasEventHandlers && mode === 'view' && vizConfig.supports.indexOf(VizBehavior.EVENTS) > -1) {\n const supportedEvents = vizConfig.events;\n Object.keys(supportedEvents).forEach((eventName): void => {\n const eventCallbackPropName = camelCase(`on.${eventName}`);\n eventCallbackProps[eventCallbackPropName] = null;\n // todo: refactor single value and single value icon to send payload from viz\n // then remove these lines\n const { payloadKeys } = supportedEvents[eventName];\n let payload = {};\n if (Array.isArray(payloadKeys) && payloadKeys.length) {\n payloadKeys.forEach(p => {\n payload[p] = evaluatedOptions[p];\n });\n }\n\n eventCallbackProps[eventCallbackPropName] = (ev): Record<string, unknown> => {\n if (ev && ev.payload) {\n payload = ev.payload;\n }\n\n return onEventTrigger({ originalEvent: ev, payload, type: eventName });\n };\n });\n }\n // compute pure viz props which are not from options\n const computedVizProps = computeVizProps({\n ...props,\n ...evaluatedOptions,\n ...eventCallbackProps,\n themeFunc,\n });\n\n /**\n * PAGE_AND_SORT behavior\n *\n * Some visualizations, like table, requires metadata about the datasource,\n * like total number of results, current count, offset, and sort, for rendering\n * paginator and sorting direction. In this approach, the visualization\n * allow users to set 'paginateDataSourceKey' to select which datasource\n * should the visualization extract the metadata from. It defaults to 'primary' datasource.\n * The visualization config should set the PAGE_AND_SORT behavior to receive\n * 'requestParams', 'meta' and onRequestParams callback as props.\n *\n * In future, we could automatically detect which all datasources are being used\n * and bind those magically to pagination/sorting behavior.\n */\n let dataSourceMetadata = {};\n const OptionKey = 'paginateDataSourceKey';\n const paginateDataSourceKey =\n (has(evaluatedOptions, OptionKey) && evaluatedOptions[OptionKey]) || 'primary';\n if (\n vizConfig.supports.indexOf(VizBehavior.PAGE_AND_SORT) > -1 &&\n has(dataSources, paginateDataSourceKey)\n ) {\n const requestParams = get(dataSources, [paginateDataSourceKey, 'requestParams'], {});\n const meta = get(dataSources, [paginateDataSourceKey, 'meta'], {});\n const handleRequestParamsChange = (payload: Record<string, unknown>): void =>\n onRequestParamsChange(paginateDataSourceKey, payload);\n\n const sortParams = getSortingParams({\n requestParams,\n meta,\n onRequestParamsChange: handleRequestParamsChange,\n });\n\n const paginatorParams = getPaginationParams({\n requestParams,\n meta,\n onRequestParamsChange: handleRequestParamsChange,\n });\n\n dataSourceMetadata = {\n sortParams,\n paginatorParams,\n };\n }\n\n return (\n <SanitizedReactViz\n mode={mode}\n width={width}\n height={height}\n {...evaluatedOptions}\n {...computedVizProps}\n {...eventCallbackProps}\n {...dataSourceMetadata}\n />\n );\n };\n\n DashboardViz.propTypes = {\n ...SplunkVisualization.propTypes,\n ...ReactViz.propTypes,\n };\n\n DashboardViz.defaultProps = {\n ...SplunkVisualization.defaultProps,\n ...ReactViz.defaultProps,\n // using withTheme requires component to receive theme prop. In case the consumer did not provide ThemeProvider, a default empty object will prevent warnings.\n theme: {},\n };\n // attach viz config\n DashboardViz.config = vizConfig;\n\n // @ts-ignore: TODO fix sc upgrade TS issues\n return withTheme(\n withPlaceholder(withEditModeCover(DashboardViz, disableEditModeCover), useIconPlaceholder)\n );\n};\n\nexport default withDashboardViz;\n","module.exports = require(\"@splunk/themes/getSettingsFromThemedProps\");","module.exports = require(\"@splunk/visualization-encoding/Options\");","module.exports = require(\"@splunk/visualizations-shared/SanitizeProps\");","/* eslint-disable react/no-unused-prop-types,react/prefer-stateless-function */\nimport * as T from 'prop-types';\nimport { noop } from 'lodash';\nimport { DashboardVizProps } from './interfaces/DashboardVizProps';\nimport { DefaultVizActionHandler } from './interfaces/VizActionHandler';\n\n// this is identical to the initial height and width we use in BaseVisualization in dashboard-visualizations\nexport const INITIAL_WIDTH = 250;\nexport const INITIAL_HEIGHT = 250;\n\n/**\n * A Splunk visualization\n */\nclass SplunkVisualization {\n static propTypes: Record<keyof DashboardVizProps, T.Validator<any>> = {\n /**\n * display mode\n */\n mode: T.oneOf(['view', 'edit', 'export']).isRequired,\n /**\n * width in pixel or string, defaults to 100%\n */\n width: T.oneOfType([T.string, T.number]).isRequired,\n /**\n * height in pixel or string\n */\n height: T.oneOfType([T.string, T.number]).isRequired,\n /**\n * visualization context used for dynamic option evaluation\n */\n context: T.object,\n /**\n * visualization formatting options\n */\n options: T.object,\n /**\n * A callback to update formatting options\n */\n onOptionsChange: T.func,\n /**\n * datasource state which include data and request params, object key indicate the datasource type.\n */\n dataSources: T.objectOf(\n T.shape({\n /**\n * current request params\n */\n requestParams: T.object,\n /**\n * current dataset\n */\n data: T.shape({\n fields: T.array,\n columns: T.array,\n }),\n /**\n * error\n */\n error: T.shape({\n level: T.string,\n message: T.string,\n }),\n /**\n * meta data that came with the dataset\n */\n meta: T.object,\n })\n ),\n /**\n * A callback to trigger event\n */\n onEventTrigger: T.func,\n /**\n * Inform viz if there are handlers listening to events\n */\n hasEventHandlers: T.bool,\n /**\n * A callback to communicate computed props to a consumer\n */\n onComputedProps: T.func,\n /**\n * A callback to obtain visualization api\n */\n vizActionHandlerRef: T.func,\n\n loading: T.bool,\n theme: T.object,\n /**\n * A callback to request new data with updated request params\n */\n onRequestParamsChange: T.func,\n };\n\n /**\n *\n */\n static defaultProps: DashboardVizProps = {\n // BaseVisualization in dashboard-visualizations uses 100% for width but 250 for height\n width: '100%',\n height: INITIAL_HEIGHT,\n dataSources: {},\n onEventTrigger: (): Record<string, unknown> => ({}),\n mode: 'view',\n hasEventHandlers: false,\n options: {},\n context: {},\n onOptionsChange: (): Record<string, unknown> => ({}),\n vizActionHandlerRef: (): DefaultVizActionHandler => new DefaultVizActionHandler(),\n onComputedProps: (): Record<string, unknown> => ({}),\n loading: false,\n onRequestParamsChange: noop,\n };\n}\n\nexport default SplunkVisualization;\n","/* eslint-disable class-methods-use-this */\nexport interface VizActionHandler {\n /**\n * put focus on the visualization\n */\n focus(): void;\n\n /**\n * compute snapshot of this visualization\n */\n snapshot(): Record<string, unknown>; // (This is for pdf export)\n}\n\nexport class DefaultVizActionHandler {\n focus(): void {\n // noop\n }\n\n snapshot(): Record<string, unknown> {\n return null; // noop\n }\n}\n","/**\n * represents the data in a raw columnar format, resulting from a splunk\n * query request.\n */\ninterface FieldEntry {\n name: string;\n}\n\nexport interface JsonColumnData {\n fields: FieldEntry[] | string[];\n columns: string[][];\n}\nexport interface Meta {\n totalCount: number;\n}\n\nexport const validSortDirs = ['asc', 'desc', 'none'] as const;\nexport type SortDirType = typeof validSortDirs[number];\n\nexport interface RequestParams {\n count?: number;\n offset?: number;\n sort?: {\n [sortKey: string]: SortDirType;\n };\n}\n\nexport interface DataSource {\n requestParams: Partial<RequestParams>;\n onRequestParamsChange?: (p: Record<string, unknown>) => void;\n data: JsonColumnData;\n error?: { level: string; message: string };\n meta: Partial<Meta>;\n}\n\nexport interface DataSourceMeta {\n requestParams: Partial<RequestParams>;\n meta: Partial<Meta>;\n onRequestParamsChange: (payload: RequestParams) => void;\n}\n","import { useRef } from 'react';\nimport { isEqual } from 'lodash';\n\n/**\n * This hook evaluates and stores the result of a passed function and only\n * re-evaluates the function when passed dependencies change.\n *\n * It is different from the internal React useMemo in the following aspects:\n * - it only stores the last evaluated result\n * - it uses a deep equality check to determine if dependencies have changed\n *\n * Inspired by apollo-client's useDeepMemo\n *\n * @param fn the function to be executed and\n * @param dependencies an array of dependencies\n */\nexport const useDeepMemo = <FnReturnType, DepType>(\n fn: () => FnReturnType,\n dependencies: DepType\n): FnReturnType => {\n const ref = useRef<{ dependencies: DepType; value: FnReturnType }>();\n if (!ref.current || !isEqual(dependencies, ref.current.dependencies)) {\n ref.current = {\n dependencies,\n value: fn(),\n };\n }\n return ref.current.value;\n};\n","import * as React from 'react';\nimport * as T from 'prop-types';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Message from '@splunk/visualizations-shared/Message';\nimport withFixedSizeContainer from '../hocs/FixedSizeContainer';\n\n/**\n * @method isMissing\n * @param {any} v\n * @returns {boolean} true if the input value === null or undefined\n */\nexport const isMissing = (v): boolean => {\n return v === null || v === undefined;\n};\n\n/**\n * @method misskingKeys\n * @param {string[]} keys\n * @param {object} target\n * @returns {string[]} the keys of missing required props\n */\nexport const missingKeys = (keys: string[], target: Record<string, unknown>): string[] =>\n keys.filter(k => isMissing(target[k]));\n\nexport interface MissingPropsProps {\n width?: string | number;\n height?: string | number;\n missingProps: string[];\n backgroundColor?: string;\n}\n\nconst propTypes: Record<keyof MissingPropsProps, T.Validator<any>> = {\n width: T.oneOfType([T.string, T.number]),\n height: T.oneOfType([T.string, T.number]),\n // eslint-disable-next-line react/no-unused-prop-types\n backgroundColor: T.string,\n missingProps: T.arrayOf(T.string),\n};\n\n/**\n * @method MissingPropsMessage\n * @param {MissingPropsProps} props\n * @returns {React.ReactElement}\n */\nexport const MissingPropsMessage = (props: MissingPropsProps): React.ReactElement => {\n const { width, height, missingProps } = props;\n return (\n <Message\n data-test=\"message\"\n width={width}\n height={height}\n message={_(`Missing property: ${missingProps.join(', ')}`)}\n />\n );\n};\n\nMissingPropsMessage.propTypes = propTypes;\nMissingPropsMessage.defaultProps = {\n width: '100%',\n height: 250,\n};\nexport default withFixedSizeContainer(MissingPropsMessage);\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { DashboardVizProps } from '../interfaces/DashboardVizProps';\nimport { ExtendedDashViz } from '../interfaces/ExtendedDashViz';\nimport { extendStaticWrapperProps } from '../utils/hocUtils';\n\n// Global provided via webpack\n// eslint-disable-next-line no-underscore-dangle\ndeclare const __VISION_VERSION__: string;\n\nconst Cover = styled.div`\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n`;\n\nconst Blocker = styled.div.attrs({\n 'data-splunk-visualization-version': __VISION_VERSION__,\n})`\n position: relative;\n width: 100%;\n height: 100%;\n`;\n\n/**\n * HOC that renders a cover layer in edit mode\n * @method withEditModeCover\n * @param {ExtendedDashViz} Visualization\n * @returns {ExtendedDashViz} Wrapper\n */\nconst withEditModeCover = (\n Visualization: ExtendedDashViz,\n disableEditModeCover?: boolean\n): ExtendedDashViz => {\n const Wrapper = (props: DashboardVizProps): React.ReactElement<DashboardVizProps> => {\n const { mode } = props;\n const showEditCover = mode === 'edit' && !disableEditModeCover;\n\n return (\n <Blocker>\n <Visualization {...props} />\n {showEditCover && <Cover data-test=\"edit-mode-cover\" />}\n </Blocker>\n );\n };\n extendStaticWrapperProps({ Wrapper, Visualization });\n return Wrapper as ExtendedDashViz;\n};\n\nexport default withEditModeCover;\n","import * as React from 'react';\nimport { isColor } from '@splunk/visualizations-shared/colorUtils';\nimport variables from '@splunk/themes/variables';\nimport IconPlaceholder, { shouldShowIconPlaceholder } from '../components/IconPlaceholder';\nimport { VizBehavior } from '../interfaces/VizBehavior';\nimport { DashboardVizProps } from '../interfaces/DashboardVizProps';\nimport { DataSource } from '../interfaces/DataSource';\nimport { ExtendedDashViz } from '../interfaces/ExtendedDashViz';\nimport { extendStaticWrapperProps } from '../utils/hocUtils';\n\ntype useIconPlaceholderType = (\n dataSources: { [name: string]: DataSource },\n loading: boolean,\n options: Record<string, unknown>\n) => boolean;\n\nconst withPlaceholder = (\n Visualization: ExtendedDashViz,\n useIconPlaceholder: useIconPlaceholderType = shouldShowIconPlaceholder\n): ExtendedDashViz => {\n const { config } = Visualization;\n const { themes } = config;\n\n const Wrapper = (props: DashboardVizProps): React.ReactElement<DashboardVizProps> => {\n const { dataSources, loading, options, height, width } = props;\n\n const showPlaceholder = useIconPlaceholder(dataSources, loading, options);\n const bgColorFromTheme = isColor(options?.backgroundColor)\n ? options?.backgroundColor\n : themes?.defaultBackgroundColor?.(props);\n\n const icon = config.placeholderIcon ?? config.icon;\n const iconColor = variables.contentColorActive(props);\n\n if (config.supports.includes(VizBehavior.PLACEHOLDER) && showPlaceholder) {\n return (\n <IconPlaceholder\n data-test=\"icon-placeholder\"\n icon={icon}\n width={width}\n height={height}\n backgroundColor={bgColorFromTheme}\n iconColor={iconColor}\n />\n );\n }\n\n return <Visualization {...props} />;\n };\n extendStaticWrapperProps({ Wrapper, Visualization });\n return Wrapper as ExtendedDashViz;\n};\n\nexport default withPlaceholder;\n","module.exports = require(\"@babel/runtime/helpers/toConsumableArray\");","module.exports = require(\"@splunk/visualizations-shared/colorConstants\");","module.exports = require(\"@splunk/visualization-color-palettes\");","module.exports = require(\"@splunk/visualization-icons/placeholders\");","module.exports = require(\"@splunk/visualization-icons\");","module.exports = require(\"@babel/runtime/helpers/slicedToArray\");","module.exports = require(\"@babel/runtime/helpers/inherits\");","module.exports = require(\"@babel/runtime/helpers/possibleConstructorReturn\");","module.exports = require(\"@babel/runtime/helpers/getPrototypeOf\");","module.exports = require(\"@splunk/visualizations-shared/dataSourceUtils\");","import { get } from 'lodash';\nimport { getDataSourceStateInfo, DataSourceState } from '@splunk/visualizations-shared/dataSourceUtils';\nimport withDashboardViz, { DashboardVizOpts } from '../common/withDashboardViz';\nimport PureLinkGraph from './PureLinkGraph/PureLinkGraph';\nimport config from './config';\nimport { DataSource } from '../common/interfaces/DataSource';\n\n/**\n * @method showPlaceHolderIcon\n * @param {Object} dataSources\n * @returns {Boolean} return true if loading, error, non existent state or without columns in dataSources\n */\nexport const showPlaceHolderIcon = dataSources => {\n const columns = get(dataSources, 'primary.data.columns', undefined);\n const noColumns = columns === undefined;\n const dataSourceState = getDataSourceStateInfo(dataSources);\n return (\n dataSourceState === DataSourceState.ERROR ||\n dataSourceState === DataSourceState.LOADING ||\n dataSourceState === DataSourceState.NONEXISTENT ||\n noColumns\n );\n};\n\nexport const computeVizProps = ({ themeFunc, ...props }) => {\n const themeColorVariables = ['defaultBackgroundColor', 'defaultLinkColor', 'defaultNodeColor'];\n const themeColors: Record<string, unknown> = {};\n themeColorVariables.forEach(variable => {\n themeColors[variable] = themeFunc(variable);\n });\n if (props.dataSources) {\n const { fields, columns } = props.dataSources.primary.data;\n return { fields: fields.map(field => (field.name ? field.name : field)), columns, ...themeColors };\n }\n return themeColors;\n};\n\nconst LinkGraph = withDashboardViz({\n ReactViz: PureLinkGraph,\n vizConfig: config,\n computeVizProps,\n useIconPlaceholder: (dataSources: { [name: string]: DataSource }) => showPlaceHolderIcon(dataSources),\n} as DashboardVizOpts);\n\nconst { themes } = config;\nexport default LinkGraph;\nexport { themes, config, LinkGraph, PureLinkGraph };\n","import { sortBy } from 'lodash';\n\nexport interface onNodeClickType {\n payload: {\n name: string;\n value: string;\n state: string;\n [key: string]: string;\n };\n}\n\nexport type EdgeType = {\n sourceNode: string;\n targetNode: string;\n};\n\nexport type NodeDataType = {\n field: string;\n fieldIndex: number;\n value: string;\n outs: Record<string, EdgeType>;\n count: number;\n};\n\nexport type NodeType = {\n x: number;\n y: number;\n w: number;\n h: number;\n currentX?: number;\n currentY?: number;\n currentW?: number;\n currentH?: number;\n time?: number;\n data: NodeDataType;\n};\n\nexport type FieldType = {\n count: number;\n};\n\nexport type GraphType = {\n nodes: Record<string, NodeType>;\n edges: EdgeType[];\n fields: Record<string, FieldType>;\n};\n\nconst createNode = (\n graphDataModelIn: GraphType,\n nodesIn: Record<string, NodeType>,\n column: string,\n field: string,\n fieldIndex: number,\n nodeWidth: number,\n nodeHeight: number,\n nodeSpacingX: number,\n nodeSpacingY: number,\n shouldAddToGraphDataModel: boolean\n): NodeType => {\n const nodes = nodesIn;\n const graphDataModel = graphDataModelIn;\n let node = nodes[column];\n if (!nodes[column]) {\n node = {\n x: 0,\n y: 0,\n w: 0,\n h: 0,\n data: {\n field,\n fieldIndex,\n count: 1,\n value: column,\n outs: {},\n },\n };\n } else {\n node.data.count += 1;\n }\n const key = `${fieldIndex}-${field}-${column}`;\n if (shouldAddToGraphDataModel && !graphDataModel.nodes[key]) {\n nodes[column] = node;\n graphDataModel.nodes[key] = node;\n node.x = fieldIndex * nodeWidth + fieldIndex * nodeSpacingX;\n node.y =\n (Object.keys(nodes).length - 1) * nodeHeight +\n (Object.keys(nodes).length - 1) * nodeSpacingY +\n OFFSET_Y;\n node.w = nodeWidth;\n node.h = nodeHeight;\n }\n return node;\n};\n\nconst createEdge = (\n graphDataModelIn: GraphType,\n nodesIn: Record<string, NodeType>,\n edgesIn: Record<string, unknown>,\n nodeIn: NodeType,\n columns: string[],\n column: string,\n columnIndex: number,\n fields: string[],\n field: string,\n fieldIndex: number,\n shouldAddToGraphDataModel: boolean\n) => {\n if (!shouldAddToGraphDataModel) {\n return;\n }\n const node = nodeIn;\n const edges = edgesIn;\n const graphDataModel = graphDataModelIn;\n if (columns[fieldIndex + 1] && columns[fieldIndex + 1][columnIndex]) {\n const sourceNode = `${fieldIndex}-${field}-${column}`;\n const targetNode = `${fieldIndex + 1}-${fields[fieldIndex + 1]}-${\n columns[fieldIndex + 1][columnIndex]\n }`;\n const edge = {\n sourceNode,\n targetNode,\n };\n node.data.outs[`${column}-${columns[fieldIndex + 1][columnIndex]}`] = edge;\n edges[`${edge.sourceNode}-${edge.targetNode}`] = edge;\n }\n graphDataModel.fields[field].count = Object.keys(nodesIn).length;\n};\n\nexport const OFFSET_Y = 35;\n\n/**\n *\n * @param fields\n * @param columns\n * @param nodeWidth\n * @param nodeHeight\n * @param nodeSpacingX\n * @param nodeSpacingY\n * @param resultLimit\n * @param fieldOrder\n * @returns GraphType\n * Translates fields and column data into GraphType object.\n * Node placement is figured out here - see NodeType\n * We transverse over fields\n * Then for every field we go down the column\n * We create a node\n * look to the right one column, create an edge\n * look to the left one column, create an edge\n */\nexport const createLinkGraphFromTable = (\n fieldsIn: string[],\n columnsIn: any[],\n nodeWidth: number,\n nodeHeight: number,\n nodeSpacingX: number,\n nodeSpacingY: number,\n resultLimit: number,\n fieldOrder: string[]\n): GraphType => {\n const nodes = {};\n const edges = {};\n const graphDataModel: GraphType = {\n nodes: {},\n edges: [],\n fields: {},\n };\n if (!fieldsIn || !Array.isArray(fieldsIn) || !columnsIn || !Array.isArray(columnsIn)) {\n return graphDataModel;\n }\n let fields = fieldsIn;\n let columns = columnsIn;\n if (fieldOrder.length) {\n fields = fieldOrder;\n columns = [];\n fields.forEach((field, fieldIndex) => {\n columns[fieldIndex] = columnsIn[fieldsIn.indexOf(field)];\n });\n }\n // TODO: this should not return anything; not sure why the original LinkGraph code returned something at the end of a .forEach\n // eslint-disable-next-line consistent-return\n fields.forEach((field: string, fieldIndex: number) => {\n nodes[field] = {\n nodes: {},\n };\n graphDataModel.fields[field] = {\n count: 0,\n };\n if (!columns[fieldIndex]) {\n return graphDataModel;\n }\n columns[fieldIndex].forEach((column: string, columnIndex: number) => {\n const shouldAddToGraphDataModel = Object.keys(nodes[field].nodes).length < resultLimit;\n const node = createNode(\n graphDataModel,\n nodes[field].nodes,\n column,\n field,\n fieldIndex,\n nodeWidth,\n nodeHeight,\n nodeSpacingX,\n nodeSpacingY,\n shouldAddToGraphDataModel\n );\n createEdge(\n graphDataModel,\n nodes[field].nodes,\n edges,\n node,\n columns,\n column,\n columnIndex,\n fields,\n field,\n fieldIndex,\n shouldAddToGraphDataModel\n );\n });\n });\n graphDataModel.edges = Object.values(edges);\n return graphDataModel;\n};\n\nclass Edges {\n store = {};\n\n constuctor() {\n this.store = {};\n }\n\n addEdge(source: string, target: string) {\n if (!this.store[source]) {\n this.store[source] = {};\n }\n this.store[source][target] = true;\n }\n\n getNeighbors(source: string) {\n if (!this.store[source]) {\n return {};\n }\n return this.store[source];\n }\n}\n\nexport const getNodesToHighlight = (\n graph: GraphType,\n sourceNodeID: string\n): {\n vertices: string[];\n edges: string[];\n} => {\n const edges = { reverse: new Edges(), forward: new Edges() };\n graph.edges.forEach(edge => {\n edges.forward.addEdge(edge.sourceNode, edge.targetNode);\n edges.reverse.addEdge(edge.targetNode, edge.sourceNode);\n });\n\n const vs = {\n ...traverse(edges.reverse, sourceNodeID),\n ...traverse(edges.forward, sourceNodeID),\n };\n const vertices = new Set(Object.keys(vs));\n const result = {\n vertices: [],\n edges: [],\n };\n\n result.vertices = [...vertices];\n result.edges = [...vertices].flatMap(v =>\n Object.keys(edges.forward.getNeighbors(v))\n .filter(u => vertices.has(u))\n .map(u => `${v}-${u}`)\n );\n\n return result;\n};\n\nconst traverse = (edges: Edges, sourceNodeID: string) => {\n const visited = {};\n let currentNodesToTraverse = [sourceNodeID];\n while (currentNodesToTraverse.length) {\n const nextNodesToTraverse = [];\n\n currentNodesToTraverse.forEach(node => {\n visited[node] = true;\n const neighbors = edges.getNeighbors(node);\n Object.keys(neighbors).forEach(n => nextNodesToTraverse.push(n));\n });\n\n currentNodesToTraverse = nextNodesToTraverse;\n }\n return visited;\n};\n\n// TODO: write tests once all sorting options are supported\nexport const sortGraphColumn = (\n graph: GraphType,\n field: string,\n sortKey: string,\n nodeHeight: number,\n nodeSpacingY: number\n) => {\n const nodesToSort: NodeType[] = Object.values(graph.nodes).filter(node => node.data.field === field);\n const nodes: NodeType[] = sortBy(nodesToSort, node => node.data.value);\n if (sortKey === 'Z-A') {\n nodes.reverse();\n }\n nodes.forEach((node, index) => {\n const currentNode = node;\n currentNode.y = index * nodeHeight + index * nodeSpacingY + OFFSET_Y;\n });\n};\n","import styled from 'styled-components';\nimport pick from '@splunk/themes/pick';\nimport variables from '@splunk/themes/variables';\n\nexport const StyledViewport = styled.div<{\n nodeColor: string;\n nodeTextColor: string;\n nodeHighlightColor: string;\n nodeTextHighlightColor: string;\n linkColor: string;\n}>`\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n\n .node {\n transition: background 0.05s ease-out;\n background: ${props => props.nodeColor};\n border: 2px solid transparent;\n p {\n color: ${props => props.nodeTextColor} !important;\n }\n }\n\n .node.hovering {\n background: ${props => props.nodeHighlightColor};\n p {\n color: ${props => props.nodeTextHighlightColor} !important;\n }\n }\n\n .node.selected {\n border-radius: 1px;\n border: 2px solid\n ${pick({\n enterprise: variables.accentColorD10,\n prisma: variables.interactiveColorPrimary,\n })};\n }\n\n .edge {\n transition: opacity 0.05s ease-out;\n stroke: ${props => props.linkColor};\n opacity: 0.3;\n }\n\n .edge.hovering {\n opacity: 0.8;\n }\n\n > button {\n border-radius: 1px;\n position: absolute;\n overflow: hidden;\n background: none;\n color: inherit;\n border: none;\n padding: 0;\n font: inherit;\n cursor: pointer;\n outline: inherit;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n .center-content {\n width: 100%;\n max-width: 100%;\n flex: 1 1 100%;\n display: flex;\n flex-wrap: nowrap;\n justify-content: flex-start;\n width: 0;\n padding-left: 8px;\n padding-right: 8px;\n > p {\n color: ${pick({\n enterprise: {\n light: variables.gray30,\n dark: variables.gray60,\n },\n prisma: variables.contentColorActive,\n })};\n }\n > p:nth-child(1) {\n font-size: 10px;\n padding: 0;\n margin: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n > p:nth-child(2) {\n flex: 0 auto;\n margin: 0;\n font-size: 10px;\n padding-left: 8px;\n }\n }\n .left-content {\n padding-left: 8px;\n }\n .right-content {\n padding-right: 8px;\n }\n .left-content,\n .right-content {\n flex: 0 0 auto;\n > p {\n height: 100%;\n font-weight: bold;\n font-size: 10px;\n padding: 0;\n margin: 0;\n color: ${pick({\n enterprise: {\n light: variables.gray30,\n dark: variables.gray60,\n },\n prisma: {\n light: variables.contentColorActive,\n dark: variables.contentColorMuted,\n },\n })};\n }\n }\n }\n`;\n\nexport const StyledEdgesPath = styled.path<{ linkWidth: number }>`\n fill: transparent;\n stroke: #9b9b9d;\n stroke-width: ${props => `${props.linkWidth}px`};\n`;\n","export * from './LinkGraph';\nexport { default } from './LinkGraph';\n","import * as React from 'react';\nimport * as T from 'prop-types';\nimport styled from 'styled-components';\nimport { get } from 'lodash';\nimport withFixedSizeContainer from '../../common/hocs/FixedSizeContainer';\nimport { createLinkGraphFromTable, sortGraphColumn, GraphType, onNodeClickType } from './PureLinkGraphUtils';\nimport Graph from './components/Graph';\nimport Field from './components/Field';\nimport { StyledFields } from './components/FieldStyles';\n\nexport interface PureLinkGraphProps {\n mode: string;\n backgroundColor: string;\n columns: any[];\n fields: string[];\n height: number;\n linkColor: string;\n linkWidth: number;\n nodeWidth: number;\n nodeHeight: number;\n nodeSpacingX: number;\n nodeSpacingY: number;\n nodeColor: string;\n nodeTextColor: string;\n nodeHighlightColor: string;\n nodeTextHighlightColor: string;\n resultLimit: number;\n width: number;\n showValueCounts: boolean;\n showNodeCounts: boolean;\n onNodeClick: (arg0: onNodeClickType) => void;\n fieldOrder: string[];\n}\n\nconst LinkGraphContainer = styled.div<{ height: number; width: number }>`\n position: relative;\n top: 12px;\n left: 16px;\n width: ${props => props?.width - 32}px;\n height: ${props => props?.height - 24}px;\n`;\n\nconst LinkGraphWrapper = styled.div<{ backgroundColor: string; height: number; width: number }>`\n background-color: ${({ backgroundColor }) => backgroundColor};\n width: ${props => get(props, 'width')}px;\n height: ${props => get(props, 'height')}px;\n overflow: auto;\n`;\n\nLinkGraphContainer.displayName = 'LinkGraphContainer';\n\nexport const PureLinkGraph = (props: PureLinkGraphProps): any => {\n const {\n // dereferencing needed to avoid linting conflict with unused prop-types\n mode, // eslint-disable-line @typescript-eslint/no-unused-vars\n backgroundColor,\n width,\n height,\n fields,\n columns,\n nodeWidth,\n nodeHeight,\n nodeSpacingX,\n nodeSpacingY,\n onNodeClick,\n linkColor,\n nodeColor,\n nodeTextColor,\n nodeHighlightColor,\n nodeTextHighlightColor,\n resultLimit,\n linkWidth,\n showValueCounts,\n showNodeCounts,\n fieldOrder,\n } = props;\n /*\n value / setValue is here so we can modify graphDataModelState directly and \n force a rerender, as opposed to making a copy of graphDataModelState and\n mutating the copy and using that in the new state.\n\n I will make sure to test this in a UDF context to make sure there is no data loss\n or incorrect rendering ( and will then remove this last comment or address later on )\n */\n const [value, setValue] = React.useState(0);\n const [graphDataModelState, setGraphDataModelState] = React.useState<GraphType>(\n createLinkGraphFromTable(\n fields,\n columns,\n nodeWidth,\n nodeHeight,\n nodeSpacingX,\n nodeSpacingY,\n resultLimit,\n fieldOrder\n )\n );\n\n React.useEffect(() => {\n setGraphDataModelState(\n createLinkGraphFromTable(\n fields,\n columns,\n nodeWidth,\n nodeHeight,\n nodeSpacingX,\n nodeSpacingY,\n resultLimit,\n fieldOrder\n )\n );\n }, [fields, columns, nodeWidth, nodeHeight, nodeSpacingX, nodeSpacingY, resultLimit, fieldOrder]);\n\n const handleFieldSort = (field, sortKey) => {\n sortGraphColumn(graphDataModelState, field, sortKey, nodeHeight, nodeSpacingY);\n setGraphDataModelState(graphDataModelState);\n setValue(value + 1);\n };\n\n return (\n <LinkGraphWrapper backgroundColor={backgroundColor} height={height} width={width}>\n <LinkGraphContainer data-test-render-count={value} height={height} width={width}>\n <Graph\n linkColor={linkColor}\n nodeColor={nodeColor}\n nodeTextColor={nodeTextColor}\n nodeHighlightColor={nodeHighlightColor}\n nodeTextHighlightColor={nodeTextHighlightColor}\n graphDataModel={graphDataModelState}\n onNodeClick={onNodeClick}\n linkWidth={linkWidth}\n showValueCounts={showValueCounts}\n />\n <StyledFields nodeWidth={nodeWidth} nodeSpacingX={nodeSpacingX}>\n {Object.keys(graphDataModelState.fields).map((field, index) => (\n <Field\n showNodeCounts={showNodeCounts}\n data-test={`field-${index}`}\n key={field}\n onSort={(sortKey: string) => handleFieldSort(field, sortKey)}\n field={field}\n width={nodeWidth}\n count={graphDataModelState.fields[field].count}\n />\n ))}\n </StyledFields>\n </LinkGraphContainer>\n </LinkGraphWrapper>\n );\n};\n\nPureLinkGraph.propTypes = {\n mode: T.string,\n backgroundColor: T.string,\n width: T.number,\n height: T.number,\n fields: T.array,\n columns: T.array,\n onNodeClick: T.func,\n nodeWidth: T.number,\n nodeHeight: T.number,\n nodeSpacingX: T.number,\n nodeSpacingY: T.number,\n linkColor: T.string,\n nodeColor: T.string,\n nodeTextColor: T.string,\n nodeHighlightColor: T.string,\n nodeTextHighlightColor: T.string,\n resultLimit: T.number,\n linkWidth: T.number,\n showValueCounts: T.bool,\n showNodeCounts: T.bool,\n fieldOrder: T.array,\n};\n\nPureLinkGraph.defaultProps = {\n mode: 'view',\n fields: null,\n columns: [],\n backgroundColor: '#0B0C0E',\n width: 1200,\n height: 400,\n nodeWidth: 180,\n nodeHeight: 21,\n nodeSpacingX: 32,\n nodeSpacingY: 6,\n linkWidth: 1,\n linkColor: '#B5B5B5',\n nodeColor: '#1E2024',\n nodeTextColor: '#FFFFFF',\n nodeHighlightColor: '#7B56DB',\n nodeTextHighlightColor: '#FFFFFF',\n resultLimit: 50,\n showValueCounts: true,\n showNodeCounts: true,\n onNodeClick: () => {},\n fieldOrder: [],\n};\n\nPureLinkGraph.displayName = 'VizLinkGraph';\n\nexport default withFixedSizeContainer(PureLinkGraph);\n","import * as React from 'react';\nimport { cloneDeep } from 'lodash';\nimport Edges from './Edges';\nimport Nodes from './Nodes';\nimport { StyledViewport } from './GraphStyles';\nimport { GraphType, EdgeType, getNodesToHighlight, NodeType, onNodeClickType } from '../PureLinkGraphUtils';\n\ntype GraphState = {\n nodes: Record<string, NodeType>;\n edges: [];\n highlightedNodes: string[];\n hasMounted: boolean;\n};\n\ntype GraphProps = {\n graphDataModel: GraphType;\n onNodeClick: (arg0: onNodeClickType) => void;\n nodeColor: string;\n nodeTextColor?: string;\n nodeHighlightColor: string;\n nodeTextHighlightColor?: string;\n linkColor: string;\n linkWidth: number;\n showValueCounts: boolean;\n};\n\nclass Graph extends React.Component<GraphProps, GraphState> {\n requestAnimationFrameId: number;\n\n viewport: HTMLElement;\n\n constructor(props) {\n super(props);\n this.requestAnimationFrameId = null;\n this.viewport = null;\n this.state = {\n nodes: {},\n edges: [],\n highlightedNodes: [],\n hasMounted: false,\n };\n }\n\n static getDerivedStateFromProps(props: GraphProps, state: GraphState) {\n if (!state.hasMounted) {\n return state;\n }\n const nodes = cloneDeep(props.graphDataModel.nodes);\n Object.keys(nodes).forEach(key => {\n const nodeFromProps = nodes[key];\n const nodeFromState = state.nodes[key];\n if (!nodeFromState) {\n nodeFromProps.time = 1;\n } else if (\n nodeFromProps.x !== nodeFromState.x ||\n nodeFromProps.y !== nodeFromState.y ||\n nodeFromProps.w !== nodeFromState.w ||\n nodeFromProps.h !== nodeFromState.h\n ) {\n nodeFromProps.time = 0;\n }\n nodeFromProps.currentX = nodeFromProps.x;\n nodeFromProps.currentY = nodeFromProps.y;\n nodeFromProps.currentW = nodeFromProps.w;\n nodeFromProps.currentH = nodeFromProps.h;\n });\n\n let highlightedNodes = [...state.highlightedNodes];\n\n state.highlightedNodes.forEach(nodeID => {\n if (!props.graphDataModel.nodes[nodeID]) {\n highlightedNodes = [];\n }\n });\n\n return {\n nodes,\n edges: props.graphDataModel.edges,\n highlightedNodes,\n };\n }\n\n componentDidMount() {\n this.setState({\n hasMounted: true,\n });\n }\n\n componentDidUpdate() {\n const { highlightedNodes } = this.state;\n cancelAnimationFrame(this.requestAnimationFrameId);\n this.highlightAllEdges();\n this.unhighlightAllNodes();\n highlightedNodes.forEach(value => {\n this.handleMouseEnterNode(value);\n });\n this.tween();\n }\n\n componentWillUnmount() {\n cancelAnimationFrame(this.requestAnimationFrameId);\n }\n\n handleMouseEnterNode(nodeID: string) {\n this.unhighlightAllEdges();\n const { vertices, edges } = getNodesToHighlight(this.props.graphDataModel, nodeID);\n edges.forEach(e => {\n const element = this.viewport.querySelector(`[data-test=\"edge-${e}\"]`);\n element.classList.add('hovering');\n });\n\n vertices.forEach(uuid => {\n const element = this.viewport.querySelector(`[data-test=\"node-${uuid}\"]`);\n element.classList.add('hovering');\n });\n }\n\n handleMouseLeave() {\n const { highlightedNodes } = this.state;\n [...this.viewport.getElementsByClassName('hovering')[Symbol.iterator]()].forEach(ele => {\n ele.classList.remove('hovering');\n });\n highlightedNodes.forEach(value => {\n this.handleMouseEnterNode(value);\n });\n this.highlightAllEdges();\n }\n\n handleMouseClick(key: string) {\n const { onNodeClick } = this.props;\n const { nodes, highlightedNodes } = this.state;\n const newHighlightedNodes: string[] = [...highlightedNodes];\n const index = newHighlightedNodes.indexOf(key);\n const element = this.viewport.querySelector(`[data-test=\"node-${key}\"]`);\n let state = false;\n\n if (index !== -1) {\n newHighlightedNodes.splice(index, 1);\n element.classList.remove('selected');\n element.setAttribute('aria-pressed', 'false');\n } else {\n newHighlightedNodes.push(key);\n state = true;\n element.classList.add('selected');\n element.setAttribute('aria-pressed', 'true');\n }\n this.setState(\n {\n highlightedNodes: newHighlightedNodes,\n },\n () => this.handleMouseLeave()\n );\n const selectedOption = state ? 'selected' : 'unselected';\n const { field, value } = nodes[key].data;\n const payload = { name: field, value, state: selectedOption };\n const { vertices } = getNodesToHighlight(this.props.graphDataModel, key);\n vertices\n .map(k => nodes[k])\n .forEach(node => {\n const row = `row.${node.data.field}.value`;\n if (!payload[row]) {\n payload[row] = [];\n }\n payload[row].push(node.data.value);\n });\n onNodeClick({ payload });\n }\n\n highlightAllEdges() {\n const { highlightedNodes } = this.state;\n if (!highlightedNodes.length) {\n this.viewport\n .querySelectorAll(`[data-test^=\"edge-\"]`)\n .forEach(element => element.classList.add('hovering'));\n }\n }\n\n unhighlightAllEdges() {\n const { highlightedNodes } = this.state;\n if (!highlightedNodes.length) {\n this.viewport\n .querySelectorAll(`[data-test^=\"edge-\"]`)\n .forEach(element => element.classList.remove('hovering'));\n }\n }\n\n unhighlightAllNodes() {\n const { highlightedNodes } = this.state;\n if (!highlightedNodes.length) {\n this.viewport\n .querySelectorAll(`[data-test^=\"node-\"]`)\n .forEach(element => element.classList.remove('hovering'));\n }\n }\n\n tween() {\n const { nodes } = this.state;\n let isAnimating = false;\n Object.keys(nodes).forEach((nodeId: string) => {\n const node = nodes[nodeId];\n const nodeElement: HTMLElement = this.viewport.querySelector(`[data-test=\"node-${nodeId}\"]`);\n if (nodeElement) {\n if (nodeElement.style.left === '') {\n this.moveNodeBy(\n nodeId,\n Math.floor(node.x),\n Math.floor(node.y),\n Math.floor(node.w),\n Math.floor(node.h)\n );\n } else {\n const x = parseInt(nodeElement.style.left, 10);\n const y = parseInt(nodeElement.style.top, 10);\n const w = parseInt(nodeElement.style.width, 10);\n const h = parseInt(nodeElement.style.height, 10);\n node.time += 0.01;\n const newX = Math.floor(x * (1 - node.time) + node.x * node.time);\n const newY = Math.floor(y * (1 - node.time) + node.y * node.time);\n const newWidth = Math.floor(w * (1 - node.time) + node.w * node.time);\n const newHeight = Math.floor(h * (1 - node.time) + node.h * node.time);\n if (node.time < 1) {\n this.moveNodeBy(\n nodeId,\n Math.floor(newX),\n Math.floor(newY),\n Math.floor(newWidth),\n Math.floor(newHeight)\n );\n isAnimating = true;\n } else {\n this.moveNodeBy(\n nodeId,\n Math.floor(node.x),\n Math.floor(node.y),\n Math.floor(node.w),\n Math.floor(node.h)\n );\n node.time = 1;\n }\n }\n }\n });\n cancelAnimationFrame(this.requestAnimationFrameId);\n if (isAnimating) {\n this.requestAnimationFrameId = requestAnimationFrame(this.tween.bind(this));\n }\n }\n\n moveNodeBy(nodeId: string, xIn: number, yIn: number, wIn: number, hIn: number) {\n const { nodes } = this.state;\n nodes[nodeId].currentX = xIn;\n nodes[nodeId].currentY = yIn;\n nodes[nodeId].currentW = wIn;\n nodes[nodeId].currentH = hIn;\n const nodeElement: HTMLElement = this.viewport.querySelector(`[data-test=\"node-${nodeId}\"]`);\n if (nodeElement) {\n nodeElement.style.left = `${xIn}px`;\n nodeElement.style.top = `${yIn}px`;\n nodeElement.style.width = `${wIn}px`;\n nodeElement.style.height = `${hIn}px`;\n }\n Object.values(nodes[nodeId].data.outs).forEach((edge: EdgeType) => {\n if (edge.sourceNode === nodeId || edge.targetNode === nodeId) {\n const start = nodes[edge.sourceNode];\n const end = nodes[edge.targetNode];\n const edgeElement = this.viewport.querySelector(\n `[data-test=\"edge-${edge.sourceNode}-${edge.targetNode}\"]`\n );\n if (edgeElement && start && end) {\n const middle: {\n currentX: number;\n currentY: number;\n currentWidth: number;\n currentHeight: number;\n } = {\n currentX: 0,\n currentY: 0,\n currentWidth: 0,\n currentHeight: 0,\n };\n middle.currentX =\n start.currentX +\n start.currentW +\n (end.currentX - (start.currentX + start.currentW)) / 2;\n middle.currentY =\n start.currentY +\n start.currentH / 2 +\n (end.currentY - start.currentY - start.currentH / 2) / 2;\n const svgData = `\n M${start.currentX + start.currentW},${start.currentY + start.currentH / 2}\n L${start.currentX + start.currentW},${start.currentY + start.currentH / 2}\n C${middle.currentX},${start.currentY + start.currentH / 2}\n ${middle.currentX},${end.currentY + end.currentH / 2}\n ${end.currentX},${end.currentY + end.currentH / 2}\n L${end.currentX},${end.currentY + end.currentH / 2}`;\n edgeElement.setAttribute('d', svgData);\n }\n }\n });\n }\n\n render() {\n const { nodes, edges } = this.state;\n const {\n nodeColor,\n nodeHighlightColor,\n linkColor,\n linkWidth,\n showValueCounts,\n nodeTextColor,\n nodeTextHighlightColor,\n } = this.props;\n const newEdges = edges.filter((edge: EdgeType) => nodes[edge.sourceNode] && nodes[edge.targetNode]);\n\n return (\n <StyledViewport\n nodeColor={nodeColor}\n nodeTextColor={nodeTextColor}\n nodeHighlightColor={nodeHighlightColor}\n nodeTextHighlightColor={nodeTextHighlightColor}\n linkColor={linkColor}\n ref={c => {\n this.viewport = c;\n }}\n >\n <Nodes\n nodes={nodes}\n onNodeClick={k => this.handleMouseClick(k)}\n handleMouseEnterNode={(nodeID: string) => this.handleMouseEnterNode(nodeID)}\n handleMouseLeave={() => this.handleMouseLeave()}\n showValueCounts={showValueCounts}\n />\n <Edges edges={newEdges} linkWidth={linkWidth} />\n </StyledViewport>\n );\n }\n}\n\nexport default Graph;\n","import * as React from 'react';\nimport { StyledEdgesPath } from './GraphStyles';\nimport { EdgeType } from '../PureLinkGraphUtils';\n\nexport interface EdgesProps {\n edges: EdgeType[];\n linkWidth: number;\n}\n\nconst Edges = (props: EdgesProps): React.ReactElement => {\n const { edges, linkWidth } = props;\n let key = '';\n return (\n <svg\n style={{\n position: 'absolute',\n overflow: 'visible',\n pointerEvents: 'none',\n }}\n height=\"100%\"\n width=\"100%\"\n data-test=\"edges\"\n >\n {edges.map(edge => {\n key = `edge-${edge.sourceNode}-${edge.targetNode}`;\n return [<StyledEdgesPath className=\"edge\" key={key} data-test={key} linkWidth={linkWidth} />];\n })}\n </svg>\n );\n};\n\nexport default Edges;\n","import * as React from 'react';\nimport Node from './Node';\nimport { NodeType } from '../PureLinkGraphUtils';\n\nexport interface NodesProps {\n nodes: Record<string, NodeType>;\n onNodeClick: (key: string) => void;\n handleMouseEnterNode: (nodeID: string) => void;\n handleMouseLeave: () => void;\n showValueCounts: boolean;\n}\n\nconst Nodes = (props: NodesProps): any =>\n Object.keys(props.nodes).map(key => (\n <button\n className=\"node\"\n type=\"button\"\n data-test={`node-${key}`}\n key={key}\n onClick={() => props.onNodeClick(key)}\n onMouseEnter={() => props.handleMouseEnterNode(key)}\n onMouseLeave={() => props.handleMouseLeave()}\n >\n <Node data={props.nodes[key].data} showValueCounts={props.showValueCounts} />\n </button>\n ));\n\nexport default Nodes;\n","import * as React from 'react';\nimport Paragraph from '@splunk/react-ui/Paragraph';\nimport { NodeDataType } from '../PureLinkGraphUtils';\n\nexport interface NodeProps {\n data: NodeDataType;\n showValueCounts: boolean;\n}\n\nconst Node = (props: NodeProps): React.ReactElement => {\n const { data, showValueCounts } = props;\n return (\n <>\n <div className=\"center-content\">\n <Paragraph>{data.value}</Paragraph>\n </div>\n <div className=\"right-content\">\n <Paragraph>{showValueCounts ? data.count : null}</Paragraph>\n </div>\n </>\n );\n};\n\nexport default Node;\n","module.exports = require(\"@splunk/react-ui/Paragraph\");","import * as React from 'react';\nimport Dropdown from '@splunk/react-ui/Dropdown';\nimport Button from '@splunk/react-ui/Button';\nimport Menu from '@splunk/react-ui/Menu';\nimport Chip from '@splunk/react-ui/Chip';\n\ninterface FieldProps {\n field: string;\n count: number;\n width: number;\n onSort: (sortKey: string) => void;\n showNodeCounts: boolean;\n}\n\nconst Field = ({ field, count, onSort, showNodeCounts, width }: FieldProps): React.ReactElement => {\n const toggle = <Button label={field} isMenu appearance=\"toggle\" />;\n\n return (\n <div>\n <Dropdown toggle={toggle} retainFocus data-test={`field-${field}-dropdown`}>\n <Menu style={{ width }}>\n <Menu.Item data-test=\"A-Z\" onClick={() => onSort('A-Z')}>\n A-Z\n </Menu.Item>\n <Menu.Item data-test=\"Z-A\" onClick={() => onSort('Z-A')}>\n Z-A\n </Menu.Item>\n </Menu>\n </Dropdown>\n {showNodeCounts ? (\n <Chip style={{ float: 'right', fontSize: '10px', height: '20px' }}>{count}</Chip>\n ) : null}\n </div>\n );\n};\n\nField.displayName = 'Field';\n\nexport default Field;\n","module.exports = require(\"@splunk/react-ui/Dropdown\");","module.exports = require(\"@splunk/react-ui/Button\");","module.exports = require(\"@splunk/react-ui/Menu\");","module.exports = require(\"@splunk/react-ui/Chip\");","import styled from 'styled-components';\nimport pick from '@splunk/themes/pick';\n\nexport const StyledFields = styled.div<{\n nodeWidth: number;\n nodeSpacingX: number;\n}>`\n position: absolute;\n whitespace: nowrap;\n display: flex;\n justify-content: space-between;\n align-items: center;\n max-height: 30px;\n\n > div:last-child {\n margin-right: 16px;\n }\n\n > div {\n width: ${props => props.nodeWidth}px;\n margin-right: ${props => props.nodeSpacingX}px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n > button {\n background: transparent !important;\n padding: 0;\n border: none;\n border-radius: !important;\n font-size: 12px !important;\n box-shadow: none !important;\n }\n\n > button > span {\n justify-content: flex-start;\n > span {\n padding: ${pick({ prisma: '0 !important' })};\n flex: 0 1 auto;\n font-weight: bold;\n }\n }\n\n > div {\n margin: 0;\n }\n }\n`;\n","import { map, get } from 'lodash';\nimport { LinkGraph as LinkGraphIcon } from '@splunk/visualization-icons';\nimport { LinkGraph as LinkGraphPlaceholderIcon } from '@splunk/visualization-icons/placeholders';\nimport {\n COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n COLOR_OR_TOKEN_PATTERN,\n} from '@splunk/visualizations-shared/schemaUtils';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport pick from '@splunk/themes/pick';\nimport variables from '@splunk/themes/variables';\nimport { COLOR_EDITOR_PALETTE } from '@splunk/visualizations-shared/colorConstants';\nimport { VIZ_CATEGORICAL } from '@splunk/visualization-color-palettes';\nimport { enhanceConfig } from '../common/utils/configUtils';\nimport { VizConfig } from '../common/interfaces/VizConfig';\nimport { VizCategory } from '../common/interfaces/VizCategory';\nimport { DataContract } from '../common/interfaces/DataContract';\nimport { VizSize } from '../common/interfaces/VizSize';\nimport { DefaultContext } from '../common/interfaces/DefaultContext';\nimport { OptionsSchema } from '../common/interfaces/OptionsSchema';\nimport { EditorConfig } from '../common/interfaces/Editor';\nimport { ThemedDefaults } from '../common/interfaces/ThemedDefaults';\nimport { VizBehavior } from '../common/interfaces/VizBehavior';\n\nconst dataContract: DataContract = {\n requiredDataSources: [\n {\n name: 'primary',\n description: 'DataSource that powers the visualization',\n },\n ],\n optionalDataSources: [],\n initialRequestParams: {\n primary: { offset: 0, count: 10000 },\n },\n};\n\nconst size: VizSize = {\n initialWidth: 900,\n initialHeight: 400,\n};\n\nconst defaultContext: DefaultContext = {\n nodeTextColorMaxContrast: {\n colors: ['> themes.textColor', '> themes.inverseTextColor'],\n default: '> themes.textColor',\n },\n nodeHighlightTextColorMaxContrast: {\n colors: ['> themes.defaultNodeColor', '> themes.inverseDefaultNodeColor'],\n default: '> themes.textColor',\n },\n};\n\nconst optionsSchema: OptionsSchema = {\n backgroundColor: {\n default: '> themes.defaultBackgroundColor',\n description:\n 'Specify the color for the background. You may use a dataSource to apply the color. The default for enterprise light is \"#ffffff\". The default for enterprise dark is \"#000000\". The default for prisma dark is \"#0b0c0e\".',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n type: 'string',\n },\n fieldOrder: {\n default: '> primary | getField()',\n description:\n 'Specify the order of fields to be displayed in the link graph from left to right when loaded. Unspecified fields will be excluded from the graph.',\n type: 'array',\n items: {\n type: 'string',\n },\n },\n linkColor: {\n default: '#6d6f76',\n description:\n 'Specify the color used for highlighted links. Unhighlighted links will be displayed at 20% opacity.',\n pattern: COLOR_OR_TOKEN_PATTERN,\n type: 'string',\n },\n linkWidth: {\n default: 1,\n description: 'Specify, in pixels, the stroke width of each link.',\n type: 'number',\n },\n nodeColor: {\n default: '> themes.defaultNodeColor',\n description: 'Specify the color used for unhighlighted nodes.',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n type: 'string',\n },\n nodeTextColor: {\n description: 'Specify the color used for unhighlighted nodes text.',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n type: 'string',\n default: '> nodeColor | maxContrast(nodeTextColorMaxContrast)',\n },\n nodeHeight: {\n default: 21,\n description: 'Specify, in pixels, the height of each node.',\n type: 'number',\n },\n nodeHighlightColor: {\n default: VIZ_CATEGORICAL[0],\n description: 'Specify the color used for highlighted nodes.',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n type: 'string',\n },\n nodeTextHighlightColor: {\n description: 'Specify the color used for highlighted nodes text.',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n type: 'string',\n default: '> nodeHighlightColor | maxContrast(nodeHighlightTextColorMaxContrast)',\n },\n nodeSpacingX: {\n default: 32,\n description: 'Specify, in pixels, the horizontal spacing between each node.',\n type: 'number',\n },\n nodeSpacingY: {\n default: 18,\n description: 'Specify, in pixels, the vertical spacing between each node.',\n type: 'number',\n },\n nodeWidth: {\n default: 180,\n description: 'Specify, in pixels, the width of each node.',\n type: 'number',\n },\n resultLimit: {\n default: 50,\n description: 'Specify the number of nodes rendered in each column.',\n type: 'number',\n },\n showNodeCounts: {\n default: true,\n description:\n 'Specify whether a count is shown for the number of nodes displayed in each column. The number of total nodes is also shown if there are hidden nodes.',\n type: 'boolean',\n },\n showValueCounts: {\n default: true,\n description:\n 'Specify whether a count is shown for the frequency of occurrence for each distinct node value.',\n type: 'boolean',\n },\n};\n\nconst themes: ThemedDefaults = {\n defaultBackgroundColor: props =>\n pick({\n enterprise: {\n dark: variables.black(props),\n light: variables.backgroundColor(props),\n },\n prisma: variables.backgroundColorSidebar(props),\n })(props),\n defaultNodeColor: props =>\n pick({\n enterprise: {\n dark: variables.backgroundColorDialog(props),\n light: variables.gray96(props),\n },\n prisma: variables.backgroundColorDialog(props),\n })(props),\n inverseDefaultNodeColor: props =>\n pick({\n enterprise: {\n dark: variables.contentColorInverted(props), // equal to textColor in enterprise\n light: variables.white(props), // equal to textColor in enterpriseDark\n },\n prisma: variables.contentColorInverted(props),\n })(props),\n textColor: props =>\n pick({\n enterprise: variables.textColor(props),\n prisma: variables.contentColorDefault(props),\n })(props),\n inverseTextColor: props =>\n pick({\n enterprise: {\n dark: variables.contentColorInverted(props), // equal to textColor in enterprise\n light: variables.white(props), // equal to textColor in enterpriseDark\n },\n prisma: variables.contentColorInverted(props),\n })(props),\n};\n\nconst EDITOR_LABEL_WIDTH = 140;\nconst backgroundColorPaletteSet = new Set([\n ...COLOR_EDITOR_PALETTE,\n ...map(themes, (t): string => get(t, 'defaultBackgroundColor')),\n]);\n\nconst editorConfig: EditorConfig[] = [\n // {\n // label: _('Data'),\n // layout: [\n // [\n // {\n // label: _('Field Ordering'),\n // option: 'fieldOrder',\n // editor: 'editor.arrayOfStrings',\n // editorProps: {\n // themes,\n // labelPosition: 'top',\n // },\n // },\n // ],\n // ],\n // },\n {\n label: _('Coloring'),\n layout: [\n [\n {\n label: _('Background'),\n option: 'backgroundColor',\n editor: 'editor.color',\n editorProps: {\n themes,\n labelPosition: 'left',\n labelWidth: EDITOR_LABEL_WIDTH,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n [\n {\n label: _('Node Color'),\n option: 'nodeColor',\n editor: 'editor.color',\n editorProps: {\n themes,\n labelPosition: 'left',\n labelWidth: EDITOR_LABEL_WIDTH,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n [\n {\n label: _('Selected Node Color'),\n option: 'nodeHighlightColor',\n editor: 'editor.color',\n editorProps: {\n themes,\n labelPosition: 'left',\n labelWidth: EDITOR_LABEL_WIDTH,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n [\n {\n label: _('Link Color'),\n option: 'linkColor',\n editor: 'editor.color',\n editorProps: {\n themes,\n labelPosition: 'left',\n labelWidth: EDITOR_LABEL_WIDTH,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n ],\n },\n {\n label: _('Node Layout'),\n layout: [\n [\n {\n label: _('Node Width'),\n option: 'nodeWidth',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'top',\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n {\n label: _('Node Height'),\n option: 'nodeHeight',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'top',\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Vertical Spacing'),\n option: 'nodeSpacingY',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'top',\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n {\n label: _('Horizontal Spacing'),\n option: 'nodeSpacingX',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'top',\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Link Width'),\n option: 'linkWidth',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'left',\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Result Limit'),\n option: 'resultLimit',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'left',\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n ],\n },\n {\n label: _('Display Options'),\n layout: [\n [\n {\n label: _('Show Node Counts'),\n option: 'showNodeCounts',\n editor: 'editor.toggle',\n editorProps: {\n themes,\n labelPosition: 'left',\n labelWidth: 130,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n [\n {\n label: _('Show Value Counts'),\n option: 'showValueCounts',\n editor: 'editor.toggle',\n editorProps: {\n themes,\n labelPosition: 'left',\n labelWidth: 130,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n ],\n },\n];\n\nconst config: VizConfig = {\n /**\n * unique viz key\n */\n key: 'splunk.linkgraph',\n /**\n * viz name\n */\n name: 'Link Graph',\n category: VizCategory.FLOW,\n status: 'preview',\n /**\n * viz icon\n */\n icon: LinkGraphIcon,\n placeholderIcon: LinkGraphPlaceholderIcon,\n dataContract,\n size,\n defaultContext,\n optionsSchema,\n editorConfig,\n events: {\n 'node.click': {\n description: 'triggered when user clicks a node',\n },\n },\n supports: [VizBehavior.DYNAMIC_OPTIONS, VizBehavior.EVENTS, VizBehavior.PLACEHOLDER],\n themes,\n};\n\nexport default enhanceConfig(config);\n"],"sourceRoot":""}
|