export function loadSelectionFromBookmarks()

in src/bookmarks.ts [147:187]


export function loadSelectionFromBookmarks(facetsVisual) {
    facetsVisual.clearFilters();
    facetsVisual.selectedInstances = [];

    if (facetsVisual.bookmarkSelection) {
        parseSQExpr(facetsVisual.bookmarkSelection, facetsVisual);
        const selection = {
            range: facetsVisual.filter && facetsVisual.filter.range,
            selectedInstances: facetsVisual.selectedInstances || [],
        };
        if (selection.range) {
            facetsVisual.filter = facetsVisual.filter || {};
            facetsVisual.filter.range = selection.range;
            const rangeFacets = facetsVisual.data.facetsData.filter((group: any) => group.isRange);
            rangeFacets.forEach((facetData: any) => {
                const range = selection.range[facetData.key];
                if (range) {
                    const group = facetsVisual.facets._getGroup(facetData.key);
                    const facet = group.facets.find(f => f.key === facetData.key);
                    if (facet) {
                        const bars = facet._histogram._bars;
                        range.from.index = bars.findIndex(bar => bar.metadata.find(datum =>
                            compareValues(datum.metadata.rangeValue, range.from.metadata[0].rangeValue)));
                        range.to.index = bars.findIndex(bar => bar.metadata.find(datum =>
                            compareValues(datum.metadata.rangeValue, range.to.metadata[0].rangeValue)));
                        facetData.facets[0].selection['range'] = {
                            from: range.from.index,
                            to: range.to.index,
                        };
                        group.replace(facetData);
                    }
                }
            });
        }

        if (facetsVisual.data.hasHighlight) {
            facetsVisual.facets.select(facetsVisual.data.facetsSelectionData);
        }
        facetsVisual.runWithNoAnimation(facetsVisual.updateFacetsSelection, facetsVisual, facetsVisual.selectedInstances);
    }
}