UNPKG

angular-instantsearch

Version:

Lightning-fast search for Angular apps, by Algolia.

76 lines (74 loc) 7.93 kB
import { Component, Input, Inject, forwardRef, Optional } from '@angular/core'; import { connectToggleRefinement } from 'instantsearch.js/es/connectors'; import { TypedBaseWidget } from '../typed-base-widget'; import { NgAisInstantSearch } from '../instantsearch/instantsearch'; import { NgAisIndex } from '../index-widget/index-widget'; import { noop } from '../utils'; export class NgAisToggle extends TypedBaseWidget { constructor(parentIndex, instantSearchInstance) { super('ToggleRefinement'); this.parentIndex = parentIndex; this.instantSearchInstance = instantSearchInstance; this.state = { canRefine: false, sendEvent: undefined, value: { count: undefined, isRefined: false, name: '', offFacetValue: undefined, onFacetValue: undefined, }, createURL: () => '#', refine: noop, }; } ngOnInit() { this.createWidget(connectToggleRefinement, { attribute: this.attribute, on: this.on, off: this.off, }, { $$widgetType: 'ais.toggleRefinement', }); super.ngOnInit(); } handleChange(event) { event.preventDefault(); event.stopPropagation(); this.state.refine(this.state.value); } } NgAisToggle.decorators = [ { type: Component, args: [{ selector: 'ais-toggle', template: ` <div [class]='cx()'> <label [class]="cx('label')"> <input [class]="cx('checkbox')" type='checkbox' value='{{state.value.name}}' [checked]='state.value.isRefined' (change)='handleChange($event)' /> <span [class]="cx('labelText')"> {{label || state.value.name}} </span> <span [class]="cx('count')">{{state.value.count}}</span> </label> </div> ` },] } ]; NgAisToggle.ctorParameters = () => [ { type: NgAisIndex, decorators: [{ type: Inject, args: [forwardRef(() => NgAisIndex),] }, { type: Optional }] }, { type: NgAisInstantSearch, decorators: [{ type: Inject, args: [forwardRef(() => NgAisInstantSearch),] }] } ]; NgAisToggle.propDecorators = { label: [{ type: Input }], attribute: [{ type: Input }], on: [{ type: Input }], off: [{ type: Input }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RvZ2dsZS90b2dnbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBNkJoQyxNQUFNLE9BQU8sV0FBWSxTQUFRLGVBR2hDO0lBdUJDLFlBR1MsV0FBdUIsRUFFdkIscUJBQXlDO1FBRWhELEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBSm5CLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBRXZCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBb0I7UUFuQjNDLFVBQUssR0FBZ0M7WUFDMUMsU0FBUyxFQUFFLEtBQUs7WUFDaEIsU0FBUyxFQUFFLFNBQVM7WUFDcEIsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxTQUFTO2dCQUNoQixTQUFTLEVBQUUsS0FBSztnQkFDaEIsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsYUFBYSxFQUFFLFNBQVM7Z0JBQ3hCLFlBQVksRUFBRSxTQUFTO2FBQ3hCO1lBQ0QsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUc7WUFDcEIsTUFBTSxFQUFFLElBQUk7U0FDYixDQUFDO0lBVUYsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsWUFBWSxDQUNmLHVCQUF1QixFQUN2QjtZQUNFLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7U0FDZCxFQUNEO1lBQ0UsWUFBWSxFQUFFLHNCQUFzQjtTQUNyQyxDQUNGLENBQUM7UUFDRixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUFZO1FBQzlCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDOzs7WUE3RUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxZQUFZO2dCQUN0QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCVDthQUNGOzs7WUE3QlEsVUFBVSx1QkF5RGQsTUFBTSxTQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsY0FDbkMsUUFBUTtZQTNESixrQkFBa0IsdUJBNkR0QixNQUFNLFNBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDOzs7b0JBekI3QyxLQUFLO3dCQUdMLEtBQUs7aUJBQ0wsS0FBSztrQkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgSW5qZWN0LCBmb3J3YXJkUmVmLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBjb25uZWN0VG9nZ2xlUmVmaW5lbWVudCB9IGZyb20gJ2luc3RhbnRzZWFyY2guanMvZXMvY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBUeXBlZEJhc2VXaWRnZXQgfSBmcm9tICcuLi90eXBlZC1iYXNlLXdpZGdldCc7XG5pbXBvcnQgeyBOZ0Fpc0luc3RhbnRTZWFyY2ggfSBmcm9tICcuLi9pbnN0YW50c2VhcmNoL2luc3RhbnRzZWFyY2gnO1xuaW1wb3J0IHsgTmdBaXNJbmRleCB9IGZyb20gJy4uL2luZGV4LXdpZGdldC9pbmRleC13aWRnZXQnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7XG4gIFRvZ2dsZVJlZmluZW1lbnRDb25uZWN0b3JQYXJhbXMsXG4gIFRvZ2dsZVJlZmluZW1lbnRXaWRnZXREZXNjcmlwdGlvbixcbiAgVG9nZ2xlUmVmaW5lbWVudFJlbmRlclN0YXRlLFxufSBmcm9tICdpbnN0YW50c2VhcmNoLmpzL2VzL2Nvbm5lY3RvcnMvdG9nZ2xlLXJlZmluZW1lbnQvY29ubmVjdFRvZ2dsZVJlZmluZW1lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhaXMtdG9nZ2xlJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtjbGFzc109J2N4KCknPlxuICAgICAgPGxhYmVsIFtjbGFzc109XCJjeCgnbGFiZWwnKVwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBbY2xhc3NdPVwiY3goJ2NoZWNrYm94JylcIlxuICAgICAgICAgIHR5cGU9J2NoZWNrYm94J1xuICAgICAgICAgIHZhbHVlPSd7e3N0YXRlLnZhbHVlLm5hbWV9fSdcbiAgICAgICAgICBbY2hlY2tlZF09J3N0YXRlLnZhbHVlLmlzUmVmaW5lZCdcbiAgICAgICAgICAoY2hhbmdlKT0naGFuZGxlQ2hhbmdlKCRldmVudCknXG4gICAgICAgIC8+XG5cbiAgICAgICAgPHNwYW4gW2NsYXNzXT1cImN4KCdsYWJlbFRleHQnKVwiPlxuICAgICAgICAgIHt7bGFiZWwgfHwgc3RhdGUudmFsdWUubmFtZX19XG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8c3BhbiBbY2xhc3NdPVwiY3goJ2NvdW50JylcIj57e3N0YXRlLnZhbHVlLmNvdW50fX08L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBOZ0Fpc1RvZ2dsZSBleHRlbmRzIFR5cGVkQmFzZVdpZGdldDxcbiAgVG9nZ2xlUmVmaW5lbWVudFdpZGdldERlc2NyaXB0aW9uLFxuICBUb2dnbGVSZWZpbmVtZW50Q29ubmVjdG9yUGFyYW1zXG4+IHtcbiAgLy8gcmVuZGVyaW5nIG9wdGlvbnNcbiAgQElucHV0KCkgcHVibGljIGxhYmVsOiBzdHJpbmc7XG5cbiAgLy8gaW5zdGFuY2Ugb3B0aW9uc1xuICBASW5wdXQoKSBwdWJsaWMgYXR0cmlidXRlOiBUb2dnbGVSZWZpbmVtZW50Q29ubmVjdG9yUGFyYW1zWydhdHRyaWJ1dGUnXTtcbiAgQElucHV0KCkgcHVibGljIG9uPzogVG9nZ2xlUmVmaW5lbWVudENvbm5lY3RvclBhcmFtc1snb24nXTtcbiAgQElucHV0KCkgcHVibGljIG9mZj86IFRvZ2dsZVJlZmluZW1lbnRDb25uZWN0b3JQYXJhbXNbJ29mZiddO1xuXG4gIHB1YmxpYyBzdGF0ZTogVG9nZ2xlUmVmaW5lbWVudFJlbmRlclN0YXRlID0ge1xuICAgIGNhblJlZmluZTogZmFsc2UsXG4gICAgc2VuZEV2ZW50OiB1bmRlZmluZWQsXG4gICAgdmFsdWU6IHtcbiAgICAgIGNvdW50OiB1bmRlZmluZWQsXG4gICAgICBpc1JlZmluZWQ6IGZhbHNlLFxuICAgICAgbmFtZTogJycsXG4gICAgICBvZmZGYWNldFZhbHVlOiB1bmRlZmluZWQsXG4gICAgICBvbkZhY2V0VmFsdWU6IHVuZGVmaW5lZCxcbiAgICB9LFxuICAgIGNyZWF0ZVVSTDogKCkgPT4gJyMnLFxuICAgIHJlZmluZTogbm9vcCxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gTmdBaXNJbmRleCkpXG4gICAgQE9wdGlvbmFsKClcbiAgICBwdWJsaWMgcGFyZW50SW5kZXg6IE5nQWlzSW5kZXgsXG4gICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IE5nQWlzSW5zdGFudFNlYXJjaCkpXG4gICAgcHVibGljIGluc3RhbnRTZWFyY2hJbnN0YW5jZTogTmdBaXNJbnN0YW50U2VhcmNoXG4gICkge1xuICAgIHN1cGVyKCdUb2dnbGVSZWZpbmVtZW50Jyk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jcmVhdGVXaWRnZXQoXG4gICAgICBjb25uZWN0VG9nZ2xlUmVmaW5lbWVudCxcbiAgICAgIHtcbiAgICAgICAgYXR0cmlidXRlOiB0aGlzLmF0dHJpYnV0ZSxcbiAgICAgICAgb246IHRoaXMub24sXG4gICAgICAgIG9mZjogdGhpcy5vZmYsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAkJHdpZGdldFR5cGU6ICdhaXMudG9nZ2xlUmVmaW5lbWVudCcsXG4gICAgICB9XG4gICAgKTtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUNoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuc3RhdGUucmVmaW5lKHRoaXMuc3RhdGUudmFsdWUpO1xuICB9XG59XG4iXX0=