UNPKG

angular-instantsearch

Version:

Lightning-fast search for Angular apps, by Algolia.

64 lines 8.92 kB
import { Component, Input, Output, EventEmitter, Inject, PLATFORM_ID, VERSION as AngularVersion, isDevMode, } from '@angular/core'; import * as algoliasearchProxy from 'algoliasearch/lite'; import instantsearch from 'instantsearch.js/es'; import { VERSION } from '../version'; // this is needed for different webpack/typescript configurations const algoliasearch = algoliasearchProxy.default || algoliasearchProxy; export class NgAisInstantSearch { constructor(platformId) { this.platformId = platformId; this.instanceName = 'default'; this.change = new EventEmitter(); this.onRender = () => { this.change.emit({ results: this.instantSearchInstance.helper.lastResults, state: this.instantSearchInstance.helper.state, }); }; } ngOnInit() { if (isDevMode()) { console.warn(`We are deprecating Angular InstantSearch. For more information and alternative solutions, go to https://alg.li/angular-deprecation.`); } if (typeof this.config.searchClient.addAlgoliaAgent === 'function') { this.config.searchClient.addAlgoliaAgent(`angular (${AngularVersion.full})`); this.config.searchClient.addAlgoliaAgent(`angular-instantsearch (${VERSION})`); } this.instantSearchInstance = instantsearch(this.config); this.instantSearchInstance.on('render', this.onRender); } ngAfterViewInit() { this.instantSearchInstance.start(); } ngOnDestroy() { if (this.instantSearchInstance) { this.instantSearchInstance.removeListener('render', this.onRender); this.instantSearchInstance.dispose(); } } addWidgets(widgets) { this.instantSearchInstance.addWidgets(widgets); } removeWidgets(widgets) { this.instantSearchInstance.removeWidgets(widgets); } refresh() { this.instantSearchInstance.refresh(); } } NgAisInstantSearch.decorators = [ { type: Component, args: [{ selector: 'ais-instantsearch', template: '<ng-content></ng-content>' },] } ]; NgAisInstantSearch.ctorParameters = () => [ { type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] } ]; NgAisInstantSearch.propDecorators = { config: [{ type: Input }], instanceName: [{ type: Input }], change: [{ type: Output }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFudHNlYXJjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbnN0YW50c2VhcmNoL2luc3RhbnRzZWFyY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxLQUFLLEVBR0wsTUFBTSxFQUNOLFlBQVksRUFDWixNQUFNLEVBQ04sV0FBVyxFQUNYLE9BQU8sSUFBSSxjQUFjLEVBQ3pCLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEtBQUssa0JBQWtCLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxhQUFhLE1BQU0scUJBQXFCLENBQUM7QUFHaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQU9yQyxpRUFBaUU7QUFDakUsTUFBTSxhQUFhLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxJQUFJLGtCQUFrQixDQUFDO0FBa0J2RSxNQUFNLE9BQU8sa0JBQWtCO0lBWTdCLFlBQXdDLFVBQWtCO1FBQWxCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFWMUMsaUJBQVksR0FBVyxTQUFTLENBQUM7UUFHakQsV0FBTSxHQUE2QyxJQUFJLFlBQVksRUFHL0QsQ0FBQztRQWdETCxhQUFRLEdBQUcsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsV0FBVztnQkFDdEQsS0FBSyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsS0FBSzthQUMvQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7SUFqRDJELENBQUM7SUFFdkQsUUFBUTtRQUNiLElBQUksU0FBUyxFQUFFLEVBQUU7WUFDZixPQUFPLENBQUMsSUFBSSxDQUFDOzBGQUN1RSxDQUFDLENBQUM7U0FDdkY7UUFFRCxJQUFJLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsZUFBZSxLQUFLLFVBQVUsRUFBRTtZQUNsRSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQ3RDLFlBQVksY0FBYyxDQUFDLElBQUksR0FBRyxDQUNuQyxDQUFDO1lBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUN0QywwQkFBMEIsT0FBTyxHQUFHLENBQ3JDLENBQUM7U0FDSDtRQUVELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDOUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25FLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN0QztJQUNILENBQUM7SUFFTSxVQUFVLENBQUMsT0FBaUI7UUFDakMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU0sYUFBYSxDQUFDLE9BQWlCO1FBQ3BDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdkMsQ0FBQzs7O1lBMURGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixRQUFRLEVBQUUsMkJBQTJCO2FBQ3RDOzs7WUFhcUQsTUFBTSx1QkFBN0MsTUFBTSxTQUFDLFdBQVc7OztxQkFYOUIsS0FBSzsyQkFDTCxLQUFLO3FCQUVMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgUExBVEZPUk1fSUQsXG4gIFZFUlNJT04gYXMgQW5ndWxhclZlcnNpb24sXG4gIGlzRGV2TW9kZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCAqIGFzIGFsZ29saWFzZWFyY2hQcm94eSBmcm9tICdhbGdvbGlhc2VhcmNoL2xpdGUnO1xuaW1wb3J0IGluc3RhbnRzZWFyY2ggZnJvbSAnaW5zdGFudHNlYXJjaC5qcy9lcyc7XG5cbmltcG9ydCB7IFdpZGdldCB9IGZyb20gJy4uL3R5cGVkLWJhc2Utd2lkZ2V0JztcbmltcG9ydCB7IFZFUlNJT04gfSBmcm9tICcuLi92ZXJzaW9uJztcbmltcG9ydCB7IEluc3RhbnRTZWFyY2hPcHRpb25zLCBJbnN0YW50U2VhcmNoIH0gZnJvbSAnaW5zdGFudHNlYXJjaC5qcy9lcy90eXBlcyc7XG5leHBvcnQgeyBTZWFyY2hDbGllbnQsIEhpdCB9IGZyb20gJ2luc3RhbnRzZWFyY2guanMvZXMvdHlwZXMnO1xuZXhwb3J0IHtcbiAgUGxhaW5TZWFyY2hQYXJhbWV0ZXJzIGFzIFNlYXJjaFBhcmFtZXRlcnMsXG59IGZyb20gJ2FsZ29saWFzZWFyY2gtaGVscGVyJztcblxuLy8gdGhpcyBpcyBuZWVkZWQgZm9yIGRpZmZlcmVudCB3ZWJwYWNrL3R5cGVzY3JpcHQgY29uZmlndXJhdGlvbnNcbmNvbnN0IGFsZ29saWFzZWFyY2ggPSBhbGdvbGlhc2VhcmNoUHJveHkuZGVmYXVsdCB8fCBhbGdvbGlhc2VhcmNoUHJveHk7XG5cbmV4cG9ydCB0eXBlIEZhY2V0U29ydEJ5U3RyaW5nT3B0aW9ucyA9XG4gIHwgJ2NvdW50J1xuICB8ICdjb3VudDphc2MnXG4gIHwgJ2NvdW50OmRlc2MnXG4gIHwgJ25hbWUnXG4gIHwgJ25hbWU6YXNjJ1xuICB8ICduYW1lOmRlc2MnXG4gIHwgJ2lzUmVmaW5lZCc7XG5cbmV4cG9ydCB0eXBlIEluc3RhbnRTZWFyY2hDb25maWcgPSBJbnN0YW50U2VhcmNoT3B0aW9ucztcbmV4cG9ydCB0eXBlIEluc3RhbnRTZWFyY2hJbnN0YW5jZSA9IEluc3RhbnRTZWFyY2g7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Fpcy1pbnN0YW50c2VhcmNoJyxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+Jyxcbn0pXG5leHBvcnQgY2xhc3MgTmdBaXNJbnN0YW50U2VhcmNoIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwdWJsaWMgY29uZmlnOiBJbnN0YW50U2VhcmNoQ29uZmlnO1xuICBASW5wdXQoKSBwdWJsaWMgaW5zdGFuY2VOYW1lOiBzdHJpbmcgPSAnZGVmYXVsdCc7XG5cbiAgQE91dHB1dCgpXG4gIGNoYW5nZTogRXZlbnRFbWl0dGVyPHsgcmVzdWx0czoge307IHN0YXRlOiB7fSB9PiA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIHJlc3VsdHM6IHt9O1xuICAgIHN0YXRlOiB7fTtcbiAgfT4oKTtcblxuICBwdWJsaWMgaW5zdGFudFNlYXJjaEluc3RhbmNlOiBJbnN0YW50U2VhcmNoSW5zdGFuY2U7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChQTEFURk9STV9JRCkgcHVibGljIHBsYXRmb3JtSWQ6IE9iamVjdCkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICBjb25zb2xlLndhcm4oYFdlIGFyZSBkZXByZWNhdGluZyBBbmd1bGFyIEluc3RhbnRTZWFyY2guXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYWx0ZXJuYXRpdmUgc29sdXRpb25zLCBnbyB0byBodHRwczovL2FsZy5saS9hbmd1bGFyLWRlcHJlY2F0aW9uLmApO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWcuc2VhcmNoQ2xpZW50LmFkZEFsZ29saWFBZ2VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy5jb25maWcuc2VhcmNoQ2xpZW50LmFkZEFsZ29saWFBZ2VudChcbiAgICAgICAgYGFuZ3VsYXIgKCR7QW5ndWxhclZlcnNpb24uZnVsbH0pYFxuICAgICAgKTtcbiAgICAgIHRoaXMuY29uZmlnLnNlYXJjaENsaWVudC5hZGRBbGdvbGlhQWdlbnQoXG4gICAgICAgIGBhbmd1bGFyLWluc3RhbnRzZWFyY2ggKCR7VkVSU0lPTn0pYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmluc3RhbnRTZWFyY2hJbnN0YW5jZSA9IGluc3RhbnRzZWFyY2godGhpcy5jb25maWcpO1xuICAgIHRoaXMuaW5zdGFudFNlYXJjaEluc3RhbmNlLm9uKCdyZW5kZXInLCB0aGlzLm9uUmVuZGVyKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5pbnN0YW50U2VhcmNoSW5zdGFuY2Uuc3RhcnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5pbnN0YW50U2VhcmNoSW5zdGFuY2UpIHtcbiAgICAgIHRoaXMuaW5zdGFudFNlYXJjaEluc3RhbmNlLnJlbW92ZUxpc3RlbmVyKCdyZW5kZXInLCB0aGlzLm9uUmVuZGVyKTtcbiAgICAgIHRoaXMuaW5zdGFudFNlYXJjaEluc3RhbmNlLmRpc3Bvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWRkV2lkZ2V0cyh3aWRnZXRzOiBXaWRnZXRbXSkge1xuICAgIHRoaXMuaW5zdGFudFNlYXJjaEluc3RhbmNlLmFkZFdpZGdldHMod2lkZ2V0cyk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlV2lkZ2V0cyh3aWRnZXRzOiBXaWRnZXRbXSkge1xuICAgIHRoaXMuaW5zdGFudFNlYXJjaEluc3RhbmNlLnJlbW92ZVdpZGdldHMod2lkZ2V0cyk7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaCgpIHtcbiAgICB0aGlzLmluc3RhbnRTZWFyY2hJbnN0YW5jZS5yZWZyZXNoKCk7XG4gIH1cblxuICBvblJlbmRlciA9ICgpID0+IHtcbiAgICB0aGlzLmNoYW5nZS5lbWl0KHtcbiAgICAgIHJlc3VsdHM6IHRoaXMuaW5zdGFudFNlYXJjaEluc3RhbmNlLmhlbHBlci5sYXN0UmVzdWx0cyxcbiAgICAgIHN0YXRlOiB0aGlzLmluc3RhbnRTZWFyY2hJbnN0YW5jZS5oZWxwZXIuc3RhdGUsXG4gICAgfSk7XG4gIH07XG59XG4iXX0=