UNPKG

angular-instantsearch

Version:

Lightning-fast search for Angular apps, by Algolia.

49 lines (48 loc) 5.54 kB
import { Component, ContentChild, TemplateRef, Inject, forwardRef, Optional, } from '@angular/core'; import { connectStats } from 'instantsearch.js/es/connectors'; import { TypedBaseWidget } from '../typed-base-widget'; import { NgAisInstantSearch } from '../instantsearch/instantsearch'; import { NgAisIndex } from '../index-widget/index-widget'; export class NgAisStats extends TypedBaseWidget { constructor(parentIndex, instantSearchInstance) { super('Stats'); this.parentIndex = parentIndex; this.instantSearchInstance = instantSearchInstance; this.state = { nbHits: 0, nbPages: 0, page: 0, processingTimeMS: 0, query: '', areHitsSorted: false, }; this.createWidget(connectStats, {}, { $$widgetType: 'ais.stats', }); } get templateContext() { return { state: this.state }; } } NgAisStats.decorators = [ { type: Component, args: [{ selector: 'ais-stats', template: ` <div [class]="cx()"> <ng-container *ngTemplateOutlet="template; context: templateContext"> </ng-container> <span *ngIf="!template" [class]="cx('text')"> {{state.nbHits}} results found in {{state.processingTimeMS}}ms. </span> </div> ` },] } ]; NgAisStats.ctorParameters = () => [ { type: NgAisIndex, decorators: [{ type: Inject, args: [forwardRef(() => NgAisIndex),] }, { type: Optional }] }, { type: NgAisInstantSearch, decorators: [{ type: Inject, args: [forwardRef(() => NgAisInstantSearch),] }] } ]; NgAisStats.propDecorators = { template: [{ type: ContentChild, args: [TemplateRef, { static: false },] }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RhdHMvc3RhdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixVQUFVLEVBQ1YsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBb0IxRCxNQUFNLE9BQU8sVUFBVyxTQUFRLGVBRy9CO0lBaUJDLFlBR1MsV0FBdUIsRUFFdkIscUJBQXlDO1FBRWhELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUpSLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBRXZCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBb0I7UUFsQjNDLFVBQUssR0FBcUI7WUFDL0IsTUFBTSxFQUFFLENBQUM7WUFDVCxPQUFPLEVBQUUsQ0FBQztZQUNWLElBQUksRUFBRSxDQUFDO1lBQ1AsZ0JBQWdCLEVBQUUsQ0FBQztZQUNuQixLQUFLLEVBQUUsRUFBRTtZQUNULGFBQWEsRUFBRSxLQUFLO1NBQ3JCLENBQUM7UUFjQSxJQUFJLENBQUMsWUFBWSxDQUNmLFlBQVksRUFDWixFQUFFLEVBQ0Y7WUFDRSxZQUFZLEVBQUUsV0FBVztTQUMxQixDQUNGLENBQUM7SUFDSixDQUFDO0lBbkJELElBQUksZUFBZTtRQUNqQixPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMvQixDQUFDOzs7WUEvQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQixRQUFRLEVBQUU7Ozs7Ozs7OztHQVNUO2FBQ0Y7OztZQW5CUSxVQUFVLHVCQXlDZCxNQUFNLFNBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxjQUNuQyxRQUFRO1lBM0NKLGtCQUFrQix1QkE2Q3RCLE1BQU0sU0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7Ozt1QkFwQjdDLFlBQVksU0FBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIFRlbXBsYXRlUmVmLFxuICBJbmplY3QsXG4gIGZvcndhcmRSZWYsXG4gIE9wdGlvbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgY29ubmVjdFN0YXRzIH0gZnJvbSAnaW5zdGFudHNlYXJjaC5qcy9lcy9jb25uZWN0b3JzJztcblxuaW1wb3J0IHsgVHlwZWRCYXNlV2lkZ2V0IH0gZnJvbSAnLi4vdHlwZWQtYmFzZS13aWRnZXQnO1xuaW1wb3J0IHsgTmdBaXNJbnN0YW50U2VhcmNoIH0gZnJvbSAnLi4vaW5zdGFudHNlYXJjaC9pbnN0YW50c2VhcmNoJztcbmltcG9ydCB7IE5nQWlzSW5kZXggfSBmcm9tICcuLi9pbmRleC13aWRnZXQvaW5kZXgtd2lkZ2V0JztcbmltcG9ydCB7XG4gIFN0YXRzQ29ubmVjdG9yUGFyYW1zLFxuICBTdGF0c1dpZGdldERlc2NyaXB0aW9uLFxuICBTdGF0c1JlbmRlclN0YXRlLFxufSBmcm9tICdpbnN0YW50c2VhcmNoLmpzL2VzL2Nvbm5lY3RvcnMvc3RhdHMvY29ubmVjdFN0YXRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWlzLXN0YXRzJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtjbGFzc109XCJjeCgpXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGU7IGNvbnRleHQ6IHRlbXBsYXRlQ29udGV4dFwiPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxzcGFuICpuZ0lmPVwiIXRlbXBsYXRlXCIgW2NsYXNzXT1cImN4KCd0ZXh0JylcIj5cbiAgICAgICAge3tzdGF0ZS5uYkhpdHN9fSByZXN1bHRzIGZvdW5kIGluIHt7c3RhdGUucHJvY2Vzc2luZ1RpbWVNU319bXMuXG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIE5nQWlzU3RhdHMgZXh0ZW5kcyBUeXBlZEJhc2VXaWRnZXQ8XG4gIFN0YXRzV2lkZ2V0RGVzY3JpcHRpb24sXG4gIFN0YXRzQ29ubmVjdG9yUGFyYW1zXG4+IHtcbiAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZiwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyB0ZW1wbGF0ZTogYW55O1xuXG4gIHB1YmxpYyBzdGF0ZTogU3RhdHNSZW5kZXJTdGF0ZSA9IHtcbiAgICBuYkhpdHM6IDAsXG4gICAgbmJQYWdlczogMCxcbiAgICBwYWdlOiAwLFxuICAgIHByb2Nlc3NpbmdUaW1lTVM6IDAsXG4gICAgcXVlcnk6ICcnLFxuICAgIGFyZUhpdHNTb3J0ZWQ6IGZhbHNlLFxuICB9O1xuXG4gIGdldCB0ZW1wbGF0ZUNvbnRleHQoKSB7XG4gICAgcmV0dXJuIHsgc3RhdGU6IHRoaXMuc3RhdGUgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBOZ0Fpc0luZGV4KSlcbiAgICBAT3B0aW9uYWwoKVxuICAgIHB1YmxpYyBwYXJlbnRJbmRleDogTmdBaXNJbmRleCxcbiAgICBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gTmdBaXNJbnN0YW50U2VhcmNoKSlcbiAgICBwdWJsaWMgaW5zdGFudFNlYXJjaEluc3RhbmNlOiBOZ0Fpc0luc3RhbnRTZWFyY2hcbiAgKSB7XG4gICAgc3VwZXIoJ1N0YXRzJyk7XG4gICAgdGhpcy5jcmVhdGVXaWRnZXQoXG4gICAgICBjb25uZWN0U3RhdHMsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgJCR3aWRnZXRUeXBlOiAnYWlzLnN0YXRzJyxcbiAgICAgIH1cbiAgICApO1xuICB9XG59XG4iXX0=