@engie-group/fluid-design-system-angular
Version:
Fluid Design System Angular
71 lines • 11.2 kB
JavaScript
import { CommonModule } from '@angular/common';
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
import { IconComponent } from '../icon/icon.component';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
export class IconButtonComponent {
constructor() {
this.ICON_BUTTON_CLASS_NAME = 'nj-icon-btn';
/**
* Type of the button. Some values may be `button`, `submit`, `reset`
*/
this.type = 'button';
/**
* Whether button has custom icon
*/
this.hasCustomIcon = false;
/**
* Button click output. Emits a MouseEvent
*/
this.buttonClick = new EventEmitter();
}
/**
* @ignore
*/
getIconButtonVariantClass() {
if (!this.variant || this.variant === 'primary') {
return '';
}
return `${this.ICON_BUTTON_CLASS_NAME}--${this.variant}`;
}
/**
* @ignore
*/
getIconButtonSizeClass() {
if (!this.size || this.size === 'xs') {
return '';
}
return `${this.ICON_BUTTON_CLASS_NAME}--${this.size}`;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IconButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: IconButtonComponent, isStandalone: true, selector: "nj-icon-button", inputs: { type: "type", ariaPressed: "ariaPressed", ariaDescribedby: "ariaDescribedby", isDisabled: "isDisabled", tabIndex: "tabIndex", variant: "variant", size: "size", hasCustomIcon: "hasCustomIcon", icon: "icon", label: "label", additionalClass: "additionalClass" }, outputs: { buttonClick: "buttonClick" }, ngImport: i0, template: "<button class=\"nj-icon-btn\"\n [type]=\"type\"\n (click)=\"buttonClick.emit($event)\"\n [tabIndex]=\"tabIndex\"\n [disabled]=\"isDisabled\"\n [ngClass]=\"[\n getIconButtonVariantClass(),\n getIconButtonSizeClass(),\n additionalClass ?? ''\n ]\"\n [title]=\"label\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-pressed]=\"ariaPressed\"\n>\n <span class=\"nj-sr-only\">{{label}}</span>\n <nj-icon class=\"nj-icon-btn__icon\" *ngIf=\"!hasCustomIcon && icon\" [name]=\"icon\" size=\"inherit\" variant=\"inherit\"></nj-icon>\n <span *ngIf=\"hasCustomIcon\" class=\"nj-icon-btn__icon\">\n <ng-content select=\"[custom-icon]\"></ng-content>\n </span>\n</button>\n", styles: [":host{display:inline-flex}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "nj-icon", inputs: ["size", "variant"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IconButtonComponent, decorators: [{
type: Component,
args: [{ selector: 'nj-icon-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent, CommonModule], template: "<button class=\"nj-icon-btn\"\n [type]=\"type\"\n (click)=\"buttonClick.emit($event)\"\n [tabIndex]=\"tabIndex\"\n [disabled]=\"isDisabled\"\n [ngClass]=\"[\n getIconButtonVariantClass(),\n getIconButtonSizeClass(),\n additionalClass ?? ''\n ]\"\n [title]=\"label\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-pressed]=\"ariaPressed\"\n>\n <span class=\"nj-sr-only\">{{label}}</span>\n <nj-icon class=\"nj-icon-btn__icon\" *ngIf=\"!hasCustomIcon && icon\" [name]=\"icon\" size=\"inherit\" variant=\"inherit\"></nj-icon>\n <span *ngIf=\"hasCustomIcon\" class=\"nj-icon-btn__icon\">\n <ng-content select=\"[custom-icon]\"></ng-content>\n </span>\n</button>\n", styles: [":host{display:inline-flex}\n"] }]
}], ctorParameters: function () { return []; }, propDecorators: { type: [{
type: Input
}], ariaPressed: [{
type: Input
}], ariaDescribedby: [{
type: Input
}], isDisabled: [{
type: Input
}], tabIndex: [{
type: Input
}], variant: [{
type: Input
}], size: [{
type: Input
}], hasCustomIcon: [{
type: Input
}], icon: [{
type: Input
}], label: [{
type: Input
}], additionalClass: [{
type: Input
}], buttonClick: [{
type: Output
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvaWNvbi1idXR0b24vaWNvbi1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvaWNvbi1idXR0b24vaWNvbi1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7QUFXckQsTUFBTSxPQUFPLG1CQUFtQjtJQWtFOUI7UUFqRWlCLDJCQUFzQixHQUFHLGFBQWEsQ0FBQztRQUV4RDs7V0FFRztRQUNNLFNBQUksR0FBRyxRQUFRLENBQUM7UUFtQ3pCOztXQUVHO1FBQ00sa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFpQi9COztXQUVHO1FBQ08sZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO0lBR3ZELENBQUM7SUFFRDs7T0FFRztJQUNILHlCQUF5QjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRTtZQUMvQyxPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsT0FBTyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsS0FBSyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsc0JBQXNCO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQ3BDLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxPQUFPLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixLQUFLLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4RCxDQUFDOytHQXZGVSxtQkFBbUI7bUdBQW5CLG1CQUFtQixpWUNiaEMsa3dCQW9CQSxzRkRUWSxhQUFhLGdGQUFFLFlBQVk7OzRGQUUxQixtQkFBbUI7a0JBUi9CLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQzswRUFRN0IsSUFBSTtzQkFBWixLQUFLO2dCQUtHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBTUcsZUFBZTtzQkFBdkIsS0FBSztnQkFLRyxVQUFVO3NCQUFsQixLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBTUcsT0FBTztzQkFBZixLQUFLO2dCQU1HLElBQUk7c0JBQVosS0FBSztnQkFLRyxhQUFhO3NCQUFyQixLQUFLO2dCQUtHLElBQUk7c0JBQVosS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS0csZUFBZTtzQkFBdkIsS0FBSztnQkFLSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0ljb25Db21wb25lbnR9IGZyb20gJy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtJY29uQnV0dG9uU2l6ZSwgSWNvbkJ1dHRvblZhcmlhbnR9IGZyb20gJy4vaWNvbi1idXR0b24ubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduai1pY29uLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9pY29uLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ljb24tYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbSWNvbkNvbXBvbmVudCwgQ29tbW9uTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBJY29uQnV0dG9uQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBJQ09OX0JVVFRPTl9DTEFTU19OQU1FID0gJ25qLWljb24tYnRuJztcblxuICAvKipcbiAgICogVHlwZSBvZiB0aGUgYnV0dG9uLiBTb21lIHZhbHVlcyBtYXkgYmUgYGJ1dHRvbmAsIGBzdWJtaXRgLCBgcmVzZXRgXG4gICAqL1xuICBASW5wdXQoKSB0eXBlID0gJ2J1dHRvbic7XG5cbiAgLyoqXG4gICAqIEZvciB0b2dnbGUgYnV0dG9ucywgaW5kaWNhdGUgdGhlIHN0YXRlXG4gICAqL1xuICBASW5wdXQoKSBhcmlhUHJlc3NlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgZGVzY3JpcHRpb24gZm9yIGFzc2lzdGl2ZSB0ZWNobm9sb2dpZXMgYmFzZWQgb24gdmlzaWJsZSB0ZXh0XG4gICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQWNjZXNzaWJpbGl0eS9BUklBL0F0dHJpYnV0ZXMvYXJpYS1kZXNjcmliZWRieVxuICAgKi9cbiAgQElucHV0KCkgYXJpYURlc2NyaWJlZGJ5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGJ1dHRvbiBpcyBkaXNhYmxlZCBvciBub3RcbiAgICovXG4gIEBJbnB1dCgpIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRhYiBpbmRleCwgYWxsb3dzIHlvdSB0byBjdXN0b21pemUga2V5Ym9hcmQgbmF2aWdhdGlvblxuICAgKi9cbiAgQElucHV0KCkgdGFiSW5kZXg6IG51bWJlcjtcblxuICAvKipcbiAgICogQnV0dG9uIHZhcmlhbnQgdGhlbWVcbiAgICogQGRlZmF1bHQgYHByaW1hcnlgXG4gICAqL1xuICBASW5wdXQoKSB2YXJpYW50OiBJY29uQnV0dG9uVmFyaWFudDtcblxuICAvKipcbiAgICogQnV0dG9uIHNpemVcbiAgICogQGRlZmF1bHQgYHhzYFxuICAgKi9cbiAgQElucHV0KCkgc2l6ZTogSWNvbkJ1dHRvblNpemU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYnV0dG9uIGhhcyBjdXN0b20gaWNvblxuICAgKi9cbiAgQElucHV0KCkgaGFzQ3VzdG9tSWNvbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBCdXR0b24gbWF0ZXJpYWwgaWNvblxuICAgKi9cbiAgQElucHV0KCkgaWNvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUZXh0IGFsdGVybmF0aXZlIGZvciBhc3Npc3RpdmUgdGVjaG5vbG9naWVzXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGljb24tYnV0dG9uIGNzcyBjbGFzc2VzXG4gICAqL1xuICBASW5wdXQoKSBhZGRpdGlvbmFsQ2xhc3M/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJ1dHRvbiBjbGljayBvdXRwdXQuIEVtaXRzIGEgTW91c2VFdmVudFxuICAgKi9cbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGdldEljb25CdXR0b25WYXJpYW50Q2xhc3MoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMudmFyaWFudCB8fCB0aGlzLnZhcmlhbnQgPT09ICdwcmltYXJ5Jykge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZXR1cm4gYCR7dGhpcy5JQ09OX0JVVFRPTl9DTEFTU19OQU1FfS0tJHt0aGlzLnZhcmlhbnR9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBnZXRJY29uQnV0dG9uU2l6ZUNsYXNzKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnNpemUgfHwgdGhpcy5zaXplID09PSAneHMnKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLklDT05fQlVUVE9OX0NMQVNTX05BTUV9LS0ke3RoaXMuc2l6ZX1gO1xuICB9XG59XG4iLCI8YnV0dG9uIGNsYXNzPVwibmotaWNvbi1idG5cIlxuICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgKGNsaWNrKT1cImJ1dHRvbkNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgIFt0YWJJbmRleF09XCJ0YWJJbmRleFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiW1xuICAgICAgICAgIGdldEljb25CdXR0b25WYXJpYW50Q2xhc3MoKSxcbiAgICAgICAgICBnZXRJY29uQnV0dG9uU2l6ZUNsYXNzKCksXG4gICAgICAgICAgYWRkaXRpb25hbENsYXNzID8/ICcnXG4gICAgICAgIF1cIlxuICAgICAgICBbdGl0bGVdPVwibGFiZWxcIlxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRieVwiXG4gICAgICAgIFthdHRyLmFyaWEtcHJlc3NlZF09XCJhcmlhUHJlc3NlZFwiXG4+XG4gIDxzcGFuIGNsYXNzPVwibmotc3Itb25seVwiPnt7bGFiZWx9fTwvc3Bhbj5cbiAgPG5qLWljb24gY2xhc3M9XCJuai1pY29uLWJ0bl9faWNvblwiICpuZ0lmPVwiIWhhc0N1c3RvbUljb24gJiYgaWNvblwiIFtuYW1lXT1cImljb25cIiBzaXplPVwiaW5oZXJpdFwiIHZhcmlhbnQ9XCJpbmhlcml0XCI+PC9uai1pY29uPlxuICA8c3BhbiAqbmdJZj1cImhhc0N1c3RvbUljb25cIiBjbGFzcz1cIm5qLWljb24tYnRuX19pY29uXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2N1c3RvbS1pY29uXVwiPjwvbmctY29udGVudD5cbiAgPC9zcGFuPlxuPC9idXR0b24+XG4iXX0=