@firestitch/address
Version:
63 lines • 8.93 kB
JavaScript
import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
import { AddressFormat } from '../../enums/address-format.enum';
import { addressOneLineFormat, addressSummaryFormat, addressTwoLineFormat } from '../../helpers';
import { NgClass } from '@angular/common';
import * as i0 from "@angular/core";
export class FsAddressFormatComponent {
set address(address) {
this._address = address;
this._updateView();
}
get address() {
return this._address;
}
format = AddressFormat.OneLine;
includeFirst;
disabled = false;
showName = true;
lines;
_address = {};
ngOnInit() {
this._updateView();
}
get empty() {
return !!this.lines?.length;
}
_updateView() {
const address = {
...this.address,
name: this.showName ? this.address?.name : null,
};
switch (this.format) {
case AddressFormat.Summary: {
this.lines = addressSummaryFormat(address).split('\n');
break;
}
case AddressFormat.OneLine: {
this.lines = addressOneLineFormat(address, { includeFirst: this.includeFirst }).split('\n');
break;
}
case AddressFormat.TwoLine: {
this.lines = addressTwoLineFormat(address, { includeFirst: this.includeFirst }).split('\n');
break;
}
}
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsAddressFormatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: FsAddressFormatComponent, isStandalone: true, selector: "fs-address-format", inputs: { address: "address", format: "format", includeFirst: "includeFirst", disabled: "disabled", showName: "showName" }, ngImport: i0, template: "@if (lines.length) {\n <span [ngClass]=\"format\" [class.disabled]=\"disabled\">\n @for (line of lines; track line; let index = $index) {\n <span class=\"line-{{index + 1}}\">\n {{line}}\n </span>\n }\n </span>\n}\n", styles: [".twoline .line-1{display:block}.twoline .line-2{font-size:smaller}.disabled{color:#00000061}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsAddressFormatComponent, decorators: [{
type: Component,
args: [{ selector: 'fs-address-format', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass], template: "@if (lines.length) {\n <span [ngClass]=\"format\" [class.disabled]=\"disabled\">\n @for (line of lines; track line; let index = $index) {\n <span class=\"line-{{index + 1}}\">\n {{line}}\n </span>\n }\n </span>\n}\n", styles: [".twoline .line-1{display:block}.twoline .line-2{font-size:smaller}.disabled{color:#00000061}\n"] }]
}], propDecorators: { address: [{
type: Input
}], format: [{
type: Input
}], includeFirst: [{
type: Input
}], disabled: [{
type: Input
}], showName: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1mb3JtYXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2FkZHJlc3MtZm9ybWF0L2FkZHJlc3MtZm9ybWF0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9hZGRyZXNzLWZvcm1hdC9hZGRyZXNzLWZvcm1hdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEdBRU4sTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBVzFDLE1BQU0sT0FBTyx3QkFBd0I7SUFFbkMsSUFDVyxPQUFPLENBQUMsT0FBTztRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVlLE1BQU0sR0FBa0IsYUFBYSxDQUFDLE9BQU8sQ0FBQztJQUM5QyxZQUFZLENBQUk7SUFDaEIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixRQUFRLEdBQUcsSUFBSSxDQUFDO0lBRXpCLEtBQUssQ0FBVztJQUVmLFFBQVEsR0FBYyxFQUFFLENBQUM7SUFFMUIsUUFBUTtRQUNiLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUM7SUFDOUIsQ0FBQztJQUVPLFdBQVc7UUFDakIsTUFBTSxPQUFPLEdBQUc7WUFDZCxHQUFHLElBQUksQ0FBQyxPQUFPO1lBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO1NBQ2hELENBQUM7UUFFRixRQUFRLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixLQUFLLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdkQsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFLLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVGLE1BQU07WUFDUixDQUFDO1lBQ0QsS0FBSyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM1RixNQUFNO1lBQ1IsQ0FBQztRQUNILENBQUM7SUFFSCxDQUFDO3VHQWxEVSx3QkFBd0I7MkZBQXhCLHdCQUF3Qix5TUNyQnJDLGtQQVNBLHdKRFVjLE9BQU87OzJGQUVSLHdCQUF3QjtrQkFScEMsU0FBUzsrQkFDSSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxPQUFPLENBQUM7OEJBS1QsT0FBTztzQkFEakIsS0FBSztnQkFVVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFkZHJlc3NGb3JtYXQgfSBmcm9tICcuLi8uLi9lbnVtcy9hZGRyZXNzLWZvcm1hdC5lbnVtJztcbmltcG9ydCB7IGFkZHJlc3NPbmVMaW5lRm9ybWF0LCBhZGRyZXNzU3VtbWFyeUZvcm1hdCwgYWRkcmVzc1R3b0xpbmVGb3JtYXQgfSBmcm9tICcuLi8uLi9oZWxwZXJzJztcbmltcG9ydCB7IEZzQWRkcmVzcyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYWRkcmVzcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmcy1hZGRyZXNzLWZvcm1hdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FkZHJlc3MtZm9ybWF0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9hZGRyZXNzLWZvcm1hdC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nQ2xhc3NdLFxufSlcbmV4cG9ydCBjbGFzcyBGc0FkZHJlc3NGb3JtYXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYWRkcmVzcyhhZGRyZXNzKSB7XG4gICAgdGhpcy5fYWRkcmVzcyA9IGFkZHJlc3M7XG4gICAgdGhpcy5fdXBkYXRlVmlldygpO1xuICB9XG5cbiAgcHVibGljIGdldCBhZGRyZXNzKCkge1xuICAgIHJldHVybiB0aGlzLl9hZGRyZXNzO1xuICB9XG5cbiAgQElucHV0KCkgcHVibGljIGZvcm1hdDogQWRkcmVzc0Zvcm1hdCA9IEFkZHJlc3NGb3JtYXQuT25lTGluZTtcbiAgQElucHV0KCkgcHVibGljIGluY2x1ZGVGaXJzdDogMDtcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93TmFtZSA9IHRydWU7XG5cbiAgcHVibGljIGxpbmVzOiBzdHJpbmdbXTtcblxuICBwcml2YXRlIF9hZGRyZXNzOiBGc0FkZHJlc3MgPSB7fTtcblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5fdXBkYXRlVmlldygpO1xuICB9XG5cbiAgcHVibGljIGdldCBlbXB0eSgpIHtcbiAgICByZXR1cm4gISF0aGlzLmxpbmVzPy5sZW5ndGg7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVWaWV3KCkge1xuICAgIGNvbnN0IGFkZHJlc3MgPSB7XG4gICAgICAuLi50aGlzLmFkZHJlc3MsXG4gICAgICBuYW1lOiB0aGlzLnNob3dOYW1lID8gdGhpcy5hZGRyZXNzPy5uYW1lIDogbnVsbCxcbiAgICB9O1xuXG4gICAgc3dpdGNoICh0aGlzLmZvcm1hdCkge1xuICAgICAgY2FzZSBBZGRyZXNzRm9ybWF0LlN1bW1hcnk6IHtcbiAgICAgICAgdGhpcy5saW5lcyA9IGFkZHJlc3NTdW1tYXJ5Rm9ybWF0KGFkZHJlc3MpLnNwbGl0KCdcXG4nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIEFkZHJlc3NGb3JtYXQuT25lTGluZToge1xuICAgICAgICB0aGlzLmxpbmVzID0gYWRkcmVzc09uZUxpbmVGb3JtYXQoYWRkcmVzcywgeyBpbmNsdWRlRmlyc3Q6IHRoaXMuaW5jbHVkZUZpcnN0IH0pLnNwbGl0KCdcXG4nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIEFkZHJlc3NGb3JtYXQuVHdvTGluZToge1xuICAgICAgICB0aGlzLmxpbmVzID0gYWRkcmVzc1R3b0xpbmVGb3JtYXQoYWRkcmVzcywgeyBpbmNsdWRlRmlyc3Q6IHRoaXMuaW5jbHVkZUZpcnN0IH0pLnNwbGl0KCdcXG4nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxufVxuIiwiQGlmIChsaW5lcy5sZW5ndGgpIHtcbiAgPHNwYW4gW25nQ2xhc3NdPVwiZm9ybWF0XCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gICAgQGZvciAobGluZSBvZiBsaW5lczsgdHJhY2sgbGluZTsgbGV0IGluZGV4ID0gJGluZGV4KSB7XG4gICAgICA8c3BhbiBjbGFzcz1cImxpbmUte3tpbmRleCArIDF9fVwiPlxuICAgICAgICB7e2xpbmV9fVxuICAgICAgPC9zcGFuPlxuICAgIH1cbiAgPC9zcGFuPlxufVxuIl19