|
|
|
@ -54,7 +54,14 @@ export const OptionsPaneOptions = (props: OptionPaneRenderProps) => { |
|
|
|
|
: [panelFrameOptions, ...vizOptions]; |
|
|
|
|
|
|
|
|
|
if (isSearching) { |
|
|
|
|
mainBoxElements.push(renderSearchHits(allOptions, justOverrides, searchQuery)); |
|
|
|
|
mainBoxElements.push( |
|
|
|
|
<RenderSearchHits |
|
|
|
|
key="render-search-hits" |
|
|
|
|
allOptions={allOptions} |
|
|
|
|
overrides={justOverrides} |
|
|
|
|
searchQuery={searchQuery} |
|
|
|
|
/> |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// If searching for angular panel, then we need to add notice that results are limited
|
|
|
|
|
if (props.plugin.angularPanelCtrl) { |
|
|
|
@ -69,10 +76,10 @@ export const OptionsPaneOptions = (props: OptionPaneRenderProps) => { |
|
|
|
|
case OptionFilter.All: |
|
|
|
|
if (isPanelModelLibraryPanel(panel)) { |
|
|
|
|
// Library Panel options first
|
|
|
|
|
mainBoxElements.push(libraryPanelOptions.render()); |
|
|
|
|
mainBoxElements.push(<libraryPanelOptions.Render key="library-panel-options" />); |
|
|
|
|
} |
|
|
|
|
// Panel frame options second
|
|
|
|
|
mainBoxElements.push(panelFrameOptions.render()); |
|
|
|
|
mainBoxElements.push(<panelFrameOptions.Render key="panel-frame-options" />); |
|
|
|
|
// If angular add those options next
|
|
|
|
|
if (props.plugin.angularPanelCtrl) { |
|
|
|
|
mainBoxElements.push( |
|
|
|
@ -81,16 +88,16 @@ export const OptionsPaneOptions = (props: OptionPaneRenderProps) => { |
|
|
|
|
} |
|
|
|
|
// Then add all panel and field defaults
|
|
|
|
|
for (const item of vizOptions) { |
|
|
|
|
mainBoxElements.push(item.render()); |
|
|
|
|
mainBoxElements.push(<item.Render key={item.props.id} />); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for (const item of justOverrides) { |
|
|
|
|
mainBoxElements.push(item.render()); |
|
|
|
|
mainBoxElements.push(<item.Render key={item.props.id} />); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case OptionFilter.Overrides: |
|
|
|
|
for (const override of justOverrides) { |
|
|
|
|
mainBoxElements.push(override.render()); |
|
|
|
|
mainBoxElements.push(<override.Render key={override.props.id} />); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case OptionFilter.Recent: |
|
|
|
@ -150,11 +157,13 @@ export enum OptionFilter { |
|
|
|
|
Recent = 'Recent', |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
export function renderSearchHits( |
|
|
|
|
allOptions: OptionsPaneCategoryDescriptor[], |
|
|
|
|
overrides: OptionsPaneCategoryDescriptor[], |
|
|
|
|
searchQuery: string |
|
|
|
|
) { |
|
|
|
|
interface RenderSearchHitsProps { |
|
|
|
|
allOptions: OptionsPaneCategoryDescriptor[]; |
|
|
|
|
overrides: OptionsPaneCategoryDescriptor[]; |
|
|
|
|
searchQuery: string; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
export function RenderSearchHits({ allOptions, overrides, searchQuery }: RenderSearchHitsProps) { |
|
|
|
|
const engine = new OptionSearchEngine(allOptions, overrides); |
|
|
|
|
const { optionHits, totalCount, overrideHits } = engine.search(searchQuery); |
|
|
|
|
|
|
|
|
@ -168,7 +177,9 @@ export function renderSearchHits( |
|
|
|
|
> |
|
|
|
|
{optionHits.map((hit) => hit.render(searchQuery))} |
|
|
|
|
</OptionsPaneCategory> |
|
|
|
|
{overrideHits.map((override) => override.render(searchQuery))} |
|
|
|
|
{overrideHits.map((override) => ( |
|
|
|
|
<override.Render key={override.props.id} searchQuery={searchQuery} /> |
|
|
|
|
))} |
|
|
|
|
</div> |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|