UNPKG

ng-jhipster

Version:

A Jhipster util library for Angular

67 lines (63 loc) 9.03 kB
/* Copyright 2013-2020 the original author or authors from the JHipster project. This file is part of the JHipster project, see https://www.jhipster.tech/ for more information. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ import { ContentChild, Directive, Host, HostListener, Input } from '@angular/core'; import { FaIconComponent } from '@fortawesome/angular-fontawesome'; import { JhiConfigService } from '../config.service'; import { JhiSortDirective } from './sort.directive'; export class JhiSortByDirective { constructor(jhiSort, configService) { this.jhiSort = jhiSort; this.jhiSort = jhiSort; const config = configService.getConfig(); this.sortIcon = config.sortIcon; this.sortAscIcon = config.sortAscIcon; this.sortDescIcon = config.sortDescIcon; } ngAfterContentInit() { if (this.jhiSort.predicate && this.jhiSort.predicate !== '_score' && this.jhiSort.predicate === this.jhiSortBy) { this.updateIconDefinition(this.iconComponent, this.jhiSort.ascending ? this.sortAscIcon : this.sortDescIcon); this.jhiSort.activeIconComponent = this.iconComponent; } } onClick() { if (this.jhiSort.predicate && this.jhiSort.predicate !== '_score') { this.jhiSort.sort(this.jhiSortBy); this.updateIconDefinition(this.jhiSort.activeIconComponent, this.sortIcon); this.updateIconDefinition(this.iconComponent, this.jhiSort.ascending ? this.sortAscIcon : this.sortDescIcon); this.jhiSort.activeIconComponent = this.iconComponent; } } updateIconDefinition(iconComponent, icon) { if (iconComponent) { iconComponent.icon = icon.iconName; iconComponent.render(); } } } JhiSortByDirective.decorators = [ { type: Directive, args: [{ selector: '[jhiSortBy]' },] } ]; JhiSortByDirective.ctorParameters = () => [ { type: JhiSortDirective, decorators: [{ type: Host }] }, { type: JhiConfigService } ]; JhiSortByDirective.propDecorators = { jhiSortBy: [{ type: Input }], iconComponent: [{ type: ContentChild, args: [FaIconComponent, { static: true },] }], onClick: [{ type: HostListener, args: ['click',] }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1ieS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGlyZWN0aXZlL3NvcnQtYnkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE9BQU8sRUFBb0IsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFLcEQsTUFBTSxPQUFPLGtCQUFrQjtJQVEzQixZQUE0QixPQUF5QixFQUFFLGFBQStCO1FBQTFELFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBQ2pELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztJQUM1QyxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUM1RyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzdHLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztTQUN6RDtJQUNMLENBQUM7SUFHRCxPQUFPO1FBQ0gsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsS0FBSyxRQUFRLEVBQUU7WUFDL0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzdHLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztTQUN6RDtJQUNMLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxhQUE4QixFQUFFLElBQW9CO1FBQzdFLElBQUksYUFBYSxFQUFFO1lBQ2YsYUFBYSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ25DLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUMxQjtJQUNMLENBQUM7OztZQXpDSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGFBQWE7YUFDMUI7OztZQUpRLGdCQUFnQix1QkFhUixJQUFJO1lBZFosZ0JBQWdCOzs7d0JBT3BCLEtBQUs7NEJBQ0wsWUFBWSxTQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7c0JBcUI5QyxZQUFZLFNBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gQ29weXJpZ2h0IDIwMTMtMjAyMCB0aGUgb3JpZ2luYWwgYXV0aG9yIG9yIGF1dGhvcnMgZnJvbSB0aGUgSkhpcHN0ZXIgcHJvamVjdC5cblxuIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBKSGlwc3RlciBwcm9qZWN0LCBzZWUgaHR0cHM6Ly93d3cuamhpcHN0ZXIudGVjaC9cbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cblxuIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29udGVudENoaWxkLCBEaXJlY3RpdmUsIEhvc3QsIEhvc3RMaXN0ZW5lciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZhSWNvbkNvbXBvbmVudCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcbmltcG9ydCB7IEljb25EZWZpbml0aW9uIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcblxuaW1wb3J0IHsgSmhpQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL2NvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IEpoaVNvcnREaXJlY3RpdmUgfSBmcm9tICcuL3NvcnQuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbamhpU29ydEJ5XSdcbn0pXG5leHBvcnQgY2xhc3MgSmhpU29ydEJ5RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgQElucHV0KCkgamhpU29ydEJ5OiBzdHJpbmc7XG4gICAgQENvbnRlbnRDaGlsZChGYUljb25Db21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIGljb25Db21wb25lbnQ6IEZhSWNvbkNvbXBvbmVudDtcblxuICAgIHNvcnRJY29uOiBJY29uRGVmaW5pdGlvbjtcbiAgICBzb3J0QXNjSWNvbjogSWNvbkRlZmluaXRpb247XG4gICAgc29ydERlc2NJY29uOiBJY29uRGVmaW5pdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKEBIb3N0KCkgcHJpdmF0ZSBqaGlTb3J0OiBKaGlTb3J0RGlyZWN0aXZlLCBjb25maWdTZXJ2aWNlOiBKaGlDb25maWdTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuamhpU29ydCA9IGpoaVNvcnQ7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IGNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCk7XG4gICAgICAgIHRoaXMuc29ydEljb24gPSBjb25maWcuc29ydEljb247XG4gICAgICAgIHRoaXMuc29ydEFzY0ljb24gPSBjb25maWcuc29ydEFzY0ljb247XG4gICAgICAgIHRoaXMuc29ydERlc2NJY29uID0gY29uZmlnLnNvcnREZXNjSWNvbjtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmpoaVNvcnQucHJlZGljYXRlICYmIHRoaXMuamhpU29ydC5wcmVkaWNhdGUgIT09ICdfc2NvcmUnICYmIHRoaXMuamhpU29ydC5wcmVkaWNhdGUgPT09IHRoaXMuamhpU29ydEJ5KSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUljb25EZWZpbml0aW9uKHRoaXMuaWNvbkNvbXBvbmVudCwgdGhpcy5qaGlTb3J0LmFzY2VuZGluZyA/IHRoaXMuc29ydEFzY0ljb24gOiB0aGlzLnNvcnREZXNjSWNvbik7XG4gICAgICAgICAgICB0aGlzLmpoaVNvcnQuYWN0aXZlSWNvbkNvbXBvbmVudCA9IHRoaXMuaWNvbkNvbXBvbmVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgICBvbkNsaWNrKCkge1xuICAgICAgICBpZiAodGhpcy5qaGlTb3J0LnByZWRpY2F0ZSAmJiB0aGlzLmpoaVNvcnQucHJlZGljYXRlICE9PSAnX3Njb3JlJykge1xuICAgICAgICAgICAgdGhpcy5qaGlTb3J0LnNvcnQodGhpcy5qaGlTb3J0QnkpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVJY29uRGVmaW5pdGlvbih0aGlzLmpoaVNvcnQuYWN0aXZlSWNvbkNvbXBvbmVudCwgdGhpcy5zb3J0SWNvbik7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUljb25EZWZpbml0aW9uKHRoaXMuaWNvbkNvbXBvbmVudCwgdGhpcy5qaGlTb3J0LmFzY2VuZGluZyA/IHRoaXMuc29ydEFzY0ljb24gOiB0aGlzLnNvcnREZXNjSWNvbik7XG4gICAgICAgICAgICB0aGlzLmpoaVNvcnQuYWN0aXZlSWNvbkNvbXBvbmVudCA9IHRoaXMuaWNvbkNvbXBvbmVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlSWNvbkRlZmluaXRpb24oaWNvbkNvbXBvbmVudDogRmFJY29uQ29tcG9uZW50LCBpY29uOiBJY29uRGVmaW5pdGlvbikge1xuICAgICAgICBpZiAoaWNvbkNvbXBvbmVudCkge1xuICAgICAgICAgICAgaWNvbkNvbXBvbmVudC5pY29uID0gaWNvbi5pY29uTmFtZTtcbiAgICAgICAgICAgIGljb25Db21wb25lbnQucmVuZGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=