UNPKG

angular-instantsearch

Version:

Lightning-fast search for Angular apps, by Algolia.

65 lines (64 loc) 7.04 kB
import { Inject, Input, Component, ContentChild, TemplateRef, forwardRef, Optional, } from '@angular/core'; import { connectHitsWithInsights } 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 NgAisHits extends TypedBaseWidget { constructor(parentIndex, instantSearchInstance) { super('Hits'); this.parentIndex = parentIndex; this.instantSearchInstance = instantSearchInstance; this.state = { hits: [], results: undefined, bindEvent: undefined, sendEvent: undefined, }; this.updateState = (state, isFirstRendering) => { if (isFirstRendering) return; this.state = state; }; } ngOnInit() { this.createWidget(connectHitsWithInsights, { escapeHTML: this.escapeHTML, transformItems: this.transformItems, }, { $$widgetType: 'ais.hits', }); super.ngOnInit(); } } NgAisHits.decorators = [ { type: Component, args: [{ selector: 'ais-hits', template: ` <div [class]="cx()"> <ng-container *ngTemplateOutlet="template; context: state"></ng-container> <!-- default rendering if no template specified --> <div *ngIf="!template"> <ul [class]="cx('list')"> <li [class]="cx('item')" *ngFor="let hit of state.hits" > <ais-highlight attribute="name" [hit]="hit"> </ais-highlight> </li> </ul> </div> </div> ` },] } ]; NgAisHits.ctorParameters = () => [ { type: NgAisIndex, decorators: [{ type: Inject, args: [forwardRef(() => NgAisIndex),] }, { type: Optional }] }, { type: NgAisInstantSearch, decorators: [{ type: Inject, args: [forwardRef(() => NgAisInstantSearch),] }] } ]; NgAisHits.propDecorators = { template: [{ type: ContentChild, args: [TemplateRef, { static: false },] }], escapeHTML: [{ type: Input }], transformItems: [{ type: Input }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9oaXRzL2hpdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsVUFBVSxFQUNWLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQU16RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBdUIxRCxNQUFNLE9BQU8sU0FBVSxTQUFRLGVBRzlCO0lBY0MsWUFHUyxXQUF1QixFQUV2QixxQkFBeUM7UUFFaEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBSlAsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFFdkIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFvQjtRQVozQyxVQUFLLEdBQW9CO1lBQzlCLElBQUksRUFBRSxFQUFFO1lBQ1IsT0FBTyxFQUFFLFNBQVM7WUFDbEIsU0FBUyxFQUFFLFNBQVM7WUFDcEIsU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQztRQTBCSyxnQkFBVyxHQUFHLENBQUMsS0FBc0IsRUFBRSxnQkFBeUIsRUFBRSxFQUFFO1lBQ3pFLElBQUksZ0JBQWdCO2dCQUFFLE9BQU87WUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDckIsQ0FBQyxDQUFDO0lBbkJGLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksQ0FDZix1QkFBdUIsRUFDdkI7WUFDRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO1NBQ3BDLEVBQ0Q7WUFDRSxZQUFZLEVBQUUsVUFBVTtTQUN6QixDQUNGLENBQUM7UUFDRixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkIsQ0FBQzs7O1lBNURGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCVDthQUNGOzs7WUF0QlEsVUFBVSx1QkF5Q2QsTUFBTSxTQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsY0FDbkMsUUFBUTtZQTNDSixrQkFBa0IsdUJBNkN0QixNQUFNLFNBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDOzs7dUJBakI3QyxZQUFZLFNBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTt5QkFHM0MsS0FBSzs2QkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIFRlbXBsYXRlUmVmLFxuICBmb3J3YXJkUmVmLFxuICBPcHRpb25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGNvbm5lY3RIaXRzV2l0aEluc2lnaHRzIH0gZnJvbSAnaW5zdGFudHNlYXJjaC5qcy9lcy9jb25uZWN0b3JzJztcbmltcG9ydCB7XG4gIEhpdHNDb25uZWN0b3JQYXJhbXMsXG4gIEhpdHNXaWRnZXREZXNjcmlwdGlvbixcbiAgSGl0c1JlbmRlclN0YXRlLFxufSBmcm9tICdpbnN0YW50c2VhcmNoLmpzL2VzL2Nvbm5lY3RvcnMvaGl0cy9jb25uZWN0SGl0cyc7XG5pbXBvcnQgeyBUeXBlZEJhc2VXaWRnZXQgfSBmcm9tICcuLi90eXBlZC1iYXNlLXdpZGdldCc7XG5pbXBvcnQgeyBOZ0Fpc0luc3RhbnRTZWFyY2ggfSBmcm9tICcuLi9pbnN0YW50c2VhcmNoL2luc3RhbnRzZWFyY2gnO1xuaW1wb3J0IHsgTmdBaXNJbmRleCB9IGZyb20gJy4uL2luZGV4LXdpZGdldC9pbmRleC13aWRnZXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhaXMtaGl0cycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBbY2xhc3NdPVwiY3goKVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlOyBjb250ZXh0OiBzdGF0ZVwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIGRlZmF1bHQgcmVuZGVyaW5nIGlmIG5vIHRlbXBsYXRlIHNwZWNpZmllZCAtLT5cbiAgICAgIDxkaXYgKm5nSWY9XCIhdGVtcGxhdGVcIj5cbiAgICAgICAgPHVsIFtjbGFzc109XCJjeCgnbGlzdCcpXCI+XG4gICAgICAgICAgPGxpXG4gICAgICAgICAgICBbY2xhc3NdPVwiY3goJ2l0ZW0nKVwiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgaGl0IG9mIHN0YXRlLmhpdHNcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxhaXMtaGlnaGxpZ2h0IGF0dHJpYnV0ZT1cIm5hbWVcIiBbaGl0XT1cImhpdFwiPlxuICAgICAgICAgICAgPC9haXMtaGlnaGxpZ2h0PlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgTmdBaXNIaXRzIGV4dGVuZHMgVHlwZWRCYXNlV2lkZ2V0PFxuICBIaXRzV2lkZ2V0RGVzY3JpcHRpb24sXG4gIEhpdHNDb25uZWN0b3JQYXJhbXNcbj4ge1xuICBAQ29udGVudENoaWxkKFRlbXBsYXRlUmVmLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHVibGljIHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcblxuICBASW5wdXQoKSBwdWJsaWMgZXNjYXBlSFRNTD86IEhpdHNDb25uZWN0b3JQYXJhbXNbJ2VzY2FwZUhUTUwnXTtcbiAgQElucHV0KCkgcHVibGljIHRyYW5zZm9ybUl0ZW1zPzogSGl0c0Nvbm5lY3RvclBhcmFtc1sndHJhbnNmb3JtSXRlbXMnXTtcblxuICBwdWJsaWMgc3RhdGU6IEhpdHNSZW5kZXJTdGF0ZSA9IHtcbiAgICBoaXRzOiBbXSxcbiAgICByZXN1bHRzOiB1bmRlZmluZWQsXG4gICAgYmluZEV2ZW50OiB1bmRlZmluZWQsXG4gICAgc2VuZEV2ZW50OiB1bmRlZmluZWQsXG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IE5nQWlzSW5kZXgpKVxuICAgIEBPcHRpb25hbCgpXG4gICAgcHVibGljIHBhcmVudEluZGV4OiBOZ0Fpc0luZGV4LFxuICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBOZ0Fpc0luc3RhbnRTZWFyY2gpKVxuICAgIHB1YmxpYyBpbnN0YW50U2VhcmNoSW5zdGFuY2U6IE5nQWlzSW5zdGFudFNlYXJjaFxuICApIHtcbiAgICBzdXBlcignSGl0cycpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jcmVhdGVXaWRnZXQoXG4gICAgICBjb25uZWN0SGl0c1dpdGhJbnNpZ2h0cyxcbiAgICAgIHtcbiAgICAgICAgZXNjYXBlSFRNTDogdGhpcy5lc2NhcGVIVE1MLFxuICAgICAgICB0cmFuc2Zvcm1JdGVtczogdGhpcy50cmFuc2Zvcm1JdGVtcyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgICQkd2lkZ2V0VHlwZTogJ2Fpcy5oaXRzJyxcbiAgICAgIH1cbiAgICApO1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlU3RhdGUgPSAoc3RhdGU6IEhpdHNSZW5kZXJTdGF0ZSwgaXNGaXJzdFJlbmRlcmluZzogYm9vbGVhbikgPT4ge1xuICAgIGlmIChpc0ZpcnN0UmVuZGVyaW5nKSByZXR1cm47XG4gICAgdGhpcy5zdGF0ZSA9IHN0YXRlO1xuICB9O1xufVxuIl19