angular-instantsearch
Version:
Lightning-fast search for Angular apps, by Algolia.
49 lines (48 loc) • 5.54 kB
JavaScript
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=