angular-instantsearch
Version:
Lightning-fast search for Angular apps, by Algolia.
70 lines • 7.94 kB
JavaScript
import { Component, Input, Inject, forwardRef, Optional } from '@angular/core';
import { connectClearRefinements } 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 NgAisClearRefinements extends TypedBaseWidget {
constructor(parentIndex, instantSearchInstance) {
super('ClearRefinements');
this.parentIndex = parentIndex;
this.instantSearchInstance = instantSearchInstance;
// rendering options
this.resetLabel = 'Clear refinements';
this.state = {
hasRefinements: false,
canRefine: false,
refine: noop,
createURL: () => '#',
};
}
get isHidden() {
return !this.state.hasRefinements && this.autoHideContainer;
}
ngOnInit() {
this.createWidget(connectClearRefinements, {
includedAttributes: this.includedAttributes,
excludedAttributes: this.excludedAttributes,
transformItems: this.transformItems,
}, {
$$widgetType: 'ais.clearRefinements',
});
super.ngOnInit();
}
handleClick(event) {
event.preventDefault();
if (this.state.hasRefinements) {
this.state.refine();
}
}
}
NgAisClearRefinements.decorators = [
{ type: Component, args: [{
selector: 'ais-clear-refinements',
template: `
<div
[class]="cx()"
*ngIf="!isHidden"
>
<button
[class]="cx('button') + (!state.hasRefinements ? (' ' + cx('button', 'disabled')) : '')"
(click)="handleClick($event)"
[disabled]="!state.hasRefinements"
>
{{resetLabel}}
</button>
</div>
`
},] }
];
NgAisClearRefinements.ctorParameters = () => [
{ type: NgAisIndex, decorators: [{ type: Inject, args: [forwardRef(() => NgAisIndex),] }, { type: Optional }] },
{ type: NgAisInstantSearch, decorators: [{ type: Inject, args: [forwardRef(() => NgAisInstantSearch),] }] }
];
NgAisClearRefinements.propDecorators = {
resetLabel: [{ type: Input }],
includedAttributes: [{ type: Input }],
excludedAttributes: [{ type: Input }],
transformItems: [{ type: Input }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXItcmVmaW5lbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xlYXItcmVmaW5lbWVudHMvY2xlYXItcmVmaW5lbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFNekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBbUJoQyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsZUFHMUM7SUF1QkMsWUFHUyxXQUF1QixFQUV2QixxQkFBeUM7UUFFaEQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFKbkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFFdkIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFvQjtRQTNCbEQsb0JBQW9CO1FBQ0osZUFBVSxHQUFXLG1CQUFtQixDQUFDO1FBVWxELFVBQUssR0FBZ0M7WUFDMUMsY0FBYyxFQUFFLEtBQUs7WUFDckIsU0FBUyxFQUFFLEtBQUs7WUFDaEIsTUFBTSxFQUFFLElBQUk7WUFDWixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRztTQUNyQixDQUFDO0lBY0YsQ0FBQztJQVpELElBQUksUUFBUTtRQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDOUQsQ0FBQztJQVlNLFFBQVE7UUFDYixJQUFJLENBQUMsWUFBWSxDQUNmLHVCQUF1QixFQUN2QjtZQUNFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7WUFDM0Msa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtZQUMzQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDcEMsRUFDRDtZQUNFLFlBQVksRUFBRSxzQkFBc0I7U0FDckMsQ0FDRixDQUFDO1FBRUYsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFTSxXQUFXLENBQUMsS0FBaUI7UUFDbEMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXZCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUU7WUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNyQjtJQUNILENBQUM7OztZQTNFRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7O0dBYVQ7YUFDRjs7O1lBbkJRLFVBQVUsdUJBK0NkLE1BQU0sU0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLGNBQ25DLFFBQVE7WUFqREosa0JBQWtCLHVCQW1EdEIsTUFBTSxTQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQzs7O3lCQXpCN0MsS0FBSztpQ0FHTCxLQUFLO2lDQUVMLEtBQUs7NkJBRUwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEluamVjdCwgZm9yd2FyZFJlZiwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvbm5lY3RDbGVhclJlZmluZW1lbnRzIH0gZnJvbSAnaW5zdGFudHNlYXJjaC5qcy9lcy9jb25uZWN0b3JzJztcbmltcG9ydCB7XG4gIENsZWFyUmVmaW5lbWVudHNDb25uZWN0b3JQYXJhbXMsXG4gIENsZWFyUmVmaW5lbWVudHNXaWRnZXREZXNjcmlwdGlvbixcbiAgQ2xlYXJSZWZpbmVtZW50c1JlbmRlclN0YXRlLFxufSBmcm9tICdpbnN0YW50c2VhcmNoLmpzL2VzL2Nvbm5lY3RvcnMvY2xlYXItcmVmaW5lbWVudHMvY29ubmVjdENsZWFyUmVmaW5lbWVudHMnO1xuaW1wb3J0IHsgVHlwZWRCYXNlV2lkZ2V0IH0gZnJvbSAnLi4vdHlwZWQtYmFzZS13aWRnZXQnO1xuaW1wb3J0IHsgTmdBaXNJbnN0YW50U2VhcmNoIH0gZnJvbSAnLi4vaW5zdGFudHNlYXJjaC9pbnN0YW50c2VhcmNoJztcbmltcG9ydCB7IE5nQWlzSW5kZXggfSBmcm9tICcuLi9pbmRleC13aWRnZXQvaW5kZXgtd2lkZ2V0JztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Fpcy1jbGVhci1yZWZpbmVtZW50cycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgW2NsYXNzXT1cImN4KClcIlxuICAgICAgKm5nSWY9XCIhaXNIaWRkZW5cIlxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgW2NsYXNzXT1cImN4KCdidXR0b24nKSArICghc3RhdGUuaGFzUmVmaW5lbWVudHMgPyAoJyAnICsgY3goJ2J1dHRvbicsICdkaXNhYmxlZCcpKSA6ICcnKVwiXG4gICAgICAgIChjbGljayk9XCJoYW5kbGVDbGljaygkZXZlbnQpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZS5oYXNSZWZpbmVtZW50c1wiXG4gICAgICA+XG4gICAgICAgIHt7cmVzZXRMYWJlbH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgTmdBaXNDbGVhclJlZmluZW1lbnRzIGV4dGVuZHMgVHlwZWRCYXNlV2lkZ2V0PFxuICBDbGVhclJlZmluZW1lbnRzV2lkZ2V0RGVzY3JpcHRpb24sXG4gIENsZWFyUmVmaW5lbWVudHNDb25uZWN0b3JQYXJhbXNcbj4ge1xuICAvLyByZW5kZXJpbmcgb3B0aW9uc1xuICBASW5wdXQoKSBwdWJsaWMgcmVzZXRMYWJlbDogc3RyaW5nID0gJ0NsZWFyIHJlZmluZW1lbnRzJztcblxuICAvLyBpbnN0YW5jZSBvcHRpb25zXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpbmNsdWRlZEF0dHJpYnV0ZXM6IENsZWFyUmVmaW5lbWVudHNDb25uZWN0b3JQYXJhbXNbJ2luY2x1ZGVkQXR0cmlidXRlcyddO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZXhjbHVkZWRBdHRyaWJ1dGVzOiBDbGVhclJlZmluZW1lbnRzQ29ubmVjdG9yUGFyYW1zWydleGNsdWRlZEF0dHJpYnV0ZXMnXTtcbiAgQElucHV0KClcbiAgcHVibGljIHRyYW5zZm9ybUl0ZW1zPzogQ2xlYXJSZWZpbmVtZW50c0Nvbm5lY3RvclBhcmFtc1sndHJhbnNmb3JtSXRlbXMnXTtcblxuICBwdWJsaWMgc3RhdGU6IENsZWFyUmVmaW5lbWVudHNSZW5kZXJTdGF0ZSA9IHtcbiAgICBoYXNSZWZpbmVtZW50czogZmFsc2UsXG4gICAgY2FuUmVmaW5lOiBmYWxzZSxcbiAgICByZWZpbmU6IG5vb3AsXG4gICAgY3JlYXRlVVJMOiAoKSA9PiAnIycsXG4gIH07XG5cbiAgZ2V0IGlzSGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5zdGF0ZS5oYXNSZWZpbmVtZW50cyAmJiB0aGlzLmF1dG9IaWRlQ29udGFpbmVyO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IE5nQWlzSW5kZXgpKVxuICAgIEBPcHRpb25hbCgpXG4gICAgcHVibGljIHBhcmVudEluZGV4OiBOZ0Fpc0luZGV4LFxuICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBOZ0Fpc0luc3RhbnRTZWFyY2gpKVxuICAgIHB1YmxpYyBpbnN0YW50U2VhcmNoSW5zdGFuY2U6IE5nQWlzSW5zdGFudFNlYXJjaFxuICApIHtcbiAgICBzdXBlcignQ2xlYXJSZWZpbmVtZW50cycpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY3JlYXRlV2lkZ2V0KFxuICAgICAgY29ubmVjdENsZWFyUmVmaW5lbWVudHMsXG4gICAgICB7XG4gICAgICAgIGluY2x1ZGVkQXR0cmlidXRlczogdGhpcy5pbmNsdWRlZEF0dHJpYnV0ZXMsXG4gICAgICAgIGV4Y2x1ZGVkQXR0cmlidXRlczogdGhpcy5leGNsdWRlZEF0dHJpYnV0ZXMsXG4gICAgICAgIHRyYW5zZm9ybUl0ZW1zOiB0aGlzLnRyYW5zZm9ybUl0ZW1zLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgJCR3aWRnZXRUeXBlOiAnYWlzLmNsZWFyUmVmaW5lbWVudHMnLFxuICAgICAgfVxuICAgICk7XG5cbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGlmICh0aGlzLnN0YXRlLmhhc1JlZmluZW1lbnRzKSB7XG4gICAgICB0aGlzLnN0YXRlLnJlZmluZSgpO1xuICAgIH1cbiAgfVxufVxuIl19