UNPKG

design-angular-kit

Version:

Un toolkit Angular conforme alle linee guida di design per i servizi web della PA

67 lines 11 kB
import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; import { NgTemplateOutlet } from '@angular/common'; import { ItButtonDirective } from '../../core/button/button.directive'; import { ItIconComponent } from '../../utils/icon/icon.component'; import { TranslateModule } from '@ngx-translate/core'; import { inputToBoolean } from '../../../utils/coercion'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; import * as i2 from "@ngx-translate/core"; export class ItBackButtonComponent { constructor(_location) { this._location = _location; /** * Back button style * - <b>link</b>: use a link with icon and text * - <b>button</b>: use a button with icon and text * @default button */ this.buttonStyle = 'button'; /** * Button direction * - <b>left</b>: Back direction * - <b>up</b>: Upper direction * @default left */ this.direction = 'left'; /** * Show/Hide icon * @default true */ this.showIcon = true; /** * Show/Hide text * @default true */ this.showText = true; } /** * Go back function */ goBack(event) { event.preventDefault(); if (this.backFn) { return this.backFn(this._location); } this._location.back(); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItBackButtonComponent, deps: [{ token: i1.Location }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: ItBackButtonComponent, isStandalone: true, selector: "it-back-button", inputs: { buttonStyle: "buttonStyle", direction: "direction", showIcon: ["showIcon", "showIcon", inputToBoolean], showText: ["showText", "showText", inputToBoolean], backFn: "backFn" }, exportAs: ["itBackButton"], ngImport: i0, template: "@if (buttonStyle === 'link') {\n <a href=\"#\" class=\"go-back\" (click)=\"goBack($event)\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n}\n\n@if (buttonStyle === 'button') {\n <button itButton=\"primary\" class=\"go-back\" (click)=\"goBack($event)\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n}\n\n<ng-template #content>\n @if (showIcon) {\n <it-icon\n size=\"sm\"\n [name]=\"direction === 'left' ? 'arrow-left' : 'arrow-up'\"\n [color]=\"buttonStyle === 'link' ? 'primary' : 'white'\"\n [class.me-2]=\"showText\"></it-icon>\n }\n\n <span [class.visually-hidden]=\"!showText\">\n {{ (direction === 'left' ? 'it.navigation.go-back' : 'it.navigation.upper-level') | translate }}\n </span>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ItButtonDirective, selector: "[itButton]", inputs: ["itButton", "size", "block", "disabled", "type"], exportAs: ["itButton"] }, { kind: "component", type: ItIconComponent, selector: "it-icon", inputs: ["name", "size", "color", "padded", "svgClass", "title", "labelWaria"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItBackButtonComponent, decorators: [{ type: Component, args: [{ standalone: true, selector: 'it-back-button', exportAs: 'itBackButton', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgTemplateOutlet, ItButtonDirective, ItIconComponent, TranslateModule], template: "@if (buttonStyle === 'link') {\n <a href=\"#\" class=\"go-back\" (click)=\"goBack($event)\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n}\n\n@if (buttonStyle === 'button') {\n <button itButton=\"primary\" class=\"go-back\" (click)=\"goBack($event)\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n}\n\n<ng-template #content>\n @if (showIcon) {\n <it-icon\n size=\"sm\"\n [name]=\"direction === 'left' ? 'arrow-left' : 'arrow-up'\"\n [color]=\"buttonStyle === 'link' ? 'primary' : 'white'\"\n [class.me-2]=\"showText\"></it-icon>\n }\n\n <span [class.visually-hidden]=\"!showText\">\n {{ (direction === 'left' ? 'it.navigation.go-back' : 'it.navigation.upper-level') | translate }}\n </span>\n</ng-template>\n" }] }], ctorParameters: () => [{ type: i1.Location }], propDecorators: { buttonStyle: [{ type: Input }], direction: [{ type: Input }], showIcon: [{ type: Input, args: [{ transform: inputToBoolean }] }], showText: [{ type: Input, args: [{ transform: inputToBoolean }] }], backFn: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFjay1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uYXZpZ2F0aW9uL2JhY2stYnV0dG9uL2JhY2stYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9iYWNrLWJ1dHRvbi9iYWNrLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQVksZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQVV6RCxNQUFNLE9BQU8scUJBQXFCO0lBc0NoQyxZQUE0QixTQUFtQjtRQUFuQixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBckMvQzs7Ozs7V0FLRztRQUNNLGdCQUFXLEdBQXNCLFFBQVEsQ0FBQztRQUVuRDs7Ozs7V0FLRztRQUNNLGNBQVMsR0FBa0IsTUFBTSxDQUFDO1FBRTNDOzs7V0FHRztRQUNtQyxhQUFRLEdBQVksSUFBSSxDQUFDO1FBRS9EOzs7V0FHRztRQUNtQyxhQUFRLEdBQVksSUFBSSxDQUFDO0lBV2IsQ0FBQztJQUVuRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxLQUFZO1FBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7OEdBbERVLHFCQUFxQjtrR0FBckIscUJBQXFCLG1KQXFCWixjQUFjLHNDQU1kLGNBQWMsMkVDMUNwQyxzeUJBeUJBLDRDRFpZLGdCQUFnQixvSkFBRSxpQkFBaUIsMElBQUUsZUFBZSxtSUFBRSxlQUFlOzsyRkFFcEUscUJBQXFCO2tCQVJqQyxTQUFTO2lDQUNJLElBQUksWUFDTixnQkFBZ0IsWUFFaEIsY0FBYyxtQkFDUCx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGVBQWUsQ0FBQzs2RUFTdkUsV0FBVztzQkFBbkIsS0FBSztnQkFRRyxTQUFTO3NCQUFqQixLQUFLO2dCQU1nQyxRQUFRO3NCQUE3QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRTtnQkFNRSxRQUFRO3NCQUE3QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRTtnQkFTM0IsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2F0aW9uLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEl0QnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vY29yZS9idXR0b24vYnV0dG9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJdEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi91dGlscy9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgaW5wdXRUb0Jvb2xlYW4gfSBmcm9tICcuLi8uLi8uLi91dGlscy9jb2VyY2lvbic7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2l0LWJhY2stYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JhY2stYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgZXhwb3J0QXM6ICdpdEJhY2tCdXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIEl0QnV0dG9uRGlyZWN0aXZlLCBJdEljb25Db21wb25lbnQsIFRyYW5zbGF0ZU1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIEl0QmFja0J1dHRvbkNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBCYWNrIGJ1dHRvbiBzdHlsZVxuICAgKiAtIDxiPmxpbms8L2I+OiB1c2UgYSBsaW5rIHdpdGggaWNvbiBhbmQgdGV4dFxuICAgKiAtIDxiPmJ1dHRvbjwvYj46IHVzZSBhIGJ1dHRvbiB3aXRoIGljb24gYW5kIHRleHRcbiAgICogQGRlZmF1bHQgYnV0dG9uXG4gICAqL1xuICBASW5wdXQoKSBidXR0b25TdHlsZTogJ2xpbmsnIHwgJ2J1dHRvbicgPSAnYnV0dG9uJztcblxuICAvKipcbiAgICogQnV0dG9uIGRpcmVjdGlvblxuICAgKiAtIDxiPmxlZnQ8L2I+OiBCYWNrIGRpcmVjdGlvblxuICAgKiAtIDxiPnVwPC9iPjogVXBwZXIgZGlyZWN0aW9uXG4gICAqIEBkZWZhdWx0IGxlZnRcbiAgICovXG4gIEBJbnB1dCgpIGRpcmVjdGlvbjogJ2xlZnQnIHwgJ3VwJyA9ICdsZWZ0JztcblxuICAvKipcbiAgICogU2hvdy9IaWRlIGljb25cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBpbnB1dFRvQm9vbGVhbiB9KSBzaG93SWNvbjogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFNob3cvSGlkZSB0ZXh0XG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogaW5wdXRUb0Jvb2xlYW4gfSkgc2hvd1RleHQ6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gYmFjayBsb2dpYyA8YnIvPlxuICAgKlxuICAgKiBOT1RFOiB0byB1c2UgJ3RoaXMnIG5lZWQgYmluZCBmdW5jdGlvbiAgPGJyLz5cbiAgICogQGV4YW1wbGUgYmFja0NiRm4gPSB0aGlzLmVycm9yQ2FsbGJhY2suYmluZCh0aGlzKTtcbiAgICogKGVycm9yQ2FsbGJhY2sgaXMgeW91ciBmdW5jdGlvbiwgcGFzcyBiYWNrQ2JGbiB0byB0aGUgY29tcG9uZW50KVxuICAgKi9cbiAgQElucHV0KCkgYmFja0ZuPzogKGxvY2F0aW9uOiBMb2NhdGlvbikgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgX2xvY2F0aW9uOiBMb2NhdGlvbikge31cblxuICAvKipcbiAgICogR28gYmFjayBmdW5jdGlvblxuICAgKi9cbiAgcHVibGljIGdvQmFjayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICh0aGlzLmJhY2tGbikge1xuICAgICAgcmV0dXJuIHRoaXMuYmFja0ZuKHRoaXMuX2xvY2F0aW9uKTtcbiAgICB9XG5cbiAgICB0aGlzLl9sb2NhdGlvbi5iYWNrKCk7XG4gIH1cbn1cbiIsIkBpZiAoYnV0dG9uU3R5bGUgPT09ICdsaW5rJykge1xuICA8YSBocmVmPVwiI1wiIGNsYXNzPVwiZ28tYmFja1wiIChjbGljayk9XCJnb0JhY2soJGV2ZW50KVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gIDwvYT5cbn1cblxuQGlmIChidXR0b25TdHlsZSA9PT0gJ2J1dHRvbicpIHtcbiAgPGJ1dHRvbiBpdEJ1dHRvbj1cInByaW1hcnlcIiBjbGFzcz1cImdvLWJhY2tcIiAoY2xpY2spPVwiZ29CYWNrKCRldmVudClcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICA8L2J1dHRvbj5cbn1cblxuPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICBAaWYgKHNob3dJY29uKSB7XG4gICAgPGl0LWljb25cbiAgICAgIHNpemU9XCJzbVwiXG4gICAgICBbbmFtZV09XCJkaXJlY3Rpb24gPT09ICdsZWZ0JyA/ICdhcnJvdy1sZWZ0JyA6ICdhcnJvdy11cCdcIlxuICAgICAgW2NvbG9yXT1cImJ1dHRvblN0eWxlID09PSAnbGluaycgPyAncHJpbWFyeScgOiAnd2hpdGUnXCJcbiAgICAgIFtjbGFzcy5tZS0yXT1cInNob3dUZXh0XCI+PC9pdC1pY29uPlxuICB9XG5cbiAgPHNwYW4gW2NsYXNzLnZpc3VhbGx5LWhpZGRlbl09XCIhc2hvd1RleHRcIj5cbiAgICB7eyAoZGlyZWN0aW9uID09PSAnbGVmdCcgPyAnaXQubmF2aWdhdGlvbi5nby1iYWNrJyA6ICdpdC5uYXZpZ2F0aW9uLnVwcGVyLWxldmVsJykgfCB0cmFuc2xhdGUgfX1cbiAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==