@sedeh/into-pipes
Version:
Have you ever wanted to transform data in different parts of your application into interactive objects without writing a single line of code?
50 lines • 8.15 kB
JavaScript
/*
* Defines a filter to convert url into an address display.
*/
import { Pipe } from '@angular/core';
import * as i0 from "@angular/core";
export class AddressPipe {
static transformationMethod() {
const x = function (content, args, callback, data) {
return new AddressPipe().transform(content, args.length > 1 ? args[1] === 'true' : true);
};
return x;
}
transform(source, ...args) {
const isLink = args.length ? args[0] : true;
const hasTarget = args.length > 1 ? args[1] : false;
if ((typeof source === "string") || !(source instanceof Array)) {
return this.addressFromString(source, isLink, hasTarget);
}
else {
const result = [];
source.map((item) => {
result.push(this.addressFromString(item, isLink, hasTarget));
});
return result;
}
}
addressFromString(source, isLink, hasTarget) {
if (isLink) {
let url = "https://maps.google.com/?q=" +
source.street + ", " + source.city + ", " + source.zipcode + "&ie=UTF-8";
url = url.replace("\\s+", "+");
return "<a href=\'" + url + "\' " +
(hasTarget ? "target='_blank'" : "") +
"class='google-map'><span class='fa fa-map-marker' aria-hidden='true'>" +
"</span><span class='off-screen'>View in google map</span><span class='address'>" +
source.street + ", " + source.suite + "</span>" +
"<span class='address'> " + source.city + ", " + source.zipcode + "</span></a>";
}
return "<span class='google-map'><span class='fa fa-map-marker' style='margin: 0 5px' aria-hidden='true'>" +
"</span><span class='address'>" + source.street + ", " + source.suite + "</span>" +
"<span class='address'> " + source.city + ", " + source.zipcode + "</span></span>";
}
}
AddressPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AddressPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
AddressPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: AddressPipe, name: "address" });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AddressPipe, decorators: [{
type: Pipe,
args: [{ name: 'address' }]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW50by1waXBlcy9zcmMvbGliL2FkZHJlc3MvYWRkcmVzcy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztFQUVFO0FBQ0YsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBR3BELE1BQU0sT0FBTyxXQUFXO0lBQ3BCLE1BQU0sQ0FBQyxvQkFBb0I7UUFDdkIsTUFBTSxDQUFDLEdBQUcsVUFBVSxPQUFZLEVBQUUsSUFBYyxFQUFFLFFBQWMsRUFBRSxJQUFVO1lBQ3hFLE9BQU8sSUFBSSxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzRixDQUFDLENBQUM7UUFDRixPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFDRCxTQUFTLENBQUMsTUFBVyxFQUFFLEdBQUcsSUFBVztRQUNqQyxNQUFNLE1BQU0sR0FBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMzQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDcEQsSUFBSSxDQUFDLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLFlBQVksS0FBSyxDQUFDLEVBQUU7WUFDNUQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztTQUM1RDthQUFNO1lBQ0gsTUFBTSxNQUFNLEdBQVUsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDaEIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxNQUFNLENBQUM7U0FDakI7SUFDTCxDQUFDO0lBQ08saUJBQWlCLENBQUMsTUFBVyxFQUFFLE1BQWUsRUFBRSxTQUFrQjtRQUN0RSxJQUFJLE1BQU0sRUFBRTtZQUNSLElBQUksR0FBRyxHQUFHLDZCQUE2QjtnQkFDdkMsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sR0FBRSxXQUFXLENBQUM7WUFDeEUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBRS9CLE9BQU8sWUFBWSxHQUFHLEdBQUcsR0FBRyxLQUFLO2dCQUN6QixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDcEMsdUVBQXVFO2dCQUN2RSxpRkFBaUY7Z0JBQ2pGLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEdBQUcsU0FBUztnQkFDL0MseUJBQXlCLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRSxJQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sR0FBRyxhQUFhLENBQUM7U0FDMUY7UUFDRCxPQUFPLG1HQUFtRztZQUNsRywrQkFBK0IsR0FBRyxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxHQUFHLFNBQVM7WUFDakYseUJBQXlCLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRSxJQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQztJQUM5RixDQUFDOzt5R0FwQ1EsV0FBVzt1R0FBWCxXQUFXOzRGQUFYLFdBQVc7a0JBRHZCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuKiBEZWZpbmVzIGEgZmlsdGVyIHRvIGNvbnZlcnQgdXJsIGludG8gYW4gYWRkcmVzcyBkaXNwbGF5LlxyXG4qL1xyXG5pbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AUGlwZSh7IG5hbWU6ICdhZGRyZXNzJyB9KVxyXG5leHBvcnQgY2xhc3MgQWRkcmVzc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICAgIHN0YXRpYyB0cmFuc2Zvcm1hdGlvbk1ldGhvZCgpIHtcclxuICAgICAgICBjb25zdCB4ID0gZnVuY3Rpb24gKGNvbnRlbnQ6IGFueSwgYXJnczogc3RyaW5nW10sIGNhbGxiYWNrPzogYW55LCBkYXRhPzogYW55KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgQWRkcmVzc1BpcGUoKS50cmFuc2Zvcm0oY29udGVudCwgYXJncy5sZW5ndGggPiAxID8gYXJnc1sxXT09PSd0cnVlJyA6IHRydWUpOyBcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiB4O1xyXG4gICAgfVxyXG4gICAgdHJhbnNmb3JtKHNvdXJjZTogYW55LCAuLi5hcmdzOiBhbnlbXSk6IGFueSB7XHJcbiAgICAgICAgY29uc3QgaXNMaW5rPSBhcmdzLmxlbmd0aCA/IGFyZ3NbMF0gOiB0cnVlO1xyXG4gICAgICAgIGNvbnN0IGhhc1RhcmdldCA9IGFyZ3MubGVuZ3RoID4gMSA/IGFyZ3NbMV0gOiBmYWxzZTtcclxuICAgICAgICBpZiAoKHR5cGVvZiBzb3VyY2UgPT09IFwic3RyaW5nXCIpIHx8ICEoc291cmNlIGluc3RhbmNlb2YgQXJyYXkpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFkZHJlc3NGcm9tU3RyaW5nKHNvdXJjZSwgaXNMaW5rLCBoYXNUYXJnZXQpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdDogYW55W10gPSBbXTtcclxuICAgICAgICAgICAgc291cmNlLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2godGhpcy5hZGRyZXNzRnJvbVN0cmluZyhpdGVtLCBpc0xpbmssIGhhc1RhcmdldCkpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGFkZHJlc3NGcm9tU3RyaW5nKHNvdXJjZTogYW55LCBpc0xpbms6IGJvb2xlYW4sIGhhc1RhcmdldDogYm9vbGVhbikge1xyXG4gICAgICAgIGlmIChpc0xpbmspIHtcclxuICAgICAgICAgICAgbGV0IHVybCA9IFwiaHR0cHM6Ly9tYXBzLmdvb2dsZS5jb20vP3E9XCIgKyBcclxuICAgICAgICAgICAgc291cmNlLnN0cmVldCArIFwiLCBcIiArIHNvdXJjZS5jaXR5ICsgXCIsIFwiICsgc291cmNlLnppcGNvZGUgK1wiJmllPVVURi04XCI7XHJcbiAgICAgICAgICAgIHVybCA9IHVybC5yZXBsYWNlKFwiXFxcXHMrXCIsIFwiK1wiKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBcIjxhIGhyZWY9XFwnXCIgKyB1cmwgKyBcIlxcJyBcIiArIFxyXG4gICAgICAgICAgICAgICAgICAgIChoYXNUYXJnZXQgPyBcInRhcmdldD0nX2JsYW5rJ1wiIDogXCJcIikgKyBcclxuICAgICAgICAgICAgICAgICAgICBcImNsYXNzPSdnb29nbGUtbWFwJz48c3BhbiBjbGFzcz0nZmEgZmEtbWFwLW1hcmtlcicgYXJpYS1oaWRkZW49J3RydWUnPlwiICtcclxuICAgICAgICAgICAgICAgICAgICBcIjwvc3Bhbj48c3BhbiBjbGFzcz0nb2ZmLXNjcmVlbic+VmlldyBpbiBnb29nbGUgbWFwPC9zcGFuPjxzcGFuIGNsYXNzPSdhZGRyZXNzJz5cIiArXHJcbiAgICAgICAgICAgICAgICAgICAgc291cmNlLnN0cmVldCArIFwiLCBcIiArIHNvdXJjZS5zdWl0ZSArIFwiPC9zcGFuPlwiICtcclxuICAgICAgICAgICAgICAgICAgICBcIjxzcGFuIGNsYXNzPSdhZGRyZXNzJz4gXCIgKyBzb3VyY2UuY2l0eSArXCIsIFwiICsgc291cmNlLnppcGNvZGUgKyBcIjwvc3Bhbj48L2E+XCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBcIjxzcGFuIGNsYXNzPSdnb29nbGUtbWFwJz48c3BhbiBjbGFzcz0nZmEgZmEtbWFwLW1hcmtlcicgc3R5bGU9J21hcmdpbjogMCA1cHgnIGFyaWEtaGlkZGVuPSd0cnVlJz5cIiArXHJcbiAgICAgICAgICAgICAgICBcIjwvc3Bhbj48c3BhbiBjbGFzcz0nYWRkcmVzcyc+XCIgKyBzb3VyY2Uuc3RyZWV0ICsgXCIsIFwiICsgc291cmNlLnN1aXRlICsgXCI8L3NwYW4+XCIgK1xyXG4gICAgICAgICAgICAgICAgXCI8c3BhbiBjbGFzcz0nYWRkcmVzcyc+IFwiICsgc291cmNlLmNpdHkgK1wiLCBcIiArIHNvdXJjZS56aXBjb2RlICsgXCI8L3NwYW4+PC9zcGFuPlwiO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==